Space Plunder
Loading...
Searching...
No Matches
APlayerControllerBase Class Reference

#include <PlayerControllerBase.h>

Inheritance diagram for APlayerControllerBase:
IPlayerOptions IControllerInterface IPlayerControllerInterface ISaveLoad AALSPlayerController AMenuSystemPlayerController AQuestExamplePlayerController ACustomPlayerController ACampaignPlayerController

Public Member Functions

virtual void GetAudioListenerPosition (FVector &OutLocation, FVector &OutFrontDir, FVector &OutRightDir) const override
 
virtual void BindActions (UInputMappingContext *Context)
 
virtual bool SetPlayerLookInverted (const bool bInvert=true) override
 
virtual bool SetPlayerLookHorizontalInverted (const bool bInvert=true) override
 
virtual float SetCameraSensitivity (const float NewValue) override
 
virtual float SetCameraHorizontalSensitivity (const float NewValue) override
 
virtual float SetCameraVerticalSensitivity (const float NewValue) override
 
virtual void SetCameraAimedSensitivityMultiplier (const float NewValue) override
 
virtual void SetCameraUseSeparateAxisSensitivity (const bool bValue) override
 
virtual void SetAimAssistLevel (const int32 Value) override
 
virtual void SetPlayerUsingController (const bool bValue) override
 
virtual bool GetPlayerUsingController () override
 
virtual bool SaveCurrentPlayerOptions (const FAudioPlayerOptions AudioSettings) override
 
virtual float GetCameraSensitivity () const override
 
virtual float GetCameraAimedSensitivityMultiplier () const override
 
virtual float GetCameraHorizontalSensitivity () const override
 
virtual float GetCameraVerticalSensitivity () const override
 
virtual bool GetCameraUseSeparateAxisSensitivity () const override
 
virtual bool GetPlayerLookInverted () const override
 
virtual bool GetPlayerHorizontalInverted () const override
 
virtual int32 GetAimAssistLevel () const override
 
virtual FAudioPlayerOptions GetPlayerAudioSettings () const override
 
virtual bool RegisterLayer (const FGameplayTag LayerName, UUserWidget *LayerWidget) override
 
virtual UUserWidget * PushContentToLayer (const FGameplayTag LayerName, const TSoftClassPtr< UUserWidget > WidgetClass) override
 
virtual bool PopContentFromLayer (const FGameplayTag LayerName) override
 
virtual bool ClearLayer (const FGameplayTag LayerName) override
 
virtual bool ToggleWidget (const FGameplayTag LayerName, UUserWidget *Widget) override
 
virtual UUserWidget * AddWidgetToLayer (const FGameplayTag LayerName, const TSoftClassPtr< UUserWidget > WidgetClass) override
 
virtual UUserWidget * GetContentFromLayer (const FGameplayTag LayerName, const TSoftClassPtr< UUserWidget > WidgetClass) override
 
virtual UUserWidget * AddWidgetToLayerWithSlot (const FGameplayTag LayerName, const FGameplayTag SlotTag, const TSoftClassPtr< UUserWidget > WidgetClass) override
 
virtual void OpenRadialMenu (const FRadialMenuData &Data) override
 
virtual int32 CloseRadialMenu () override
 
virtual bool GetIsRadialMenuOpen () const override
 
virtual void SetCharacterMode (const FGameplayTag &Mode) override
 
virtual FGameplayTag GetCharacterMode () const override
 
virtual void ToggleGameLog () override
 
virtual FVector2D GetLookAxis () const override
 
virtual FVector2D GetMoveAxis () const override
 
virtual FVector2D GetScreenCenter () const override
 
virtual FVector GetPawnLocation () const override
 
virtual void GetControllerViewPoint (FVector &out_Location, FRotator &out_Rotation) const override
 
virtual bool SaveGame () override
 
virtual bool LoadGame () override
 
void OnCharacterModeChanged (const FGameplayTag &Mode)
 

Public Attributes

TObjectPtr< UInputMappingContext > MenuInputMappingContext = nullptr
 
TObjectPtr< UInputMappingContext > MainInputMappingContext = nullptr
 
bool bDebuggingMode = false
 
FName AudioSocket = FName("head")
 

Protected Member Functions

virtual void BeginPlay () override
 
virtual void SetupInputs ()
 
virtual void SetupComponents ()
 
virtual bool SavePlayerOptions (const FString &SlotName="Default")
 
virtual bool LoadPlayerOptions (const FString &SlotName="Default")
 
virtual void ApplySettings (const class USettingsSaveGame *LoadedPlayerSettings)
 
virtual USettingsSaveGameApplySettingsToSaveGame (class USettingsSaveGame *LoadedPlayerSettings)
 
virtual void OnPossess (APawn *NewPawn) override
 
virtual void OnRep_Pawn () override
 
virtual void SetupInputComponent () override
 
virtual void OnPawnSpawn ()
 
virtual void OnPawnSpawnComplete ()
 
virtual float CalculateCameraSensitivity (const float CameraInput) const
 
virtual void MenuConfirmAction (const FInputActionValue &Value)
 
virtual void MenuBackAction (const FInputActionValue &Value)
 
virtual void SelectionUpAction (const FInputActionValue &Value)
 
virtual void ForwardMovementAction (const FInputActionValue &Value)
 
virtual void RightMovementAction (const FInputActionValue &Value)
 
virtual void CameraUpAction (const FInputActionValue &Value)
 
virtual void CameraRightAction (const FInputActionValue &Value)
 
virtual void CharacterModeAction (const FInputActionValue &Value)
 
IHUDInterfaceGetHUDInterface ()
 
ICharacterBaseInterfaceGetCharacterInterface ()
 
void LogDebugError (const FString &Message) const
 
void LogDebugError (const FString &Message, const int32 Value) const
 
void LogDebugError (const FString &Message, const float Value) const
 
void LogDebugWarning (const FString &Message) const
 
void LogDebugWarning (const FString &Message, const int32 Value) const
 
void LogDebugWarning (const FString &Message, const float Value) const
 
void LogDebugMessage (const FString &Message, const bool bWarning=false, const bool bError=false) const
 
void LogDebugMessage (const FString &Message, const int32 Value, const bool bWarning=false, const bool bError=false) const
 
void LogDebugMessage (const FString &Message, const float Value, const bool bWarning=false, const bool bError=false) const
 
void LogDebugMessage (const FString &Message, const bool bValue, const bool bWarning, const bool bError) const
 
void LogOnScreenMessage (const int32 Key, const FString &Message, FColor Color=FColor::Green) const
 
void SetCategoryName (const FLogCategoryBase &Category)
 

Protected Attributes

FGameplayTag CharacterMode = FGameplayTag(CharacterModeTags::Default)
 
int32 MaxPawnSpawnAttempts = 5
 
bool bAimed = false
 

Private Member Functions

virtual bool SaveAudioOptions (const FAudioPlayerOptions AudioSettings)
 
virtual bool LoadAudioOptions ()
 

Private Attributes

IHUDInterfaceHUDInterface
 
FLogCategoryName CategoryName = LogBasePlayerController.GetCategoryName()
 
ICharacterBaseInterfaceCharacterBaseInterface
 
FRadialMenuData CharacterModesMenuData
 
FGameplayPlayerOptions PlayerOptions
 
FAudioPlayerOptions PlayerAudioSettings
 
