mtd/KeybindEntry.gd

63 lines
2.1 KiB
GDScript3
Raw Permalink Normal View History

2024-02-22 06:22:22 +11:00
extends HBoxContainer
class_name KeybindEntry
signal primary_bind_pressed()
signal secondary_bind_pressed()
var action_string: String
func set_action_name(action_name: String) -> void:
action_string = action_name
$ActionName.text = action_name
func set_primary_bind(event: InputEvent) -> void:
if event is InputEventKey:
if KeyIconMap.keys.has(str(event.keycode)):
$Buttons/PrimaryBind.icon = load(KeyIconMap.keys[str(event.keycode)])
elif event is InputEventMouseButton:
if event.button_index == 4:
$Buttons/PrimaryBind.text = "Mouse Wheel Up"
elif event.button_index == 5:
$Buttons/PrimaryBind.text = "Mouse Wheel Down"
elif event.button_index == 6:
$Buttons/PrimaryBind.text = "Mouse Wheel Left"
elif event.button_index == 7:
$Buttons/PrimaryBind.text = "Mouse Wheel Right"
elif event.button_index == 8:
$Buttons/PrimaryBind.text = "Mouse Button 4"
elif event.button_index == 9:
$Buttons/PrimaryBind.text = "Mouse Button 5"
elif KeyIconMap.mouse_buttons.has(str(event.button_index)):
$Buttons/PrimaryBind.icon = load(KeyIconMap.mouse_buttons[str(event.button_index)])
func set_secondary_bind(event: InputEvent) -> void:
if event is InputEventKey:
if KeyIconMap.keys.has(str(event.keycode)):
$Buttons/SecondaryBind.icon = load(KeyIconMap.keys[str(event.keycode)])
elif event is InputEventMouseButton:
if event.button_index == 4:
$Buttons/PrimaryBind.text = "Mouse Wheel Up"
elif event.button_index == 5:
$Buttons/PrimaryBind.text = "Mouse Wheel Down"
elif event.button_index == 6:
$Buttons/PrimaryBind.text = "Mouse Wheel Left"
elif event.button_index == 7:
$Buttons/PrimaryBind.text = "Mouse Wheel Right"
elif event.button_index == 8:
$Buttons/PrimaryBind.text = "Mouse Button 4"
elif event.button_index == 9:
$Buttons/PrimaryBind.text = "Mouse Button 5"
elif KeyIconMap.mouse_buttons.has(str(event.button_index)):
$Buttons/PrimaryBind.icon = load(KeyIconMap.mouse_buttons[str(event.button_index)])
func _on_primary_bind_pressed() -> void:
primary_bind_pressed.emit()
func _on_secondary_bind_pressed() -> void:
secondary_bind_pressed.emit()