GASATHON/Project/Source/Gasa/Game/GasaGameState.h

47 lines
977 B
C++

#pragma once
#include "GameFramework/GameState.h"
#include "GasaCommon.h"
#include "GasaGameState.generated.h"
UCLASS(Blueprintable)
class GASA_API AGasaGameState : public AGameState
{
GENERATED_BODY()
public:
#pragma region Cog
// To make sure it doesn't get garbage collected.
UPROPERTY()
TObjectPtr<UObject> CogWindowManagerRef;
#if ENABLE_COG
TObjectPtr<UCogWindowManager> CogWindowManager;
#endif // ENABLE_COG
#pragma endregion Cog
AGasaGameState();
#pragma region GameState
void BeginPlay() override;
void Tick(float DeltaSeconds) override;
#pragma endregion GameState
};
namespace Gasa
{
inline
AGasaGameState* GetGameState(UObject* Context)
{
UWorld* World = GEngine->GetWorldFromContextObject(Context, EGetWorldErrorMode::LogAndReturnNull);
if (World == nullptr)
{
Log("World is null... are you running in a proper context?", ELogV::Error);
return nullptr;
}
return Cast<AGasaGameState>(World->GetGameState());
}
}