// REALMS IN RUIN. Copyright (c) 2025 Trevor Edwards. All rights reserved. #pragma once #include "CoreMinimal.h" #include "GameFramework/PlayerController.h" #include "RIRPlayerController.generated.h" class UInputAction; class UInputMappingContext; class ITargetInterface; struct FInputActionValue; UCLASS() class REALMSINRUIN_API ARIRPlayerController : public APlayerController { GENERATED_BODY() public: ARIRPlayerController(); virtual void PlayerTick(float DeltaTime) override; virtual void BindCallbacksToDependencies(); protected: virtual void BeginPlay() override; // Input bindings virtual void SetupInputComponent() override; // Handles movement input void HandleMovementInput(const FInputActionValue& InputActionValue); private: // Input Mapping Context (to be assigned via editor) UPROPERTY(EditAnywhere, Category = "Input") TObjectPtr PlayerMappingContext; // Input Action asset for movement (to be assigned via editor) UPROPERTY(EditAnywhere, Category = "Input") TObjectPtr MovementInput; // Called every frame or on-demand to perform a trace under the mouse cursor void CursorTrace(); TScriptInterface LastActor; TScriptInterface ThisActor; };