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

#include <InputBPLib.h>

Inheritance diagram for UInputBPLib:

Static Public Member Functions

static UDataTable * GetKeyboardInputDataTable ()
 
static UDataTable * GetXboxInputDataTable ()
 
static UDataTable * GetPlayStationInputDataTable ()
 
static UInputMappingContext * GetInputMapping (const UObject *WorldContextObject)
 
static FString GetAssignedKeyName (const UObject *WorldContextObject, const UInputAction *InputAction, const int32 Num=0)
 
static FString GetInputKeyName (const UObject *WorldContextObject, const FString &InputActionName, const EGameControllerType Controller=EGameControllerType::Keyboard)
 
static FSlateBrush GetInputKeyIcon (const UObject *WorldContextObject, const FString &InputActionName, const EGameControllerType Controller=EGameControllerType::Keyboard)
 
static FInputIconGetKeyboardKey (const FString &Input)
 
static FString GetKeyboardKeyName (const FString &Input)
 
static FSlateBrush GetKeyboardKeyIcon (const FString &Input)
 
static FInputIconGetXboxKey (const FString &Input)
 
static FString GetXboxKeyName (const FString &Input)
 
static FSlateBrush GetXboxKeyIcon (const FString &Input)
 
static FInputIconGetPlayStationKey (const FString &Input)
 
static FString GetPlayStationKeyName (const FString &Input)
 
static FSlateBrush GetPlayStationKeyIcon (const FString &Input)
 

Member Function Documentation

◆ GetAssignedKeyName()

FString UInputBPLib::GetAssignedKeyName ( const UObject * WorldContextObject,
const UInputAction * InputAction,
const int32 Num = 0 )
static

Num is used for multiple mappings, controllers etc.

77{
78 if(const UGameInstance* GameInstance = UGameplayStatics::GetGameInstance(WorldContextObject))
79 {
80 if(const ULocalPlayer* LocalPlayer = GameInstance->GetFirstGamePlayer())
81 {
82 if (const UEnhancedInputLocalPlayerSubsystem* InputSystem = LocalPlayer->GetSubsystem<UEnhancedInputLocalPlayerSubsystem>())
83 {
84 TArray<FKey> Keys = InputSystem->QueryKeysMappedToAction(InputAction);
85 if(!Keys.IsEmpty())
86 {
87 return Keys[Num].GetDisplayName().ToString();
88 }
89 }
90 }
91 }
92 return ("Invalid");
93}

◆ GetInputKeyIcon()

FSlateBrush UInputBPLib::GetInputKeyIcon ( const UObject * WorldContextObject,
const FString & InputActionName,
const EGameControllerType Controller = EGameControllerType::Keyboard )
static
140{
141 FSlateBrush Icon;
142 int32 ControllerNum = 0;
143 if(Controller == EGameControllerType::Keyboard)
144 {
145 ControllerNum = 0;
146 }
147 else
148 {
149 ControllerNum = 1;
150 }
151 FString InputName = "Invalid";
152 const UInputMappingContext* InputMapping = GetInputMapping(WorldContextObject);
153 for(const FEnhancedActionKeyMapping& Keymapping : InputMapping->GetMappings())
154 {
155 if(Keymapping.GetMappingName().ToString() == InputActionName)
156 {
157 InputName = GetAssignedKeyName(WorldContextObject, Keymapping.Action, ControllerNum);
158 }
159 }
160 switch (Controller) {
162 Icon = GetKeyboardKeyIcon(InputName);
163 break;
166 Icon = GetXboxKeyIcon(InputName);
167 break;
170 InputName = GetPlayStationKeyName(InputName);
171 break;
174 break;
177 break;
178 }
179 return Icon;
180}
static FSlateBrush GetXboxKeyIcon(const FString &Input)
Definition InputBPLib.cpp:219
static UInputMappingContext * GetInputMapping(const UObject *WorldContextObject)
Definition InputBPLib.cpp:62
static FSlateBrush GetKeyboardKeyIcon(const FString &Input)
Definition InputBPLib.cpp:197
static FString GetAssignedKeyName(const UObject *WorldContextObject, const UInputAction *InputAction, const int32 Num=0)
Definition InputBPLib.cpp:75
static FString GetPlayStationKeyName(const FString &Input)
Definition InputBPLib.cpp:235

◆ GetInputKeyName()

FString UInputBPLib::GetInputKeyName ( const UObject * WorldContextObject,
const FString & InputActionName,
const EGameControllerType Controller = EGameControllerType::Keyboard )
static

