#pragma once

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

// Package: NiagaraShader

#include "Basic.hpp"

#include "NiagaraCore_structs.hpp"
#include "CoreUObject_structs.hpp"


SDK_NAMESPACE_START

// Enum NiagaraShader.ENiagaraMipMapGenerationType
// NumValues: 0x0007
enum class ENiagaraMipMapGenerationType : uint8
{
	Unfiltered                               = 0,
	Linear                                   = 1,
	Blur1                                    = 2,
	Blur2                                    = 3,
	Blur3                                    = 4,
	Blur4                                    = 5,
	ENiagaraMipMapGenerationType_MAX         = 6,
};

// Enum NiagaraShader.ENiagaraGpuDispatchType
// NumValues: 0x0005
enum class ENiagaraGpuDispatchType : uint8
{
	OneD                                     = 0,
	TwoD                                     = 1,
	ThreeD                                   = 2,
	Custom                                   = 3,
	ENiagaraGpuDispatchType_MAX              = 4,
};

// Enum NiagaraShader.ENiagaraDirectDispatchElementType
// NumValues: 0x0004
enum class ENiagaraDirectDispatchElementType : uint8
{
	NumThreads                               = 0,
	NumThreadsNoClipping                     = 1,
	NumGroups                                = 2,
	ENiagaraDirectDispatchElementType_MAX    = 3,
};

// Enum NiagaraShader.ENiagaraSimStageExecuteBehavior
// NumValues: 0x0004
enum class ENiagaraSimStageExecuteBehavior : uint8
{
	Always                                   = 0,
	OnSimulationReset                        = 1,
	NotOnSimulationReset                     = 2,
	ENiagaraSimStageExecuteBehavior_MAX      = 3,
};

// Enum NiagaraShader.FNiagaraCompileEventSeverity
// NumValues: 0x0005
enum class EFNiagaraCompileEventSeverity : uint8
{
	Log                                      = 0,
	Display                                  = 1,
	Warning                                  = 2,
	Error                                    = 3,
	FNiagaraCompileEventSeverity_MAX         = 4,
};

// Enum NiagaraShader.FNiagaraCompileEventSource
// NumValues: 0x0003
enum class EFNiagaraCompileEventSource : uint8
{
	Unset                                    = 0,
	ScriptDependency                         = 1,
	FNiagaraCompileEventSource_MAX           = 2,
};

