#pragma once

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

// Package: StateTreeModule

#include "Basic.hpp"

#include "StateTreeModule_structs.hpp"
#include "CoreUObject_structs.hpp"
#include "CoreUObject_classes.hpp"
#include "DeveloperSettings_classes.hpp"
#include "Engine_classes.hpp"


namespace SDK
{

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

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

// Class StateTreeModule.StateTreeSettings
// 0x0008 (0x0040 - 0x0038)
class UStateTreeSettings final : public UDeveloperSettings
{
public:
	bool                                          bAutoStartDebuggerTracesOnNonEditorTargets;        // 0x0038(0x0001)(Edit, ZeroConstructor, Config, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_39[0x7];                                       // 0x0039(0x0007)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

// Class StateTreeModule.StateTreeNodeBlueprintBase
// 0x0028 (0x0050 - 0x0028)
class UStateTreeNodeBlueprintBase : public UObject
{
public:
	uint8                                         Pad_28[0x10];                                      // 0x0028(0x0010)(Fixing Size After Last Property [ Dumper-7 ])
	class UObject*                                CachedOwner;                                       // 0x0038(0x0008)(ZeroConstructor, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	class UStateTree*                             CachedFrameStateTree;                              // 0x0040(0x0008)(ZeroConstructor, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_48[0x8];                                       // 0x0048(0x0008)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	void RequestTransition(const struct FStateTreeStateLink& TargetState, const EStateTreeTransitionPriority Priority);
	void SendEvent(const struct FStateTreeEvent& Event);

