diff options
Diffstat (limited to 'client/menu/settings/input')
-rw-r--r-- | client/menu/settings/input/input_manager.gd | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/client/menu/settings/input/input_manager.gd b/client/menu/settings/input/input_manager.gd index 14e1b99c..b0b8170d 100644 --- a/client/menu/settings/input/input_manager.gd +++ b/client/menu/settings/input/input_manager.gd @@ -37,15 +37,20 @@ func input_map_to_settings_dictionary(map: Dictionary) -> Dictionary: settings_dict[k] = InputSetting.new(k, events) return settings_dict -func change_input_map_action(action_name: String, event: InputEvent, save: bool = true): +func settings_dictionary_to_input_map(settings: Dictionary) -> Dictionary: + var map := {} + for k in settings.keys(): + var setting: InputSetting = settings[k] + map[k] = setting.get_value() + return map + +func change_input_map_action(action_name: String, events: Array, save: bool = true): if !InputMap.has_action(action_name): push_error("Action %s does not exist" % action_name, false) return # Erase previous keybindings - var events = InputMap.action_get_events(action_name).duplicate(true) InputMap.action_erase_events(action_name) # Add new keybindings - events[0] = event for e in events: InputMap.action_add_event(action_name, e) @@ -65,7 +70,7 @@ func apply_input_map(new_input_map: Dictionary): # Apply keybindings for k in input_map.keys(): - change_input_map_action(k, input_map[k][0], false) + change_input_map_action(k, input_map[k], false) func reset_input_map(): Global.set_setting("input_map", default_input_map.duplicate()) |