#pragma once

#include "CoreMinimal.h"
#include "ShotByRank.h"
#include "ShotManager.generated.h"

class UProceduralCameraSequenceData;
class ULevelSequence;
class UProceduralCameraShotData;
class UMovieScene3DTransformTrack;

USTRUCT(BlueprintType)
struct FShotManager
{
	GENERATED_BODY()

private:
	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient, meta=(AllowPrivateAccess=true))
	UProceduralCameraSequenceData* _shotsData;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient, meta=(AllowPrivateAccess=true))
	TArray<FShotByRank> _shotsByRank;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient, meta=(AllowPrivateAccess=true))
	TMap<UProceduralCameraShotData*, ULevelSequence*> _levelSequencesLoaded;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient, Instanced, meta=(AllowPrivateAccess=true))
	TMap<UProceduralCameraShotData*, UMovieScene3DTransformTrack*> _transformTrackLoaded;

public:
	DBDPROCEDURALCAMERA_API FShotManager();
};

FORCEINLINE uint32 GetTypeHash(const FShotManager) { return 0; }
