63 lines
2.1 KiB
GDScript
63 lines
2.1 KiB
GDScript
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()
|