58 lines
1.3 KiB
GDScript
58 lines
1.3 KiB
GDScript
extends Control
|
|
|
|
|
|
signal refresh_select_type_control
|
|
signal cancel_define_input
|
|
|
|
var action = null
|
|
var signalrefresh = null
|
|
|
|
func _ready():
|
|
$DefineInput.connect("refresh_control_define_input", refresh.bind() )
|
|
$DefineInput.connect("cancel_define_input", _on_quit_pressed.bind() )
|
|
|
|
|
|
func refresh():
|
|
Common.msg_debug("refresh")
|
|
emit_signal("refresh_select_type_control")
|
|
|
|
|
|
func set_param(_action, _signalrefresh):
|
|
self.action = _action
|
|
self.signalrefresh = _signalrefresh
|
|
if String(_action).ends_with("_MOUSE"):
|
|
$Window/VBoxContainer/Key.set_disabled(true)
|
|
$Window/VBoxContainer/Joypad.set_disabled(true)
|
|
else:
|
|
$Window/VBoxContainer/Key.set_disabled(false)
|
|
$Window/VBoxContainer/Joypad.set_disabled(false)
|
|
|
|
|
|
func _on_quit_pressed():
|
|
Common.msg_debug("cancel_define_input")
|
|
$Window.visible = false
|
|
emit_signal("cancel_define_input")
|
|
|
|
|
|
func get_input(typevent) -> void:
|
|
$Window.visible = false
|
|
if typevent == 1:
|
|
$DefineInput.set_param(typevent, self.action)
|
|
elif typevent == 2:
|
|
$DefineInput.set_param(typevent, self.action)
|
|
else:
|
|
$DefineInput.set_param(typevent, self.action)
|
|
$DefineInput/Window.popup_centered()
|
|
$DefineInput/Window.visible = true
|
|
|
|
|
|
func _on_key_pressed():
|
|
get_input(1)
|
|
|
|
|
|
func _on_mouse_pressed():
|
|
get_input(2)
|
|
|
|
|
|
func _on_joypad_pressed():
|
|
get_input(3)
|