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); } } }