bool bUsingController = false
 
FString PlayerOptionsSaveName = "_PlayerSettings"
 
float MoveAxisY = 0.0f
 
float MoveAxisX = 0.0f
 
float LookAxisY = 0.0f
 
float LookAxisX = 0.0f
 
float MultiplayerStartDelay = 0.5f
 
FTimerHandle SetupCompleteDelayTimerHandle
 
int32 PawnSpawnAttempts = 0
 

Member Function Documentation

◆ AddWidgetToLayer()

UUserWidget * APlayerControllerBase::AddWidgetToLayer ( const FGameplayTag LayerName,
const TSoftClassPtr< UUserWidget > WidgetClass )
overridevirtual

Implements IPlayerControllerInterface.

303{
304 if(GetHUDInterface() == nullptr || WidgetClass == nullptr)
305 {
306 UE_LOG(LogBasePlayerController, Error, TEXT("APlayerControllerBase::AddWidgetToLayer"));
307 return nullptr;
308 }
309 return GetHUDInterface()->AddWidgetToLayer(LayerName, WidgetClass);
310}
IHUDInterface * GetHUDInterface()
Definition PlayerControllerBase.cpp:537
virtual UUserWidget * AddWidgetToLayer(const FGameplayTag &LayerName, const TSoftClassPtr< UUserWidget > &WidgetClass)=0

◆ AddWidgetToLayerWithSlot()

UUserWidget * APlayerControllerBase::AddWidgetToLayerWithSlot ( const FGameplayTag LayerName,
const FGameplayTag SlotTag,
const TSoftClassPtr< UUserWidget > WidgetClass )
overridevirtual

Implements IPlayerControllerInterface.

325{
326 if(GetHUDInterface() == nullptr || WidgetClass == nullptr)
327 {
328 UE_LOG(LogBasePlayerController, Error, TEXT("APlayerControllerBase::AddWidgetToLayerWithSlot"));
329 return nullptr;
330 }
331 return GetHUDInterface()->AddWidgetToLayerWithSlot(LayerName, SlotTag, WidgetClass);
332
333}
virtual UUserWidget * AddWidgetToLayerWithSlot(const FGameplayTag &LayerName, const FGameplayTag &SlotTag, const TSoftClassPtr< UUserWidget > &WidgetClass)=0

◆ ApplySettings()

void APlayerControllerBase::ApplySettings ( const class USettingsSaveGame * LoadedPlayerSettings)
protectedvirtual
688{
689 PlayerOptions = LoadedPlayerSettings->PlayerOptions;
690 // LoadedPlayerSettings->AudioOptions
691}
FGameplayPlayerOptions PlayerOptions
Definition PlayerControllerBase.h:270

◆ ApplySettingsToSaveGame()

USettingsSaveGame * APlayerControllerBase::ApplySettingsToSaveGame ( class USettingsSaveGame * LoadedPlayerSettings)
protectedvirtual
720{
721 LoadedPlayerSettings->PlayerOptions = PlayerOptions;
722 LoadedPlayerSettings->AudioOptions = PlayerAudioSettings;
723 return LoadedPlayerSettings;
724}
FAudioPlayerOptions PlayerAudioSettings
Definition PlayerControllerBase.h:272

◆ BeginPlay()

void APlayerControllerBase::BeginPlay ( )
overrideprotectedvirtual

Reimplemented in ACustomPlayerController, and AMenuSystemPlayerController.

24{
25 Super::BeginPlay();
26 DisableInput(this);
32}
ICharacterBaseInterface * GetCharacterInterface()
Definition PlayerControllerBase.cpp:546
virtual bool LoadPlayerOptions(const FString &SlotName="Default")
Definition PlayerControllerBase.cpp:668
virtual bool LoadAudioOptions()
Definition PlayerControllerBase.cpp:753
FRadialMenuData CharacterModesMenuData
Definition PlayerControllerBase.h:264
const FName CategoryName
Definition BaseGameplayTags.h:12
const FString DataTableLocation
Definition BaseGameplayTags.h:13
Definition RadialWheelData.h:100

◆ BindActions()

void APlayerControllerBase::BindActions ( UInputMappingContext * Context)
virtual

Reimplemented in AALSPlayerController, and ACustomPlayerController.

105{
106 if(Context == nullptr){return;}
107
108 const TArray<FEnhancedActionKeyMapping>& Mappings = Context->GetMappings();
109 UEnhancedInputComponent* EnhancedInputComponent = Cast<UEnhancedInputComponent>(InputComponent);
110 if(EnhancedInputComponent == nullptr){UE_LOG(LogBasePlayerController, Error, TEXT("Base Helpers Plugin requires Enhanced Input System to be activated in project settings to function properly"));return;}
111
112 // There may be more than one keymapping assigned to one action. So, first filter duplicate action entries to prevent multiple delegate bindings
113 TSet<const UInputAction*> UniqueActions;
114 for(const FEnhancedActionKeyMapping& Keymapping : Mappings)
115 {
116 UniqueActions.Add(Keymapping.Action);
117 }
118 for(const UInputAction* UniqueAction : UniqueActions)
119 {
120 EnhancedInputComponent->BindAction(UniqueAction, ETriggerEvent::Triggered, Cast<UObject>(this), UniqueAction->GetFName());
121 }
122}

◆ CalculateCameraSensitivity()

float APlayerControllerBase::CalculateCameraSensitivity ( const float CameraInput) const
protectedvirtual

Reimplemented in ACustomPlayerController.

243{
244 float CameraSpeed = CameraInput;
245 if(bAimed){CameraSpeed *= GetCameraAimedSensitivityMultiplier();}
246 return CameraSpeed;
247}
virtual float GetCameraAimedSensitivityMultiplier() const override
Definition PlayerControllerBase.h:94
bool bAimed
Definition PlayerControllerBase.h:239

◆ CameraRightAction()

void APlayerControllerBase::CameraRightAction ( const FInputActionValue & Value)
protectedvirtual

Reimplemented in AALSPlayerController, and ACustomPlayerController.

516{
517 LookAxisX = Value.Get<float>();
518}
float LookAxisX
Definition PlayerControllerBase.h:288

◆ CameraUpAction()

void APlayerControllerBase::CameraUpAction ( const FInputActionValue & Value)
protectedvirtual

Reimplemented in AALSPlayerController, and ACustomPlayerController.

511{
512 LookAxisY = Value.Get<float>();
513}
float LookAxisY
Definition PlayerControllerBase.h:286

◆ CharacterModeAction()

void APlayerControllerBase::CharacterModeAction ( const FInputActionValue & Value)
protectedvirtual
521{
522 if(CharacterBaseInterface == nullptr){return;}
523 const bool bPressed = Value.Get<bool>();
524 if(bPressed)
525 {
527 }
528 else
529 {
530 const int32 Index = CloseRadialMenu();
531 if(CharacterModesMenuData.Selections.IsValidIndex(Index) == false){UE_LOG(LogPlayerController, Warning, TEXT("Character Mode Out of Bounds PC"));return;}
533 // PossessedCustomCharacter->SetCharacterMode(CharacterModesMenuData.Selections[Index].GameplayTag);
534 }
535}
virtual int32 CloseRadialMenu() override
Definition PlayerControllerBase.cpp:357
virtual void OpenRadialMenu(const FRadialMenuData &Data) override
Definition PlayerControllerBase.cpp:335
virtual void SetCharacterMode(const FGameplayTag &Mode) override
Definition PlayerControllerBase.cpp:383
ICharacterBaseInterface * CharacterBaseInterface
Definition PlayerControllerBase.h:263
TArray< FRadialSegmentData > Selections
Definition RadialWheelData.h:106

