haxis/Source/UnrealProject/GameState/MenuController.h

72 lines
2.1 KiB
C++

// Project Lab - NHTV Igad
#pragma once
#include "GameFramework/PlayerController.h"
#include "PlayerControllerBase.h"
#include "MenuController.generated.h"
UCLASS()
class UNREALPROJECT_API AMenuController : public APlayerControllerBase
{
GENERATED_BODY()
public:
AMenuController(const FObjectInitializer& ObjectInitializer);
virtual void BeginPlay() override;
virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override;
virtual void NotifyLoadedWorld(FName WorldPackageName, bool bFinalDest) override;
virtual void Destroyed() override;
virtual void PreClientTravel(const FString& PendingURL, ETravelType TravelType, bool bIsSeamlessTravel) override;
virtual void SeamlessTravelFrom(class APlayerController* OldPC) override;
virtual void SeamlessTravelTo(class APlayerController* NewPC) override;
virtual void OnLearnSkill(class UBaseSkillObject* object);
virtual void OnUnlearnSkill(class UBaseSkillObject* object);
virtual void OnEnterLobby();
UFUNCTION(Server, WithValidation, Reliable)
virtual void SetSetupState(const FPlayerSetupState& state);
virtual void OnRep_PlayerState() override;
void SwitchToMenu();
UPROPERTY(BlueprintReadOnly)
class UMenuScreen* mainMenu;
UPROPERTY(BlueprintReadOnly)
class ULobbyMenu* lobbyMenu;
UPROPERTY(BlueprintReadOnly)
class USkillTreeWidget* skillTree;
UFUNCTION(BlueprintCallable, Category = "PIE")
bool WorldIsPIE() const;
private:
UFUNCTION(Server, WithValidation, Reliable)
void m_OnClientInitialized();
void m_OnInviteAccepted(bool success, const FOnlineSessionSearchResult& result);
UFUNCTION()
void m_OnSessionJoined(int32 result);
void m_AutoRequestTeam();
FTimerHandle m_teamRequestTimer;
// Called when the splash screens end
UFUNCTION()
void m_OnSplashScreenEnded();
// Called when the start prompt closes
UFUNCTION()
void m_OnStartPromptClosed();
UPROPERTY()
class USplashScreen* m_splash;
UPROPERTY()
class UStartPromptScreen* m_startScreen;
// True if we are currently in the lobby screen, this can be checked if it is set before the menu widgets are created
bool m_inLobby;
};