#pragma once

/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/

// Package: LevelSequence

#include "Basic.hpp"

#include "LevelSequence_structs.hpp"
#include "DeveloperSettings_classes.hpp"
#include "UMG_classes.hpp"
#include "MovieScene_structs.hpp"
#include "MovieScene_classes.hpp"
#include "Engine_classes.hpp"
#include "CoreUObject_structs.hpp"
#include "CoreUObject_classes.hpp"


namespace SDK
{

// Class LevelSequence.LevelSequenceBurnInOptions
// 0x0028 (0x0050 - 0x0028)
class ULevelSequenceBurnInOptions final : public UObject
{
public:
	bool                                          bUseBurnIn;                                        // 0x0028(0x0001)(Edit, BlueprintVisible, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_29[0x7];                                       // 0x0029(0x0007)(Fixing Size After Last Property [ Dumper-7 ])
	struct FSoftClassPath                         BurnInClass;                                       // 0x0030(0x0018)(Edit, BlueprintVisible, ZeroConstructor, Config, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class ULevelSequenceBurnInInitSettings*       Settings;                                          // 0x0048(0x0008)(Edit, BlueprintVisible, ExportObject, ZeroConstructor, InstancedReference, IsPlainOldData, NoDestructor, PersistentInstance, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)

public:
	void SetBurnIn(const struct FSoftClassPath& InBurnInClass);

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("LevelSequenceBurnInOptions")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"LevelSequenceBurnInOptions")
	}
	static class ULevelSequenceBurnInOptions* GetDefaultObj()
	{
		return GetDefaultObjImpl<ULevelSequenceBurnInOptions>();
	}
};
DUMPER7_ASSERTS_ULevelSequenceBurnInOptions;

// Class LevelSequence.LevelSequence
// 0x0168 (0x01C8 - 0x0060)
class ULevelSequence : public UMovieSceneSequence
{
public:
	uint8                                         Pad_60[0x8];                                       // 0x0060(0x0008)(Fixing Size After Last Property [ Dumper-7 ])
	class UMovieScene*                            MovieScene;                                        // 0x0068(0x0008)(ExportObject, ZeroConstructor, InstancedReference, IsPlainOldData, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FLevelSequenceObjectReferenceMap       ObjectReferences;                                  // 0x0070(0x0050)(Protected, NativeAccessSpecifierProtected)
	struct FLevelSequenceBindingReferences        BindingReferences;                                 // 0x00C0(0x00A0)(Protected, NativeAccessSpecifierProtected)
	TMap<class FString, struct FLevelSequenceObject> PossessedObjects;                               // 0x0160(0x0050)(Deprecated, Protected, NativeAccessSpecifierProtected)
	TSubclassOf<class UObject>                    DirectorClass;                                     // 0x01B0(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	TArray<class UAssetUserData*>                 AssetUserData;                                     // 0x01B8(0x0010)(Edit, ExportObject, ZeroConstructor, ContainsInstancedReference, AdvancedDisplay, Protected, UObjectWrapper, NativeAccessSpecifierProtected)

public:
	class UObject* CopyMetaData(class UObject* InMetaData);
	class UObject* FindOrAddMetaDataByClass(TSubclassOf<class UObject> InClass);
	void RemoveMetaDataByClass(TSubclassOf<class UObject> InClass);

	class UObject* FindMetaDataByClass(TSubclassOf<class UObject> InClass) const;

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("LevelSequence")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"LevelSequence")
	}
	static class ULevelSequence* GetDefaultObj()
	{
		return GetDefaultObjImpl<ULevelSequence>();
	}
};
DUMPER7_ASSERTS_ULevelSequence;

// Class LevelSequence.LevelSequenceMetaData
// 0x0000 (0x0000 - 0x0000)
class ILevelSequenceMetaData final
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("LevelSequenceMetaData")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"LevelSequenceMetaData")
	}
	static class ILevelSequenceMetaData* GetDefaultObj()
	{
		return GetDefaultObjImpl<ILevelSequenceMetaData>();
	}

	class UObject* AsUObject()
	{
		return reinterpret_cast<UObject*>(this);
	}
	const class UObject* AsUObject() const
	{
		return reinterpret_cast<const UObject*>(this);
	}
};
DUMPER7_ASSERTS_ILevelSequenceMetaData;