◆ ClearLayer()

bool APlayerControllerBase::ClearLayer ( const FGameplayTag LayerName)
overridevirtual

Implements IPlayerControllerInterface.

282{
283 if(GetHUDInterface() == nullptr)
284 {
285 UE_LOG(LogBasePlayerController, Error, TEXT("APlayerControllerBase::ClearLayer"));
286 return false;
287 }
288 return GetHUDInterface()->ClearLayer(LayerName);
289}
virtual bool ClearLayer(const FGameplayTag &LayerName)=0

◆ CloseRadialMenu()

int32 APlayerControllerBase::CloseRadialMenu ( )
overridevirtual
Returns
Selected Menu Item

Implements IPlayerControllerInterface.

358{
359 int32 Index = -1;
360 if(HUDInterface == nullptr)
361 {
362 UE_LOG(LogBasePlayerController, Error, TEXT("HUD INTERFACE FAILED IN APlayerControllerBase::CloseRadialMenu"));
363 return Index;
364 }
365 Index = HUDInterface->CloseRadialMenu();
366 if(IsLookInputIgnored())
367 {
368 SetIgnoreLookInput(false);
369 }
370 return Index;
371}
IHUDInterface * HUDInterface
Definition PlayerControllerBase.h:259
virtual int32 CloseRadialMenu()=0

◆ ForwardMovementAction()

void APlayerControllerBase::ForwardMovementAction ( const FInputActionValue & Value)
protectedvirtual

Save Default values to be able to get Controller Input

Reimplemented in AALSPlayerController.

501{
502 MoveAxisY = Value.Get<float>();
503}
float MoveAxisY
Definition PlayerControllerBase.h:282

◆ GetAimAssistLevel()

virtual int32 APlayerControllerBase::GetAimAssistLevel ( ) const
inlineoverridevirtual

Implements IPlayerOptions.

119 {
121 };
int32 AimAssistLevel
Definition SettingData.h:48

◆ GetAudioListenerPosition()

void APlayerControllerBase::GetAudioListenerPosition ( FVector & OutLocation,
FVector & OutFrontDir,
FVector & OutRightDir ) const
overridevirtual
36{
37 if(GetPawn() != nullptr)
38 {
39 const ICharacterBaseInterface* CustomCharacter = Cast<ICharacterBaseInterface>(GetPawn());
40 if (CustomCharacter != nullptr)
41 {
42 FVector HeadLocation;
43 if (CustomCharacter->GetAudioSocketLocation(AudioSocket, HeadLocation))
44 {
45 Super::GetAudioListenerPosition(HeadLocation, OutFrontDir, OutRightDir);
46 return;
47 }
48 }
49 }
50 Super::GetAudioListenerPosition(OutLocation, OutFrontDir, OutRightDir);
51}
FName AudioSocket
Definition PlayerControllerBase.h:250
Definition CustomCharacter.h:19
virtual bool GetAudioSocketLocation(const FName &AudioSocket, FVector &Location) const =0

◆ GetCameraAimedSensitivityMultiplier()

virtual float APlayerControllerBase::GetCameraAimedSensitivityMultiplier ( ) const
inlineoverridevirtual

Implements IPlayerOptions.

95 {
97 };
float CameraAimedSensitivityMultiplier
Definition SettingData.h:27

◆ GetCameraHorizontalSensitivity()

virtual float APlayerControllerBase::GetCameraHorizontalSensitivity ( ) const
inlineoverridevirtual

This get Current Options Setting for Sensitivity, not Full Calculated

Implements IPlayerOptions.

99 {
101 };
float CameraHorizontalSensitivity
Definition SettingData.h:21

◆ GetCameraSensitivity()

virtual float APlayerControllerBase::GetCameraSensitivity ( ) const
inlineoverridevirtual

This get Current Options Setting for Sensitivity, not Full Calculated

Implements IPlayerOptions.

91 {
93 };
float CameraSensitivity
Definition SettingData.h:19

◆ GetCameraUseSeparateAxisSensitivity()

virtual bool APlayerControllerBase::GetCameraUseSeparateAxisSensitivity ( ) const
inlineoverridevirtual

Implements IPlayerOptions.

107 {
109 };
bool bUseSeparateCameraAxisSensitivity
Definition SettingData.h:25

◆ GetCameraVerticalSensitivity()

virtual float APlayerControllerBase::GetCameraVerticalSensitivity ( ) const
inlineoverridevirtual

This get Current Options Setting for Sensitivity, not Full Calculated

Implements IPlayerOptions.

103 {
105 };
float CameraVerticalSensitivity
Definition SettingData.h:23

◆ GetCharacterInterface()

ICharacterBaseInterface * APlayerControllerBase::GetCharacterInterface ( )
protected
547{
548 if(GetPawn() == nullptr){return nullptr;}
549 if(CharacterBaseInterface == nullptr)
550 {
551 CharacterBaseInterface = Cast<ICharacterBaseInterface>(GetPawn());
552 }
554}

◆ GetCharacterMode()

virtual FGameplayTag APlayerControllerBase::GetCharacterMode ( ) const
inlineoverridevirtual

Implements IPlayerControllerInterface.

142{return CharacterMode;};
FGameplayTag CharacterMode
Definition PlayerControllerBase.h:227

◆ GetContentFromLayer()

UUserWidget * APlayerControllerBase::GetContentFromLayer ( const FGameplayTag LayerName,
const TSoftClassPtr< UUserWidget > WidgetClass )
overridevirtual

Implements IPlayerControllerInterface.

314{
315 if(GetHUDInterface() == nullptr || WidgetClass == nullptr)
316 {
317 UE_LOG(LogBasePlayerController, Error, TEXT("APlayerControllerBase::GetContentFromLayer"));
318 return nullptr;
319 }
320 return GetHUDInterface()->GetContentFromLayer(LayerName, WidgetClass);
321}
virtual UUserWidget * GetContentFromLayer(const FGameplayTag &LayerName, const TSoftClassPtr< UUserWidget > &WidgetClass)=0

◆ GetControllerViewPoint()

void APlayerControllerBase::GetControllerViewPoint ( FVector & out_Location,
FRotator & out_Rotation ) const
overridevirtual

Implements IControllerInterface.

442{
443 GetPlayerViewPoint(out_Location, out_Rotation);
444}

◆ GetHUDInterface()

IHUDInterface * APlayerControllerBase::GetHUDInterface ( )
protected
538{
539 if(HUDInterface == nullptr)
540 {
541 HUDInterface = Cast<IHUDInterface>(GetHUD());
542 }
543 return HUDInterface;
544}

◆ GetIsRadialMenuOpen()

bool APlayerControllerBase::GetIsRadialMenuOpen ( ) const
overridevirtual

Implements IPlayerControllerInterface.

374{
375 if(HUDInterface == nullptr)
376 {
377 UE_LOG(LogBasePlayerController, Error, TEXT("HUD INTERFACE FAILED IN APlayerControllerBase::GetIsRadialMenuOpen"));
378 return false;
379 }
381}
virtual bool GetIsRadialMenuOpen() const =0

