#pragma once

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

// Package: MinigameSettingsMachine

#include "Basic.hpp"

#include "FortniteGame_structs.hpp"
#include "FortniteGame_classes.hpp"
#include "MinigameScoringPreset_structs.hpp"
#include "Engine_structs.hpp"


namespace SDK
{

// BlueprintGeneratedClass MinigameSettingsMachine.MinigameSettingsMachine_C
// 0x0070 (0x0CB8 - 0x0C48)
class AMinigameSettingsMachine_C final : public AFortMinigameSettingsBuilding
{
public:
	struct FPointerToUberGraphFrame               UberGraphFrame;                                    // 0x0C48(0x0008)(ZeroConstructor, Transient, DuplicateTransient)
	class UToyOptionsComponent_C*                 ToyOptionsComponent;                               // 0x0C50(0x0008)(BlueprintVisible, ZeroConstructor, InstancedReference, IsPlainOldData, NonTransactional, NoDestructor, HasGetValueTypeHash)
	class UStaticMeshComponent*                   Outpost_Console;                                   // 0x0C58(0x0008)(BlueprintVisible, ZeroConstructor, InstancedReference, IsPlainOldData, NonTransactional, NoDestructor, HasGetValueTypeHash)
	int32                                         GameModeIndex;                                     // 0x0C60(0x0004)(Edit, BlueprintVisible, Net, ZeroConstructor, DisableEditOnInstance, SaveGame, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	int32                                         CachedGameModeIndex;                               // 0x0C64(0x0004)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	float                                         TimeLimit;                                         // 0x0C68(0x0004)(Edit, BlueprintVisible, Net, ZeroConstructor, DisableEditOnInstance, SaveGame, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	EFortMinigamePlayerSpawnLocationSetting       SpawnLocationSetting;                              // 0x0C6C(0x0001)(Edit, BlueprintVisible, Net, ZeroConstructor, DisableEditOnInstance, SaveGame, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	uint8                                         Pad_C6D[0x3];                                      // 0x0C6D(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	int32                                         NumTeams;                                          // 0x0C70(0x0004)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	EFortMinigamePostGameSpawnLocationSetting     PostGameSpawnLocationSetting;                      // 0x0C74(0x0001)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, SaveGame, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	uint8                                         Pad_C75[0x3];                                      // 0x0C75(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	int32                                         PlayerLives;                                       // 0x0C78(0x0004)(Edit, BlueprintVisible, Net, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	int32                                         AutoEndTeamThreshold;                              // 0x0C7C(0x0004)(Edit, BlueprintVisible, Net, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	int32                                         TeamToMoveToWhenOutOfSpawns;                       // 0x0C80(0x0004)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	int32                                         NumKillsForEndCondition;                           // 0x0C84(0x0004)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	int32                                         AutoStartDelay;                                    // 0x0C88(0x0004)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	int32                                         NumCollectItemsForEndCondition;                    // 0x0C8C(0x0004)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
	TArray<struct FMinigameScoringPreset>         ScoringPresets;                                    // 0x0C90(0x0010)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance)
	TArray<class UClass*>                         TrackedStats;                                      // 0x0CA0(0x0010)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance)
	int32                                         JoinInProgress;                                    // 0x0CB0(0x0004)(Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, HasGetValueTypeHash)

public:
	void ExecuteUbergraph_MinigameSettingsMachine(int32 EntryPoint);
	void AbandonMinigameHelper();
	void StartMinigameHelper();
	void OnGameSettingsUpdated();
	void ReceiveBeginPlay();
	void BlueprintOnInteract(const class AFortPawn* InteractingPawn);
	void UserConstructionScript();
	bool BlueprintOnLocalInteract(class AFortPlayerPawn* InteractingPawn);
	void GetPickupSpawnLocation(struct FVector* SpawnLocation);
	void IsValidGame(bool* bCanStartGame);
	void HasMinigameStarted(bool* bHasStarted);
	void UpdateGameMode();
	void UpdateTimeLimit();
	void GetCurrentMinigame(class AFortMinigame** Minigame);
	void UpdateSpawnLocationSetting();
	void UpdateTeamSetting();
	void UpdatePostGameSpawnLocationSetting();
	void UpdatePlayerLives();
	void UpdateAutoEndTeamThreshold();
	void UpdateTeamToMoveToWhenOutOfSpawns();
	void UpdateEndConditions();
	void UpdateAutoStart();
	void TryAddEndCondition_Kills(TArray<struct FFortMinigameStatQuery>& EndConditions, bool* bResult);
	void TryAddEndCondition_CollectItems(TArray<struct FFortMinigameStatQuery>& EndConditions, bool* bResult);
	void UpdateJoinInProgress();

