forked from sin365/AxibugEmuOnline
Input逻辑结构调整
This commit is contained in:
parent
50e3a30f31
commit
e463c23c4c
@ -232,7 +232,7 @@ namespace AxibugEmuOnline.Client.Settings
|
||||
else return totalFloat / totalControl;
|
||||
}
|
||||
|
||||
public class MapSetting : Dictionary<T, List<InputControl_D>> { }
|
||||
public class MapSetting : Dictionary<T, List<InputControl_C>> { }
|
||||
|
||||
public class BindingPage
|
||||
{
|
||||
@ -277,7 +277,7 @@ namespace AxibugEmuOnline.Client.Settings
|
||||
m_mapSetting.Remove(device);
|
||||
}
|
||||
|
||||
public void SetBinding(T emuBtn, InputControl_D key, int settingSlot)
|
||||
public void SetBinding(T emuBtn, InputControl_C key, int settingSlot)
|
||||
{
|
||||
var device = key.Device;
|
||||
m_registedDevices.TryGetValue(device.GetType(), out var inputDevice);
|
||||
@ -287,7 +287,7 @@ namespace AxibugEmuOnline.Client.Settings
|
||||
var setting = m_mapSetting[inputDevice];
|
||||
if (!setting.TryGetValue(emuBtn, out var settingList))
|
||||
{
|
||||
settingList = new List<InputControl_D>();
|
||||
settingList = new List<InputControl_C>();
|
||||
setting[emuBtn] = settingList;
|
||||
}
|
||||
|
||||
@ -297,7 +297,7 @@ namespace AxibugEmuOnline.Client.Settings
|
||||
settingList[settingSlot] = key;
|
||||
}
|
||||
|
||||
public InputControl_D GetBinding(T emuBtn, InputDevice_D device, int settingSlot)
|
||||
public InputControl_C GetBinding(T emuBtn, InputDevice_D device, int settingSlot)
|
||||
{
|
||||
m_mapSetting.TryGetValue(device, out var mapSetting);
|
||||
if (mapSetting == null) return null;
|
||||
@ -308,8 +308,8 @@ namespace AxibugEmuOnline.Client.Settings
|
||||
return settingList[settingSlot];
|
||||
}
|
||||
|
||||
private List<InputControl_D> m_caches = new List<InputControl_D>();
|
||||
public IEnumerable<InputControl_D> GetBinding(T emuBtn)
|
||||
private List<InputControl_C> m_caches = new List<InputControl_C>();
|
||||
public IEnumerable<InputControl_C> GetBinding(T emuBtn)
|
||||
{
|
||||
m_caches.Clear();
|
||||
|
||||
|
@ -1,34 +1,29 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace AxibugEmuOnline.Client.InputDevices
|
||||
namespace AxibugEmuOnline.Client.InputDevices
|
||||
{
|
||||
/// <summary>
|
||||
/// 通用游戏控制器
|
||||
/// </summary>
|
||||
public class GamePad_D : InputDevice_D
|
||||
{
|
||||
public Button_C Up { get; private set; }
|
||||
public Button_C Down { get; private set; }
|
||||
public Button_C Left { get; private set; }
|
||||
public Button_C Right { get; private set; }
|
||||
public Button_C Option { get; private set; }
|
||||
public Button_C Start { get; private set; }
|
||||
public Button_C North { get; private set; }
|
||||
public Button_C South { get; private set; }
|
||||
public Button_C West { get; private set; }
|
||||
public Button_C East { get; private set; }
|
||||
public Button_C LeftShoulder { get; private set; }
|
||||
public Button_C RightShoulder { get; private set; }
|
||||
public Button_C LeftTrigger { get; private set; }
|
||||
public Button_C RightTrigger { get; private set; }
|
||||
public Button_C Up;
|
||||
public Button_C Down;
|
||||
public Button_C Left;
|
||||
public Button_C Right;
|
||||
public Button_C Option;
|
||||
public Button_C Start;
|
||||
public Button_C North;
|
||||
public Button_C South;
|
||||
public Button_C West;
|
||||
public Button_C East;
|
||||
public Button_C LeftShoulder;
|
||||
public Button_C RightShoulder;
|
||||
public Button_C LeftTrigger;
|
||||
public Button_C RightTrigger;
|
||||
public Button_C LeftStickPress;
|
||||
public Button_C RightStickPress;
|
||||
public Stick_C LeftStick;
|
||||
public Stick_C RightStick;
|
||||
|
||||
public GamePad_D(InputResolver resolver) : base(resolver) { }
|
||||
|
||||
protected override List<InputControl_D> DefineControls()
|
||||
{
|
||||
throw new System.NotImplementedException();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
@ -3,15 +3,10 @@
|
||||
/// <summary>
|
||||
/// 按键类型的输入控件
|
||||
/// </summary>
|
||||
public class Button_C : InputControl_D
|
||||
public class Button_C : InputControl_C
|
||||
{
|
||||
string m_controlName;
|
||||
|
||||
public Button_C(InputDevice_D device, string controlName) : base(device)
|
||||
public Button_C(InputDevice_D device, string controlName) : base(device, controlName)
|
||||
{
|
||||
m_controlName = controlName;
|
||||
}
|
||||
|
||||
public override string ControlName => m_controlName;
|
||||
}
|
||||
}
|
||||
|
@ -1,11 +1,14 @@
|
||||
using UnityEngine;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Reflection;
|
||||
using UnityEngine;
|
||||
|
||||
namespace AxibugEmuOnline.Client.InputDevices
|
||||
{
|
||||
/// <summary>
|
||||
/// 输入设备的抽象控件接口
|
||||
/// </summary>
|
||||
public abstract class InputControl_D
|
||||
public abstract class InputControl_C
|
||||
{
|
||||
/// <summary> 控件所属设备 </summary>
|
||||
public InputDevice_D Device { get; internal set; }
|
||||
@ -30,7 +33,6 @@ namespace AxibugEmuOnline.Client.InputDevices
|
||||
UpdateReleaseStartState();
|
||||
OnUpdate();
|
||||
}
|
||||
|
||||
private void UpdateReleaseStartState()
|
||||
{
|
||||
var oldPerforming = m_performingLastFrame;
|
||||
@ -48,12 +50,42 @@ namespace AxibugEmuOnline.Client.InputDevices
|
||||
|
||||
protected virtual void OnUpdate() { }
|
||||
|
||||
public InputControl_C Parent { get; private set; }
|
||||
/// <summary> 控件名,这个控件名称必须是唯一的 </summary>
|
||||
public abstract string ControlName { get; }
|
||||
|
||||
internal InputControl_D(InputDevice_D device)
|
||||
public string ControlName { get; private set; }
|
||||
protected Dictionary<string, InputControl_C> m_controlMapper = new Dictionary<string, InputControl_C>();
|
||||
internal InputControl_C(InputDevice_D device, string controlName)
|
||||
{
|
||||
Device = device;
|
||||
ControlName = controlName;
|
||||
|
||||
DefineControls();
|
||||
}
|
||||
|
||||
private void DefineControls()
|
||||
{
|
||||
foreach (var field in GetType().GetFields(BindingFlags.Instance | BindingFlags.Public))
|
||||
{
|
||||
if (!typeof(InputControl_C).IsAssignableFrom(field.FieldType)) continue;
|
||||
|
||||
var controlIns = Activator.CreateInstance(field.FieldType, this, field.Name) as InputControl_C;
|
||||
controlIns.Parent = this;
|
||||
field.SetValue(this, controlIns);
|
||||
|
||||
m_controlMapper[field.Name] = controlIns;
|
||||
}
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
if (Parent != null)
|
||||
{
|
||||
return $"{Parent}/{ControlName}";
|
||||
}
|
||||
else
|
||||
{
|
||||
return $"{Device}/{ControlName}";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -5,24 +5,15 @@ namespace AxibugEmuOnline.Client.InputDevices
|
||||
/// <summary>
|
||||
/// 摇杆类型的输入控件,支持的返回值为Vector2
|
||||
/// </summary>
|
||||
public class Stick_C : InputControl_D
|
||||
public class Stick_C : InputControl_C
|
||||
{
|
||||
string m_controlName;
|
||||
public override string ControlName => m_controlName;
|
||||
public VirtualButton UP;
|
||||
public VirtualButton Down;
|
||||
public VirtualButton Left;
|
||||
public VirtualButton Right;
|
||||
|
||||
public VirtualButton UP { get; private set; }
|
||||
public VirtualButton Down { get; private set; }
|
||||
public VirtualButton Left { get; private set; }
|
||||
public VirtualButton Right { get; private set; }
|
||||
|
||||
public Stick_C(InputDevice_D device, string controlName) : base(device)
|
||||
public Stick_C(InputDevice_D device, string controlName) : base(device, controlName)
|
||||
{
|
||||
m_controlName = controlName;
|
||||
|
||||
UP = new VirtualButton(device);
|
||||
Down = new VirtualButton(device);
|
||||
Left = new VirtualButton(device);
|
||||
Right = new VirtualButton(device);
|
||||
}
|
||||
|
||||
protected override void OnUpdate()
|
||||
@ -43,11 +34,11 @@ namespace AxibugEmuOnline.Client.InputDevices
|
||||
}
|
||||
|
||||
|
||||
public class VirtualButton : InputControl_D
|
||||
public class VirtualButton : InputControl_C
|
||||
{
|
||||
internal bool m_performing;
|
||||
|
||||
public VirtualButton(InputDevice_D device) : base(device) { }
|
||||
public VirtualButton(InputDevice_D device, string controlName) : base(device, controlName) { }
|
||||
|
||||
public override bool Performing
|
||||
{
|
||||
@ -63,8 +54,6 @@ namespace AxibugEmuOnline.Client.InputDevices
|
||||
{
|
||||
return Performing ? 1 : 0;
|
||||
}
|
||||
|
||||
public override string ControlName => "VirtualStickButton";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Reflection;
|
||||
|
||||
namespace AxibugEmuOnline.Client.InputDevices
|
||||
{
|
||||
@ -13,15 +15,24 @@ namespace AxibugEmuOnline.Client.InputDevices
|
||||
/// <summary> 获得输入解决器 </summary>
|
||||
internal InputResolver Resolver => m_resolver;
|
||||
|
||||
protected Dictionary<string, InputControl_D> m_controlMapper = new Dictionary<string, InputControl_D>();
|
||||
protected Dictionary<string, InputControl_C> m_controlMapper = new Dictionary<string, InputControl_C>();
|
||||
protected InputResolver m_resolver;
|
||||
public InputDevice_D(InputResolver resolver)
|
||||
{
|
||||
m_resolver = resolver;
|
||||
DefineControls();
|
||||
}
|
||||
|
||||
foreach (var control in DefineControls())
|
||||
private void DefineControls()
|
||||
{
|
||||
foreach (var field in GetType().GetFields(BindingFlags.Instance | BindingFlags.Public))
|
||||
{
|
||||
m_controlMapper.Add(control.ControlName, control);
|
||||
if (!typeof(InputControl_C).IsAssignableFrom(field.FieldType)) continue;
|
||||
|
||||
var controlIns = Activator.CreateInstance(field.FieldType, this, field.Name) as InputControl_C;
|
||||
field.SetValue(this, controlIns);
|
||||
|
||||
m_controlMapper[field.Name] = controlIns;
|
||||
}
|
||||
}
|
||||
|
||||
@ -39,18 +50,9 @@ namespace AxibugEmuOnline.Client.InputDevices
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary> 用于列出这个输入设备的所有输入控件实例 </summary>
|
||||
/// <returns></returns>
|
||||
protected abstract List<InputControl_D> DefineControls();
|
||||
|
||||
/// <summary> 通过控件名称,找到对应的控件 </summary>
|
||||
/// <param name="keyName"></param>
|
||||
/// <returns></returns>
|
||||
public InputControl_D FindControlByName(string controlName)
|
||||
public override string ToString()
|
||||
{
|
||||
m_controlMapper.TryGetValue(controlName, out var key);
|
||||
return key;
|
||||
return Resolver.GetDeviceName(this);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -1,190 +1,116 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
|
||||
namespace AxibugEmuOnline.Client.InputDevices
|
||||
{
|
||||
/// <summary>
|
||||
/// 通用键盘设备
|
||||
/// </summary>
|
||||
public partial class Keyboard_D : InputDevice_D
|
||||
public class Keyboard_D : InputDevice_D
|
||||
{
|
||||
Dictionary<KeyCode, KeyboardKey> m_keyControllerMap = new Dictionary<KeyCode, KeyboardKey>();
|
||||
public Button_C A;
|
||||
public Button_C B;
|
||||
public Button_C C;
|
||||
public Button_C D;
|
||||
public Button_C E;
|
||||
public Button_C F;
|
||||
public Button_C G;
|
||||
public Button_C H;
|
||||
public Button_C I;
|
||||
public Button_C J;
|
||||
public Button_C K;
|
||||
public Button_C L;
|
||||
public Button_C M;
|
||||
public Button_C N;
|
||||
public Button_C O;
|
||||
public Button_C P;
|
||||
public Button_C Q;
|
||||
public Button_C R;
|
||||
public Button_C S;
|
||||
public Button_C T;
|
||||
public Button_C U;
|
||||
public Button_C V;
|
||||
public Button_C W;
|
||||
public Button_C X;
|
||||
public Button_C Y;
|
||||
public Button_C Z;
|
||||
public Button_C Alpha0;
|
||||
public Button_C Alpha1;
|
||||
public Button_C Alpha2;
|
||||
public Button_C Alpha3;
|
||||
public Button_C Alpha4;
|
||||
public Button_C Alpha5;
|
||||
public Button_C Alpha6;
|
||||
public Button_C Alpha7;
|
||||
public Button_C Alpha8;
|
||||
public Button_C Alpha9;
|
||||
public Button_C F1;
|
||||
public Button_C F2;
|
||||
public Button_C F3;
|
||||
public Button_C F4;
|
||||
public Button_C F5;
|
||||
public Button_C F6;
|
||||
public Button_C F7;
|
||||
public Button_C F8;
|
||||
public Button_C F9;
|
||||
public Button_C F10;
|
||||
public Button_C F11;
|
||||
public Button_C F12;
|
||||
public Button_C UpArrow;
|
||||
public Button_C DownArrow;
|
||||
public Button_C LeftArrow;
|
||||
public Button_C RightArrow;
|
||||
public Button_C Space;
|
||||
public Button_C Return;
|
||||
public Button_C Escape;
|
||||
public Button_C Tab;
|
||||
public Button_C Backspace;
|
||||
public Button_C CapsLock;
|
||||
public Button_C LeftShift;
|
||||
public Button_C RightShift;
|
||||
public Button_C LeftControl;
|
||||
public Button_C RightControl;
|
||||
public Button_C LeftAlt;
|
||||
public Button_C RightAlt;
|
||||
public Button_C LeftCommand;
|
||||
public Button_C RightCommand;
|
||||
public Button_C Comma;
|
||||
public Button_C Period;
|
||||
public Button_C Slash;
|
||||
public Button_C BackQuote;
|
||||
public Button_C Quote;
|
||||
public Button_C Semicolon;
|
||||
public Button_C LeftBracket;
|
||||
public Button_C RightBracket;
|
||||
public Button_C Backslash;
|
||||
public Button_C Minus;
|
||||
public Button_C Equals_k;
|
||||
public Button_C Keypad0;
|
||||
public Button_C Keypad1;
|
||||
public Button_C Keypad2;
|
||||
public Button_C Keypad3;
|
||||
public Button_C Keypad4;
|
||||
public Button_C Keypad5;
|
||||
public Button_C Keypad6;
|
||||
public Button_C Keypad7;
|
||||
public Button_C Keypad8;
|
||||
public Button_C Keypad9;
|
||||
public Button_C KeypadPeriod;
|
||||
public Button_C KeypadDivide;
|
||||
public Button_C KeypadMultiply;
|
||||
public Button_C KeypadMinus;
|
||||
public Button_C KeypadPlus;
|
||||
public Button_C KeypadEnter;
|
||||
public Button_C Numlock;
|
||||
public Button_C Print;
|
||||
public Button_C Insert;
|
||||
public Button_C Delete;
|
||||
public Button_C Home;
|
||||
public Button_C End;
|
||||
public Button_C PageUp;
|
||||
public Button_C PageDown;
|
||||
public Button_C Pause;
|
||||
public Button_C ScrollLock;
|
||||
|
||||
public Keyboard_D(InputResolver resolver) : base(resolver) { }
|
||||
|
||||
protected override List<InputControl_D> DefineControls()
|
||||
{
|
||||
var keys = s_keyboardKeys.Select(kc => new KeyboardKey(kc, this) as InputControl_D).ToList();
|
||||
foreach (KeyboardKey key in keys)
|
||||
{
|
||||
m_keyControllerMap.Add(key.m_keycode, key);
|
||||
}
|
||||
return keys;
|
||||
}
|
||||
|
||||
public class KeyboardKey : Button_C
|
||||
{
|
||||
internal KeyCode m_keycode;
|
||||
|
||||
internal KeyboardKey(KeyCode listenKey, Keyboard_D keyboard)
|
||||
: base(keyboard, listenKey.ToString())
|
||||
{
|
||||
m_keycode = listenKey;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#region HardCodeForKeyboard
|
||||
public partial class Keyboard_D : InputDevice_D
|
||||
{
|
||||
static readonly List<KeyCode> s_keyboardKeys = new List<KeyCode>
|
||||
{
|
||||
// 字母键 A-Z
|
||||
KeyCode.A, KeyCode.B, KeyCode.C, KeyCode.D, KeyCode.E, KeyCode.F, KeyCode.G,
|
||||
KeyCode.H, KeyCode.I, KeyCode.J, KeyCode.K, KeyCode.L, KeyCode.M, KeyCode.N,
|
||||
KeyCode.O, KeyCode.P, KeyCode.Q, KeyCode.R, KeyCode.S, KeyCode.T, KeyCode.U,
|
||||
KeyCode.V, KeyCode.W, KeyCode.X, KeyCode.Y, KeyCode.Z,
|
||||
|
||||
// 数字键 0-9
|
||||
KeyCode.Alpha0, KeyCode.Alpha1, KeyCode.Alpha2, KeyCode.Alpha3, KeyCode.Alpha4,
|
||||
KeyCode.Alpha5, KeyCode.Alpha6, KeyCode.Alpha7, KeyCode.Alpha8, KeyCode.Alpha9,
|
||||
|
||||
// 功能键 F1-F15
|
||||
KeyCode.F1, KeyCode.F2, KeyCode.F3, KeyCode.F4, KeyCode.F5, KeyCode.F6,
|
||||
KeyCode.F7, KeyCode.F8, KeyCode.F9, KeyCode.F10, KeyCode.F11, KeyCode.F12,
|
||||
|
||||
// 方向键
|
||||
KeyCode.UpArrow, KeyCode.DownArrow, KeyCode.LeftArrow, KeyCode.RightArrow,
|
||||
|
||||
// 控制键
|
||||
KeyCode.Space, KeyCode.Return, KeyCode.Escape, KeyCode.Tab, KeyCode.Backspace,
|
||||
KeyCode.CapsLock, KeyCode.LeftShift, KeyCode.RightShift, KeyCode.LeftControl,
|
||||
KeyCode.RightControl, KeyCode.LeftAlt, KeyCode.RightAlt, KeyCode.LeftCommand,
|
||||
KeyCode.RightCommand,
|
||||
|
||||
// 符号键
|
||||
KeyCode.Comma, KeyCode.Period, KeyCode.Slash, KeyCode.BackQuote, KeyCode.Quote,
|
||||
KeyCode.Semicolon, KeyCode.LeftBracket, KeyCode.RightBracket, KeyCode.Backslash,
|
||||
KeyCode.Minus, KeyCode.Equals,
|
||||
|
||||
// 小键盘
|
||||
KeyCode.Keypad0, KeyCode.Keypad1, KeyCode.Keypad2, KeyCode.Keypad3, KeyCode.Keypad4,
|
||||
KeyCode.Keypad5, KeyCode.Keypad6, KeyCode.Keypad7, KeyCode.Keypad8, KeyCode.Keypad9,
|
||||
KeyCode.KeypadPeriod, KeyCode.KeypadDivide, KeyCode.KeypadMultiply,
|
||||
KeyCode.KeypadMinus, KeyCode.KeypadPlus, KeyCode.KeypadEnter, KeyCode.Numlock,
|
||||
|
||||
// 其他标准键
|
||||
KeyCode.Print, KeyCode.Insert, KeyCode.Delete, KeyCode.Home,
|
||||
KeyCode.End, KeyCode.PageUp, KeyCode.PageDown, KeyCode.Pause, KeyCode.ScrollLock,
|
||||
};
|
||||
|
||||
public KeyboardKey A => m_keyControllerMap[KeyCode.A];
|
||||
public KeyboardKey B => m_keyControllerMap[KeyCode.B];
|
||||
public KeyboardKey C => m_keyControllerMap[KeyCode.C];
|
||||
public KeyboardKey D => m_keyControllerMap[KeyCode.D];
|
||||
public KeyboardKey E => m_keyControllerMap[KeyCode.E];
|
||||
public KeyboardKey F => m_keyControllerMap[KeyCode.F];
|
||||
public KeyboardKey G => m_keyControllerMap[KeyCode.G];
|
||||
public KeyboardKey H => m_keyControllerMap[KeyCode.H];
|
||||
public KeyboardKey I => m_keyControllerMap[KeyCode.I];
|
||||
public KeyboardKey J => m_keyControllerMap[KeyCode.J];
|
||||
public KeyboardKey K => m_keyControllerMap[KeyCode.K];
|
||||
public KeyboardKey L => m_keyControllerMap[KeyCode.L];
|
||||
public KeyboardKey M => m_keyControllerMap[KeyCode.M];
|
||||
public KeyboardKey N => m_keyControllerMap[KeyCode.N];
|
||||
public KeyboardKey O => m_keyControllerMap[KeyCode.O];
|
||||
public KeyboardKey P => m_keyControllerMap[KeyCode.P];
|
||||
public KeyboardKey Q => m_keyControllerMap[KeyCode.Q];
|
||||
public KeyboardKey R => m_keyControllerMap[KeyCode.R];
|
||||
public KeyboardKey S => m_keyControllerMap[KeyCode.S];
|
||||
public KeyboardKey T => m_keyControllerMap[KeyCode.T];
|
||||
public KeyboardKey U => m_keyControllerMap[KeyCode.U];
|
||||
public KeyboardKey V => m_keyControllerMap[KeyCode.V];
|
||||
public KeyboardKey W => m_keyControllerMap[KeyCode.W];
|
||||
public KeyboardKey X => m_keyControllerMap[KeyCode.X];
|
||||
public KeyboardKey Y => m_keyControllerMap[KeyCode.Y];
|
||||
public KeyboardKey Z => m_keyControllerMap[KeyCode.Z];
|
||||
public KeyboardKey Alpha0 => m_keyControllerMap[KeyCode.Alpha0];
|
||||
public KeyboardKey Alpha1 => m_keyControllerMap[KeyCode.Alpha1];
|
||||
public KeyboardKey Alpha2 => m_keyControllerMap[KeyCode.Alpha2];
|
||||
public KeyboardKey Alpha3 => m_keyControllerMap[KeyCode.Alpha3];
|
||||
public KeyboardKey Alpha4 => m_keyControllerMap[KeyCode.Alpha4];
|
||||
public KeyboardKey Alpha5 => m_keyControllerMap[KeyCode.Alpha5];
|
||||
public KeyboardKey Alpha6 => m_keyControllerMap[KeyCode.Alpha6];
|
||||
public KeyboardKey Alpha7 => m_keyControllerMap[KeyCode.Alpha7];
|
||||
public KeyboardKey Alpha8 => m_keyControllerMap[KeyCode.Alpha8];
|
||||
public KeyboardKey Alpha9 => m_keyControllerMap[KeyCode.Alpha9];
|
||||
public KeyboardKey F1 => m_keyControllerMap[KeyCode.F1];
|
||||
public KeyboardKey F2 => m_keyControllerMap[KeyCode.F2];
|
||||
public KeyboardKey F3 => m_keyControllerMap[KeyCode.F3];
|
||||
public KeyboardKey F4 => m_keyControllerMap[KeyCode.F4];
|
||||
public KeyboardKey F5 => m_keyControllerMap[KeyCode.F5];
|
||||
public KeyboardKey F6 => m_keyControllerMap[KeyCode.F6];
|
||||
public KeyboardKey F7 => m_keyControllerMap[KeyCode.F7];
|
||||
public KeyboardKey F8 => m_keyControllerMap[KeyCode.F8];
|
||||
public KeyboardKey F9 => m_keyControllerMap[KeyCode.F9];
|
||||
public KeyboardKey F10 => m_keyControllerMap[KeyCode.F10];
|
||||
public KeyboardKey F11 => m_keyControllerMap[KeyCode.F11];
|
||||
public KeyboardKey F12 => m_keyControllerMap[KeyCode.F12];
|
||||
public KeyboardKey F13 => m_keyControllerMap[KeyCode.F13];
|
||||
public KeyboardKey F14 => m_keyControllerMap[KeyCode.F14];
|
||||
public KeyboardKey F15 => m_keyControllerMap[KeyCode.F15];
|
||||
public KeyboardKey UpArrow => m_keyControllerMap[KeyCode.UpArrow];
|
||||
public KeyboardKey DownArrow => m_keyControllerMap[KeyCode.DownArrow];
|
||||
public KeyboardKey LeftArrow => m_keyControllerMap[KeyCode.LeftArrow];
|
||||
public KeyboardKey RightArrow => m_keyControllerMap[KeyCode.RightArrow];
|
||||
public KeyboardKey Space => m_keyControllerMap[KeyCode.Space];
|
||||
public KeyboardKey Return => m_keyControllerMap[KeyCode.Return];
|
||||
public KeyboardKey Escape => m_keyControllerMap[KeyCode.Escape];
|
||||
public KeyboardKey Tab => m_keyControllerMap[KeyCode.Tab];
|
||||
public KeyboardKey Backspace => m_keyControllerMap[KeyCode.Backspace];
|
||||
public KeyboardKey CapsLock => m_keyControllerMap[KeyCode.CapsLock];
|
||||
public KeyboardKey LeftShift => m_keyControllerMap[KeyCode.LeftShift];
|
||||
public KeyboardKey RightShift => m_keyControllerMap[KeyCode.RightShift];
|
||||
public KeyboardKey LeftControl => m_keyControllerMap[KeyCode.LeftControl];
|
||||
public KeyboardKey RightControl => m_keyControllerMap[KeyCode.RightControl];
|
||||
public KeyboardKey LeftAlt => m_keyControllerMap[KeyCode.LeftAlt];
|
||||
public KeyboardKey RightAlt => m_keyControllerMap[KeyCode.RightAlt];
|
||||
public KeyboardKey LeftCommand => m_keyControllerMap[KeyCode.LeftCommand];
|
||||
public KeyboardKey RightCommand => m_keyControllerMap[KeyCode.RightCommand];
|
||||
public KeyboardKey Comma => m_keyControllerMap[KeyCode.Comma];
|
||||
public KeyboardKey Period => m_keyControllerMap[KeyCode.Period];
|
||||
public KeyboardKey Slash => m_keyControllerMap[KeyCode.Slash];
|
||||
public KeyboardKey BackQuote => m_keyControllerMap[KeyCode.BackQuote];
|
||||
public KeyboardKey Quote => m_keyControllerMap[KeyCode.Quote];
|
||||
public KeyboardKey Semicolon => m_keyControllerMap[KeyCode.Semicolon];
|
||||
public KeyboardKey LeftBracket => m_keyControllerMap[KeyCode.LeftBracket];
|
||||
public KeyboardKey RightBracket => m_keyControllerMap[KeyCode.RightBracket];
|
||||
public KeyboardKey Backslash => m_keyControllerMap[KeyCode.Backslash];
|
||||
public KeyboardKey Minus => m_keyControllerMap[KeyCode.Minus];
|
||||
public KeyboardKey Equals_k => m_keyControllerMap[KeyCode.Equals];
|
||||
public KeyboardKey Keypad0 => m_keyControllerMap[KeyCode.Keypad0];
|
||||
public KeyboardKey Keypad1 => m_keyControllerMap[KeyCode.Keypad1];
|
||||
public KeyboardKey Keypad2 => m_keyControllerMap[KeyCode.Keypad2];
|
||||
public KeyboardKey Keypad3 => m_keyControllerMap[KeyCode.Keypad3];
|
||||
public KeyboardKey Keypad4 => m_keyControllerMap[KeyCode.Keypad4];
|
||||
public KeyboardKey Keypad5 => m_keyControllerMap[KeyCode.Keypad5];
|
||||
public KeyboardKey Keypad6 => m_keyControllerMap[KeyCode.Keypad6];
|
||||
public KeyboardKey Keypad7 => m_keyControllerMap[KeyCode.Keypad7];
|
||||
public KeyboardKey Keypad8 => m_keyControllerMap[KeyCode.Keypad8];
|
||||
public KeyboardKey Keypad9 => m_keyControllerMap[KeyCode.Keypad9];
|
||||
public KeyboardKey KeypadPeriod => m_keyControllerMap[KeyCode.KeypadPeriod];
|
||||
public KeyboardKey KeypadDivide => m_keyControllerMap[KeyCode.KeypadDivide];
|
||||
public KeyboardKey KeypadMultiply => m_keyControllerMap[KeyCode.KeypadMultiply];
|
||||
public KeyboardKey KeypadMinus => m_keyControllerMap[KeyCode.KeypadMinus];
|
||||
public KeyboardKey KeypadPlus => m_keyControllerMap[KeyCode.KeypadPlus];
|
||||
public KeyboardKey KeypadEnter => m_keyControllerMap[KeyCode.KeypadEnter];
|
||||
public KeyboardKey Numlock => m_keyControllerMap[KeyCode.Numlock];
|
||||
public KeyboardKey Print => m_keyControllerMap[KeyCode.Print];
|
||||
public KeyboardKey Insert => m_keyControllerMap[KeyCode.Insert];
|
||||
public KeyboardKey Delete => m_keyControllerMap[KeyCode.Delete];
|
||||
public KeyboardKey Home => m_keyControllerMap[KeyCode.Home];
|
||||
public KeyboardKey End => m_keyControllerMap[KeyCode.End];
|
||||
public KeyboardKey PageUp => m_keyControllerMap[KeyCode.PageUp];
|
||||
public KeyboardKey PageDown => m_keyControllerMap[KeyCode.PageDown];
|
||||
public KeyboardKey Pause => m_keyControllerMap[KeyCode.Pause];
|
||||
public KeyboardKey ScrollLock => m_keyControllerMap[KeyCode.ScrollLock];
|
||||
}
|
||||
#endregion
|
||||
}
|
@ -1,54 +1,22 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace AxibugEmuOnline.Client.InputDevices
|
||||
namespace AxibugEmuOnline.Client.InputDevices
|
||||
{
|
||||
public class PSVController_D : InputDevice_D
|
||||
{
|
||||
/// <summary> × </summary>
|
||||
public Button_C Cross { get; private set; }
|
||||
/// <summary> ○ </summary>
|
||||
public Button_C Circle { get; private set; }
|
||||
/// <summary> □ </summary>
|
||||
public Button_C Square { get; private set; }
|
||||
/// <summary> △ </summary>
|
||||
public Button_C Triangle { get; private set; }
|
||||
public Button_C L { get; private set; }
|
||||
public Button_C R { get; private set; }
|
||||
public Button_C Select { get; private set; }
|
||||
public Button_C Start { get; private set; }
|
||||
public Button_C Up { get; private set; }
|
||||
public Button_C Right { get; private set; }
|
||||
public Button_C Down { get; private set; }
|
||||
public Button_C Left { get; private set; }
|
||||
public Stick_C LeftStick { get; private set; }
|
||||
public Stick_C RightStick { get; private set; }
|
||||
public Button_C Cross;
|
||||
public Button_C Circle;
|
||||
public Button_C Square;
|
||||
public Button_C Triangle;
|
||||
public Button_C L;
|
||||
public Button_C R;
|
||||
public Button_C Select;
|
||||
public Button_C Start;
|
||||
public Button_C Up;
|
||||
public Button_C Right;
|
||||
public Button_C Down;
|
||||
public Button_C Left;
|
||||
public Stick_C LeftStick;
|
||||
public Stick_C RightStick;
|
||||
|
||||
public PSVController_D(InputResolver resolver) : base(resolver) { }
|
||||
|
||||
protected override List<InputControl_D> DefineControls()
|
||||
{
|
||||
List<InputControl_D> result = new List<InputControl_D>();
|
||||
|
||||
Cross = new Button_C(this, "X");
|
||||
Circle = new Button_C(this, "⭕");
|
||||
Square = new Button_C(this, "□");
|
||||
Triangle = new Button_C(this, "△");
|
||||
|
||||
L = new Button_C(this, "L");
|
||||
R = new Button_C(this, "R");
|
||||
|
||||
Select = new Button_C(this, "SELECT");
|
||||
Start = new Button_C(this, "START");
|
||||
|
||||
Up = new Button_C(this, "UP");
|
||||
Right = new Button_C(this, "RIGHT");
|
||||
Down = new Button_C(this, "DOWN");
|
||||
Left = new Button_C(this, "LEFT");
|
||||
|
||||
LeftStick = new Stick_C(this, nameof(LeftStick));
|
||||
RightStick = new Stick_C(this, nameof(RightStick));
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
@ -56,9 +56,9 @@ namespace AxibugEmuOnline.Client.InputDevices
|
||||
OnDeviceConnected?.Invoke(connectDevice);
|
||||
}
|
||||
|
||||
public abstract bool CheckPerforming<CONTROLLER>(CONTROLLER control) where CONTROLLER : InputControl_D;
|
||||
public abstract Vector2 GetVector2<CONTROLLER>(CONTROLLER control) where CONTROLLER : InputControl_D;
|
||||
public abstract float GetFloat<CONTROLLER>(CONTROLLER control) where CONTROLLER : InputControl_D;
|
||||
public abstract bool CheckPerforming<CONTROLLER>(CONTROLLER control) where CONTROLLER : InputControl_C;
|
||||
public abstract Vector2 GetVector2<CONTROLLER>(CONTROLLER control) where CONTROLLER : InputControl_C;
|
||||
public abstract float GetFloat<CONTROLLER>(CONTROLLER control) where CONTROLLER : InputControl_C;
|
||||
/// <summary>
|
||||
/// 获得输入设备的唯一名称
|
||||
/// </summary>
|
||||
|
@ -21,7 +21,13 @@ namespace AxibugEmuOnline.Client.InputDevices.ForInputSystem
|
||||
private void AddDevice(InputDevice ipdev)
|
||||
{
|
||||
InputDevice_D newDevice = null;
|
||||
if (ipdev is Keyboard) newDevice = new Keyboard_D(this);
|
||||
if (ipdev is Keyboard)
|
||||
{
|
||||
newDevice = new Keyboard_D(this);
|
||||
AddKeyboardMapper((Keyboard_D)newDevice, (Keyboard)ipdev);
|
||||
}
|
||||
else if (ipdev is Gamepad) newDevice = new GamePad_D(this);
|
||||
|
||||
if (newDevice != null)
|
||||
{
|
||||
m_devices.Add(ipdev, newDevice);
|
||||
@ -35,12 +41,23 @@ namespace AxibugEmuOnline.Client.InputDevices.ForInputSystem
|
||||
{
|
||||
m_devices.Remove(ipdev);
|
||||
RaiseDeviceLost(device);
|
||||
|
||||
if (device is Keyboard_D)
|
||||
{
|
||||
RemoveKeyboardMapper((Keyboard_D)device);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private T GetInputSystemDevice<T>(InputDevice_D device) where T : InputDevice
|
||||
{
|
||||
m_devices.TryGetKey(device, out var ipDev);
|
||||
return ipDev as T;
|
||||
}
|
||||
|
||||
public override string GetDeviceName(InputDevice_D inputDevice)
|
||||
{
|
||||
m_devices.TryGetKey(inputDevice, out var ipdev);
|
||||
var ipdev = GetInputSystemDevice<InputDevice>(inputDevice);
|
||||
Debug.Assert(ipdev != null, "不能对已离线的设备获取名称");
|
||||
|
||||
return $"{ipdev.description.deviceClass}_{ipdev.description.interfaceName}_{ipdev.deviceId}";
|
||||
@ -51,12 +68,12 @@ namespace AxibugEmuOnline.Client.InputDevices.ForInputSystem
|
||||
return m_devices.TryGetKey(device, out var _);
|
||||
}
|
||||
|
||||
private void IP_onDeviceChange(InputDevice device, UnityEngine.InputSystem.InputDeviceChange changeType)
|
||||
private void IP_onDeviceChange(InputDevice device, InputDeviceChange changeType)
|
||||
{
|
||||
switch (changeType)
|
||||
{
|
||||
case UnityEngine.InputSystem.InputDeviceChange.Added: AddDevice(device); break;
|
||||
case UnityEngine.InputSystem.InputDeviceChange.Removed: RemoveDevice(device); break;
|
||||
case InputDeviceChange.Added: AddDevice(device); break;
|
||||
case InputDeviceChange.Removed: RemoveDevice(device); break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -69,22 +86,11 @@ namespace AxibugEmuOnline.Client.InputDevices.ForInputSystem
|
||||
{
|
||||
if (control.Device is Keyboard_D keyboard)
|
||||
{
|
||||
if (control is Keyboard_D.KeyboardKey key)
|
||||
{
|
||||
if (m_devices.TryGetKey(keyboard, out var ipdev))
|
||||
{
|
||||
var ipKeyboard = ipdev as Keyboard;
|
||||
if (ipKeyboard == null) return false;
|
||||
|
||||
var k = GetIPKeyboardKey(ipKeyboard, key.m_keycode);
|
||||
return k.isPressed;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
var ipKeyboard = GetInputSystemDevice<Keyboard>(keyboard);
|
||||
var k = GetIPKeyboardKey(ipKeyboard, keyboard, control);
|
||||
return k.isPressed;
|
||||
}
|
||||
|
||||
|
||||
throw new System.NotImplementedException();
|
||||
}
|
||||
|
||||
@ -98,130 +104,132 @@ namespace AxibugEmuOnline.Client.InputDevices.ForInputSystem
|
||||
throw new System.NotImplementedException();
|
||||
}
|
||||
|
||||
static ButtonControl GetIPKeyboardKey(Keyboard keyboard, KeyCode key)
|
||||
ButtonControl GetIPKeyboardKey(Keyboard ipKeyboard, Keyboard_D keyboard, InputControl_C key)
|
||||
{
|
||||
switch (key)
|
||||
var mapper = m_keyboardMapper[keyboard];
|
||||
mapper.TryGetValue(key, out ButtonControl inputBtn);
|
||||
if (inputBtn != null)
|
||||
return inputBtn;
|
||||
else
|
||||
{
|
||||
// 字母键(A-Z)
|
||||
case KeyCode.A: return keyboard.aKey;
|
||||
case KeyCode.B: return keyboard.bKey;
|
||||
case KeyCode.C: return keyboard.cKey;
|
||||
case KeyCode.D: return keyboard.dKey;
|
||||
case KeyCode.E: return keyboard.eKey;
|
||||
case KeyCode.F: return keyboard.fKey;
|
||||
case KeyCode.G: return keyboard.gKey;
|
||||
case KeyCode.H: return keyboard.hKey;
|
||||
case KeyCode.I: return keyboard.iKey;
|
||||
case KeyCode.J: return keyboard.jKey;
|
||||
case KeyCode.K: return keyboard.kKey;
|
||||
case KeyCode.L: return keyboard.lKey;
|
||||
case KeyCode.M: return keyboard.mKey;
|
||||
case KeyCode.N: return keyboard.nKey;
|
||||
case KeyCode.O: return keyboard.oKey;
|
||||
case KeyCode.P: return keyboard.pKey;
|
||||
case KeyCode.Q: return keyboard.qKey;
|
||||
case KeyCode.R: return keyboard.rKey;
|
||||
case KeyCode.S: return keyboard.sKey;
|
||||
case KeyCode.T: return keyboard.tKey;
|
||||
case KeyCode.U: return keyboard.uKey;
|
||||
case KeyCode.V: return keyboard.vKey;
|
||||
case KeyCode.W: return keyboard.wKey;
|
||||
case KeyCode.X: return keyboard.xKey;
|
||||
case KeyCode.Y: return keyboard.yKey;
|
||||
case KeyCode.Z: return keyboard.zKey;
|
||||
|
||||
// 数字键(0-9)
|
||||
case KeyCode.Alpha0: return keyboard.digit0Key;
|
||||
case KeyCode.Alpha1: return keyboard.digit1Key;
|
||||
case KeyCode.Alpha2: return keyboard.digit2Key;
|
||||
case KeyCode.Alpha3: return keyboard.digit3Key;
|
||||
case KeyCode.Alpha4: return keyboard.digit4Key;
|
||||
case KeyCode.Alpha5: return keyboard.digit5Key;
|
||||
case KeyCode.Alpha6: return keyboard.digit6Key;
|
||||
case KeyCode.Alpha7: return keyboard.digit7Key;
|
||||
case KeyCode.Alpha8: return keyboard.digit8Key;
|
||||
case KeyCode.Alpha9: return keyboard.digit9Key;
|
||||
|
||||
// 小键盘
|
||||
case KeyCode.Keypad0: return keyboard.numpad0Key;
|
||||
case KeyCode.Keypad1: return keyboard.numpad1Key;
|
||||
case KeyCode.Keypad2: return keyboard.numpad2Key;
|
||||
case KeyCode.Keypad3: return keyboard.numpad3Key;
|
||||
case KeyCode.Keypad4: return keyboard.numpad4Key;
|
||||
case KeyCode.Keypad5: return keyboard.numpad5Key;
|
||||
case KeyCode.Keypad6: return keyboard.numpad6Key;
|
||||
case KeyCode.Keypad7: return keyboard.numpad7Key;
|
||||
case KeyCode.Keypad8: return keyboard.numpad8Key;
|
||||
case KeyCode.Keypad9: return keyboard.numpad9Key;
|
||||
case KeyCode.KeypadPeriod: return keyboard.numpadPeriodKey;
|
||||
case KeyCode.KeypadDivide: return keyboard.numpadDivideKey;
|
||||
case KeyCode.KeypadMultiply: return keyboard.numpadMultiplyKey;
|
||||
case KeyCode.KeypadMinus: return keyboard.numpadMinusKey;
|
||||
case KeyCode.KeypadPlus: return keyboard.numpadPlusKey;
|
||||
case KeyCode.KeypadEnter: return keyboard.numpadEnterKey;
|
||||
case KeyCode.KeypadEquals: return keyboard.numpadEqualsKey;
|
||||
|
||||
// 功能键(F1-F15)
|
||||
case KeyCode.F1: return keyboard.f1Key;
|
||||
case KeyCode.F2: return keyboard.f2Key;
|
||||
case KeyCode.F3: return keyboard.f3Key;
|
||||
case KeyCode.F4: return keyboard.f4Key;
|
||||
case KeyCode.F5: return keyboard.f5Key;
|
||||
case KeyCode.F6: return keyboard.f6Key;
|
||||
case KeyCode.F7: return keyboard.f7Key;
|
||||
case KeyCode.F8: return keyboard.f8Key;
|
||||
case KeyCode.F9: return keyboard.f9Key;
|
||||
case KeyCode.F10: return keyboard.f10Key;
|
||||
case KeyCode.F11: return keyboard.f11Key;
|
||||
case KeyCode.F12: return keyboard.f12Key;
|
||||
|
||||
// 方向键
|
||||
case KeyCode.UpArrow: return keyboard.upArrowKey;
|
||||
case KeyCode.DownArrow: return keyboard.downArrowKey;
|
||||
case KeyCode.LeftArrow: return keyboard.leftArrowKey;
|
||||
case KeyCode.RightArrow: return keyboard.rightArrowKey;
|
||||
|
||||
// 符号键
|
||||
case KeyCode.Space: return keyboard.spaceKey;
|
||||
case KeyCode.Backspace: return keyboard.backspaceKey;
|
||||
case KeyCode.Tab: return keyboard.tabKey;
|
||||
case KeyCode.Return: return keyboard.enterKey;
|
||||
case KeyCode.Escape: return keyboard.escapeKey;
|
||||
case KeyCode.LeftShift: return keyboard.leftShiftKey;
|
||||
case KeyCode.RightShift: return keyboard.rightShiftKey;
|
||||
case KeyCode.LeftControl: return keyboard.leftCtrlKey;
|
||||
case KeyCode.RightControl: return keyboard.rightCtrlKey;
|
||||
case KeyCode.LeftAlt: return keyboard.leftAltKey;
|
||||
case KeyCode.RightAlt: return keyboard.rightAltKey;
|
||||
case KeyCode.LeftCommand: return keyboard.leftCommandKey; // macOS Command键
|
||||
case KeyCode.RightCommand: return keyboard.rightCommandKey;
|
||||
case KeyCode.CapsLock: return keyboard.capsLockKey;
|
||||
case KeyCode.Numlock: return keyboard.numLockKey;
|
||||
case KeyCode.ScrollLock: return keyboard.scrollLockKey;
|
||||
case KeyCode.Print: return keyboard.printScreenKey;
|
||||
case KeyCode.Pause: return keyboard.pauseKey;
|
||||
case KeyCode.Insert: return keyboard.insertKey;
|
||||
case KeyCode.Home: return keyboard.homeKey;
|
||||
case KeyCode.End: return keyboard.endKey;
|
||||
case KeyCode.PageUp: return keyboard.pageUpKey;
|
||||
case KeyCode.PageDown: return keyboard.pageDownKey;
|
||||
case KeyCode.Delete: return keyboard.deleteKey;
|
||||
case KeyCode.Comma: return keyboard.commaKey;
|
||||
case KeyCode.Period: return keyboard.periodKey;
|
||||
case KeyCode.Slash: return keyboard.slashKey;
|
||||
case KeyCode.BackQuote: return keyboard.backquoteKey;
|
||||
case KeyCode.Minus: return keyboard.minusKey;
|
||||
case KeyCode.Equals: return keyboard.equalsKey;
|
||||
case KeyCode.LeftBracket: return keyboard.leftBracketKey;
|
||||
case KeyCode.RightBracket: return keyboard.rightBracketKey;
|
||||
case KeyCode.Backslash: return keyboard.backslashKey;
|
||||
case KeyCode.Semicolon: return keyboard.semicolonKey;
|
||||
case KeyCode.Quote: return keyboard.quoteKey;
|
||||
default:
|
||||
throw new System.NotImplementedException($"Not Find KeyCode Mapper Code from {key}");
|
||||
throw new System.Exception($"not found keyboard mapper setting : {key}");
|
||||
}
|
||||
}
|
||||
Dictionary<Keyboard_D, Dictionary<InputControl_C, ButtonControl>> m_keyboardMapper = new Dictionary<Keyboard_D, Dictionary<InputControl_C, ButtonControl>>();
|
||||
void AddKeyboardMapper(Keyboard_D keyboard_d, Keyboard ipkeyboard)
|
||||
{
|
||||
m_keyboardMapper.Add(keyboard_d, new Dictionary<InputControl_C, ButtonControl>());
|
||||
var mapper = m_keyboardMapper[keyboard_d];
|
||||
|
||||
mapper.Add(keyboard_d.A, ipkeyboard.aKey);
|
||||
mapper.Add(keyboard_d.B, ipkeyboard.bKey);
|
||||
mapper.Add(keyboard_d.C, ipkeyboard.cKey);
|
||||
mapper.Add(keyboard_d.D, ipkeyboard.dKey);
|
||||
mapper.Add(keyboard_d.E, ipkeyboard.eKey);
|
||||
mapper.Add(keyboard_d.F, ipkeyboard.fKey);
|
||||
mapper.Add(keyboard_d.G, ipkeyboard.gKey);
|
||||
mapper.Add(keyboard_d.H, ipkeyboard.hKey);
|
||||
mapper.Add(keyboard_d.I, ipkeyboard.iKey);
|
||||
mapper.Add(keyboard_d.J, ipkeyboard.jKey);
|
||||
mapper.Add(keyboard_d.K, ipkeyboard.kKey);
|
||||
mapper.Add(keyboard_d.L, ipkeyboard.lKey);
|
||||
mapper.Add(keyboard_d.M, ipkeyboard.mKey);
|
||||
mapper.Add(keyboard_d.N, ipkeyboard.nKey);
|
||||
mapper.Add(keyboard_d.O, ipkeyboard.oKey);
|
||||
mapper.Add(keyboard_d.P, ipkeyboard.pKey);
|
||||
mapper.Add(keyboard_d.Q, ipkeyboard.qKey);
|
||||
mapper.Add(keyboard_d.R, ipkeyboard.rKey);
|
||||
mapper.Add(keyboard_d.S, ipkeyboard.sKey);
|
||||
mapper.Add(keyboard_d.T, ipkeyboard.tKey);
|
||||
mapper.Add(keyboard_d.U, ipkeyboard.uKey);
|
||||
mapper.Add(keyboard_d.V, ipkeyboard.vKey);
|
||||
mapper.Add(keyboard_d.W, ipkeyboard.wKey);
|
||||
mapper.Add(keyboard_d.X, ipkeyboard.xKey);
|
||||
mapper.Add(keyboard_d.Y, ipkeyboard.yKey);
|
||||
mapper.Add(keyboard_d.Z, ipkeyboard.zKey);
|
||||
mapper.Add(keyboard_d.Alpha0, ipkeyboard.digit0Key);
|
||||
mapper.Add(keyboard_d.Alpha1, ipkeyboard.digit1Key);
|
||||
mapper.Add(keyboard_d.Alpha2, ipkeyboard.digit2Key);
|
||||
mapper.Add(keyboard_d.Alpha3, ipkeyboard.digit3Key);
|
||||
mapper.Add(keyboard_d.Alpha4, ipkeyboard.digit4Key);
|
||||
mapper.Add(keyboard_d.Alpha5, ipkeyboard.digit5Key);
|
||||
mapper.Add(keyboard_d.Alpha6, ipkeyboard.digit6Key);
|
||||
mapper.Add(keyboard_d.Alpha7, ipkeyboard.digit7Key);
|
||||
mapper.Add(keyboard_d.Alpha8, ipkeyboard.digit8Key);
|
||||
mapper.Add(keyboard_d.Alpha9, ipkeyboard.digit9Key);
|
||||
mapper.Add(keyboard_d.Keypad0, ipkeyboard.numpad0Key);
|
||||
mapper.Add(keyboard_d.Keypad1, ipkeyboard.numpad1Key);
|
||||
mapper.Add(keyboard_d.Keypad2, ipkeyboard.numpad2Key);
|
||||
mapper.Add(keyboard_d.Keypad3, ipkeyboard.numpad3Key);
|
||||
mapper.Add(keyboard_d.Keypad4, ipkeyboard.numpad4Key);
|
||||
mapper.Add(keyboard_d.Keypad5, ipkeyboard.numpad5Key);
|
||||
mapper.Add(keyboard_d.Keypad6, ipkeyboard.numpad6Key);
|
||||
mapper.Add(keyboard_d.Keypad7, ipkeyboard.numpad7Key);
|
||||
mapper.Add(keyboard_d.Keypad8, ipkeyboard.numpad8Key);
|
||||
mapper.Add(keyboard_d.Keypad9, ipkeyboard.numpad9Key);
|
||||
mapper.Add(keyboard_d.KeypadPeriod, ipkeyboard.numpadPeriodKey);
|
||||
mapper.Add(keyboard_d.KeypadDivide, ipkeyboard.numpadDivideKey);
|
||||
mapper.Add(keyboard_d.KeypadMultiply, ipkeyboard.numpadMultiplyKey);
|
||||
mapper.Add(keyboard_d.KeypadMinus, ipkeyboard.numpadMinusKey);
|
||||
mapper.Add(keyboard_d.KeypadPlus, ipkeyboard.numpadPlusKey);
|
||||
mapper.Add(keyboard_d.KeypadEnter, ipkeyboard.numpadEnterKey);
|
||||
mapper.Add(keyboard_d.F1, ipkeyboard.f1Key);
|
||||
mapper.Add(keyboard_d.F2, ipkeyboard.f2Key);
|
||||
mapper.Add(keyboard_d.F3, ipkeyboard.f3Key);
|
||||
mapper.Add(keyboard_d.F4, ipkeyboard.f4Key);
|
||||
mapper.Add(keyboard_d.F5, ipkeyboard.f5Key);
|
||||
mapper.Add(keyboard_d.F6, ipkeyboard.f6Key);
|
||||
mapper.Add(keyboard_d.F7, ipkeyboard.f7Key);
|
||||
mapper.Add(keyboard_d.F8, ipkeyboard.f8Key);
|
||||
mapper.Add(keyboard_d.F9, ipkeyboard.f9Key);
|
||||
mapper.Add(keyboard_d.F10, ipkeyboard.f10Key);
|
||||
mapper.Add(keyboard_d.F11, ipkeyboard.f11Key);
|
||||
mapper.Add(keyboard_d.F12, ipkeyboard.f12Key);
|
||||
mapper.Add(keyboard_d.UpArrow, ipkeyboard.upArrowKey);
|
||||
mapper.Add(keyboard_d.DownArrow, ipkeyboard.downArrowKey);
|
||||
mapper.Add(keyboard_d.LeftArrow, ipkeyboard.leftArrowKey);
|
||||
mapper.Add(keyboard_d.RightArrow, ipkeyboard.rightArrowKey);
|
||||
mapper.Add(keyboard_d.Space, ipkeyboard.spaceKey);
|
||||
mapper.Add(keyboard_d.Backspace, ipkeyboard.backspaceKey);
|
||||
mapper.Add(keyboard_d.Tab, ipkeyboard.tabKey);
|
||||
mapper.Add(keyboard_d.Return, ipkeyboard.enterKey);
|
||||
mapper.Add(keyboard_d.Escape, ipkeyboard.escapeKey);
|
||||
mapper.Add(keyboard_d.LeftShift, ipkeyboard.leftShiftKey);
|
||||
mapper.Add(keyboard_d.RightShift, ipkeyboard.rightShiftKey);
|
||||
mapper.Add(keyboard_d.LeftControl, ipkeyboard.leftCtrlKey);
|
||||
mapper.Add(keyboard_d.RightControl, ipkeyboard.rightCtrlKey);
|
||||
mapper.Add(keyboard_d.LeftAlt, ipkeyboard.leftAltKey);
|
||||
mapper.Add(keyboard_d.RightAlt, ipkeyboard.rightAltKey);
|
||||
mapper.Add(keyboard_d.LeftCommand, ipkeyboard.leftCommandKey);
|
||||
mapper.Add(keyboard_d.RightCommand, ipkeyboard.rightCommandKey);
|
||||
mapper.Add(keyboard_d.CapsLock, ipkeyboard.capsLockKey);
|
||||
mapper.Add(keyboard_d.Numlock, ipkeyboard.numLockKey);
|
||||
mapper.Add(keyboard_d.ScrollLock, ipkeyboard.scrollLockKey);
|
||||
mapper.Add(keyboard_d.Print, ipkeyboard.printScreenKey);
|
||||
mapper.Add(keyboard_d.Pause, ipkeyboard.pauseKey);
|
||||
mapper.Add(keyboard_d.Insert, ipkeyboard.insertKey);
|
||||
mapper.Add(keyboard_d.Home, ipkeyboard.homeKey);
|
||||
mapper.Add(keyboard_d.End, ipkeyboard.endKey);
|
||||
mapper.Add(keyboard_d.PageUp, ipkeyboard.pageUpKey);
|
||||
mapper.Add(keyboard_d.PageDown, ipkeyboard.pageDownKey);
|
||||
mapper.Add(keyboard_d.Delete, ipkeyboard.deleteKey);
|
||||
mapper.Add(keyboard_d.Comma, ipkeyboard.commaKey);
|
||||
mapper.Add(keyboard_d.Period, ipkeyboard.periodKey);
|
||||
mapper.Add(keyboard_d.Slash, ipkeyboard.slashKey);
|
||||
mapper.Add(keyboard_d.BackQuote, ipkeyboard.backquoteKey);
|
||||
mapper.Add(keyboard_d.Minus, ipkeyboard.minusKey);
|
||||
mapper.Add(keyboard_d.Equals_k, ipkeyboard.equalsKey);
|
||||
mapper.Add(keyboard_d.LeftBracket, ipkeyboard.leftBracketKey);
|
||||
mapper.Add(keyboard_d.RightBracket, ipkeyboard.rightBracketKey);
|
||||
mapper.Add(keyboard_d.Backslash, ipkeyboard.backslashKey);
|
||||
mapper.Add(keyboard_d.Semicolon, ipkeyboard.semicolonKey);
|
||||
mapper.Add(keyboard_d.Quote, ipkeyboard.quoteKey);
|
||||
}
|
||||
void RemoveKeyboardMapper(Keyboard_D keyboard_d)
|
||||
{
|
||||
m_keyboardMapper.Remove(keyboard_d);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user