◆ GetLookAxis()

virtual FVector2D APlayerControllerBase::GetLookAxis ( ) const
inlineoverridevirtual

Implements IPlayerControllerInterface.

145{return FVector2D(LookAxisX, LookAxisY);};

◆ GetMoveAxis()

virtual FVector2D APlayerControllerBase::GetMoveAxis ( ) const
inlineoverridevirtual

Implements IPlayerControllerInterface.

146{return FVector2D(MoveAxisX, MoveAxisY);};
float MoveAxisX
Definition PlayerControllerBase.h:284

◆ GetPawnLocation()

FVector APlayerControllerBase::GetPawnLocation ( ) const
overridevirtual

Implements IControllerInterface.

437{
438 return GetFocalLocation();
439}

◆ GetPlayerAudioSettings()

virtual FAudioPlayerOptions APlayerControllerBase::GetPlayerAudioSettings ( ) const
inlineoverridevirtual

Implements IPlayerOptions.

123{return PlayerAudioSettings;};

◆ GetPlayerHorizontalInverted()

virtual bool APlayerControllerBase::GetPlayerHorizontalInverted ( ) const
inlineoverridevirtual

Implements IPlayerOptions.

115 {
117 };
bool bInvertedHorizontalCamera
Definition SettingData.h:17

◆ GetPlayerLookInverted()

virtual bool APlayerControllerBase::GetPlayerLookInverted ( ) const
inlineoverridevirtual

Implements IPlayerOptions.

111 {
113 };
bool bInvertedCamera
Definition SettingData.h:15

◆ GetPlayerUsingController()

virtual bool APlayerControllerBase::GetPlayerUsingController ( )
inlineoverridevirtual

Implements IPlayerOptions.

86{return bUsingController;};
bool bUsingController
Definition PlayerControllerBase.h:275

◆ GetScreenCenter()

FVector2D APlayerControllerBase::GetScreenCenter ( ) const
overridevirtual

Implements IPlayerControllerInterface.

447{
448 int32 ScreenWidth, ScreenHeight;
449 GetViewportSize(ScreenWidth, ScreenHeight);
450 return FVector2D((ScreenWidth / 2), (ScreenHeight / 2));
451}

◆ LoadAudioOptions()

bool APlayerControllerBase::LoadAudioOptions ( )
privatevirtual
754{
755 if(UGameplayStatics::DoesSaveGameExist(AudioOptionsSaveName, 0))
756 {
757 USaveGame* LoadedSaveGame = UGameplayStatics::LoadGameFromSlot(AudioOptionsSaveName, 0);
758 const USettingsSaveGame* LoadedAudioSettings = Cast<USettingsSaveGame>(LoadedSaveGame);
759 if(LoadedAudioSettings != nullptr)
760 {
761 // UOptionsMenuBPLib::SetAudioVolume()
762 // LoadedAudioSettings;
763 return true;
764 }
765 return false;
766 }
767 if(bDebuggingMode){UE_LOG(LogPlayerController, Warning, TEXT("LoadAudioOptions no Save Found.."));}
768 return false;
769}
FString AudioOptionsSaveName
Definition SettingData.h:54
bool bDebuggingMode
Definition PlayerControllerBase.h:248
Definition SettingsSaveGame.h:88

◆ LoadGame()

bool APlayerControllerBase::LoadGame ( )
overridevirtual

Implements ISaveLoad.

466{
467 //@TODO Add Loading Options here
468 const bool bComponentsLoaded = USaveLoadBPLib::LoadAllComponents(this);
469 if(bComponentsLoaded == false)
470 {
471 LogDebugError("Load components Failed");
472 }
473 // SetControlRotation(LoadedControlRotation)
474 return true;
475}
void LogDebugError(const FString &Message) const
Definition PlayerControllerBase.cpp:556
static bool LoadAllComponents(AActor *Actor)
Definition SaveLoadBPLib.cpp:112

◆ LoadPlayerOptions()

bool APlayerControllerBase::LoadPlayerOptions ( const FString & SlotName = "Default")
protectedvirtual
669{
670 FString FullSlotName = SlotName;
671 const FString PlayerControllerSlotName = FullSlotName.Append(PlayerOptionsSaveName);
672 if(UGameplayStatics::DoesSaveGameExist(PlayerControllerSlotName, 0))
673 {
674 USaveGame* LoadedSaveGame = UGameplayStatics::LoadGameFromSlot(PlayerControllerSlotName, 0);
675 const USettingsSaveGame* LoadedPlayerProfileSaveGame = Cast<USettingsSaveGame>(LoadedSaveGame);
676 if(LoadedPlayerProfileSaveGame != nullptr)
677 {
678 ApplySettings(LoadedPlayerProfileSaveGame);
679 return true;
680 }
681 return false;
682 }
683 if(bDebuggingMode){UE_LOG(LogPlayerController, Warning, TEXT("No Player options Save Found.."));}
684 return false;
685}
FString PlayerOptionsSaveName
Definition PlayerControllerBase.h:279
virtual void ApplySettings(const class USettingsSaveGame *LoadedPlayerSettings)
Definition PlayerControllerBase.cpp:687

◆ LogDebugError() [1/3]

void APlayerControllerBase::LogDebugError ( const FString & Message) const
protected
557{
558 TRACE_CPUPROFILER_EVENT_SCOPE(APlayerControllerBase::LogDebugError);
559 SCOPE_CYCLE_COUNTER(STATGROUP_BaseHelpers_PlayerControllerBase);
560 LogDebugMessage(Message, true, true);
561}
void LogDebugMessage(const FString &Message, const bool bWarning=false, const bool bError=false) const
Definition PlayerControllerBase.cpp:594

◆ LogDebugError() [2/3]

void APlayerControllerBase::LogDebugError ( const FString & Message,
const float Value ) const
protected
569{
570 LogDebugMessage(Message, Value, true, true);
571}

◆ LogDebugError() [3/3]

void APlayerControllerBase::LogDebugError ( const FString & Message,
const int32 Value ) const
protected
564{
565 LogDebugMessage(Message, Value, true, true);
566}

◆ LogDebugMessage() [1/4]

void APlayerControllerBase::LogDebugMessage ( const FString & Message,
const bool bValue,
const bool bWarning,
const bool bError ) const
protected
647{
648 LogDebugMessage(FString::Printf(TEXT("%s: %s"), *Message, bValue ? *FString("true") : *FString("false")), bWarning, bError);
649}

◆ LogDebugMessage() [2/4]

