addon for remapping inputs
-rw-r--r--README.md2
-rw-r--r--Test.gd2
-rw-r--r--Test.tscn4
-rw-r--r--addons/remap/ActionIcons.gd2
-rw-r--r--addons/remap/ActionLabel.gd3
-rw-r--r--addons/remap/README.md2
-rw-r--r--addons/remap/RemapButton.gd (renamed from addons/remap/InteractiveActionLabel.gd)41
-rw-r--r--addons/remap/package.json2
-rw-r--r--project.godot12
9 files changed, 43 insertions, 27 deletions
diff --git a/README.md b/README.md
index 08d8bb3..ee762ce 100644
--- a/README.md
+++ b/README.md
@@ -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)
diff --git a/Test.gd b/Test.gd
index 91e74f8..539ff35 100644
--- a/Test.gd
+++ b/Test.gd
@@ -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)
diff --git a/Test.tscn b/Test.tscn
index bd93336..a88303b 100644
--- a/Test.tscn
+++ b/Test.tscn
@@ -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": ""
}