Files
2025-05-18 13:04:45 +08:00

584 lines
30 KiB
C#

// Copyright Epic Games, Inc. All Rights Reserved.
using EpicGames.Core;
using System;
using UnrealBuildTool;
namespace Gauntlet.Utils
{
public class FKey
{
public string KeyName { get; set; }
public FKey(string InName)
{
this.KeyName = InName;
}
// We might need this in the future, but there's some issues serializing FKeyDetails as it has a cyclic reference to the FKey object itself (In pointer form in C++)
// public FKeyDetails KeyDetails
}
// Basically a replica of FKeyDetails from InputCoreTypes, intended to be serialized and then deserialized into its UObject type
// We may end up genuinely needing this for Axis-based input (For example MouseWheelAxis or Mouse2D), but it's not needed right now for regular key-presses
public struct FKeyDetails
{
public enum EKeyFlags
{
GamepadKey = 1 << 0,
Touch = 1 << 1,
MouseButton = 1 << 2,
ModifierKey = 1 << 3,
NotBlueprintBindableKey = 1 << 4,
Axis1D = 1 << 5,
Axis3D = 1 << 6,
UpdateAxisWithoutSamples = 1 << 7,
NotActionBindableKey = 1 << 8,
Deprecated = 1 << 9,
ButtonAxis = 1 << 10,
Axis2D = 1 << 11,
Gesture = 1 << 12,
NoFlags = 0
}
public enum EInputAxisType
{
None,
Button,
Axis1D,
Axis2D,
Axis3D
}
private FKey Key;
public int PairedAxis = 0;
public FKey PairedAxisKey;
public string MenuCategory;
public int bIsModifierKey;
public int bIsGamepadKey;
public int bIsTouch;
public int bIsMouseButton;
public int bIsBindableInBlueprints;
public int bShouldUpdateAxisWithoutSamples;
public int bIsbindableToActions;
public int bIsDeprecated;
public int bIsGesture;
public EInputAxisType AxisType;
public string LongDisplayName;
public string ShortDisplayName;
public FKeyDetails(FKey InKey, string InLongDisplayName, string InShortDisplayName = "", int InKeyFlags = 0)
{
this.Key = InKey;
this.LongDisplayName = InLongDisplayName;
this.ShortDisplayName = InShortDisplayName;
this.bIsGamepadKey = (InKeyFlags & (int)EKeyFlags.GamepadKey) != 0 ? 1 : 0;
this.bIsModifierKey = (InKeyFlags & (int)EKeyFlags.ModifierKey) != 0 ? 1 : 0;
this.bIsTouch = (InKeyFlags & (int)EKeyFlags.Touch) != 0 ? 1 : 0;
this.bIsMouseButton = (InKeyFlags & (int)EKeyFlags.MouseButton) != 0 ? 1 : 0;
this.bIsBindableInBlueprints = (~InKeyFlags & (int)EKeyFlags.NotBlueprintBindableKey) != 0 && (~InKeyFlags & (int)EKeyFlags.Deprecated) != 0 ? 1 : 0;
this.bShouldUpdateAxisWithoutSamples = (InKeyFlags & (int)EKeyFlags.UpdateAxisWithoutSamples) != 0 ? 1 : 0;
this.bIsbindableToActions = (~InKeyFlags & (int)EKeyFlags.NotActionBindableKey) != 0 && (~InKeyFlags & (int)EKeyFlags.Deprecated) != 0 ? 1 : 0;
this.bIsDeprecated = (InKeyFlags & (int)EKeyFlags.Deprecated) != 0 ? 1 : 0;
this.bIsGesture = (InKeyFlags & (int)EKeyFlags.Gesture) != 0 ? 1 : 0;
// Set MenuCategory based on above flags
if(bIsGamepadKey == 1)
{
this.MenuCategory = "Gamepad";
}
else if(bIsMouseButton == 1)
{
this.MenuCategory = "Mouse";
}
else
{
this.MenuCategory = "Keyboard";
}
// Defaulting the Axis stuff to null for now
PairedAxisKey = null;
AxisType = 0;
}
public FKey GetKey()
{
return this.Key;
}
public string GetLongDisplayName()
{
return this.LongDisplayName;
}
public string GetShortDisplayName()
{
return this.ShortDisplayName;
}
public bool IsGamepadKey()
{
return this.bIsGamepadKey == 1;
}
public bool IsModifierKey()
{
return this.bIsModifierKey == 1;
}
public bool IsTouch()
{
return this.bIsTouch == 1;
}
public bool IsMouseButton()
{
return this.bIsMouseButton == 1;
}
public bool IsGesture()
{
return this.bIsGesture == 1;
}
public string GetMenuCategory()
{
return this.MenuCategory;
}
public int GetPairedAxis()
{
return this.PairedAxis;
}
public FKey GetPairedAxisKey()
{
return this.PairedAxisKey;
}
public EInputAxisType GetAxisType()
{
return this.AxisType;
}
}
public struct EKeys
{
public static FKey A = new FKey("A");
public static FKey B = new FKey("B");
public static FKey C = new FKey("C");
public static FKey D = new FKey("D");
public static FKey E = new FKey("E");
public static FKey F = new FKey("F");
public static FKey G = new FKey("G");
public static FKey H = new FKey("H");
public static FKey I = new FKey("I");
public static FKey J = new FKey("J");
public static FKey K = new FKey("K");
public static FKey L = new FKey("L");
public static FKey M = new FKey("M");
public static FKey N = new FKey("N");
public static FKey O = new FKey("O");
public static FKey P = new FKey("P");
public static FKey Q = new FKey("Q");
public static FKey R = new FKey("R");
public static FKey S = new FKey("S");
public static FKey T = new FKey("T");
public static FKey U = new FKey("U");
public static FKey V = new FKey("V");
public static FKey W = new FKey("W");
public static FKey X = new FKey("X");
public static FKey Y = new FKey("Y");
public static FKey Z = new FKey("Z");
public static FKey MouseX = new FKey("MouseX");
public static FKey MouseY = new FKey("MouseY");
public static FKey Mouse2D = new FKey("Mouse2D");
public static FKey MouseScrollUp = new FKey("MouseScrollUp");
public static FKey MouseScrollDown = new FKey("MouseScrollDown");
public static FKey MouseWheelAxis = new FKey("MouseWheelAxis");
public static FKey LeftMouseButton = new FKey("LeftMouseButton");
public static FKey RightMouseButton = new FKey("RightMouseButton");
public static FKey MiddleMouseButton = new FKey("MiddleMouseButton");
public static FKey ThumbMouseButton = new FKey("ThumbMouseButton");
public static FKey ThumbMouseButton2 = new FKey("ThumbMouseButton2");
// Separate commands here for Mac
public static FKey BackSpace = new FKey("Backspace");
public static FKey Delete = new FKey("Delete");
public static FKey Tab = new FKey("Tab");
public static FKey Enter = new FKey("Enter");
public static FKey Pause = new FKey("Pause");
public static FKey CapsLock = new FKey("CapsLock");
public static FKey Escape = new FKey("Escape");
public static FKey SpaceBar = new FKey("SpaceBar");
public static FKey PageUp = new FKey("PageUp");
public static FKey PageDown = new FKey("PageDown");
public static FKey End = new FKey("End");
public static FKey Home = new FKey("Home");
public static FKey Left = new FKey("Left");
public static FKey Up = new FKey("Up");
public static FKey Right = new FKey("Right");
public static FKey Down = new FKey("Down");
public static FKey Insert = new FKey("Insert");
public static FKey Zero = new FKey("0");
public static FKey One = new FKey("1");
public static FKey Two = new FKey("2");
public static FKey Three = new FKey("3");
public static FKey Four = new FKey("4");
public static FKey Five = new FKey("5");
public static FKey Six = new FKey("6");
public static FKey Seven = new FKey("7");
public static FKey Eight = new FKey("8");
public static FKey Nine = new FKey("9");
public static FKey NumPadZero = new FKey("NumPadZero");
public static FKey NumPadOne = new FKey("NumPadOne");
public static FKey NumPadTwo = new FKey("NumPadTwo");
public static FKey NumPadThree = new FKey("NumPadThree");
public static FKey NumPadFour = new FKey("NumPadFour");
public static FKey NumPadFive = new FKey("NumPadFive");
public static FKey NumPadSix = new FKey("NumPadSix");
public static FKey NumPadSeven = new FKey("NumPadSeven");
public static FKey NumPadEight = new FKey("NumPadEight");
public static FKey NumPadNine = new FKey("NumPadNine");
public static FKey F1 = new FKey("F1");
public static FKey F2 = new FKey("F2");
public static FKey F3 = new FKey("F3");
public static FKey F4 = new FKey("F4");
public static FKey F5 = new FKey("F5");
public static FKey F6 = new FKey("F6");
public static FKey F7 = new FKey("F7");
public static FKey F8 = new FKey("F8");
public static FKey F9 = new FKey("F9");
public static FKey F10 = new FKey("F10");
public static FKey F11 = new FKey("F11");
public static FKey F12 = new FKey("F12");
public static FKey NumLock = new FKey("NumLock");
public static FKey LeftShift = new FKey("LeftShift");
public static FKey RightShift = new FKey("RightShift");
public static FKey LeftControl = new FKey("LeftControl");
public static FKey RightControl = new FKey("RightControl");
public static FKey LeftAlt = new FKey("LeftAlt");
public static FKey RightAlt = new FKey("RightAlt");
public static FKey LeftCommand = new FKey("LeftCommand");
public static FKey RightCommand = new FKey("RightCommand");
public static FKey Semicolon = new FKey("Semicolon");
public static FKey EqualsKey = new FKey("Equals");
public static FKey Comma = new FKey("Comma");
public static FKey Underscore = new FKey("Underscore");
public static FKey Hyphen = new FKey("Hyphen");
public static FKey Period = new FKey("Period");
public static FKey Slash = new FKey("Slash");
public static FKey Tilde = new FKey("`");
public static FKey LeftBracket = new FKey("LeftBracket");
public static FKey Backslash = new FKey("Backslash");
public static FKey RightBracket = new FKey("RightBracket");
public static FKey Apostrophe = new FKey("Apostrophe");
public static FKey Ampersand = new FKey("Ampersand");
public static FKey Asterix = new FKey("Asterix");
public static FKey Caret = new FKey("Caret");
public static FKey Colon = new FKey("Colon");
public static FKey Dollar = new FKey("Dollar");
public static FKey Exclamation = new FKey("Exclamation");
public static FKey LeftParantheses = new FKey("LeftParantheses");
public static FKey RightParantheses = new FKey("RightParantheses");
public static FKey Quote = new FKey("Quote");
// In C++ this uses FString::Chr
public static FKey A_AccentGrave = new FKey($"{(char)224}");
public static FKey E_AccentGrave = new FKey($"{(char)232}");
public static FKey E_AccentAigu = new FKey($"{(char)233}");
public static FKey C_Cedille = new FKey($"{(char)231}");
public static FKey Section = new FKey($"{(char)167}");
// Gamepad Axis Stuff
// These are still mostly untested and are here for parity until we can confirm how to properly do analog inputs
public static FKey Gamepad_Left2D = new FKey("Gamepad_Left2D");
public static FKey Gamepad_LeftX = new FKey("Gamepad_LeftX");
public static FKey Gamepad_LeftY = new FKey("Gamepad_LeftY");
public static FKey Gamepad_Right2D = new FKey("Gamepad_Right2D");
public static FKey Gamepad_RightX = new FKey("Gamepad_RightX");
public static FKey Gamepad_RightY = new FKey("Gamepad_RightY");
public static FKey Gamepad_Special_Left_X = new FKey("Gamepad_Special_Left_X");
public static FKey Gamepad_Special_Left_Y = new FKey("Gamepad_Special_Left_Y");
public static FKey Gamepad_LeftTrigger = new FKey("Gamepad_LeftTrigger");
public static FKey Gamepad_RightTrigger = new FKey("Gamepad_RightTrigger");
public static FKey Gamepad_LeftThumbstick = new FKey("Gamepad_LeftThumbstick");
public static FKey Gamepad_RightThumbstick = new FKey("Gamepad_RightThumbstick");
public static FKey Gamepad_LeftTriggerAxis = new FKey("Gamepad_LeftTriggerAxis");
public static FKey Gamepad_RightTriggerAxis = new FKey("Gamepad_RightTriggerAxis");
// Gamepad Generic
public static FKey Gamepad_DPad_Up = new FKey("Gamepad_DPad_Up");
public static FKey Gamepad_DPad_Down = new FKey("Gamepad_DPad_Down");
public static FKey Gamepad_DPad_Right = new FKey("Gamepad_DPad_Right");
public static FKey Gamepad_DPad_Left = new FKey("Gamepad_DPad_Left");
public static FKey Gamepad_LeftStick_Up = new FKey("Gamepad_LeftStick_Up");
public static FKey Gamepad_LeftStick_Down = new FKey("Gamepad_LeftStick_Down");
public static FKey Gamepad_LeftStick_Right = new FKey("Gamepad_LeftStick_Right");
public static FKey Gamepad_LeftStick_Left = new FKey("Gamepad_LeftStick_Left");
public static FKey Gamepad_RightStick_Up = new FKey("Gamepad_RightStick_Up");
public static FKey Gamepad_RightStick_Down = new FKey("Gamepad_RightStick_Down");
public static FKey Gamepad_RightStick_Right = new FKey("Gamepad_RightStick_Right");
public static FKey Gamepad_RightStick_Left = new FKey("Gamepad_RightStick_Left");
public static FKey Gamepad_Special_Left = new FKey("Gamepad_Special_Left");
public static FKey Gamepad_Special_Right = new FKey("Gamepad_Special_Right");
public static FKey Gamepad_FaceButton_Bottom = new FKey("Gamepad_FaceButton_Bottom");
public static FKey Gamepad_FaceButton_Right = new FKey("Gamepad_FaceButton_Right");
public static FKey Gamepad_FaceButton_Left = new FKey("Gamepad_FaceButton_Left");
public static FKey Gamepad_FaceButton_Top = new FKey("Gamepad_FaceButton_Top");
public static FKey Gamepad_LeftShoulder = new FKey("Gamepad_LeftShoulder");
public static FKey Gamepad_RightShoulder = new FKey("Gamepad_RightShoulder");
// Motion Controls
public static FKey Tilt = new FKey("Tilt");
public static FKey RotationRate = new FKey("RotationRate");
public static FKey Gravity = new FKey("Gravity");
public static FKey Acceleration = new FKey("Acceleration");
// Gesture Controls
public static FKey Gesture_Pinch = new FKey("Gesture_Pinch");
public static FKey Gesture_Flick = new FKey("Gesture_Flick");
public static FKey Gesture_Rotate = new FKey("Gesture_Rotate");
// Steam Controls
public static FKey Steam_Touch_0 = new FKey("Steam_Touch_0");
public static FKey Steam_Touch_1 = new FKey("Steam_Touch_1");
public static FKey Steam_Touch_2 = new FKey("Steam_Touch_2");
public static FKey Steam_Touch_3 = new FKey("Steam_Touch_3");
public static FKey Steam_Back_Left = new FKey("Steam_Back_Left");
public static FKey Steam_Back_Right = new FKey("Steam_Back_Right");
// Xbox One Global Speech commands
public static FKey Global_Menu = new FKey("Global_Menu");
public static FKey Global_View = new FKey("Global_View");
public static FKey Global_Pause = new FKey("Global_Pause");
public static FKey Global_Play = new FKey("Global_Play");
public static FKey Global_Back = new FKey("Global_Back");
// Android-specific Controls
public static FKey Android_Back = new FKey("Android_Back");
public static FKey Android_Volume_Up = new FKey("Android_Volume_Up");
public static FKey Android_Volume_Down = new FKey("Android_Volume_Down");
public static FKey Android_Menu = new FKey("Android_Menu");
// Vive Controls
public static FKey Vive_Left_Grip_Click = new FKey("Vive_Left_Grip_Click");
public static FKey Vive_Left_Menu_Click = new FKey("Vive_Left_Menu_Click");
public static FKey Vive_Left_Trigger_Click = new FKey("Vive_Left_Trigger_Click");
public static FKey Vive_Left_Trigger_Axis = new FKey("Vive_Left_Trigger_Axis");
public static FKey Vive_Left_Trackpad_2D = new FKey("Vive_Left_Trackpad_2D");
public static FKey Vive_Left_Trackpad_X = new FKey("Vive_Left_Trackpad_X");
public static FKey Vive_Left_Trackpad_Y = new FKey("Vive_Left_Trackpad_Y");
public static FKey Vive_Left_Trackpad_Click = new FKey("Vive_Left_Trackpad_Click");
public static FKey Vive_Left_Trackpad_Touch = new FKey("Vive_Left_Trackpad_Touch");
public static FKey Vive_Left_Trackpad_Up = new FKey("Vive_Left_Trackpad_Up");
public static FKey Vive_Left_Trackpad_Down = new FKey("Vive_Left_Trackpad_Down");
public static FKey Vive_Left_Trackpad_Left = new FKey("Vive_Left_Trackpad_Left");
public static FKey Vive_Left_Trackpad_Right = new FKey("Vive_Left_Trackpad_Right");
public static FKey Vive_Right_Grip_Click = new FKey("Vive_Right_Grip_Click");
public static FKey Vive_Right_Menu_Click = new FKey("Vive_Right_Menu_Click");
public static FKey Vive_Right_Trigger_Click = new FKey("Vive_Right_Trigger_Click");
public static FKey Vive_Right_Trigger_Axis = new FKey("Vive_Right_Trigger_Axis");
public static FKey Vive_Right_Trackpad_2D = new FKey("Vive_Right_Trackpad_2D");
public static FKey Vive_Right_Trackpad_X = new FKey("Vive_Right_Trackpad_X");
public static FKey Vive_Right_Trackpad_Y = new FKey("Vive_Right_Trackpad_Y");
public static FKey Vive_Right_Trackpad_Click = new FKey("Vive_Right_Trackpad_Click");
public static FKey Vive_Right_Trackpad_Touch = new FKey("Vive_Right_Trackpad_Touch");
public static FKey Vive_Right_Trackpad_Up = new FKey("Vive_Right_Trackpad_Up");
public static FKey Vive_Right_Trackpad_Down = new FKey("Vive_Right_Trackpad_Down");
public static FKey Vive_Right_Trackpad_Left = new FKey("Vive_Right_Trackpad_Left");
public static FKey Vive_Right_Trackpad_Right = new FKey("Vive_Right_Trackpad_Right");
// Mixed Reality Controls
public static FKey MixedReality_Left_Menu_Click = new FKey("MixedReality_Left_Menu_Click");
public static FKey MixedReality_Left_Grip_Click = new FKey("MixedReality_Left_Grip_Click");
public static FKey MixedReality_Left_Trigger_Click = new FKey("MixedReality_Left_Trigger_Click");
public static FKey MixedReality_Left_Trigger_Axis = new FKey("MixedReality_Left_Trigger_Axis");
public static FKey MixedReality_Left_Thumbstick_2D = new FKey("MixedReality_Left_Thumbstick_2D");
public static FKey MixedReality_Left_Thumbstick_X = new FKey("MixedReality_Left_Thumbstick_X");
public static FKey MixedReality_Left_Thumbstick_Y = new FKey("MixedReality_Left_Thumbstick_Y");
public static FKey MixedReality_Left_Thumbstick_Click = new FKey("MixedReality_Left_Thumbstick_Click");
public static FKey MixedReality_Left_Thumbstick_Up = new FKey("MixedReality_Left_Thumbstick_Up");
public static FKey MixedReality_Left_Thumbstick_Down = new FKey("MixedReality_Left_Thumbstick_Down");
public static FKey MixedReality_Left_Thumbstick_Left = new FKey("MixedReality_Left_Thumbstick_Left");
public static FKey MixedReality_Left_Thumbstick_Right = new FKey("MixedReality_Left_Thumbstick_Right");
public static FKey MixedReality_Left_Trackpad_2D = new FKey("MixedReality_Left_Trackpad_2D");
public static FKey MixedReality_Left_Trackpad_X = new FKey("MixedReality_Left_Trackpad_X");
public static FKey MixedReality_Left_Trackpad_Y = new FKey("MixedReality_Left_Trackpad_Y");
public static FKey MixedReality_Left_Trackpad_Click = new FKey("MixedReality_Left_Trackpad_Click");
public static FKey MixedReality_Left_Trackpad_Touch = new FKey("MixedReality_Left_Trackpad_Touch");
public static FKey MixedReality_Left_Trackpad_Up = new FKey("MixedReality_Left_Trackpad_Up");
public static FKey MixedReality_Left_Trackpad_Down = new FKey("MixedReality_Left_Trackpad_Down");
public static FKey MixedReality_Left_Trackpad_Left = new FKey("MixedReality_Left_Trackpad_Left");
public static FKey MixedReality_Left_Trackpad_Right = new FKey("MixedReality_Left_Trackpad_Right");
public static FKey MixedReality_Right_Menu_Click = new FKey("MixedReality_Right_Menu_Click");
public static FKey MixedReality_Right_Grip_Click = new FKey("MixedReality_Right_Grip_Click");
public static FKey MixedReality_Right_Trigger_Click = new FKey("MixedReality_Right_Trigger_Click");
public static FKey MixedReality_Right_Trigger_Axis = new FKey("MixedReality_Right_Trigger_Axis");
public static FKey MixedReality_Right_Thumbstick_2D = new FKey("MixedReality_Right_Thumbstick_2D");
public static FKey MixedReality_Right_Thumbstick_X = new FKey("MixedReality_Right_Thumbstick_X");
public static FKey MixedReality_Right_Thumbstick_Y = new FKey("MixedReality_Right_Thumbstick_Y");
public static FKey MixedReality_Right_Thumbstick_Click = new FKey("MixedReality_Right_Thumbstick_Click");
public static FKey MixedReality_Right_Thumbstick_Up = new FKey("MixedReality_Right_Thumbstick_Up");
public static FKey MixedReality_Right_Thumbstick_Down = new FKey("MixedReality_Right_Thumbstick_Down");
public static FKey MixedReality_Right_Thumbstick_Left = new FKey("MixedReality_Right_Thumbstick_Left");
public static FKey MixedReality_Right_Thumbstick_Right = new FKey("MixedReality_Right_Thumbstick_Right");
public static FKey MixedReality_Right_Trackpad_2D = new FKey("MixedReality_Right_Trackpad_2D");
public static FKey MixedReality_Right_Trackpad_X = new FKey("MixedReality_Right_Trackpad_X");
public static FKey MixedReality_Right_Trackpad_Y = new FKey("MixedReality_Right_Trackpad_Y");
public static FKey MixedReality_Right_Trackpad_Click = new FKey("MixedReality_Right_Trackpad_Click");
public static FKey MixedReality_Right_Trackpad_Touch = new FKey("MixedReality_Right_Trackpad_Touch");
public static FKey MixedReality_Right_Trackpad_Up = new FKey("MixedReality_Right_Trackpad_Up");
public static FKey MixedReality_Right_Trackpad_Down = new FKey("MixedReality_Right_Trackpad_Down");
public static FKey MixedReality_Right_Trackpad_Left = new FKey("MixedReality_Right_Trackpad_Left");
public static FKey MixedReality_Right_Trackpad_Right = new FKey("MixedReality_Right_Trackpad_Right");
// Oculus Touch controls
public static FKey OculusTouch_Left_X_Click = new FKey("OculusTouch_Left_X_Click");
public static FKey OculusTouch_Left_Y_Click = new FKey("OculusTouch_Left_Y_Click");
public static FKey OculusTouch_Left_X_Touch = new FKey("OculusTouch_Left_X_Touch");
public static FKey OculusTouch_Left_Y_Touch = new FKey("OculusTouch_Left_Y_Touch");
public static FKey OculusTouch_Left_Menu_Click = new FKey("OculusTouch_Left_Menu_Click");
public static FKey OculusTouch_Left_Grip_Click = new FKey("OculusTouch_Left_Grip_Click");
public static FKey OculusTouch_Left_Grip_Axis = new FKey("OculusTouch_Left_Grip_Axis");
public static FKey OculusTouch_Left_Trigger_Click = new FKey("OculusTouch_Left_Trigger_Click");
public static FKey OculusTouch_Left_Trigger_Axis = new FKey("OculusTouch_Left_Trigger_Axis");
public static FKey OculusTouch_Left_Trigger_Touch = new FKey("OculusTouch_Left_Trigger_Touch");
public static FKey OculusTouch_Left_Thumbstick_2D = new FKey("OculusTouch_Left_Thumbstick_2D");
public static FKey OculusTouch_Left_Thumbstick_X = new FKey("OculusTouch_Left_Thumbstick_X");
public static FKey OculusTouch_Left_Thumbstick_Y = new FKey("OculusTouch_Left_Thumbstick_Y");
public static FKey OculusTouch_Left_Thumbstick_Click = new FKey("OculusTouch_Left_Thumbstick_Click");
public static FKey OculusTouch_Left_Thumbstick_Touch = new FKey("OculusTouch_Left_Thumbstick_Touch");
public static FKey OculusTouch_Left_Thumbstick_Up = new FKey("OculusTouch_Left_Thumbstick_Up");
public static FKey OculusTouch_Left_Thumbstick_Down = new FKey("OculusTouch_Left_Thumbstick_Down");
public static FKey OculusTouch_Left_Thumbstick_Left = new FKey("OculusTouch_Left_Thumbstick_Left");
public static FKey OculusTouch_Left_Thumbstick_Right = new FKey("OculusTouch_Left_Thumbstick_Right");
public static FKey OculusTouch_Right_A_Click = new FKey("OculusTouch_Right_A_Click");
public static FKey OculusTouch_Right_B_Click = new FKey("OculusTouch_Right_B_Click");
public static FKey OculusTouch_Right_A_Touch = new FKey("OculusTouch_Right_A_Touch");
public static FKey OculusTouch_Right_B_Touch = new FKey("OculusTouch_Right_B_Touch");
public static FKey OculusTouch_Right_Grip_Click = new FKey("OculusTouch_Right_Grip_Click");
public static FKey OculusTouch_Right_Grip_Axis = new FKey("OculusTouch_Right_Grip_Axis");
public static FKey OculusTouch_Right_Trigger_Click = new FKey("OculusTouch_Right_Trigger_Click");
public static FKey OculusTouch_Right_Trigger_Axis = new FKey("OculusTouch_Right_Trigger_Axis");
public static FKey OculusTouch_Right_Trigger_Touch = new FKey("OculusTouch_Right_Trigger_Touch");
public static FKey OculusTouch_Right_Thumbstick_2D = new FKey("OculusTouch_Right_Thumbstick_2D");
public static FKey OculusTouch_Right_Thumbstick_X = new FKey("OculusTouch_Right_Thumbstick_X");
public static FKey OculusTouch_Right_Thumbstick_Y = new FKey("OculusTouch_Right_Thumbstick_Y");
public static FKey OculusTouch_Right_Thumbstick_Click = new FKey("OculusTouch_Right_Thumbstick_Click");
public static FKey OculusTouch_Right_Thumbstick_Touch = new FKey("OculusTouch_Right_Thumbstick_Touch");
public static FKey OculusTouch_Right_Thumbstick_Up = new FKey("OculusTouch_Right_Thumbstick_Up");
public static FKey OculusTouch_Right_Thumbstick_Down = new FKey("OculusTouch_Right_Thumbstick_Down");
public static FKey OculusTouch_Right_Thumbstick_Left = new FKey("OculusTouch_Right_Thumbstick_Left");
public static FKey OculusTouch_Right_Thumbstick_Right = new FKey("OculusTouch_Right_Thumbstick_Right");
// Valve Index Controls
public static FKey ValveIndex_Left_A_Click = new FKey("ValveIndex_Left_A_Click");
public static FKey ValveIndex_Left_B_Click = new FKey("ValveIndex_Left_B_Click");
public static FKey ValveIndex_Left_A_Touch = new FKey("ValveIndex_Left_A_Touch");
public static FKey ValveIndex_Left_B_Touch = new FKey("ValveIndex_Left_B_Touch");
public static FKey ValveIndex_Left_Grip_Axis = new FKey("ValveIndex_Left_Grip_Axis");
public static FKey ValveIndex_Left_Grip_Force = new FKey("ValveIndex_Left_Grip_Force");
public static FKey ValveIndex_Left_Trigger_Click = new FKey("ValveIndex_Left_Trigger_Click");
public static FKey ValveIndex_Left_Trigger_Axis = new FKey("ValveIndex_Left_Trigger_Axis");
public static FKey ValveIndex_Left_Trigger_Touch = new FKey("ValveIndex_Left_Trigger_Touch");
public static FKey ValveIndex_Left_Thumbstick_2D = new FKey("ValveIndex_Left_Thumbstick_2D");
public static FKey ValveIndex_Left_Thumbstick_X = new FKey("ValveIndex_Left_Thumbstick_X");
public static FKey ValveIndex_Left_Thumbstick_Y = new FKey("ValveIndex_Left_Thumbstick_Y");
public static FKey ValveIndex_Left_Thumbstick_Click = new FKey("ValveIndex_Left_Thumbstick_Click");
public static FKey ValveIndex_Left_Thumbstick_Touch = new FKey("ValveIndex_Left_Thumbstick_Touch");
public static FKey ValveIndex_Left_Thumbstick_Up = new FKey("ValveIndex_Left_Thumbstick_Up");
public static FKey ValveIndex_Left_Thumbstick_Down = new FKey("ValveIndex_Left_Thumbstick_Down");
public static FKey ValveIndex_Left_Thumbstick_Left = new FKey("ValveIndex_Left_Thumbstick_Left");
public static FKey ValveIndex_Left_Thumbstick_Right = new FKey("ValveIndex_Left_Thumbstick_Right");
public static FKey ValveIndex_Left_Trackpad_2D = new FKey("ValveIndex_Left_Trackpad_2D");
public static FKey ValveIndex_Left_Trackpad_X = new FKey("ValveIndex_Left_Trackpad_X");
public static FKey ValveIndex_Left_Trackpad_Y = new FKey("ValveIndex_Left_Trackpad_Y");
public static FKey ValveIndex_Left_Trackpad_Force = new FKey("ValveIndex_Left_Trackpad_Force");
public static FKey ValveIndex_Left_Trackpad_Touch = new FKey("ValveIndex_Left_Trackpad_Touch");
public static FKey ValveIndex_Left_Trackpad_Up = new FKey("ValveIndex_Left_Trackpad_Up");
public static FKey ValveIndex_Left_Trackpad_Down = new FKey("ValveIndex_Left_Trackpad_Down");
public static FKey ValveIndex_Left_Trackpad_Left = new FKey("ValveIndex_Left_Trackpad_Left");
public static FKey ValveIndex_Left_Trackpad_Right = new FKey("ValveIndex_Left_Trackpad_Right");
public static FKey ValveIndex_Right_A_Click = new FKey("ValveIndex_Right_A_Click");
public static FKey ValveIndex_Right_B_Click = new FKey("ValveIndex_Right_B_Click");
public static FKey ValveIndex_Right_A_Touch = new FKey("ValveIndex_Right_A_Touch");
public static FKey ValveIndex_Right_B_Touch = new FKey("ValveIndex_Right_B_Touch");
public static FKey ValveIndex_Right_Grip_Axis = new FKey("ValveIndex_Right_Grip_Axis");
public static FKey ValveIndex_Right_Grip_Force = new FKey("ValveIndex_Right_Grip_Force");
public static FKey ValveIndex_Right_Trigger_Click = new FKey("ValveIndex_Right_Trigger_Click");
public static FKey ValveIndex_Right_Trigger_Axis = new FKey("ValveIndex_Right_Trigger_Axis");
public static FKey ValveIndex_Right_Trigger_Touch = new FKey("ValveIndex_Right_Trigger_Touch");
public static FKey ValveIndex_Right_Thumbstick_2D = new FKey("ValveIndex_Right_Thumbstick_2D");
public static FKey ValveIndex_Right_Thumbstick_X = new FKey("ValveIndex_Right_Thumbstick_X");
public static FKey ValveIndex_Right_Thumbstick_Y = new FKey("ValveIndex_Right_Thumbstick_Y");
public static FKey ValveIndex_Right_Thumbstick_Click = new FKey("ValveIndex_Right_Thumbstick_Click");
public static FKey ValveIndex_Right_Thumbstick_Touch = new FKey("ValveIndex_Right_Thumbstick_Touch");
public static FKey ValveIndex_Right_Thumbstick_Up = new FKey("ValveIndex_Right_Thumbstick_Up");
public static FKey ValveIndex_Right_Thumbstick_Down = new FKey("ValveIndex_Right_Thumbstick_Down");
public static FKey ValveIndex_Right_Thumbstick_Left = new FKey("ValveIndex_Right_Thumbstick_Left");
public static FKey ValveIndex_Right_Thumbstick_Right = new FKey("ValveIndex_Right_Thumbstick_Right");
public static FKey ValveIndex_Right_Trackpad_2D = new FKey("ValveIndex_Right_Trackpad_2D");
public static FKey ValveIndex_Right_Trackpad_X = new FKey("ValveIndex_Right_Trackpad_X");
public static FKey ValveIndex_Right_Trackpad_Y = new FKey("ValveIndex_Right_Trackpad_Y");
public static FKey ValveIndex_Right_Trackpad_Force = new FKey("ValveIndex_Right_Trackpad_Force");
public static FKey ValveIndex_Right_Trackpad_Touch = new FKey("ValveIndex_Right_Trackpad_Touch");
public static FKey ValveIndex_Right_Trackpad_Up = new FKey("ValveIndex_Right_Trackpad_Up");
public static FKey ValveIndex_Right_Trackpad_Down = new FKey("ValveIndex_Right_Trackpad_Down");
public static FKey ValveIndex_Right_Trackpad_Left = new FKey("ValveIndex_Right_Trackpad_Left");
public static FKey ValveIndex_Right_Trackpad_Right = new FKey("ValveIndex_Right_Trackpad_Right");
/*FKey Virtual_Accept;
FKey Virtual_Back;
FKey Invalid;*/
public EKeys()
{
UnrealTargetPlatform.TryParse(Globals.Params.ParseValue("Platform", "Win64"), out UnrealTargetPlatform Platform);
if (Platform == UnrealTargetPlatform.Mac)
{
BackSpace = new FKey("Delete");
Delete = new FKey("ForwardDelete");
}
}
}
// Same as EInputEvent from EngineBaseTypes.h
public enum EInputEvent
{
IE_Pressed,
IE_Released,
IE_Repeat,
IE_DoubleClick,
IE_Axis,
IE_Max
}
public class InputAction
{
public FKey Key;
public EInputEvent KeyAction;
public double XDelta;
public double YDelta;
public bool Tapped;
public InputAction(FKey Inkey, EInputEvent InInputEvent, double InXDelta = 0, double InYDelta = 0, bool InTapped = false)
{
this.Key = Inkey;
this.KeyAction = InInputEvent;
this.XDelta = InXDelta;
this.YDelta = InYDelta;
Tapped = InTapped;
}
}
}