void APlayerControllerBase::LogDebugMessage ( const FString & Message,
const bool bWarning = false,
const bool bError = false ) const
protected
595{
596 TRACE_CPUPROFILER_EVENT_SCOPE(APlayerControllerBase::LogDebugMessage);
597 SCOPE_CYCLE_COUNTER(STATGROUP_BaseHelpers_PlayerControllerBase);
598 if(bDebuggingMode == false && bError == false){return;}
599 FOutputDevice* OutputDevice = GWarn;
600 if(OutputDevice == nullptr){return;}
601 FString NetModeString;
602 switch(GetWorld()->GetNetMode())
603 {
604 case NM_Standalone:
605 NetModeString = FString("SDL");
606 break;
607 case NM_DedicatedServer:
608 NetModeString = FString("DServer");
609 break;
610 case NM_ListenServer:
611 NetModeString = FString("LServer");
612 break;
613 case NM_Client:
614 NetModeString = FString("Client");
615 break;
616 default:
617 NetModeString = FString("Unknown");
618 break;
619 }
620 const FString FullMessage = FString::Printf(TEXT("%s: %s::%s"), *NetModeString, *GetName(), *Message);
621 if(bError)
622 {
623 OutputDevice->Log(CategoryName, ELogVerbosity::Error, FullMessage);
624 }
625 else if(bWarning)
626 {
627 OutputDevice->Log(CategoryName, ELogVerbosity::Warning, FullMessage);
628 }
629 else
630 {
631 OutputDevice->Log(CategoryName, ELogVerbosity::Log, FullMessage);
632 }
633
634}
FLogCategoryName CategoryName
Definition PlayerControllerBase.h:261

◆ LogDebugMessage() [3/4]

void APlayerControllerBase::LogDebugMessage ( const FString & Message,
const float Value,
const bool bWarning = false,
const bool bError = false ) const
protected
642{
643 LogDebugMessage(FString::Printf(TEXT("%s: %f"), *Message, Value), bWarning, bError);
644}

◆ LogDebugMessage() [4/4]

void APlayerControllerBase::LogDebugMessage ( const FString & Message,
const int32 Value,
const bool bWarning = false,
const bool bError = false ) const
protected
637{
638 LogDebugMessage(FString::Printf(TEXT("%s: %i"), *Message, Value), bWarning, bError);
639}

◆ LogDebugWarning() [1/3]

void APlayerControllerBase::LogDebugWarning ( const FString & Message) const
protected
574{
575 TRACE_CPUPROFILER_EVENT_SCOPE(APlayerControllerBase::LogDebugWarning);
576 SCOPE_CYCLE_COUNTER(STATGROUP_BaseHelpers_PlayerControllerBase);
577 LogDebugMessage(Message, true);
578}
void LogDebugWarning(const FString &Message) const
Definition PlayerControllerBase.cpp:573

◆ LogDebugWarning() [2/3]

void APlayerControllerBase::LogDebugWarning ( const FString & Message,
const float Value ) const
protected
588{
589 TRACE_CPUPROFILER_EVENT_SCOPE(APlayerControllerBase::LogDebugWarning);
590 SCOPE_CYCLE_COUNTER(STATGROUP_BaseHelpers_PlayerControllerBase);
591 LogDebugMessage(Message, Value, true);
592}

◆ LogDebugWarning() [3/3]

void APlayerControllerBase::LogDebugWarning ( const FString & Message,
const int32 Value ) const
protected
581{
582 TRACE_CPUPROFILER_EVENT_SCOPE(APlayerControllerBase::LogDebugWarning);
583 SCOPE_CYCLE_COUNTER(STATGROUP_BaseHelpers_PlayerControllerBase);
584 LogDebugMessage(Message, Value, true);
585}

◆ LogOnScreenMessage()

void APlayerControllerBase::LogOnScreenMessage ( const int32 Key,
const FString & Message,
FColor Color = FColor::Green ) const
protected
652{
653 TRACE_CPUPROFILER_EVENT_SCOPE(APlayerControllerBase::LogOnScreenMessage);
654 // SCOPE_CYCLE_COUNTER(STATGROUP_BaseHelpers_PlayerControllerBase);
656 {
657 GEngine->AddOnScreenDebugMessage(Key, 2.0f, Color,
658 FString::Printf(TEXT(" %s - in %s of %s"), ToCStr(Message), ToCStr(GetName()), ToCStr(GetOwner()->GetName())));
659 }
660}
void LogOnScreenMessage(const int32 Key, const FString &Message, FColor Color=FColor::Green) const
Definition PlayerControllerBase.cpp:651

◆ MenuBackAction()

void APlayerControllerBase::MenuBackAction ( const FInputActionValue & Value)
protectedvirtual
485{
486 const bool bUpSelection = Value.Get<bool>();
487 if(GetHUDInterface() == nullptr){UE_LOG(LogBasePlayerController, Error, TEXT("HUD INTERFACE FAILED IN APlayerControllerBase::MenuBackAction"));return;}
489 if(bDebuggingMode){UE_LOG(LogBasePlayerController, Warning, TEXT("Menu Back Action"));}
490}
virtual void HUDCancel()=0

◆ MenuConfirmAction()

void APlayerControllerBase::MenuConfirmAction ( const FInputActionValue & Value)
protectedvirtual
478{
479 if(GetHUDInterface() == nullptr){UE_LOG(LogBasePlayerController, Error, TEXT("HUD INTERFACE FAILED IN APlayerControllerBase::MenuConfirmAction"));return;}
481 if(bDebuggingMode){UE_LOG(LogBasePlayerController, Warning, TEXT("Menu Confirm Action"));}
482}
virtual void HUDConfirm()=0

◆ OnCharacterModeChanged()

void APlayerControllerBase::OnCharacterModeChanged ( const FGameplayTag & Mode)

◆ OnPawnSpawn()

void APlayerControllerBase::OnPawnSpawn ( )
protectedvirtual

Reimplemented in ACustomPlayerController.

126{
127 TRACE_CPUPROFILER_EVENT_SCOPE(APlayerControllerBase::OnPawnSpawn);
128 if(!IsLocalController())
129 {
130 GetWorld()->GetTimerManager().ClearTimer(SetupCompleteDelayTimerHandle);
131 return;
132 }
134 {
135 GetWorld()->GetTimerManager().ClearTimer(SetupCompleteDelayTimerHandle);
136 UE_LOG(LogBasePlayerController, Error, TEXT("APlayerControllerBase::OnPawnSpawn - Max Pawn Spawn Attempts HIT"));
137 return;
138 }
139
142 SetupInputs();
146 // if(MultiplayerGS == nullptr)
147 // {
148 // MultiplayerGS = Cast<IMultiplayerGS>(UGameplayStatics::GetGameState(this));
149 // GetWorld()->GetTimerManager().SetTimer(UpdateScoreDelayTimerHandle, this, &ACustomPlayerController::GetScore, MultiplayerDelayTime);
150 // }
151 // HUD = Cast<ACustomHUD>(GetHUD());
152 // if(HUD != nullptr)
153 // {
154 // if(PossessedCustomCharacter != nullptr)
155 // {
156 // if(GetCustomPlayerState() != nullptr)
157 // {
158 // HUD->SetPlayerTeamID(GetCustomPlayerState()->GetTeamID());
159 // if(MenuSystem != nullptr)
160 // {
161 // if(MenuSystem->GetIsPlayerLoggedIn())
162 // {
163 // PossessedCustomCharacter->SetPlayerName(GetCustomPlayerState()->GetUserProfile().DisplayName);
164 // // PossessedCustomCharacter->SetPlayerName(MenuSystem->GetOnlinePlayerProfile().DisplayName);
165 // }
166 // }
167 // }
168 // HUD->SetupWidgets();
169 // PossessedCustomCharacter->SetupComponents(this, HUD, IsLocalController());
170 // }
171 // if(ChatSystemComponent != nullptr)
172 // {
173 // ChatSystemComponent->SetOwnerPlayerController(this);
174 // if(MenuSystem != nullptr)
175 // {
176 // if(MenuSystem->GetIsPlayerLoggedIn() && GetCustomPlayerState() != nullptr)
177 // {
178 // ChatSystemComponent->SetPlayerUserProfile(GetCustomPlayerState()->GetUserProfile());
179 // // ChatSystemComponent->SetPlayerUserProfile(MenuSystem->GetOnlinePlayerProfile());
180 // }
181 // }
182 // ChatSystemComponent->SetChatBoxWidget(HUD->GetChatBoxWidget());
183 // ChatSystemComponent->ComponentSetup();
184 // }
185 // }
186 // else
187 // {
188 // if(PossessedCustomCharacter != nullptr)
189 // {
190 // PossessedCustomCharacter->SetupComponents(this, nullptr, IsLocalController());
191 // }
192 // UE_LOG(LogTemp,Error,TEXT("HUD Class Failed"));
193 // }
195
196 // if(PossessedCustomCharacter == nullptr)
197 // {
198 // GetWorld()->GetTimerManager().SetTimer(SetupCompleteDelayTimerHandle, this, &ACustomPlayerController::OnPawnSpawn, MultiplayerStartDelay);
199 // return;
200 // }
201
202 //- Pawn Spawn Complete ->
204
205}
FTimerHandle SetupCompleteDelayTimerHandle
Definition PlayerControllerBase.h:293
int32 PawnSpawnAttempts
Definition PlayerControllerBase.h:294
virtual void SetupInputs()
Definition PlayerControllerBase.cpp:76
int32 MaxPawnSpawnAttempts
Definition PlayerControllerBase.h:236
virtual void OnPawnSpawn()
Definition PlayerControllerBase.cpp:125
float MultiplayerStartDelay
Definition PlayerControllerBase.h:291
virtual void SetupComponents()
Definition PlayerControllerBase.cpp:208
virtual void OnPawnSpawnComplete()
Definition PlayerControllerBase.cpp:219

