37 lines
1.1 KiB
GDScript
37 lines
1.1 KiB
GDScript
extends HBoxContainer
|
|
|
|
signal change_button_pressed
|
|
|
|
export var button_size: Vector2 = Vector2(30, 30)
|
|
export var interactable: bool = false
|
|
|
|
|
|
func initialize(action_name, event):
|
|
$Action.text = action_name.capitalize()
|
|
$Key.add_child(create_controller_button(event))
|
|
|
|
|
|
func update_key(event):
|
|
$Key.remove_child($Key.get_child(0))
|
|
$Key.add_child(create_controller_button(event))
|
|
|
|
|
|
func create_controller_button(event) -> ControllerButton:
|
|
var event_path = ControllerIcons._convert_event_to_path(event)
|
|
var controller_button: ControllerButton = ControllerButton.new()
|
|
controller_button.path = event_path
|
|
if !interactable:
|
|
controller_button.focus_mode = FOCUS_NONE
|
|
controller_button.enabled_focus_mode = FOCUS_NONE
|
|
controller_button.mouse_filter = MOUSE_FILTER_IGNORE
|
|
controller_button.rect_size = button_size
|
|
controller_button.expand_icon = true
|
|
controller_button.grow_horizontal = Control.GROW_DIRECTION_BOTH
|
|
controller_button.grow_vertical = Control.GROW_DIRECTION_BOTH
|
|
controller_button.size_flags_horizontal
|
|
return controller_button
|
|
|
|
|
|
func _on_ChangeButton_pressed():
|
|
emit_signal("change_button_pressed")
|