#pragma once

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

// Package: UDS_PlayerOcclusion

#include "Basic.hpp"

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


SDK_NAMESPACE_START

// BlueprintGeneratedClass UDS_PlayerOcclusion.UDS_PlayerOcclusion_C
// 0x00B0 (0x02F0 - 0x0240)
class UUDS_PlayerOcclusion_C final : public USceneComponent
{
public:
	struct FPointerToUberGraphFrame               UberGraphFrame;                                    // 0x0240(0x0008)(ZeroConstructor, Transient, DuplicateTransient)
	class UUDS_OcclusionSettings_C*               Occlusion_Settings;                                // 0x0248(0x0008)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, NoDestructor, HasGetValueTypeHash)
	bool                                          Force_Full_Occlusion;                              // 0x0250(0x0001)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	uint8                                         Pad_251[0x7];                                      // 0x0251(0x0007)(Fixing Size After Last Property [ Dumper-7 ])
	TArray<class AActor*>                         Ignored_Actors;                                    // 0x0258(0x0010)(Edit, BlueprintVisible, DisableEditOnTemplate, DisableEditOnInstance)
	bool                                          Hard_Update;                                       // 0x0268(0x0001)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	uint8                                         Pad_269[0x7];                                      // 0x0269(0x0007)(Fixing Size After Last Property [ Dumper-7 ])
	double                                        Tick_Period;                                       // 0x0270(0x0008)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	struct FVector                                Sample_Location;                                   // 0x0278(0x0018)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	TMulticastInlineDelegate<void()>              Hard_Occlusion_Change;                             // 0x0290(0x0010)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, BlueprintAssignable, BlueprintCallable)
	class UUDS_OcclusionState_C*                  State;                                             // 0x02A0(0x0008)(Edit, BlueprintVisible, ZeroConstructor, Transient, DisableEditOnInstance, NoDestructor, HasGetValueTypeHash)
	TArray<class UUDS_Occlusion_Portal_C*>        Portal_Components;                                 // 0x02A8(0x0010)(Edit, BlueprintVisible, Transient, DisableEditOnInstance, ContainsInstancedReference)
	class UNiagaraComponent*                      DF_Occlusion_System;                               // 0x02B8(0x0008)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, InstancedReference, NoDestructor, HasGetValueTypeHash)
	TSoftObjectPtr<class UNiagaraSystem>          DF_Occlusion_System_Asset;                         // 0x02C0(0x0028)(Edit, BlueprintVisible, DisableEditOnInstance, HasGetValueTypeHash)
	bool                                          Do_Incremental_Traces;                             // 0x02E8(0x0001)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)

public:
	void Apply_Directional_Occlusion_Modifiers(const struct FLinearColor& In, struct FLinearColor* Out);
	void Start_Up_GPU_Distance_Field_System();
	void Test_Point_for_Occlusion_Volumes(const struct FVector& Location, double* Final_Multiplier);
	void Custom_Global_Occlusion_Sample(const struct FVector& Location, double* Global_Occlusion);
	void Runtime_Tick();
	EDrawDebugTrace Trace_Debugs();
	void Editor_Tick(const struct FVector& Occlusion_Location);
	void Portal_Direction_Mask(const struct FVector& Direction, struct FLinearColor* Mask);
	void Delayed_Startup();
	void Check_For_Portal_Components();
	void Get_Sample_Location();
	void Update_Ignored_Actors();
	void Periodic_Context_Checks();
	void Update_Current_Occlusion();
	void Incremental_Occlusion_Traces();
	void Initialize();
	void ReceiveParticleData(const TArray<struct FBasicParticleData>& Data, class UNiagaraSystem* NiagaraSystem, const struct FVector& SimulationPositionOffset);
	void ReceiveEndPlay(EEndPlayReason EndPlayReason);
	void ExecuteUbergraph_UDS_PlayerOcclusion(int32 EntryPoint);

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

SDK_NAMESPACE_END