// ScriptStruct NiagaraShader.SimulationStageMetaData
// 0x00A8 (0x00A8 - 0x0000)
struct FSimulationStageMetaData final
{
public:
	class FName                                   SimulationStageName;                               // 0x0000(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class FName                                   EnabledBinding;                                    // 0x0008(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FIntVector                             ElementCount;                                      // 0x0010(0x000C)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class FName                                   ElementCountXBinding;                              // 0x001C(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class FName                                   ElementCountYBinding;                              // 0x0024(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class FName                                   ElementCountZBinding;                              // 0x002C(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	ENiagaraIterationSource                       IterationSourceType;                               // 0x0034(0x0001)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_35[0x3];                                       // 0x0035(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	class FName                                   IterationDataInterface;                            // 0x0038(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class FName                                   IterationDirectBinding;                            // 0x0040(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	ENiagaraSimStageExecuteBehavior               ExecuteBehavior;                                   // 0x0048(0x0001)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_49[0x3];                                       // 0x0049(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	uint8                                         bWritesParticles : 1;                              // 0x004C(0x0001)(BitIndex: 0x00, PropSize: 0x0001 (NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic))
	uint8                                         bPartialParticleUpdate : 1;                        // 0x004C(0x0001)(BitIndex: 0x01, PropSize: 0x0001 (NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic))
	uint8                                         bParticleIterationStateEnabled : 1;                // 0x004C(0x0001)(BitIndex: 0x02, PropSize: 0x0001 (NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic))
	uint8                                         bGpuIndirectDispatch : 1;                          // 0x004C(0x0001)(BitIndex: 0x03, PropSize: 0x0001 (NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic))
	uint8                                         Pad_4D[0x3];                                       // 0x004D(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	class FName                                   ParticleIterationStateBinding;                     // 0x0050(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_58[0x4];                                       // 0x0058(0x0004)(Fixing Size After Last Property [ Dumper-7 ])
	struct FIntPoint                              ParticleIterationStateRange;                       // 0x005C(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_64[0x4];                                       // 0x0064(0x0004)(Fixing Size After Last Property [ Dumper-7 ])
	TArray<class FName>                           OutputDestinations;                                // 0x0068(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)
	TArray<class FName>                           InputDataInterfaces;                               // 0x0078(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)
	int32                                         NumIterations;                                     // 0x0088(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class FName                                   NumIterationsBinding;                              // 0x008C(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	ENiagaraGpuDispatchType                       GpuDispatchType;                                   // 0x0094(0x0001)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	ENiagaraDirectDispatchElementType             GpuDirectDispatchElementType;                      // 0x0095(0x0001)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_96[0x2];                                       // 0x0096(0x0002)(Fixing Size After Last Property [ Dumper-7 ])
	struct FIntVector                             GpuDispatchNumThreads;                             // 0x0098(0x000C)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_A4[0x4];                                       // 0x00A4(0x0004)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FSimulationStageMetaData;

// ScriptStruct NiagaraShader.NiagaraCompileEvent
// 0x0060 (0x0060 - 0x0000)
struct FNiagaraCompileEvent final
{
public:
	EFNiagaraCompileEventSeverity                 Severity;                                          // 0x0000(0x0001)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_1[0x7];                                        // 0x0001(0x0007)(Fixing Size After Last Property [ Dumper-7 ])
	class FString                                 Message;                                           // 0x0008(0x0010)(ZeroConstructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class FString                                 ShortDescription;                                  // 0x0018(0x0010)(ZeroConstructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FGuid                                  NodeGuid;                                          // 0x0028(0x0010)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FGuid                                  PinGuid;                                           // 0x0038(0x0010)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	TArray<struct FGuid>                          StackGuids;                                        // 0x0048(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)
	EFNiagaraCompileEventSource                   Source;                                            // 0x0058(0x0001)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_59[0x7];                                       // 0x0059(0x0007)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FNiagaraCompileEvent;

// ScriptStruct NiagaraShader.NiagaraDataInterfaceGeneratedFunction
// 0x0050 (0x0050 - 0x0000)
struct FNiagaraDataInterfaceGeneratedFunction final
{
public:
	uint8                                         Pad_0[0x30];                                       // 0x0000(0x0030)(Fixing Size After Last Property [ Dumper-7 ])
	TArray<struct FNiagaraVariableCommonReference> VariadicInputs;                                   // 0x0030(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)
	TArray<struct FNiagaraVariableCommonReference> VariadicOutputs;                                  // 0x0040(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FNiagaraDataInterfaceGeneratedFunction;

// ScriptStruct NiagaraShader.NiagaraDataInterfaceGPUParamInfo
// 0x0038 (0x0038 - 0x0000)
struct FNiagaraDataInterfaceGPUParamInfo final
{
public:
	class FString                                 DataInterfaceHLSLSymbol;                           // 0x0000(0x0010)(ZeroConstructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class FString                                 DIClassName;                                       // 0x0010(0x0010)(ZeroConstructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint32                                        ShaderParametersOffset;                            // 0x0020(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_24[0x4];                                       // 0x0024(0x0004)(Fixing Size After Last Property [ Dumper-7 ])
	TArray<struct FNiagaraDataInterfaceGeneratedFunction> GeneratedFunctions;                        // 0x0028(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FNiagaraDataInterfaceGPUParamInfo;

// ScriptStruct NiagaraShader.NiagaraShaderScriptExternalConstant
// 0x0018 (0x0018 - 0x0000)
struct FNiagaraShaderScriptExternalConstant final
{
public:
	class FName                                   Type;                                              // 0x0000(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class FString                                 Name;                                              // 0x0008(0x0010)(ZeroConstructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FNiagaraShaderScriptExternalConstant;

// ScriptStruct NiagaraShader.NiagaraShaderScriptParametersMetadata
// 0x0058 (0x0058 - 0x0000)
struct FNiagaraShaderScriptParametersMetadata final
{
public:
	TArray<struct FNiagaraDataInterfaceGPUParamInfo> DataInterfaceParamInfo;                         // 0x0000(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)
	TArray<class FString>                         LooseMetadataNames;                                // 0x0010(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)
	bool                                          bExternalConstantsInterpolated;                    // 0x0020(0x0001)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_21[0x7];                                       // 0x0021(0x0007)(Fixing Size After Last Property [ Dumper-7 ])
	TArray<struct FNiagaraShaderScriptExternalConstant> ExternalConstants;                           // 0x0028(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)
	uint8                                         Pad_38[0x20];                                      // 0x0038(0x0020)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FNiagaraShaderScriptParametersMetadata;

SDK_NAMESPACE_END
