34 lines
688 B
GDScript
34 lines
688 B
GDScript
extends Button
|
|
|
|
var event_idx = 0
|
|
|
|
signal action_changed(action: String)
|
|
|
|
func _ready():
|
|
set_process_unhandled_key_input(false)
|
|
|
|
func _toggled(b_pressed):
|
|
set_process_unhandled_key_input(b_pressed)
|
|
if b_pressed:
|
|
text = "..."
|
|
release_focus()
|
|
|
|
func _input(event):
|
|
if not button_pressed:
|
|
return
|
|
|
|
if event is InputEventKey or event is InputEventJoypadButton or event is InputEventMouseButton:
|
|
action_changed.emit(event)
|
|
get_viewport().set_input_as_handled()
|
|
button_pressed = false
|
|
|
|
func _display_event(event: InputEvent):
|
|
if event == null:
|
|
text = "Unassigned"
|
|
else:
|
|
text = event.as_text()
|
|
tooltip_text = text
|
|
|
|
func set_event(event: InputEvent):
|
|
_display_event(event)
|