2025-07-07 22:43:04 +02:00
|
|
|
class_name VRPN_Button
|
|
|
|
extends Node
|
|
|
|
|
2025-07-08 08:49:36 +02:00
|
|
|
@export var vrpn_client : VRPN_Client = null
|
2025-07-07 22:43:04 +02:00
|
|
|
@export var button_sensor : String = "Button0"
|
2025-07-08 09:45:49 +02:00
|
|
|
@export var register_on_ready : bool = true
|
2025-07-07 22:43:04 +02:00
|
|
|
|
|
|
|
var state : int = 0
|
|
|
|
|
2025-07-08 21:25:46 +02:00
|
|
|
signal on_vrpn_button(data:Dictionary)
|
|
|
|
|
2025-07-07 22:43:04 +02:00
|
|
|
func _ready():
|
2025-07-08 08:49:36 +02:00
|
|
|
if not vrpn_client:
|
2025-07-07 22:43:04 +02:00
|
|
|
push_warning("No VRPN client for button on '%s' given." % [self.name])
|
2025-07-08 09:45:49 +02:00
|
|
|
elif register_on_ready:
|
2025-07-08 08:49:36 +02:00
|
|
|
vrpn_client.buttons.append(self)
|
2025-07-07 22:43:04 +02:00
|
|
|
|
|
|
|
func _on_vrpn(vrpn_data : Dictionary) -> void:
|
|
|
|
if vrpn_data['sensor'] == button_sensor:
|
2025-07-08 21:25:46 +02:00
|
|
|
on_vrpn_button.emit(vrpn_data)
|