A Demo Project for the UnrealEngineSDK
Loading...
Searching...
No Matches
ExperienceManager.h
Go to the documentation of this file.
1// Copyright(c) Pixo Group. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "FadeManager.h"
8#include "UObject/Object.h"
9#include "ExperienceManager.generated.h"
10
11class AController;
12class UBaseManager;
13class UBaseEvent;
14
20UCLASS(Blueprintable)
21class PIXOCORE_API UExperienceManager : public UObject, public IPixoCoreInterface
22{
25public:
27
34 virtual void InitExperience();
40 virtual void StartExperience();
49 virtual void JoinExperience(uint8 PlayerIndex, APlayerController* NewPlayer);
55 virtual void TickExperience(float DeltaTime);
64 virtual void LeaveExperience(AController* LeavingPlayer, uint8 PlayersLeft);
68 virtual void EndExperience();
69
70 virtual void PrepareScenario(APlayerController* NewPlayer)
71 {
72 }
80 UFUNCTION()
81 virtual UBaseManager* GetManagerRef_Implementation(TSubclassOf<UBaseManager> ManagerClass) override;
82
83protected:
84 virtual void HandleEvent(UBaseEvent* Event);
85
86private:
95 void HandleEvents();
106 void DispatchEvent(UBaseEvent* Event) const;
107
108protected:
109 UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = Classes, DisplayName = SingleInstanceListeners)
110 TArray<TSubclassOf<UBaseManager>> SingleListenerClasses = {UFadeManager::StaticClass()};
111
112 UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = Classes, DisplayName = MultipleInstanceListeners)
113 TArray<TSubclassOf<UBaseManager>> PerPlayerListenerClasses;
114
115 UPROPERTY()
116 TArray<UBaseManager*> SingleListeners;
117 UPROPERTY()
118 TArray<UBaseManager*> PerPlayerListeners;
120 FRWLock Lock;
121};
Interface for PixoCore functionality.
The UBaseEvent class serves as the base class for all events for our event-managers system....
Definition BaseEvent.h:83
It provides functionalities for handling events, sending events, and managing a private owner....
Definition BaseManager.h:32
The UExperienceManager serves as the manager for handling the overall game experience....
TArray< TSubclassOf< UBaseManager > > PerPlayerListenerClasses
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = Classes, DisplayName = MultipleInstanceLis...
TArray< UBaseManager * > SingleListeners
UPROPERTY()
virtual void PrepareScenario(APlayerController *NewPlayer)
TArray< UBaseManager * > PerPlayerListeners
UPROPERTY()