#pragma once

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

// Package: UDS_OcclusionState

#include "Basic.hpp"

#include "CoreUObject_structs.hpp"
#include "Engine_classes.hpp"


SDK_NAMESPACE_START

// BlueprintGeneratedClass UDS_OcclusionState.UDS_OcclusionState_C
// 0x0170 (0x01A0 - 0x0030)
class UUDS_OcclusionState_C final : public UPrimaryDataAsset
{
public:
	double                                        Increment_Time;                                    // 0x0030(0x0008)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	int32                                         Traces_Per_Update;                                 // 0x0038(0x0004)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	uint8                                         Pad_3C[0x4];                                       // 0x003C(0x0004)(Fixing Size After Last Property [ Dumper-7 ])
	double                                        Global_Occlusion_Total;                            // 0x0040(0x0008)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	double                                        Upward_Occlusion_Total;                            // 0x0048(0x0008)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	struct FLinearColor                           Directional_Occlusion_Total;                       // 0x0050(0x0010)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	double                                        Directional_Occlusion_Max;                         // 0x0060(0x0008)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	TArray<struct FLinearColor>                   Directional_Trace_Max_Values;                      // 0x0068(0x0010)(Edit, BlueprintVisible, DisableEditOnInstance)
	double                                        Upward_Occlusion_Max;                              // 0x0078(0x0008)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	TArray<double>                                Upward_Trace_Max_Values;                           // 0x0080(0x0010)(Edit, BlueprintVisible, DisableEditOnInstance)
	int32                                         Trace_Index;                                       // 0x0090(0x0004)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	uint8                                         Pad_94[0x4];                                       // 0x0094(0x0004)(Fixing Size After Last Property [ Dumper-7 ])
	TArray<struct FVector>                        Trace_Offsets;                                     // 0x0098(0x0010)(Edit, BlueprintVisible, DisableEditOnInstance)
	TArray<struct FLinearColor>                   Directional_Occlusion_History;                     // 0x00A8(0x0010)(Edit, BlueprintVisible, DisableEditOnInstance)
	TArray<double>                                Global_Occlusion_History;                          // 0x00B8(0x0010)(Edit, BlueprintVisible, DisableEditOnInstance)
	TArray<double>                                Upward_Occlusion_History;                          // 0x00C8(0x0010)(Edit, BlueprintVisible, DisableEditOnInstance)
	double                                        Occlusion_Multiplier;                              // 0x00D8(0x0008)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	double                                        Time_of_Last_Trace;                                // 0x00E0(0x0008)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	struct FVector                                Last_Trace_Location;                               // 0x00E8(0x0018)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	struct FLinearColor                           Directional_Portal_Contribution;                   // 0x0100(0x0010)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	double                                        Global_Contribution;                               // 0x0110(0x0008)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	struct FVector                                Last_Portal_Check_Location;                        // 0x0118(0x0018)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	struct FLinearColor                           Current_Directional_Occlusion;                     // 0x0130(0x0010)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	double                                        Current_Global_Occlusion;                          // 0x0140(0x0008)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	double                                        Current_Upward_Occlusion;                          // 0x0148(0x0008)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	struct FLinearColor                           Target_Directional_Occlusion;                      // 0x0150(0x0010)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	double                                        Target_Global_Occlusion;                           // 0x0160(0x0008)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	class UUDS_OcclusionSettings_C*               Occlusion_Settings;                                // 0x0168(0x0008)(Edit, BlueprintVisible, ZeroConstructor, NoDestructor, ExposeOnSpawn, HasGetValueTypeHash)
	bool                                          Unchanging_Values_Saved;                           // 0x0170(0x0001)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	uint8                                         Pad_171[0x7];                                      // 0x0171(0x0007)(Fixing Size After Last Property [ Dumper-7 ])
	double                                        Time_of_Last_Periodic_Context_Check;               // 0x0178(0x0008)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	double                                        Time_of_Last_Portal_Component_Check;               // 0x0180(0x0008)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	double                                        Time_of_Last_Editor_Cache;                         // 0x0188(0x0008)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	struct FRandomStream                          Random_Stream;                                     // 0x0190(0x0008)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, NoDestructor)
	bool                                          Handle_Directional_Occlusion;                      // 0x0198(0x0001)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)

public:
	void Save_Unchanging_Values();
	void Directional_Vector_Mask(const struct FVector& Direction, struct FLinearColor* Mask);
	double Directional_Mask_Value(const struct FVector& Direction, const struct FVector& Compare);
	struct FVector Current_Trace_Direction(const struct FVector& Facing_Direction, int32 Vertical_Step);
	struct FVector Current_Facing_Direction(int32 Step);

public:
	static class UClass* StaticClass()
	{
		BP_STATIC_CLASS_IMPL("UDS_OcclusionState_C")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"UDS_OcclusionState_C")
	}
	static class UUDS_OcclusionState_C* GetDefaultObj()
	{
		return GetDefaultObjImpl<UUDS_OcclusionState_C>();
	}
};
DUMPER7_ASSERTS_UUDS_OcclusionState_C;

SDK_NAMESPACE_END
