#pragma once

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

// Package: HTN

#include "Basic.hpp"

#include "AIModule_structs.hpp"
#include "CoreUObject_structs.hpp"


namespace SDK
{

// Enum HTN.EHTNPlanExecutionFinishedResult
// NumValues: 0x0003
enum class EHTNPlanExecutionFinishedResult : uint8
{
	Succeeded                                = 0,
	FailedOrAborted                          = 1,
	EHTNPlanExecutionFinishedResult_MAX      = 2,
};

// Enum HTN.EHTNFindExtensionResult
// NumValues: 0x0003
enum class EHTNFindExtensionResult : uint8
{
	Found                                    = 0,
	NotFound                                 = 1,
	EHTNFindExtensionResult_MAX              = 2,
};

// Enum HTN.EHTNDecoratorDistanceCheckMode
// NumValues: 0x0006
enum class EHTNDecoratorDistanceCheckMode : uint32
{
	Distance3D                               = 0,
	Distance2D                               = 1,
	DistanceSignedZ                          = 2,
	DistanceAbsoluteZ                        = 3,
	Capsule                                  = 4,
	EHTNDecoratorDistanceCheckMode_MAX       = 5,
};

// Enum HTN.EHTNLocationExtractionMethod
// NumValues: 0x0005
enum class EHTNLocationExtractionMethod : uint8
{
	Location                                 = 0,
	NavAgentLocation                         = 1,
	ActorEyesViewPoint                       = 2,
	Custom                                   = 3,
	EHTNLocationExtractionMethod_MAX         = 4,
};

// Enum HTN.EHTNNodeInstancePoolingMode
// NumValues: 0x0004
enum class EHTNNodeInstancePoolingMode : uint8
{
	ProjectDefault                           = 0,
	Enabled                                  = 1,
	Disabled                                 = 2,
	EHTNNodeInstancePoolingMode_MAX          = 3,
};

// Enum HTN.EHTNNodeIfPlanAdjustmentMode
// NumValues: 0x0005
enum class EHTNNodeIfPlanAdjustmentMode : uint8
{
	NoAdjustmentAllowed                      = 0,
	TrySwitchToTrueBranch                    = 1,
	TrySwitchToFalseBranch                   = 2,
	TrySwitchToOtherBranch                   = 3,
	EHTNNodeIfPlanAdjustmentMode_MAX         = 4,
};

// Enum HTN.EHTNNodePreferPlanAdjustmentMode
// NumValues: 0x0005
enum class EHTNNodePreferPlanAdjustmentMode : uint8
{
	NoAdjustmentAllowed                      = 0,
	TrySwitchToHigherPriorityBranch          = 1,
	TrySwitchToLowerPriorityBranch           = 2,
	TrySwitchToOtherBranch                   = 3,
	EHTNNodePreferPlanAdjustmentMode_MAX     = 4,
};

// Enum HTN.EHTNTaskFunction
// NumValues: 0x0006
enum class EHTNTaskFunction : uint8
{
	None                                     = 0,
	CreatePlanSteps                          = 1,
	RecheckPlan                              = 2,
	Execute                                  = 3,
	Abort                                    = 4,
	EHTNTaskFunction_MAX                     = 5,
};

// Enum HTN.EHTNResetCooldownAffectedCooldowns
// NumValues: 0x0004
enum class EHTNResetCooldownAffectedCooldowns : uint32
{
	CooldownsWithGameplayTag                 = 0,
	CooldownsWithoutGameplayTag              = 1,
	AllCooldowns                             = 2,
	EHTNResetCooldownAffectedCooldowns_MAX   = 3,
};

// Enum HTN.EHTNResetDoOnceAffectedDecorators
// NumValues: 0x0004
enum class EHTNResetDoOnceAffectedDecorators : uint32
{
	DoOnceDecoratorsWithGameplayTag          = 0,
	DoOnceDecoratorsWithoutGameplayTag       = 1,
	AllDoOnceDecorators                      = 2,
	EHTNResetDoOnceAffectedDecorators_MAX    = 3,
};

// Enum HTN.EHTNSubPlanNodeAbortedReaction
// NumValues: 0x0003
enum class EHTNSubPlanNodeAbortedReaction : uint8
{
	AbortSubPlanExecution                    = 0,
	WaitForSubPlanToFinish                   = 1,
	EHTNSubPlanNodeAbortedReaction_MAX       = 2,
};

// Enum HTN.EHTNNodeResult
// NumValues: 0x0005
enum class EHTNNodeResult : uint8
{
	Succeeded                                = 0,
	Failed                                   = 1,
	Aborted                                  = 2,
	InProgress                               = 3,
	EHTNNodeResult_MAX                       = 4,
};

// Enum HTN.EHTNTaskStatus
// NumValues: 0x0004
enum class EHTNTaskStatus : uint8
{
	Active                                   = 0,
	Aborting                                 = 1,
	Inactive                                 = 2,
	EHTNTaskStatus_MAX                       = 3,
};

// Enum HTN.EHTNDecoratorConditionCheckType
// NumValues: 0x0005
enum class EHTNDecoratorConditionCheckType : uint8
{
	PlanEnter                                = 0,
	PlanExit                                 = 1,
	PlanRecheck                              = 2,
	Execution                                = 3,
	EHTNDecoratorConditionCheckType_MAX      = 4,
};

// Enum HTN.EHTNDecoratorTestResult
// NumValues: 0x0004
enum class EHTNDecoratorTestResult : uint8
{
	Failed                                   = 0,
	Passed                                   = 1,
	NotTested                                = 2,
	EHTNDecoratorTestResult_MAX              = 3,
};

// Enum HTN.EHTNPlanInstanceStatus
// NumValues: 0x0005
enum class EHTNPlanInstanceStatus : uint8
{
	NotStarted                               = 0,
	InProgress                               = 1,
	Succeeded                                = 2,
	Failed                                   = 3,
	EHTNPlanInstanceStatus_MAX               = 4,
};

// Enum HTN.EHTNLockFlags
// NumValues: 0x0005
enum class EHTNLockFlags : uint8
{
	None                                     = 0,
	LockTick                                 = 1,
	LockAbortPlan                            = 2,
	LockOnTaskFinished                       = 4,
	EHTNLockFlags_MAX                        = 5,
};

// Enum HTN.EHTNPlanningType
// NumValues: 0x0003
enum class EHTNPlanningType : uint8
{
	Normal                                   = 0,
	TryToAdjustCurrentPlan                   = 1,
	EHTNPlanningType_MAX                     = 2,
};

// Enum HTN.EHTNPlanInstanceFinishReaction
// NumValues: 0x0004
enum class EHTNPlanInstanceFinishReaction : uint8
{
	Succeed                                  = 0,
	Fail                                     = 1,
	Loop                                     = 2,
	EHTNPlanInstanceFinishReaction_MAX       = 3,
};

// Enum HTN.EHTNReturnValueValidity
// NumValues: 0x0003
enum class EHTNReturnValueValidity : uint8
{
	Valid                                    = 0,
	NotValid                                 = 1,
	EHTNReturnValueValidity_MAX              = 2,
};

// ScriptStruct HTN.HTNPlanningID
// 0x0008 (0x0008 - 0x0000)
struct FHTNPlanningID final
{
public:
	uint64                                        ID;                                                // 0x0000(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FHTNPlanningID;

// ScriptStruct HTN.EQSParametrizedQueryExecutionRequestHTN
// 0x0000 (0x0048 - 0x0048)
struct FEQSParametrizedQueryExecutionRequestHTN final : public FEQSParametrizedQueryExecutionRequest
{
};
DUMPER7_ASSERTS_FEQSParametrizedQueryExecutionRequestHTN;

// ScriptStruct HTN.HTNNodeInstancePool
// 0x0010 (0x0010 - 0x0000)
struct FHTNNodeInstancePool final
{
public:
	TArray<class UHTNNode*>                       Instances;                                         // 0x0000(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FHTNNodeInstancePool;

// ScriptStruct HTN.HTNLocationSource
// 0x0050 (0x0050 - 0x0000)
struct FHTNLocationSource final
{
public:
	struct FBlackboardKeySelector                 BlackboardKey;                                     // 0x0000(0x0028)(Edit, NativeAccessSpecifierPublic)
	EHTNLocationExtractionMethod                  LocationExtractionMethod;                          // 0x0028(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_29[0x7];                                       // 0x0029(0x0007)(Fixing Size After Last Property [ Dumper-7 ])
	class UHTNCustomLocationSource*               CustomSource;                                      // 0x0030(0x0008)(Edit, ExportObject, ZeroConstructor, InstancedReference, NoDestructor, PersistentInstance, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FVector                                Offset;                                            // 0x0038(0x0018)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FHTNLocationSource;

// ScriptStruct HTN.HTNPlanInstanceConfig
// 0x0048 (0x0048 - 0x0000)
struct FHTNPlanInstanceConfig final
{
public:
	EHTNPlanInstanceFinishReaction                SucceededReaction;                                 // 0x0000(0x0001)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	EHTNPlanInstanceFinishReaction                FailedReaction;                                    // 0x0001(0x0001)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_2[0x16];                                       // 0x0002(0x0016)(Fixing Size After Last Property [ Dumper-7 ])
	uint8                                         bPlanDuringExecution : 1;                          // 0x0018(0x0001)(BitIndex: 0x00, PropSize: 0x0001 (NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic))
	uint8                                         bSkipPlanningOnFirstExecutionIfPlanAlreadyAvailable : 1; // 0x0018(0x0001)(BitIndex: 0x01, PropSize: 0x0001 (NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic))
	uint8                                         Pad_19[0x3];                                       // 0x0019(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	int32                                         Depth;                                             // 0x001C(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class UHTNStandaloneNode*                     RootNodeOverride;                                  // 0x0020(0x0008)(ZeroConstructor, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_28[0x20];                                      // 0x0028(0x0020)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FHTNPlanInstanceConfig;

// ScriptStruct HTN.HTNPlanInstanceID
// 0x0008 (0x0008 - 0x0000)
struct FHTNPlanInstanceID final
{
public:
	uint64                                        ID;                                                // 0x0000(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FHTNPlanInstanceID;

// ScriptStruct HTN.HTNReplanParameters
// 0x0018 (0x0018 - 0x0000)
struct FHTNReplanParameters final
{
public:
	class FString                                 DebugReason;                                       // 0x0000(0x0010)(Edit, BlueprintVisible, ZeroConstructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         bForceAbortPlan : 1;                               // 0x0010(0x0001)(BitIndex: 0x00, PropSize: 0x0001 (Edit, BlueprintVisible, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic))
	uint8                                         bForceRestartActivePlanning : 1;                   // 0x0010(0x0001)(BitIndex: 0x01, PropSize: 0x0001 (Edit, BlueprintVisible, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic))
	uint8                                         bForceDeferToNextFrame : 1;                        // 0x0010(0x0001)(BitIndex: 0x02, PropSize: 0x0001 (Edit, BlueprintVisible, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic))
	uint8                                         bReplanOutermostPlanInstance : 1;                  // 0x0010(0x0001)(BitIndex: 0x03, PropSize: 0x0001 (Edit, BlueprintVisible, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic))
	uint8                                         bForceReplan : 1;                                  // 0x0010(0x0001)(BitIndex: 0x04, PropSize: 0x0001 (Edit, BlueprintVisible, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic))
	uint8                                         bMakeNewPlanRegardlessOfSubPlanSettings : 1;       // 0x0010(0x0001)(BitIndex: 0x05, PropSize: 0x0001 (Edit, BlueprintVisible, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic))
	EHTNPlanningType                              PlanningType;                                      // 0x0011(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_12[0x6];                                       // 0x0012(0x0006)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FHTNReplanParameters;

// ScriptStruct HTN.WorldstateSetValueContainer
// 0x0058 (0x0058 - 0x0000)
struct FWorldstateSetValueContainer final
{
public:
	int32                                         IntValue;                                          // 0x0000(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         FloatValue;                                        // 0x0004(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FVector                                VectorValue;                                       // 0x0008(0x0018)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FRotator                               RotatorValue;                                      // 0x0020(0x0018)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, NativeAccessSpecifierPublic)
	class FString                                 StringValue;                                       // 0x0038(0x0010)(Edit, ZeroConstructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class FName                                   NameValue;                                         // 0x0048(0x0008)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class UObject*                                ObjectValue;                                       // 0x0050(0x0008)(Edit, ZeroConstructor, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FWorldstateSetValueContainer;

}

