godot-third-person-basic-scene/scenes/controls/select_type_control.gd

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)