// Class LevelSequence.LevelSequenceActor
// 0x0078 (0x0300 - 0x0288)
class ALevelSequenceActor : public AActor
{
public:
	uint8                                         Pad_288[0x18];                                     // 0x0288(0x0018)(Fixing Size After Last Property [ Dumper-7 ])
	struct FMovieSceneSequencePlaybackSettings    PlaybackSettings;                                  // 0x02A0(0x0014)(Edit, BlueprintVisible, BlueprintReadOnly, NoDestructor, NativeAccessSpecifierPublic)
	uint8                                         Pad_2B4[0x4];                                      // 0x02B4(0x0004)(Fixing Size After Last Property [ Dumper-7 ])
	class ULevelSequencePlayer*                   SequencePlayer;                                    // 0x02B8(0x0008)(BlueprintVisible, ExportObject, BlueprintReadOnly, Net, ZeroConstructor, Transient, InstancedReference, IsPlainOldData, NoDestructor, PersistentInstance, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class ULevelSequence*                         LevelSequenceAsset;                                // 0x02C0(0x0008)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FLevelSequenceCameraSettings           CameraSettings;                                    // 0x02C8(0x0002)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	uint8                                         Pad_2CA[0x6];                                      // 0x02CA(0x0006)(Fixing Size After Last Property [ Dumper-7 ])
	class ULevelSequenceBurnInOptions*            BurnInOptions;                                     // 0x02D0(0x0008)(BlueprintVisible, ExportObject, BlueprintReadOnly, ZeroConstructor, InstancedReference, IsPlainOldData, NoDestructor, PersistentInstance, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class UMovieSceneBindingOverrides*            BindingOverrides;                                  // 0x02D8(0x0008)(BlueprintVisible, ExportObject, BlueprintReadOnly, ZeroConstructor, InstancedReference, IsPlainOldData, NoDestructor, PersistentInstance, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         bAutoPlay : 1;                                     // 0x02E0(0x0001)(BitIndex: 0x00, PropSize: 0x0001 (Deprecated, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic))
	uint8                                         bOverrideInstanceData : 1;                         // 0x02E0(0x0001)(BitIndex: 0x01, PropSize: 0x0001 (Edit, BlueprintVisible, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic))
	uint8                                         bReplicatePlayback : 1;                            // 0x02E0(0x0001)(BitIndex: 0x02, PropSize: 0x0001 (Edit, BlueprintVisible, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic))
	uint8                                         Pad_2E1[0x7];                                      // 0x02E1(0x0007)(Fixing Size After Last Property [ Dumper-7 ])
	class UObject*                                DefaultInstanceData;                               // 0x02E8(0x0008)(BlueprintVisible, ExportObject, ZeroConstructor, InstancedReference, IsPlainOldData, NoDestructor, PersistentInstance, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class ULevelSequenceBurnIn*                   BurnInInstance;                                    // 0x02F0(0x0008)(ExportObject, ZeroConstructor, InstancedReference, IsPlainOldData, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	bool                                          bShowBurnin;                                       // 0x02F8(0x0001)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_2F9[0x7];                                      // 0x02F9(0x0007)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	void AddBinding(const struct FMovieSceneObjectBindingID& Binding, class AActor* Actor, bool bAllowBindingsFromAsset);
	void AddBindingByTag(class FName BindingTag, class AActor* Actor, bool bAllowBindingsFromAsset);
	void HideBurnin();
	void RemoveBinding(const struct FMovieSceneObjectBindingID& Binding, class AActor* Actor);
	void RemoveBindingByTag(class FName Tag, class AActor* Actor);
	void ResetBinding(const struct FMovieSceneObjectBindingID& Binding);
	void ResetBindings();
	void SetBinding(const struct FMovieSceneObjectBindingID& Binding, const TArray<class AActor*>& Actors, bool bAllowBindingsFromAsset);
	void SetBindingByTag(class FName BindingTag, const TArray<class AActor*>& Actors, bool bAllowBindingsFromAsset);
	void SetReplicatePlayback(bool ReplicatePlayback);
	void SetSequence(class ULevelSequence* InSequence);
	void ShowBurnin();

	struct FMovieSceneObjectBindingID FindNamedBinding(class FName Tag) const;
	const TArray<struct FMovieSceneObjectBindingID> FindNamedBindings(class FName Tag) const;
	class ULevelSequence* GetSequence() const;
	class ULevelSequencePlayer* GetSequencePlayer() const;
	class ULevelSequence* LoadSequence() const;

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("LevelSequenceActor")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"LevelSequenceActor")
	}
	static class ALevelSequenceActor* GetDefaultObj()
	{
		return GetDefaultObjImpl<ALevelSequenceActor>();
	}
};
DUMPER7_ASSERTS_ALevelSequenceActor;