InputActionName is "Use" no need for "Action".

98{
99 int32 ControllerNum = 0;
100 if(Controller == EGameControllerType::Keyboard)
101 {
102 ControllerNum = 0;
103 }
104 else
105 {
106 ControllerNum = 1;
107 }
108 FString InputName = "Invalid";
109 const UInputMappingContext* InputMapping = GetInputMapping(WorldContextObject);
110 for(const FEnhancedActionKeyMapping& Keymapping : InputMapping->GetMappings())
111 {
112 if(Keymapping.GetMappingName().ToString() == InputActionName)
113 {
114 InputName = GetAssignedKeyName(WorldContextObject, Keymapping.Action, ControllerNum);
115 }
116 }
117 switch (Controller) {
119 break;
122 InputName = GetXboxKeyName(InputName);
123 break;
126 InputName = GetPlayStationKeyName(InputName);
127 break;
130 break;
133 break;
134 }
135 return InputName;
136}
static FString GetXboxKeyName(const FString &Input)
Definition InputBPLib.cpp:213

◆ GetInputMapping()

UInputMappingContext * UInputBPLib::GetInputMapping ( const UObject * WorldContextObject)
static

Needs to be called by a player

63{
64 if(WorldContextObject == nullptr){return nullptr;}
65 const UGameInstance* GameInstance = UGameplayStatics::GetGameInstance(WorldContextObject);
66 if(GameInstance == nullptr){return nullptr;}
67 const ULocalPlayer* LocalPlayer = GameInstance->GetFirstGamePlayer();
68 if(LocalPlayer == nullptr){return nullptr;}
69 IInputKeyInterface* InputController = Cast<IInputKeyInterface>(LocalPlayer->GetPlayerController(WorldContextObject->GetWorld()));
70 if(InputController == nullptr){return nullptr;}
71 return InputController->GetInputActions();
72}
Definition InputKeyInterface.h:21
virtual UInputMappingContext * GetInputActions()=0

◆ GetKeyboardInputDataTable()

UDataTable * UInputBPLib::GetKeyboardInputDataTable ( )
static
12{
13 const FSoftObjectPath UnitDataTablePath = FSoftObjectPath(TEXT("/BaseHelpers/Input/DT_InputKeyboad.DT_InputKeyboad"));
14 UDataTable* DataTable = Cast<UDataTable>(UnitDataTablePath.ResolveObject());
15 if(DataTable)
16 {
17 return DataTable;
18 }
19 DataTable = Cast<UDataTable>(UnitDataTablePath.TryLoad());
20 if(DataTable)
21 {
22 return DataTable;
23 }
24 UE_LOG(LogBaseHelpers, Error, TEXT("LoadKeyboardInputDataTable Failed"));
25 return nullptr;
26}

◆ GetKeyboardKey()

FInputIcon * UInputBPLib::GetKeyboardKey ( const FString & Input)
static
183{
184 if(GetKeyboardInputDataTable() == nullptr){return nullptr;}
185 const FString RemovedSpaces = Input.Replace(TEXT(" "), TEXT(""));
186 FInputIcon* InputIconPtr = GetKeyboardInputDataTable()->FindRow<FInputIcon>(FName(RemovedSpaces), "");
187 if(InputIconPtr == nullptr){UE_LOG(LogBaseHelpers,Warning,TEXT("InputIconPtr pointer null -GetKeyboardKey")); return nullptr;}
188 return InputIconPtr;
189}
static UDataTable * GetKeyboardInputDataTable()
Definition InputBPLib.cpp:11
Definition BaseData.h:670

◆ GetKeyboardKeyIcon()

FSlateBrush UInputBPLib::GetKeyboardKeyIcon ( const FString & Input)
static
198{
199 FSlateBrush Empty;
200 if(GetKeyboardKey(Input) == nullptr){return Empty;}
201 return GetKeyboardKey(Input)->Icon;
202}
static FInputIcon * GetKeyboardKey(const FString &Input)
Definition InputBPLib.cpp:182
FSlateBrush Icon
Definition BaseData.h:676

◆ GetKeyboardKeyName()

FString UInputBPLib::GetKeyboardKeyName ( const FString & Input)
static
192{
193 if(GetKeyboardKey(Input) == nullptr){return "Invalid";}
194 return *GetKeyboardKey(Input)->Name;
195}
FString Name
Definition BaseData.h:674

◆ GetPlayStationInputDataTable()

