50 lines
1.3 KiB
GDScript
50 lines
1.3 KiB
GDScript
extends Panel
|
|
|
|
@export var movement_bit : int = 0;
|
|
@export var movement_name : String = "Name"
|
|
@export var flow_path : String = "../../../../../../HelenHouseFlyout/FlowControls/"
|
|
@export var recording : bool = false
|
|
|
|
var key_binding : InputEventKey = InputEventKey.new()
|
|
var binding : bool = false
|
|
|
|
signal movement_in(movement, rate)
|
|
signal movement_out(movement, rate)
|
|
|
|
func update_text() -> void:
|
|
$Button.text = "%d - %s (%s)" % [movement_bit, movement_name, key_binding.as_text() if key_binding.keycode != 0 else "Unbound"]
|
|
|
|
func _ready() -> void:
|
|
var animatronic = get_node("../../../../../../SubViewport/HelenHouse/3stHelen")
|
|
movement_in.connect(animatronic._movement_in)
|
|
movement_out.connect(animatronic._movement_out)
|
|
movement_in.connect(self._movement_in)
|
|
movement_out.connect(self._movement_out)
|
|
update_text()
|
|
|
|
func _movement_in(movement, rate):
|
|
pass
|
|
|
|
func _movement_out(movement, rate):
|
|
pass
|
|
|
|
func _on_button_pressed() -> void:
|
|
if (recording): return
|
|
if (binding):
|
|
update_text()
|
|
binding = false
|
|
return
|
|
if (key_binding.keycode == 0):
|
|
$Button.text = "Press a key to bind."
|
|
binding = true
|
|
else:
|
|
key_binding.keycode = 0
|
|
update_text()
|
|
|
|
func _input(event: InputEvent) -> void:
|
|
if (event is InputEventKey && binding):
|
|
if (event.keycode != KEY_ESCAPE):
|
|
key_binding = event
|
|
binding = false
|
|
update_text()
|
|
return
|