sauvegarde des contrôles

This commit is contained in:
2026-02-06 10:53:34 +01:00
parent 96d1a4f4dd
commit 5722fbb437
4 changed files with 41 additions and 11 deletions

View File

@@ -11,7 +11,11 @@ var is_remapping := false
set(v):
action_name = v
var events : Array[InputEvent] = InputMap.action_get_events(action_name)
event = null if events.size() == 0 else events[0]
var saved_remapped_input = get_remapped_input()
if saved_remapped_input :
event = saved_remapped_input
else :
event = null if events.size() == 0 else events[0]
update()
func update():
@@ -28,10 +32,29 @@ func _input(new_event):
new_event is InputEventKey or (new_event is InputEventMouseButton and new_event.is_pressed())
):
is_remapping = false
GameInfo.update_input(action_name, event, new_event)
event = new_event
save_remapped_input(event)
GameInfo.update_inputs()
update()
func get_remapped_input() -> InputEvent:
var existing_remapped_id : int = GameInfo.settings_data.action_remapped.find(action_name)
if existing_remapped_id != -1:
return GameInfo.settings_data.input_remapped[existing_remapped_id]
return null
func save_remapped_input(e : InputEvent = event):
var existing_remapped_id : int = GameInfo.settings_data.action_remapped.find(action_name)
if existing_remapped_id != -1:
GameInfo.settings_data.action_remapped.remove_at(existing_remapped_id)
GameInfo.settings_data.input_remapped.remove_at(existing_remapped_id)
GameInfo.settings_data.action_remapped.push_back(action_name)
GameInfo.settings_data.input_remapped.push_back(e)
func _on_button_button_down():
if !is_remapping:
is_remapping = true