UDataTable * UInputBPLib::GetPlayStationInputDataTable ( )
static
46{
47 const FSoftObjectPath UnitDataTablePath = FSoftObjectPath(TEXT("/BaseHelpers/Input/DT_InputPlayStation.DT_InputPlayStation"));
48 UDataTable* DataTable = Cast<UDataTable>(UnitDataTablePath.ResolveObject());
49 if(DataTable)
50 {
51 return DataTable;
52 }
53 DataTable = Cast<UDataTable>(UnitDataTablePath.TryLoad());
54 if(DataTable)
55 {
56 return DataTable;
57 }
58 UE_LOG(LogBaseHelpers, Error, TEXT("LoadPlayStationInputDataTable Failed"));
59 return nullptr;
60}

◆ GetPlayStationKey()

FInputIcon * UInputBPLib::GetPlayStationKey ( const FString & Input)
static
227{
228 if(GetPlayStationInputDataTable() == nullptr){return nullptr;}
229 const FString RemovedSpaces = Input.Replace(TEXT(" "), TEXT(""));
230 FInputIcon* InputIconPtr = GetPlayStationInputDataTable()->FindRow<FInputIcon>(FName(RemovedSpaces), "");
231 if(InputIconPtr == nullptr){UE_LOG(LogBaseHelpers,Warning,TEXT("InputIconPtr pointer null -GetPlayStationKey")); return nullptr;}
232 return InputIconPtr;
233}
static UDataTable * GetPlayStationInputDataTable()
Definition InputBPLib.cpp:45

◆ GetPlayStationKeyIcon()

FSlateBrush UInputBPLib::GetPlayStationKeyIcon ( const FString & Input)
static
243{
244 FSlateBrush Empty;
245 if(GetPlayStationKey(Input) == nullptr){return Empty;}
246 return GetPlayStationKey(Input)->Icon;
247}
static FInputIcon * GetPlayStationKey(const FString &Input)
Definition InputBPLib.cpp:226

◆ GetPlayStationKeyName()

FString UInputBPLib::GetPlayStationKeyName ( const FString & Input)
static
236{
237 if(GetPlayStationKey(Input) == nullptr){return "Invalid";}
238 return *GetPlayStationKey(Input)->Name;
239
240}

◆ GetXboxInputDataTable()

UDataTable * UInputBPLib::GetXboxInputDataTable ( )
static
29{
30 const FSoftObjectPath UnitDataTablePath = FSoftObjectPath(TEXT("/BaseHelpers/Input/DT_InputXbox.DT_InputXbox"));
31 UDataTable* DataTable = Cast<UDataTable>(UnitDataTablePath.ResolveObject());
32 if(DataTable)
33 {
34 return DataTable;
35 }
36 DataTable = Cast<UDataTable>(UnitDataTablePath.TryLoad());
37 if(DataTable)
38 {
39 return DataTable;
40 }
41 UE_LOG(LogBaseHelpers, Error, TEXT("LoadXboxInputDataTable Failed"));
42 return nullptr;
43}

◆ GetXboxKey()

FInputIcon * UInputBPLib::GetXboxKey ( const FString & Input)
static
205{
206 if(GetXboxInputDataTable() == nullptr){return nullptr;}
207 const FString RemovedSpaces = Input.Replace(TEXT(" "), TEXT(""));
208 FInputIcon* InputIconPtr = GetXboxInputDataTable()->FindRow<FInputIcon>(FName(RemovedSpaces), "");
209 if(InputIconPtr == nullptr){UE_LOG(LogBaseHelpers,Warning,TEXT("InputIconPtr pointer null -GetXboxKeyName")); return nullptr;}
210 return InputIconPtr;
211}
static UDataTable * GetXboxInputDataTable()
Definition InputBPLib.cpp:28

◆ GetXboxKeyIcon()

FSlateBrush UInputBPLib::GetXboxKeyIcon ( const FString & Input)
static
220{
221 FSlateBrush Empty;
222 if(GetXboxKey(Input) == nullptr){return Empty;}
223 return GetXboxKey(Input)->Icon;
224}
static FInputIcon * GetXboxKey(const FString &Input)
Definition InputBPLib.cpp:204

◆ GetXboxKeyName()

FString UInputBPLib::GetXboxKeyName ( const FString & Input)
static
214{
215 if(GetXboxKey(Input) == nullptr){return "Invalid";}
216 return *GetXboxKey(Input)->Name;
217}

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