示例#1
0
        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());
        }