addon for remapping inputs
| -rw-r--r-- | README.md | 2 | ||||
| -rw-r--r-- | Test.gd | 2 | ||||
| -rw-r--r-- | Test.tscn | 4 | ||||
| -rw-r--r-- | addons/remap/ActionIcons.gd | 2 | ||||
| -rw-r--r-- | addons/remap/ActionLabel.gd | 3 | ||||
| -rw-r--r-- | addons/remap/README.md | 2 | ||||
| -rw-r--r-- | addons/remap/RemapButton.gd (renamed from addons/remap/InteractiveActionLabel.gd) | 41 | ||||
| -rw-r--r-- | addons/remap/package.json | 2 | ||||
| -rw-r--r-- | project.godot | 12 |
9 files changed, 43 insertions, 27 deletions
@@ -9,7 +9,7 @@ A utility for parsing command line arguments for godot. ## Usage ```gdscript -var label = InteractiveActionLabel.new() +var label = RemapButton.new() label.action = "ui_left" label._name = "left" add_child(label) @@ -2,7 +2,7 @@ extends Control func _ready(): - var label = InteractiveActionLabel.new() + var label = RemapButton.new() label.action = "ui_left" label._name = "left" add_child(label) @@ -17,7 +17,3 @@ script = ExtResource( 4 ) _name = " lef" action = "ui_left" icon_size = Vector2( 10, 10 ) - -[node name="Label" type="Label" parent="."] -margin_right = 40.0 -margin_bottom = 14.0 diff --git a/addons/remap/ActionIcons.gd b/addons/remap/ActionIcons.gd index 21d733c..8bd3e2d 100644 --- a/addons/remap/ActionIcons.gd +++ b/addons/remap/ActionIcons.gd @@ -2,7 +2,7 @@ extends HBoxContainer class_name ActionIcons export(String) var action: String -export(Vector2) var size := Vector2(30, 30) +export(Vector2) var size := Vector2(20, 20) export(bool) var override_font := true const font = preload("./PromptFont.tres") diff --git a/addons/remap/ActionLabel.gd b/addons/remap/ActionLabel.gd index 2066174..d4fd8a9 100644 --- a/addons/remap/ActionLabel.gd +++ b/addons/remap/ActionLabel.gd @@ -1,10 +1,9 @@ -tool extends HBoxContainer class_name ActionLabel export(String) var _name: String export(String) var action: String -export(Vector2) var icon_size := Vector2(30, 30) +export(Vector2) var icon_size := Vector2(20, 20) export(bool) var override_font := true var icons := ActionIcons.new() diff --git a/addons/remap/README.md b/addons/remap/README.md index a29ce5e..157dafa 100644 --- a/addons/remap/README.md +++ b/addons/remap/README.md @@ -5,7 +5,7 @@ A utility for parsing command line arguments for godot. ## Usage ```gdscript -var label = InteractiveActionLabel.new() +var label = RemapButton.new() label.action = "ui_left" label._name = "left" add_child(label) diff --git a/addons/remap/InteractiveActionLabel.gd b/addons/remap/RemapButton.gd index febdb57..c1310e8 100644 --- a/addons/remap/InteractiveActionLabel.gd +++ b/addons/remap/RemapButton.gd @@ -1,5 +1,5 @@ -extends ActionLabel -class_name InteractiveActionLabel +extends HBoxContainer +class_name RemapButton # if this is overriden, the new scene must # - have a confirmed(action: InputEvent) signal @@ -7,13 +7,22 @@ class_name InteractiveActionLabel # - free itself when one of them is emitted export(PackedScene) var popup = preload("./KeySelector.tscn") -var clear: Button export(bool) var clear_button := true export(String) var clear_text := "✗" +export(String) var _name: String +export(String) var action: String +export(Vector2) var icon_size := Vector2(20, 20) +export(bool) var override_font := true +var icons := ActionIcons.new() +var button := Button.new() +var clear: Button -func _ready(): +func _ready() -> void: + rect_min_size = icon_size + SaveLoadUtils.create_dir(SaveLoadUtils.dir) + SaveLoadUtils.load2inputmap(action) if clear_button: clear = Button.new() clear.text = clear_text @@ -21,17 +30,29 @@ func _ready(): clear.size_flags_vertical = SIZE_EXPAND_FILL clear.rect_min_size = icon_size add_child(clear) - move_child(clear, 0) clear.visible = InputMap.get_action_list(action).size() > 0 if override_font: clear.add_font_override("font", preload("./PromptFont.tres")) + button.text = _name + button.rect_min_size = icon_size + button.size_flags_vertical = SIZE_EXPAND_FILL + button.connect("pressed", self, "_pressed") + var spacer := Control.new() + spacer.size_flags_horizontal = Control.SIZE_EXPAND_FILL + icons.action = action + icons.size = icon_size + icons.override_font = override_font + icons._update() + add_child(button) + add_child(spacer) + add_child(icons) + -func _gui_input(event: InputEvent): - if event is InputEventMouseButton and event.button_index == BUTTON_LEFT and event.pressed: - var selector = popup.instance() - add_child(selector) - selector.connect("confirmed", self, "_on_key_selected") +func _pressed(): + var selector = popup.instance() + add_child(selector) + selector.connect("confirmed", self, "_on_key_selected") func _on_key_selected(event: InputEvent): diff --git a/addons/remap/package.json b/addons/remap/package.json index b0d136d..09be8a7 100644 --- a/addons/remap/package.json +++ b/addons/remap/package.json @@ -1,6 +1,6 @@ { "name": "@bendn/remap", - "version": "1.2.0", + "version": "1.2.2", "description": "godot input remapping", "main": "InteractiveActionLabel.gd", "scripts": { diff --git a/project.godot b/project.godot index fd08610..a758d14 100644 --- a/project.godot +++ b/project.godot @@ -24,16 +24,16 @@ _global_script_classes=[ { "language": "GDScript", "path": "res://addons/remap/IconMap.gd" }, { -"base": "ActionLabel", -"class": "InteractiveActionLabel", -"language": "GDScript", -"path": "res://addons/remap/InteractiveActionLabel.gd" -}, { "base": "Node", "class": "KeySelector", "language": "GDScript", "path": "res://addons/remap/KeySelector.gd" }, { +"base": "HBoxContainer", +"class": "RemapButton", +"language": "GDScript", +"path": "res://addons/remap/RemapButton.gd" +}, { "base": "Reference", "class": "RemapUtilities", "language": "GDScript", @@ -48,8 +48,8 @@ _global_script_class_icons={ "ActionIcons": "", "ActionLabel": "", "IconMap": "", -"InteractiveActionLabel": "", "KeySelector": "", +"RemapButton": "", "RemapUtilities": "", "SaveLoadUtils": "" } |