// Class LevelSequence.LevelSequencePlayer
// 0x0100 (0x05D0 - 0x04D0)
class ULevelSequencePlayer : public UMovieSceneSequencePlayer
{
public:
	TMulticastInlineDelegate<void(class UCameraComponent* CameraComponent)> OnCameraCut;             // 0x04D0(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	uint8                                         Pad_4E0[0xF0];                                     // 0x04E0(0x00F0)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class ULevelSequencePlayer* CreateLevelSequencePlayer(class UObject* WorldContextObject, class ULevelSequence* LevelSequence, const struct FMovieSceneSequencePlaybackSettings& Settings, class ALevelSequenceActor** OutActor);

	class UCameraComponent* GetActiveCameraComponent() const;

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("LevelSequencePlayer")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"LevelSequencePlayer")
	}
	static class ULevelSequencePlayer* GetDefaultObj()
	{
		return GetDefaultObjImpl<ULevelSequencePlayer>();
	}
};
DUMPER7_ASSERTS_ULevelSequencePlayer;

// Class LevelSequence.DefaultLevelSequenceInstanceData
// 0x0078 (0x00A0 - 0x0028)
class UDefaultLevelSequenceInstanceData : public UObject
{
public:
	uint8                                         Pad_28[0x8];                                       // 0x0028(0x0008)(Fixing Size After Last Property [ Dumper-7 ])
	class AActor*                                 TransformOriginActor;                              // 0x0030(0x0008)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_38[0x8];                                       // 0x0038(0x0008)(Fixing Size After Last Property [ Dumper-7 ])
	struct FTransform                             TransformOrigin;                                   // 0x0040(0x0060)(Edit, BlueprintVisible, IsPlainOldData, NoDestructor, NativeAccessSpecifierPublic)

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("DefaultLevelSequenceInstanceData")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"DefaultLevelSequenceInstanceData")
	}
	static class UDefaultLevelSequenceInstanceData* GetDefaultObj()
	{
		return GetDefaultObjImpl<UDefaultLevelSequenceInstanceData>();
	}
};
DUMPER7_ASSERTS_UDefaultLevelSequenceInstanceData;

// Class LevelSequence.AnimSequenceLevelSequenceLink
// 0x0028 (0x0050 - 0x0028)
class UAnimSequenceLevelSequenceLink final : public UAssetUserData
{
public:
	struct FGuid                                  SkelTrackGuid;                                     // 0x0028(0x0010)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FSoftObjectPath                        PathToLevelSequence;                               // 0x0038(0x0018)(ZeroConstructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("AnimSequenceLevelSequenceLink")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"AnimSequenceLevelSequenceLink")
	}
	static class UAnimSequenceLevelSequenceLink* GetDefaultObj()
	{
		return GetDefaultObjImpl<UAnimSequenceLevelSequenceLink>();
	}
};
DUMPER7_ASSERTS_UAnimSequenceLevelSequenceLink;

// Class LevelSequence.LevelSequenceBurnInInitSettings
// 0x0000 (0x0028 - 0x0028)
class ULevelSequenceBurnInInitSettings final : public UObject
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("LevelSequenceBurnInInitSettings")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"LevelSequenceBurnInInitSettings")
	}
	static class ULevelSequenceBurnInInitSettings* GetDefaultObj()
	{
		return GetDefaultObjImpl<ULevelSequenceBurnInInitSettings>();
	}
};
DUMPER7_ASSERTS_ULevelSequenceBurnInInitSettings;

// Class LevelSequence.LevelSequenceAnimSequenceLink
// 0x0010 (0x0038 - 0x0028)
class ULevelSequenceAnimSequenceLink final : public UAssetUserData
{
public:
	TArray<struct FLevelSequenceAnimSequenceLinkItem> AnimSequenceLinks;                             // 0x0028(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("LevelSequenceAnimSequenceLink")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"LevelSequenceAnimSequenceLink")
	}
	static class ULevelSequenceAnimSequenceLink* GetDefaultObj()
	{
		return GetDefaultObjImpl<ULevelSequenceAnimSequenceLink>();
	}
};
DUMPER7_ASSERTS_ULevelSequenceAnimSequenceLink;

// Class LevelSequence.LevelSequenceBurnIn
// 0x00B0 (0x0348 - 0x0298)
class ULevelSequenceBurnIn final : public UUserWidget
{
public:
	struct FLevelSequencePlayerSnapshot           FrameInformation;                                  // 0x0298(0x00A8)(BlueprintVisible, BlueprintReadOnly, ContainsInstancedReference, Protected, NativeAccessSpecifierProtected)
	class ALevelSequenceActor*                    LevelSequenceActor;                                // 0x0340(0x0008)(BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected)

public:
	void SetSettings(class UObject* InSettings);

