class_name InputRegistry #declaration d'actions dans l'InputMap depuis le code : une seule implementation (avant : _ensure_action copie dans ThrowState et MountRider, #et des blocs identiques dans AimState/ThrowState pour throw_action). #ne fait rien si l'action existe deja (par exemple definie dans Projet > Parametres du projet > Map des entrees) static func ensure(action : StringName, events : Array) -> void: if InputMap.has_action(action): return InputMap.add_action(action) for event in events: InputMap.action_add_event(action, event) #---------- fabriques d'evenements ---------- static func pad_button(button : JoyButton) -> InputEventJoypadButton: var event := InputEventJoypadButton.new() event.button_index = button return event static func pad_axis(axis : JoyAxis, value : float) -> InputEventJoypadMotion: var event := InputEventJoypadMotion.new() event.axis = axis event.axis_value = value return event static func mouse(button : MouseButton) -> InputEventMouseButton: var event := InputEventMouseButton.new() event.button_index = button return event static func key(keycode : Key) -> InputEventKey: var event := InputEventKey.new() event.physical_keycode = keycode return event