Ejemplo n.º 1
0
        private void LoadInputMapConfiguration(string configPath, string defaultPath)
        {
            ConfigFile configFile = new ConfigFile();
            Directory  directory  = new Directory();
            Dictionary <string, Dictionary <string, object> > config = this.LoadConfig(configPath, defaultPath, configFile, directory);

            foreach (var item in config)
            {
                var action   = item.Key;
                var value    = item.Value;
                var deadzone = value.ContainsKey("deadzone") ? (float)value["deadzone"] : 0.5f;
                var gamepad  = value.ContainsKey("GamePad") ? (int)value["GamePad"] : -1;
                var keyboard = value.ContainsKey("Keyboard") ? value["Keyboard"] as string : "";
                if (action != "" && gamepad != -1 && keyboard != "")
                {
                    if (!InputMap.HasAction(action))
                    {
                        InputMap.AddAction(action);
                    }
                    var inputKey = new InputEventKey();
                    inputKey.Scancode = (uint)OS.FindScancodeFromString(keyboard);
                    InputMap.ActionAddEvent(action, inputKey);
                    var inputjoy = new InputEventJoypadButton();
                    inputjoy.ButtonIndex = gamepad;
                    InputMap.ActionAddEvent(action, inputjoy);
                    InputMap.ActionSetDeadzone(action, deadzone);
                }
            }
        }