◆ OnPawnSpawnComplete()

void APlayerControllerBase::OnPawnSpawnComplete ( )
protectedvirtual

Reimplemented in ACustomPlayerController, and AQuestExamplePlayerController.

220{
221 EnableInput(this);
222 if(CharacterBaseInterface == nullptr)
223 {
224 UE_LOG(LogBasePlayerController, Warning, TEXT("Character INTERFACE FAILED IN APlayerControllerBase::GetCharacterInterface"));
225 }
226 if(HUDInterface == nullptr)
227 {
228 UE_LOG(LogBasePlayerController, Warning, TEXT("HUD INTERFACE FAILED IN APlayerControllerBase::GetHUDInterface"));
229 }
230 if(GetCharacterInterface() != nullptr)
231 {
233 }
234 // if(HUD != nullptr)
235 // {
236 // HUD->FadeIn();
237 // }
238
239
240}
virtual void OnPawnSpawned()=0

◆ OnPossess()

void APlayerControllerBase::OnPossess ( APawn * NewPawn)
overrideprotectedvirtual

Reimplemented in AALSPlayerController, and ACustomPlayerController.

54{
55 TRACE_CPUPROFILER_EVENT_SCOPE(APlayerControllerBase::OnPossess);
56 Super::OnPossess(NewPawn);
57 CharacterBaseInterface = nullptr;
59 if(GetSpectatorPawn() == nullptr)
60 {
61 GetWorld()->GetTimerManager().SetTimer(SetupCompleteDelayTimerHandle, this, &APlayerControllerBase::OnPawnSpawn, MultiplayerStartDelay, false);
62 }
63 OnRep_Pawn();
64}
virtual void OnRep_Pawn() override
Definition PlayerControllerBase.cpp:66
virtual void OnPossess(APawn *NewPawn) override
Definition PlayerControllerBase.cpp:53

◆ OnRep_Pawn()

void APlayerControllerBase::OnRep_Pawn ( )
overrideprotectedvirtual

Reimplemented in AALSPlayerController, and ACustomPlayerController.

67{
68 Super::OnRep_Pawn();
70 if(GetSpectatorPawn() == nullptr)
71 {
72 GetWorld()->GetTimerManager().SetTimer(SetupCompleteDelayTimerHandle, this, &APlayerControllerBase::OnPawnSpawn, MultiplayerStartDelay, false);
73 }
74}

◆ OpenRadialMenu()

void APlayerControllerBase::OpenRadialMenu ( const FRadialMenuData & Data)
overridevirtual

Implements IPlayerControllerInterface.

336{
337 if(Data.IsEmpty())
338 {
339 UE_LOG(LogBasePlayerController, Error, TEXT("No Options dummy APlayerControllerBase::OpenRadialMenu"));
340 return;
341 }
342 if(HUDInterface == nullptr)
343 {
344 UE_LOG(LogBasePlayerController, Error, TEXT("HUD INTERFACE FAILED IN APlayerControllerBase::OpenRadialMenu"));
345 return;
346 }
349 {
350 if(IsLookInputIgnored() == false)
351 {
352 SetIgnoreLookInput(true);
353 }
354 }
355}
virtual void OpenRadialMenu(const FRadialMenuData &Data)=0
bool IsEmpty() const
Definition RadialWheelData.h:131

◆ PopContentFromLayer()

bool APlayerControllerBase::PopContentFromLayer ( const FGameplayTag LayerName)
overridevirtual

Implements IPlayerControllerInterface.

272{
273 if(GetHUDInterface() == nullptr)
274 {
275 UE_LOG(LogBasePlayerController, Error, TEXT("APlayerControllerBase::PopContentFromLayer"));
276 return false;
277 }
278 return GetHUDInterface()->PopContentFromLayer(LayerName);
279}
virtual bool PopContentFromLayer(const FGameplayTag &LayerName)=0

◆ PushContentToLayer()

UUserWidget * APlayerControllerBase::PushContentToLayer ( const FGameplayTag LayerName,
const TSoftClassPtr< UUserWidget > WidgetClass )
overridevirtual

Implements IPlayerControllerInterface.

262{
263 if(GetHUDInterface() == nullptr)
264 {
265 UE_LOG(LogBasePlayerController, Error, TEXT("APlayerControllerBase::PushContentToLayer"));
266 return nullptr;
267 }
268 return GetHUDInterface()->PushContentToLayer(LayerName, WidgetClass);
269}
virtual UUserWidget * PushContentToLayer(const FGameplayTag &LayerName, const TSoftClassPtr< UUserWidget > &WidgetClass)=0

◆ RegisterLayer()

bool APlayerControllerBase::RegisterLayer ( const FGameplayTag LayerName,
UUserWidget * LayerWidget )
overridevirtual

Implements IPlayerControllerInterface.

251{
252 if(GetHUDInterface() == nullptr || LayerWidget == nullptr)
253 {
254 UE_LOG(LogBasePlayerController, Error, TEXT("APlayerControllerBase::RegisterLayer"));
255 return false;
256 }
257 return GetHUDInterface()->RegisterLayer(LayerName, LayerWidget);
258}
virtual bool RegisterLayer(const FGameplayTag &LayerName, UUserWidget *LayerWidget)=0

◆ RightMovementAction()

void APlayerControllerBase::RightMovementAction ( const FInputActionValue & Value)
protectedvirtual

Reimplemented in AALSPlayerController.