	class FText GetPropertyDescriptionByPropertyName(class FName PropertyName) const;
	void GetPropertyReference(const struct FStateTreeBlueprintPropertyRef& PropertyRef) const;
	bool IsPropertyRefValid(const struct FStateTreeBlueprintPropertyRef& PropertyRef) const;
	class FText ReceiveGetDescription(EStateTreeNodeFormatting Formatting) const;

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

// Class StateTreeModule.StateTreeConditionBlueprintBase
// 0x0008 (0x0058 - 0x0050)
class UStateTreeConditionBlueprintBase final : public UStateTreeNodeBlueprintBase
{
public:
	uint8                                         Pad_50[0x8];                                       // 0x0050(0x0008)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	bool ReceiveTestCondition() const;

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

// Class StateTreeModule.StateTreeConsiderationBlueprintBase
// 0x0008 (0x0058 - 0x0050)
class UStateTreeConsiderationBlueprintBase final : public UStateTreeNodeBlueprintBase
{
public:
	uint8                                         Pad_50[0x8];                                       // 0x0050(0x0008)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	float ReceiveGetScore() const;

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

// Class StateTreeModule.StateTreeEvaluatorBlueprintBase
// 0x0008 (0x0058 - 0x0050)
class UStateTreeEvaluatorBlueprintBase final : public UStateTreeNodeBlueprintBase
{
public:
	uint8                                         Pad_50[0x8];                                       // 0x0050(0x0008)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	void ReceiveTick(const float DeltaTime);
	void ReceiveTreeStart();
	void ReceiveTreeStop();

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

// Class StateTreeModule.StateTreeTaskBlueprintBase
// 0x0008 (0x0058 - 0x0050)
class UStateTreeTaskBlueprintBase : public UStateTreeNodeBlueprintBase
{
public:
	uint8                                         Pad_50[0x1];                                       // 0x0050(0x0001)(Fixing Size After Last Property [ Dumper-7 ])
	uint8                                         bShouldStateChangeOnReselect : 1;                  // 0x0051(0x0001)(BitIndex: 0x00, PropSize: 0x0001 (Edit, DisableEditOnInstance, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected))
	uint8                                         BitPad_51_1 : 1;                                   // 0x0051(0x0001)(Fixing Bit-Field Size Between Bits [ Dumper-7 ])
	uint8                                         bShouldCallTickOnlyOnEvents : 1;                   // 0x0051(0x0001)(BitIndex: 0x02, PropSize: 0x0001 (Edit, DisableEditOnInstance, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected))
	uint8                                         bShouldCopyBoundPropertiesOnTick : 1;              // 0x0051(0x0001)(BitIndex: 0x03, PropSize: 0x0001 (Edit, DisableEditOnInstance, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected))
	uint8                                         bShouldCopyBoundPropertiesOnExitState : 1;         // 0x0051(0x0001)(BitIndex: 0x04, PropSize: 0x0001 (Edit, DisableEditOnInstance, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected))
	uint8                                         Pad_52[0x6];                                       // 0x0052(0x0006)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	void FinishTask(const bool bSucceeded);
	EStateTreeRunStatus ReceiveEnterState(const struct FStateTreeTransitionResult& Transition);
	void ReceiveExitState(const struct FStateTreeTransitionResult& Transition);
	void ReceiveLatentEnterState(const struct FStateTreeTransitionResult& Transition);
	void ReceiveLatentTick(const float DeltaTime);
	void ReceiveStateCompleted(const EStateTreeRunStatus CompletionStatus, const struct FStateTreeActiveStates& CompletedActiveStates);
	EStateTreeRunStatus ReceiveTick(const float DeltaTime);

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

// Class StateTreeModule.StateTree
// 0x0168 (0x0198 - 0x0030)
class UStateTree final : public UDataAsset
{
public:
	uint32                                        LastCompiledEditorDataHash;                        // 0x0030(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_34[0x4];                                       // 0x0034(0x0004)(Fixing Size After Last Property [ Dumper-7 ])
	class UStateTreeSchema*                       Schema;                                            // 0x0038(0x0008)(ExportObject, ZeroConstructor, InstancedReference, NoDestructor, PersistentInstance, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	TArray<struct FCompactStateTreeState>         States;                                            // 0x0040(0x0010)(ZeroConstructor, NativeAccessSpecifierPrivate)
	TArray<struct FCompactStateTransition>        Transitions;                                       // 0x0050(0x0010)(ZeroConstructor, NativeAccessSpecifierPrivate)
	struct FInstancedStructContainer              Nodes;                                             // 0x0060(0x0010)(NativeAccessSpecifierPrivate)
	struct FStateTreeInstanceData                 DefaultInstanceData;                               // 0x0070(0x0010)(NativeAccessSpecifierPrivate)
	struct FStateTreeInstanceData                 SharedInstanceData;                                // 0x0080(0x0010)(NativeAccessSpecifierPrivate)
	uint8                                         Pad_90[0x18];                                      // 0x0090(0x0018)(Fixing Size After Last Property [ Dumper-7 ])
	TArray<struct FStateTreeExternalDataDesc>     ContextDataDescs;                                  // 0x00A8(0x0010)(ZeroConstructor, NativeAccessSpecifierPrivate)
	struct FStateTreePropertyBindings             PropertyBindings;                                  // 0x00B8(0x0078)(NativeAccessSpecifierPrivate)
	TArray<struct FStateTreeStateIdToHandle>      IDToStateMappings;                                 // 0x0130(0x0010)(ZeroConstructor, NativeAccessSpecifierPrivate)
	TArray<struct FStateTreeNodeIdToIndex>        IDToNodeMappings;                                  // 0x0140(0x0010)(ZeroConstructor, NativeAccessSpecifierPrivate)
	TArray<struct FStateTreeTransitionIdToIndex>  IDToTransitionMappings;                            // 0x0150(0x0010)(ZeroConstructor, NativeAccessSpecifierPrivate)
	struct FInstancedPropertyBag                  Parameters;                                        // 0x0160(0x0010)(NativeAccessSpecifierPrivate)
	uint16                                        NumContextData;                                    // 0x0170(0x0002)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint16                                        NumGlobalInstanceData;                             // 0x0172(0x0002)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint16                                        EvaluatorsBegin;                                   // 0x0174(0x0002)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint16                                        EvaluatorsNum;                                     // 0x0176(0x0002)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint16                                        GlobalTasksBegin;                                  // 0x0178(0x0002)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint16                                        GlobalTasksNum;                                    // 0x017A(0x0002)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	bool                                          bHasGlobalTransitionTasks;                         // 0x017C(0x0001)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_17D[0x3];                                      // 0x017D(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	TArray<struct FStateTreeExternalDataDesc>     ExternalDataDescs;                                 // 0x0180(0x0010)(ZeroConstructor, Transient, NativeAccessSpecifierPrivate)
	uint8                                         Pad_190[0x8];                                      // 0x0190(0x0008)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

// Class StateTreeModule.StateTreeSchema
// 0x0000 (0x0028 - 0x0028)
class UStateTreeSchema : public UObject
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("StateTreeSchema")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"StateTreeSchema")
	}
	static class UStateTreeSchema* GetDefaultObj()
	{
		return GetDefaultObjImpl<UStateTreeSchema>();
	}
};
DUMPER7_ASSERTS_UStateTreeSchema;

}

