2026-01-24 14:29:16 +02:00
|
|
|
extends Control
|
|
|
|
|
|
|
|
|
|
@onready var device_name: RichTextLabel = $Device
|
|
|
|
|
|
|
|
|
|
var _has_joy := false
|
|
|
|
|
var _buttons: Array[Node]
|
|
|
|
|
var _triggers: Array[Node]
|
|
|
|
|
|
|
|
|
|
func _ready() -> void:
|
|
|
|
|
self._buttons = self.get_tree().get_nodes_in_group("buttons")
|
|
|
|
|
self._triggers = self.get_tree().get_nodes_in_group("triggers")
|
|
|
|
|
if Input.get_connected_joypads().size() > 0:
|
2026-01-24 18:40:25 +02:00
|
|
|
self.device_name.text = Input.get_joy_name(0) if Config.device_label.value else ""
|
2026-01-24 14:29:16 +02:00
|
|
|
self._has_joy = true
|
|
|
|
|
|
|
|
|
|
func _process(_delta: float) -> void:
|
|
|
|
|
if !self._has_joy:
|
|
|
|
|
if Input.get_connected_joypads().size() > 0:
|
|
|
|
|
self.device_name.text = Input.get_joy_name(0)
|
|
|
|
|
self._has_joy = true
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
if Input.get_connected_joypads().size() <= 0:
|
|
|
|
|
self._has_joy = false
|
2026-01-24 17:06:05 +02:00
|
|
|
self.device_name.text = WyHelper.NO_DEVICE
|
2026-01-24 14:29:16 +02:00
|
|
|
return
|
|
|
|
|
|
|
|
|
|
for btn in self._buttons:
|
|
|
|
|
if not btn is ControllerButton:
|
|
|
|
|
continue
|
|
|
|
|
|
|
|
|
|
var cbtn := btn as ControllerButton
|
2026-01-24 18:40:25 +02:00
|
|
|
cbtn.color = Config.default_color.value
|
2026-01-24 14:29:16 +02:00
|
|
|
|
|
|
|
|
if cbtn.input_code && Input.is_action_pressed(cbtn.input_code):
|
2026-01-24 18:40:25 +02:00
|
|
|
cbtn.color = Config.active_color.value
|
2026-01-24 14:29:16 +02:00
|
|
|
|
|
|
|
|
for btn in self._triggers:
|
|
|
|
|
if not btn is ControllerTrigger:
|
|
|
|
|
continue
|
|
|
|
|
|
|
|
|
|
var cbtn := btn as ControllerTrigger
|
|
|
|
|
cbtn.value = Input.get_joy_axis(0, cbtn.input_axis)
|