	bool BlueprintCanInteract(const class AFortPawn* InteractingPawn) const;
	class FText BlueprintGetInteractionString(const class AFortPawn* InteractingPawn) const;
	class FText BlueprintGetFailedInteractionString(const class AFortPawn* InteractingPawn) const;

public:
	static class UClass* StaticClass()
	{
		return StaticBPGeneratedClassImpl<"MinigameSettingsMachine_C">();
	}
	static class AMinigameSettingsMachine_C* GetDefaultObj()
	{
		return GetDefaultObjImpl<AMinigameSettingsMachine_C>();
	}
};
static_assert(alignof(AMinigameSettingsMachine_C) == 0x000008, "Wrong alignment on AMinigameSettingsMachine_C");
static_assert(sizeof(AMinigameSettingsMachine_C) == 0x000CB8, "Wrong size on AMinigameSettingsMachine_C");
static_assert(offsetof(AMinigameSettingsMachine_C, UberGraphFrame) == 0x000C48, "Member 'AMinigameSettingsMachine_C::UberGraphFrame' has a wrong offset!");
static_assert(offsetof(AMinigameSettingsMachine_C, ToyOptionsComponent) == 0x000C50, "Member 'AMinigameSettingsMachine_C::ToyOptionsComponent' has a wrong offset!");
static_assert(offsetof(AMinigameSettingsMachine_C, Outpost_Console) == 0x000C58, "Member 'AMinigameSettingsMachine_C::Outpost_Console' has a wrong offset!");
static_assert(offsetof(AMinigameSettingsMachine_C, GameModeIndex) == 0x000C60, "Member 'AMinigameSettingsMachine_C::GameModeIndex' has a wrong offset!");
static_assert(offsetof(AMinigameSettingsMachine_C, CachedGameModeIndex) == 0x000C64, "Member 'AMinigameSettingsMachine_C::CachedGameModeIndex' has a wrong offset!");
static_assert(offsetof(AMinigameSettingsMachine_C, TimeLimit) == 0x000C68, "Member 'AMinigameSettingsMachine_C::TimeLimit' has a wrong offset!");
static_assert(offsetof(AMinigameSettingsMachine_C, SpawnLocationSetting) == 0x000C6C, "Member 'AMinigameSettingsMachine_C::SpawnLocationSetting' has a wrong offset!");
static_assert(offsetof(AMinigameSettingsMachine_C, NumTeams) == 0x000C70, "Member 'AMinigameSettingsMachine_C::NumTeams' has a wrong offset!");
static_assert(offsetof(AMinigameSettingsMachine_C, PostGameSpawnLocationSetting) == 0x000C74, "Member 'AMinigameSettingsMachine_C::PostGameSpawnLocationSetting' has a wrong offset!");
static_assert(offsetof(AMinigameSettingsMachine_C, PlayerLives) == 0x000C78, "Member 'AMinigameSettingsMachine_C::PlayerLives' has a wrong offset!");
static_assert(offsetof(AMinigameSettingsMachine_C, AutoEndTeamThreshold) == 0x000C7C, "Member 'AMinigameSettingsMachine_C::AutoEndTeamThreshold' has a wrong offset!");
static_assert(offsetof(AMinigameSettingsMachine_C, TeamToMoveToWhenOutOfSpawns) == 0x000C80, "Member 'AMinigameSettingsMachine_C::TeamToMoveToWhenOutOfSpawns' has a wrong offset!");
static_assert(offsetof(AMinigameSettingsMachine_C, NumKillsForEndCondition) == 0x000C84, "Member 'AMinigameSettingsMachine_C::NumKillsForEndCondition' has a wrong offset!");
static_assert(offsetof(AMinigameSettingsMachine_C, AutoStartDelay) == 0x000C88, "Member 'AMinigameSettingsMachine_C::AutoStartDelay' has a wrong offset!");
static_assert(offsetof(AMinigameSettingsMachine_C, NumCollectItemsForEndCondition) == 0x000C8C, "Member 'AMinigameSettingsMachine_C::NumCollectItemsForEndCondition' has a wrong offset!");
static_assert(offsetof(AMinigameSettingsMachine_C, ScoringPresets) == 0x000C90, "Member 'AMinigameSettingsMachine_C::ScoringPresets' has a wrong offset!");
static_assert(offsetof(AMinigameSettingsMachine_C, TrackedStats) == 0x000CA0, "Member 'AMinigameSettingsMachine_C::TrackedStats' has a wrong offset!");
static_assert(offsetof(AMinigameSettingsMachine_C, JoinInProgress) == 0x000CB0, "Member 'AMinigameSettingsMachine_C::JoinInProgress' has a wrong offset!");

}

