Recreate lidia controls with Node2D

This commit is contained in:
Marek S. Łukasiewicz 2025-12-14 00:12:56 +01:00
parent f3d38c7569
commit 821072eae5
23 changed files with 433 additions and 35 deletions

View file

@ -0,0 +1,33 @@
extends Node2D
## Recreate the controls page from lidia Python package
@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
const AXIS_SIZE: float = 326
func set_controls(current: Vector4):
set_cyclic(Vector2(current.x, current.y))
set_collective(current.w)
set_pedals(current.z)
func set_cyclic(current: Vector2):
current_cyclic.position.x = AXIS_SIZE / 2.0 * current.x
current_cyclic.position.y = AXIS_SIZE / 2.0 * current.y
func set_collective(current: float):
current_collective.position.y = -AXIS_SIZE * current
func set_pedals(current: float):
current_pedals.position.x = AXIS_SIZE / 2.0 * current
func set_trim(trim: Vector4):
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