#pragma once #include "CoreMinimal.h" #include "GameFramework/SpectatorPawn.h" #include "DescentFlyPawn.generated.h" class USpotLightComponent; /** * Placeholder player for milestone M0: an invisible free-flying camera, WASD plus mouse, no collision, no * limits (requirement U7: no invisible walls). The real swimming / vehicle-piloting pawns replace it. * * M1 gives it the player's lamp (DESIGN_UE.md section 7.5, "Tender headlamp" numbers) so the dark world can be flown. */ UCLASS() class THEDESCENT_API ADescentFlyPawn : public ASpectatorPawn { GENERATED_BODY() public: ADescentFlyPawn(); virtual void Tick(float DeltaSeconds) override; /** Lamp on or off. */ UFUNCTION(BlueprintCallable, Category = "Lamp") void SetHeadlamp(bool bOn); bool IsHeadlampOn() const { return bHeadlampOn; } USpotLightComponent* GetHeadlamp() const { return Headlamp; } private: UPROPERTY(VisibleAnywhere, Category = "Lamp") TObjectPtr Headlamp; bool bHeadlampOn = true; };