	TSubclassOf<class ULevelSequenceBurnInInitSettings> GetSettingsClass() const;

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("LevelSequenceBurnIn")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"LevelSequenceBurnIn")
	}
	static class ULevelSequenceBurnIn* GetDefaultObj()
	{
		return GetDefaultObjImpl<ULevelSequenceBurnIn>();
	}
};
DUMPER7_ASSERTS_ULevelSequenceBurnIn;

// Class LevelSequence.LevelSequenceDirector
// 0x0010 (0x0038 - 0x0028)
class ULevelSequenceDirector final : public UObject
{
public:
	class ULevelSequencePlayer*                   Player;                                            // 0x0028(0x0008)(BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	int32                                         SubSequenceID;                                     // 0x0030(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	int32                                         MovieScenePlayerIndex;                             // 0x0034(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

public:
	class AActor* GetBoundActor(const struct FMovieSceneObjectBindingID& ObjectBinding);
	TArray<class AActor*> GetBoundActors(const struct FMovieSceneObjectBindingID& ObjectBinding);
	class UObject* GetBoundObject(const struct FMovieSceneObjectBindingID& ObjectBinding);
	TArray<class UObject*> GetBoundObjects(const struct FMovieSceneObjectBindingID& ObjectBinding);
	class UMovieSceneSequence* GetSequence();
	void OnCreated();

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("LevelSequenceDirector")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"LevelSequenceDirector")
	}
	static class ULevelSequenceDirector* GetDefaultObj()
	{
		return GetDefaultObjImpl<ULevelSequenceDirector>();
	}
};
DUMPER7_ASSERTS_ULevelSequenceDirector;

// Class LevelSequence.LegacyLevelSequenceDirectorBlueprint
// 0x0000 (0x00A0 - 0x00A0)
class ULegacyLevelSequenceDirectorBlueprint final : public UBlueprint
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("LegacyLevelSequenceDirectorBlueprint")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"LegacyLevelSequenceDirectorBlueprint")
	}
	static class ULegacyLevelSequenceDirectorBlueprint* GetDefaultObj()
	{
		return GetDefaultObjImpl<ULegacyLevelSequenceDirectorBlueprint>();
	}
};
DUMPER7_ASSERTS_ULegacyLevelSequenceDirectorBlueprint;

// Class LevelSequence.LevelSequenceProjectSettings
// 0x0030 (0x0068 - 0x0038)
class ULevelSequenceProjectSettings final : public UDeveloperSettings
{
public:
	bool                                          bDefaultLockEngineToDisplayRate;                   // 0x0038(0x0001)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_39[0x7];                                       // 0x0039(0x0007)(Fixing Size After Last Property [ Dumper-7 ])
	class FString                                 DefaultDisplayRate;                                // 0x0040(0x0010)(Edit, ZeroConstructor, Config, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class FString                                 DefaultTickResolution;                             // 0x0050(0x0010)(Edit, ZeroConstructor, Config, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	EUpdateClockSource                            DefaultClockSource;                                // 0x0060(0x0001)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_61[0x7];                                       // 0x0061(0x0007)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("LevelSequenceProjectSettings")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"LevelSequenceProjectSettings")
	}
	static class ULevelSequenceProjectSettings* GetDefaultObj()
	{
		return GetDefaultObjImpl<ULevelSequenceProjectSettings>();
	}
};
DUMPER7_ASSERTS_ULevelSequenceProjectSettings;

// Class LevelSequence.LevelSequenceMediaController
// 0x0028 (0x02B0 - 0x0288)
class ALevelSequenceMediaController final : public AActor
{
public:
	uint8                                         Pad_288[0x8];                                      // 0x0288(0x0008)(Fixing Size After Last Property [ Dumper-7 ])
	class ALevelSequenceActor*                    Sequence;                                          // 0x0290(0x0008)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	class UMediaComponent*                        MediaComponent;                                    // 0x0298(0x0008)(Edit, BlueprintVisible, ExportObject, BlueprintReadOnly, ZeroConstructor, EditConst, InstancedReference, IsPlainOldData, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	float                                         ServerStartTimeSeconds;                            // 0x02A0(0x0004)(BlueprintVisible, BlueprintReadOnly, Net, ZeroConstructor, IsPlainOldData, RepNotify, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_2A4[0xC];                                      // 0x02A4(0x000C)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	void OnRep_ServerStartTimeSeconds();
	void Play();
	void SynchronizeToServer(float DesyncThresholdSeconds);

	class UMediaComponent* GetMediaComponent() const;
	class ALevelSequenceActor* GetSequence() const;

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("LevelSequenceMediaController")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"LevelSequenceMediaController")
	}
	static class ALevelSequenceMediaController* GetDefaultObj()
	{
		return GetDefaultObjImpl<ALevelSequenceMediaController>();
	}
};
DUMPER7_ASSERTS_ALevelSequenceMediaController;

}

