// Project Sword & Gun Copyright © 2021 Kevin Poretti

#pragma once

#include "CoreMinimal.h"

#include "Characters/SNGProtagonist.h"
#include "GameFramework/PlayerController.h"
#include "SNGPlayerController.generated.h"

/**
 * 
 */
UCLASS()
class SWORDNGUN_API ASNGPlayerController : public APlayerController
{
	GENERATED_BODY()

protected:
	virtual void OnPossess(APawn* aPawn) override;

	virtual void OnUnPossess() override;
	
	void SetupInputs();

	void BindActionToCharacterCommand(FName ActionName, FName CommandName);
	
	// NOTE(kevin): We want to decouple the controller from having to have a reference to its pawn
	// We only want to send commands to the pawn based off of inputs
	// This is only temporary until we get something up and running
	ASNGProtagonist* Protagonist;

private:

	void PushCharacterCommandToPawn(FName Command);
};
