gamo-gd/controller/controller.gd

44 lines
1.2 KiB
GDScript
Raw Normal View History

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:
self.device_name.text = Input.get_joy_name(0) if Config.device_label.value else ""
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
return
for btn in self._buttons:
if not btn is ControllerButton:
continue
var cbtn := btn as ControllerButton
cbtn.color = Config.default_color.value
if cbtn.input_code && Input.is_action_pressed(cbtn.input_code):
cbtn.color = Config.active_color.value
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)