30 lines
1.1 KiB
GDScript
30 lines
1.1 KiB
GDScript
@tool
|
|
class_name Controls
|
|
extends Node2D
|
|
## Recreate the controls page from lidia Python package
|
|
|
|
const AXIS_SIZE: float = 326
|
|
|
|
@export var controls: Vector4:
|
|
set(value):
|
|
controls = value
|
|
current_cyclic.position.x = AXIS_SIZE / 2.0 * controls.x
|
|
current_cyclic.position.y = AXIS_SIZE / 2.0 * controls.y
|
|
current_pedals.position.x = AXIS_SIZE / 2.0 * controls.z
|
|
current_collective.position.y = -AXIS_SIZE * controls.w
|
|
|
|
@export var trim: Vector4:
|
|
set(value):
|
|
trim = value
|
|
trim_lateral.position.x = AXIS_SIZE / 2.0 * trim.x
|
|
trim_longitudinal.position.y = AXIS_SIZE / 2.0 * trim.y
|
|
trim_pedals.position.x = AXIS_SIZE / 2.0 * trim.z
|
|
trim_collective.position.y = -AXIS_SIZE * trim.w
|
|
|
|
@onready var trim_longitudinal: Node2D = $CyclicOrigin/TrimLongitudinal
|
|
@onready var trim_lateral: Node2D = $CyclicOrigin/TrimLateral
|
|
@onready var current_cyclic: Node2D = $CyclicOrigin/CurrentCyclic
|
|
@onready var trim_collective: Node2D = $CollectiveOrigin/TrimCollective
|
|
@onready var current_collective: Node2D = $CollectiveOrigin/CurrentCollective
|
|
@onready var trim_pedals: Node2D = $PedalsOrigin/TrimPedals
|
|
@onready var current_pedals: Node2D = $PedalsOrigin/CurrentPedals
|