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

110 lines
3.5 KiB
C++
Executable file

#pragma once
#include "CoreMinimal.h"
#include "Components/ActorComponent.h"
#include "TutorialComponent.generated.h"
class AFSDPlayerController;
class AFSDPlayerState;
class APlayerCharacter;
class ATutorialManager;
class UFSDSaveGame;
UCLASS(Abstract, Blueprintable, ClassGroup=Custom, meta=(BlueprintSpawnableComponent))
class UTutorialComponent : public UActorComponent {
GENERATED_BODY()
public:
protected:
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
bool bTutorialEnabled;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
int32 Priority;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
float MaxDuration;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
int32 MaxViewCount;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
bool ShowInTutorialLevel;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
bool bAutoRegisterWithManager;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
bool bDebugAlwaysShow;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true))
bool ManuallyMarkViews;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
TWeakObjectPtr<APlayerCharacter> PlayerCharacter;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
TWeakObjectPtr<AFSDPlayerState> PlayerState;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
TWeakObjectPtr<AFSDPlayerController> PlayerController;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
TWeakObjectPtr<UFSDSaveGame> SaveGame;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
TWeakObjectPtr<ATutorialManager> TutorialManager;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
bool bTutorialInitialized;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
bool bTutorialReady;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
bool bTutorialVisible;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Transient, meta=(AllowPrivateAccess=true))
bool bTutorialActive;
public:
UTutorialComponent();
UFUNCTION(BlueprintCallable)
void RegisterTutorial();
protected:
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
void ReceiveOnShown();
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
void ReceiveOnInitialized();
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
void ReceiveOnHidden();
UFUNCTION(BlueprintCallable)
void OnTutorialsReset();
UFUNCTION(BlueprintCallable)
void OnManagerReady(ATutorialManager* manager);
UFUNCTION(BlueprintCallable)
void MarkTutorialWatched();
UFUNCTION(BlueprintCallable)
void MarkTutorialReadyNow();
UFUNCTION(BlueprintCallable)
void MarkTutorialReadyInSeconds(float Delay);
UFUNCTION(BlueprintCallable, BlueprintPure)
bool HasTutorialBeenShown();
public:
UFUNCTION(BlueprintCallable, BlueprintNativeEvent)
FString GetTutorialName() const;
protected:
UFUNCTION(BlueprintCallable)
void CancelTutorial(bool CountAsViewed);
};