DRG-Femboy-Voice/Source/FSD/Public/FSDEventManager.h
2025-04-15 12:39:31 -07:00

89 lines
3.1 KiB
C++
Executable file

#pragma once
#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "Subsystems/GameInstanceSubsystem.h"
#include "BackendNotificationEvent.h"
#include "EHolidayType.h"
#include "FSDEventActivateChangedDelegate.h"
#include "JettyBootEventSettings.h"
#include "OnRequestSeasonEndTimeCompleteDelegate.h"
#include "FSDEventManager.generated.h"
class UFSDEvent;
UCLASS(Blueprintable)
class UFSDEventManager : public UGameInstanceSubsystem {
GENERATED_BODY()
public:
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FFSDEventsRefreshDelegate);
UPROPERTY(BlueprintAssignable, BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FFSDEventsRefreshDelegate OnFSDEventsRefresh;
UPROPERTY(BlueprintAssignable, BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FFSDEventActivateChanged OnEventActiveChanged;
protected:
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
TSet<FName> PendingActiveEvents;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
TSet<FName> ActiveEvents;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
int32 NumFailedRequests;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
bool BackendDataValid;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
FDateTime LastRequestTime;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
float NextCheckTime;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
FDateTime SeasonExpirationTime;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
bool SeasonExpirationTimeValid;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
bool BackendNotificationEventValid;
public:
UFSDEventManager();
UFUNCTION(BlueprintCallable)
void TryGetJettyBootSettings(bool& OutHasSettings, FJettyBootEventSettings& OutSettings);
protected:
UFUNCTION(BlueprintCallable)
void RequestSeasonEndTime(FOnRequestSeasonEndTimeComplete OnComplete);
public:
UFUNCTION(BlueprintCallable, BlueprintPure)
bool IsEventTypeActive(const EHolidayType FSDEvent) const;
UFUNCTION(BlueprintCallable, BlueprintPure)
bool IsEventActive(const UFSDEvent* FSDEvent) const;
UFUNCTION(BlueprintCallable)
bool GetSeasonExpiryDate(FDateTime& ExpiryDate);
UFUNCTION(BlueprintCallable, BlueprintPure)
EHolidayType GetHolidayType() const;
UFUNCTION(BlueprintCallable, BlueprintPure)
UFSDEvent* GetFirstActiveEventHandler() const;
UFUNCTION(BlueprintCallable)
bool GetBackendNotificationEvent(FBackendNotificationEvent& Notification);
UFUNCTION(BlueprintCallable, BlueprintPure)
TArray<UFSDEvent*> GetActiveEventHandlers() const;
UFUNCTION(BlueprintCallable, BlueprintPure)
bool FSDEventsReady() const;
};