private static bool ComputeState(HardwareInput hardwareInput, HardwareAction hardwareAction) { var hardwareInputVariant = hardwareAction.HardwareInputVariant; switch (hardwareInputVariant.CurrentVariant) { case HardwareInputVariant.Variant.Keyboard: return(hardwareInput.KeyboardInput[hardwareInputVariant.AsKeyboard()]); case HardwareInputVariant.Variant.Mouse: switch (hardwareInputVariant.AsMouse()) { case HardwareInputVariant.MouseVariant.LeftButton: return(hardwareInput.MouseInput.LeftButton); case HardwareInputVariant.MouseVariant.MiddleButton: return(hardwareInput.MouseInput.MiddleButton); case HardwareInputVariant.MouseVariant.RightButton: return(hardwareInput.MouseInput.RightButton); case HardwareInputVariant.MouseVariant.XButton1: return(hardwareInput.MouseInput.XButton1); case HardwareInputVariant.MouseVariant.XButton2: return(hardwareInput.MouseInput.XButton2); default: throw new ArgumentOutOfRangeException(); } default: throw new ArgumentOutOfRangeException(); } }
/// <summary> /// Load the hardware data and maps existing functions with the hardware /// </summary> public static void InitHardware() { HardwareData hardware = HardwareDataManager.LoadData(); HardwareAction actions = new HardwareAction(hardware); InputDispatcher.RegisterHardware(actions.HardwareCreator()); }