506{
507 MoveAxisX = Value.Get<float>();
508}

◆ SaveAudioOptions()

bool APlayerControllerBase::SaveAudioOptions ( const FAudioPlayerOptions AudioSettings)
privatevirtual
727{
728 if(UGameplayStatics::DoesSaveGameExist(AudioOptionsSaveName, 0))
729 {
730 USaveGame* LoadedSaveGame = UGameplayStatics::LoadGameFromSlot(AudioOptionsSaveName, 0);
731 USettingsSaveGame* LoadedAudioSettings = Cast<USettingsSaveGame>(LoadedSaveGame);
732 if(LoadedAudioSettings != nullptr)
733 {
734 PlayerAudioSettings = AudioSettings;
735 LoadedAudioSettings->AudioOptions = PlayerAudioSettings;
736 return UGameplayStatics::SaveGameToSlot(LoadedAudioSettings, AudioOptionsSaveName, 0);
737 }
738 }
739 else
740 {
741 USaveGame* NewSaveGame = UGameplayStatics::CreateSaveGameObject(USettingsSaveGame::StaticClass());
742 USettingsSaveGame* NewAudioSettings = Cast<USettingsSaveGame>(NewSaveGame);
743 if(NewAudioSettings != nullptr)
744 {
745 PlayerAudioSettings = AudioSettings;
746 NewAudioSettings->AudioOptions = PlayerAudioSettings;
747 return UGameplayStatics::SaveGameToSlot(NewAudioSettings, AudioOptionsSaveName, 0);
748 }
749 }
750 return false;
751}
FAudioPlayerOptions AudioOptions
Definition SettingsSaveGame.h:96

◆ SaveCurrentPlayerOptions()

bool APlayerControllerBase::SaveCurrentPlayerOptions ( const FAudioPlayerOptions AudioSettings)
overridevirtual

Implements IPlayerOptions.

663{
664 SaveAudioOptions(AudioSettings);
665 return SavePlayerOptions();
666}
virtual bool SavePlayerOptions(const FString &SlotName="Default")
Definition PlayerControllerBase.cpp:694
virtual bool SaveAudioOptions(const FAudioPlayerOptions AudioSettings)
Definition PlayerControllerBase.cpp:726

◆ SaveGame()

bool APlayerControllerBase::SaveGame ( )
overridevirtual

Implements ISaveLoad.

454{
455 const bool bComponentsSaved = USaveLoadBPLib::SaveAllComponents(this);
456 if(bComponentsSaved == false)
457 {
458 LogDebugError("Save components Failed");
459 }
460 //GetControlRotation();
461 // SaveCurrentPlayerOptions(AudioOp)
462 return true;
463}
static bool SaveAllComponents(AActor *Actor)
Definition SaveLoadBPLib.cpp:107

◆ SavePlayerOptions()

bool APlayerControllerBase::SavePlayerOptions ( const FString & SlotName = "Default")
protectedvirtual
695{
696 FString FullSlotName = SlotName;
697 const FString PlayerControllerSlotName = FullSlotName.Append(PlayerOptionsSaveName);
698 if(UGameplayStatics::DoesSaveGameExist(PlayerControllerSlotName, 0))
699 {
700 USaveGame* LoadedSaveGame = UGameplayStatics::LoadGameFromSlot(PlayerControllerSlotName, 0);
701 USettingsSaveGame* LoadedPlayerProfileSaveGame = Cast<USettingsSaveGame>(LoadedSaveGame);
702 if(LoadedPlayerProfileSaveGame != nullptr)
703 {
704 return UGameplayStatics::SaveGameToSlot(ApplySettingsToSaveGame(LoadedPlayerProfileSaveGame), PlayerControllerSlotName, 0);
705 }
706 }
707 else
708 {
709 USaveGame* NewSaveGame = UGameplayStatics::CreateSaveGameObject(USettingsSaveGame::StaticClass());
710 USettingsSaveGame* NewPlayerProfileSaveGame = Cast<USettingsSaveGame>(NewSaveGame);
711 if(NewPlayerProfileSaveGame != nullptr)
712 {
713 return UGameplayStatics::SaveGameToSlot(ApplySettingsToSaveGame(NewPlayerProfileSaveGame), PlayerControllerSlotName, 0);
714 }
715 }
716 return false;
717}
virtual USettingsSaveGame * ApplySettingsToSaveGame(class USettingsSaveGame *LoadedPlayerSettings)
Definition PlayerControllerBase.cpp:719

◆ SelectionUpAction()

void APlayerControllerBase::SelectionUpAction ( const FInputActionValue & Value)
protectedvirtual

Reimplemented in ACustomPlayerController.

493{
494 const bool bUpSelection = Value.Get<bool>();
495 if(GetHUDInterface() == nullptr){UE_LOG(LogBasePlayerController, Error, TEXT("HUD INTERFACE FAILED IN APlayerControllerBase::SelectionUpAction"));return;}
496 HUDInterface->HUDSelectionVertical(bUpSelection);
497}
virtual void HUDSelectionVertical(const bool bMoveUp=true)=0

◆ SetAimAssistLevel()

virtual void APlayerControllerBase::SetAimAssistLevel ( const int32 Value)
inlineoverridevirtual

Implements IPlayerOptions.

Reimplemented in ACustomPlayerController.

82 {
84 };

◆ SetCameraAimedSensitivityMultiplier()

virtual void APlayerControllerBase::SetCameraAimedSensitivityMultiplier ( const float NewValue)
inlineoverridevirtual

Implements IPlayerOptions.

◆ SetCameraHorizontalSensitivity()

virtual float APlayerControllerBase::SetCameraHorizontalSensitivity ( const float NewValue)
inlineoverridevirtual

◆ SetCameraSensitivity()

virtual float APlayerControllerBase::SetCameraSensitivity ( const float NewValue)
inlineoverridevirtual

Mouse/Controller Sensitivity,

Returns
new Sensitivity

Implements IPlayerOptions.

58 {
61 };

◆ SetCameraUseSeparateAxisSensitivity()

virtual void APlayerControllerBase::SetCameraUseSeparateAxisSensitivity ( const bool bValue)
inlineoverridevirtual

Implements IPlayerOptions.

◆ SetCameraVerticalSensitivity()

virtual float APlayerControllerBase::SetCameraVerticalSensitivity ( const float NewValue)
inlineoverridevirtual

◆ SetCategoryName()

void APlayerControllerBase::SetCategoryName ( const FLogCategoryBase & Category)
inlineprotected
222{CategoryName = Category.GetCategoryName();};

◆ SetCharacterMode()

void APlayerControllerBase::SetCharacterMode ( const FGameplayTag & Mode)
overridevirtual

Implements IPlayerControllerInterface.

