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

68 lines
2.2 KiB
C++
Executable file

#pragma once
#include "CoreMinimal.h"
#include "GameFramework/HUD.h"
#include "EHUDVisibilityReason.h"
#include "FSDHUD.generated.h"
class AFSDHUD;
class APlayerCameraDrone;
class APlayerCharacter;
class APlayerController;
class URadarPointComponent;
UCLASS(Blueprintable, NonTransient)
class AFSDHUD : public AHUD {
GENERATED_BODY()
public:
DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FSetObjectivesVisible, bool, InVisible, bool, animate);
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FHudVisibilityChanged, bool, InHudVisible);
UPROPERTY(BlueprintAssignable, BlueprintCallable, BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FSetObjectivesVisible SetObjectivesVisible;
UPROPERTY(BlueprintAssignable, BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
FHudVisibilityChanged OnHUDVisibilityChanged;
protected:
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
uint8 IsVisibleFlags;
public:
AFSDHUD();
UFUNCTION(BlueprintCallable)
bool ToggleHUDVisibility(EHUDVisibilityReason reason);
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
void ShowObjectives(bool InVisibility);
UFUNCTION(BlueprintCallable)
void SetHUDVisible(bool IsVisible, EHUDVisibilityReason reason);
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
void RadarPointAdded(URadarPointComponent* radarPoint);
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
void PlayerSpawned(APlayerCharacter* Player);
protected:
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
void OnVisibilityChanged();
public:
UFUNCTION(BlueprintCallable, BlueprintPure)
bool IsHUDVisibleFlagSet(EHUDVisibilityReason reason) const;
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
void HandleSeamlessTravel();
UFUNCTION(BlueprintCallable, BlueprintPure)
bool GetHUDVisible() const;
UFUNCTION(BlueprintCallable, BlueprintPure)
static AFSDHUD* GetFSDHUD(APlayerController* InPlayerController);
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
void CameraDroneSpawned(APlayerCameraDrone* Drone);
};