#pragma once

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

// Package: SimpleSpawnPoints

#include "Basic.hpp"

#include "Engine_classes.hpp"
#include "SimpleSpawnPoints_structs.hpp"
#include "UMG_classes.hpp"
#include "DeveloperSettings_classes.hpp"


namespace SDK
{

// Class SimpleSpawnPoints.SpawnPoint
// 0x0048 (0x0338 - 0x02F0)
class ASpawnPoint : public ANavigationObjectBase
{
public:
	class FString                                 CustomName;                                        // 0x02F0(0x0010)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	TSoftObjectPtr<class USpawnPointDataPreset>   SpawnPointDataPreset;                              // 0x0300(0x0028)(Edit, BlueprintVisible, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	class UWorldPartitionStateRequestDataAsset*   WorldStateRequestDataAsset;                        // 0x0328(0x0008)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	ESpawnPointGroupID                            SpawnPointGroup;                                   // 0x0330(0x0001)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_331[0x7];                                      // 0x0331(0x0007)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	void OnPlayerSpawn();

	void ApplySpawnPointData() const;

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

// Class SimpleSpawnPoints.SpawnPointsConfig
// 0x0010 (0x0040 - 0x0030)
class USpawnPointsConfig final : public UDataAsset
{
public:
	TArray<struct FSpawnPointData>                SPAWNPOINTS;                                       // 0x0030(0x0010)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, NativeAccessSpecifierPublic)

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

// Class SimpleSpawnPoints.SpawnPointDataPreset
// 0x0000 (0x0030 - 0x0030)
class USpawnPointDataPreset : public UPrimaryDataAsset
{
public:
	void ApplySpawnPointData(const class UObject* WorldContextObject);

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

// Class SimpleSpawnPoints.SpawnPointWidget
// 0x0140 (0x0410 - 0x02D0)
class USpawnPointWidget final : public UUserWidget
{
public:
	struct FSpawnPointData                        Data;                                              // 0x02D0(0x0110)(BlueprintVisible, BlueprintReadOnly, Protected, NativeAccessSpecifierProtected)
	class UBButton*                               Slot_but;                                          // 0x03E0(0x0008)(BlueprintVisible, ExportObject, BlueprintReadOnly, ZeroConstructor, InstancedReference, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	TMulticastInlineDelegate<void(const struct FSpawnPointData& Info)> OnClicked;                    // 0x03E8(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, BlueprintCallable, NativeAccessSpecifierPublic)
	uint8                                         Pad_3F8[0x18];                                     // 0x03F8(0x0018)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

// Class SimpleSpawnPoints.SpawnPointsListWidget
// 0x0058 (0x0328 - 0x02D0)
class USpawnPointsListWidget final : public UUserWidget
{
public:
	TSoftObjectPtr<class USpawnPointsConfig>      ConfigPath;                                        // 0x02D0(0x0028)(Edit, BlueprintVisible, BlueprintReadOnly, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	TSubclassOf<class USpawnPointWidget>          ItemWidgetClass;                                   // 0x02F8(0x0008)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, DisableEditOnInstance, NoDestructor, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	class UPanelWidget*                           Items_box;                                         // 0x0300(0x0008)(BlueprintVisible, ExportObject, BlueprintReadOnly, ZeroConstructor, InstancedReference, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	TMulticastInlineDelegate<void(const struct FSpawnPointData& Info)> OnSpawnPointSelected;         // 0x0308(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	uint8                                         Pad_318[0x10];                                     // 0x0318(0x0010)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	void ForEachSpawnPointData();
	void OnFocus();

	bool HasData() const;
	bool OnAddItem(const struct FSpawnPointData& Data) const;

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

// Class SimpleSpawnPoints.SpawnPointsSettings
// 0x0028 (0x0060 - 0x0038)
class USpawnPointsSettings final : public UDeveloperSettings
{
public:
	TSoftObjectPtr<class USpawnPointsConfig>      SpawnPointConfig;                                  // 0x0038(0x0028)(Edit, BlueprintVisible, BlueprintReadOnly, Config, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected)

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

}