384{
385 CharacterMode = Mode;
387 if(Mode == CharacterModeTags::Default)
388 {
389 // Movement
390 FlushPressedKeys();
391 EnableInput(this);
392 SetInputMode(FInputModeGameOnly());
393 bShowMouseCursor = false;
394 FlushPressedKeys();
395 }
396 if(Mode == CharacterModeTags::Build)
397 {
398
399 }
400 if(Mode == CharacterModeTags::Command)
401 {
402
403 }
404 if(Mode == CharacterModeTags::Menu)
405 {
406
407 }
408 if(Mode == CharacterModeTags::Talking)
409 {
410 StopMovement();
411 FlushPressedKeys();
412 FInputModeUIOnly InputModeUIOnly;
413 SetInputMode(FInputModeUIOnly());
414 bShowMouseCursor = true;
415 StopMovement();
416 EnableInput(this);
417 }
418 if(CharacterBaseInterface != nullptr)
419 {
421 }
422 for(auto& Component: GetComponents())
423 {
424 UCommonActorComponent* PlayerControllerComponent = Cast<UCommonActorComponent>(Component);
425 if(PlayerControllerComponent == nullptr){continue;}
426 PlayerControllerComponent->CharacterModeChanged(Mode);
427 }
428}
void OnCharacterModeChanged(const FGameplayTag &Mode)
virtual void CharacterModeChanged(const FGameplayTag &NewMode)=0

◆ SetPlayerLookHorizontalInverted()

virtual bool APlayerControllerBase::SetPlayerLookHorizontalInverted ( const bool bInvert = true)
inlineoverridevirtual

◆ SetPlayerLookInverted()

virtual bool APlayerControllerBase::SetPlayerLookInverted ( const bool bInvert = true)
inlineoverridevirtual

Inverts the player look, returns if the if inverted

Implements IPlayerOptions.

44 {
47 };

◆ SetPlayerUsingController()

virtual void APlayerControllerBase::SetPlayerUsingController ( const bool bValue)
inlineoverridevirtual

Implements IPlayerOptions.

85{bIsPlayerController = bValue;};

◆ SetupComponents()

void APlayerControllerBase::SetupComponents ( )
protectedvirtual
209{
210 for(auto& Component: GetComponents())
211 {
212 UCommonActorComponent* PlayerControllerComponent = Cast<UCommonActorComponent>(Component);
213 if(PlayerControllerComponent == nullptr){continue;}
214 PlayerControllerComponent->SetupComponent();
215 }
216}

◆ SetupInputComponent()

void APlayerControllerBase::SetupInputComponent ( )
overrideprotectedvirtual

Reimplemented in AALSPlayerController, and ACustomPlayerController.

89{
90 Super::SetupInputComponent();
91 UEnhancedInputComponent* EnhancedInputComponent = Cast<UEnhancedInputComponent>(InputComponent);
92 if(EnhancedInputComponent == nullptr)
93 {
94 UE_LOG(LogBasePlayerController, Fatal, TEXT("Base Helpers Plugin requires Enhanced Input System to be activated in project settings to function properly"));
95 return;
96 }
97 EnhancedInputComponent->ClearActionEventBindings();
98 EnhancedInputComponent->ClearActionValueBindings();
99 EnhancedInputComponent->ClearDebugKeyBindings();
102}
virtual void BindActions(UInputMappingContext *Context)
Definition PlayerControllerBase.cpp:104
TObjectPtr< UInputMappingContext > MenuInputMappingContext
Definition PlayerControllerBase.h:243
TObjectPtr< UInputMappingContext > MainInputMappingContext
Definition PlayerControllerBase.h:245

◆ SetupInputs()

void APlayerControllerBase::SetupInputs ( )
protectedvirtual

Reimplemented in AALSPlayerController.

77{
78 if(GetPawn() == nullptr){UE_LOG(LogBaseHelpers, Error, TEXT("Get Pawn failed in PC Base - Setup Inputs"));return;}
79 if(UEnhancedInputLocalPlayerSubsystem* Subsystem = ULocalPlayer::GetSubsystem<UEnhancedInputLocalPlayerSubsystem>(GetLocalPlayer()))
80 {
81 FModifyContextOptions Options;
82 Options.bForceImmediately = 1;
83 Subsystem->AddMappingContext(MenuInputMappingContext, 1, Options);
84 Subsystem->AddMappingContext(MainInputMappingContext, 2, Options);
85 }
86}

◆ ToggleGameLog()

void APlayerControllerBase::ToggleGameLog ( )
overridevirtual

Implements IPlayerControllerInterface.

431{
432 if(GetHUDInterface() == nullptr){UE_LOG(LogBasePlayerController, Error, TEXT("HUD INTERFACE FAILED IN APlayerControllerBase::ToggleGameLog"));return;}
434}
virtual void ToggleGameLog()=0

◆ ToggleWidget()

bool APlayerControllerBase::ToggleWidget ( const FGameplayTag LayerName,
UUserWidget * Widget )
overridevirtual

Implements IPlayerControllerInterface.

292{
293 if(GetHUDInterface() == nullptr || Widget == nullptr)
294 {
295 UE_LOG(LogBasePlayerController, Error, TEXT("APlayerControllerBase::ToggleWidget"));
296 return false;
297 }
298 return GetHUDInterface()->ToggleWidget(LayerName, Widget);
299}
virtual bool ToggleWidget(const FGameplayTag &LayerName, UUserWidget *Widget)=0

Member Data Documentation

◆ AudioSocket

FName APlayerControllerBase::AudioSocket = FName("head")

◆ bAimed

bool APlayerControllerBase::bAimed = false
protected

◆ bDebuggingMode

bool APlayerControllerBase::bDebuggingMode = false

◆ bUsingController

bool APlayerControllerBase::bUsingController = false
private

◆ CategoryName

FLogCategoryName APlayerControllerBase::CategoryName = LogBasePlayerController.GetCategoryName()
private

◆ CharacterBaseInterface

ICharacterBaseInterface* APlayerControllerBase::CharacterBaseInterface
private

◆ CharacterMode

FGameplayTag APlayerControllerBase::CharacterMode = FGameplayTag(CharacterModeTags::Default)
protected

◆ CharacterModesMenuData

FRadialMenuData APlayerControllerBase::CharacterModesMenuData
private

◆ HUDInterface

IHUDInterface* APlayerControllerBase::HUDInterface
private

◆ LookAxisX

float APlayerControllerBase::LookAxisX = 0.0f
private

◆ LookAxisY

float APlayerControllerBase::LookAxisY = 0.0f
private

◆ MainInputMappingContext

TObjectPtr<UInputMappingContext> APlayerControllerBase::MainInputMappingContext = nullptr

◆ MaxPawnSpawnAttempts

int32 APlayerControllerBase::MaxPawnSpawnAttempts = 5
protected

◆ MenuInputMappingContext

TObjectPtr<UInputMappingContext> APlayerControllerBase::MenuInputMappingContext = nullptr

◆ MoveAxisX

float APlayerControllerBase::MoveAxisX = 0.0f
private

◆ MoveAxisY

float APlayerControllerBase::MoveAxisY = 0.0f
private

◆ MultiplayerStartDelay

float APlayerControllerBase::MultiplayerStartDelay = 0.5f
private

◆ PawnSpawnAttempts

int32 APlayerControllerBase::PawnSpawnAttempts = 0
private

◆ PlayerAudioSettings

FAudioPlayerOptions APlayerControllerBase::PlayerAudioSettings
private

◆ PlayerOptions

FGameplayPlayerOptions APlayerControllerBase::PlayerOptions
private

◆ PlayerOptionsSaveName

FString APlayerControllerBase::PlayerOptionsSaveName = "_PlayerSettings"
private

◆ SetupCompleteDelayTimerHandle

FTimerHandle APlayerControllerBase::SetupCompleteDelayTimerHandle
private

The documentation for this class was generated from the following files: