class_name TitleScreenIcosahedron extends Node3D var _aspeed := Vector3.ZERO var _x_aspeed := Vector3.ZERO var _y_aspeed := Vector3.ZERO var _z_aspeed := Vector3.ZERO @onready var _icosahedron := $'Icosahedron' as Node3D @onready var _x_gimbal := $'XGimbal' as Node3D @onready var _y_gimbal := $'YGimbal' as Node3D @onready var _z_gimbal := $'ZGimbal' as Node3D func _rand_aaccel_component() -> float: return (randf() - 0.5)*0.001 func _rand_adjust_aspeed(vec: Vector3) -> Vector3: return (vec + Vector3( _rand_aaccel_component(), _rand_aaccel_component(), _rand_aaccel_component() )).limit_length(0.1) func _process(_delta: float) -> void: _aspeed = _rand_adjust_aspeed(_aspeed) _x_aspeed = _rand_adjust_aspeed(_x_aspeed) _y_aspeed = _rand_adjust_aspeed(_y_aspeed) _z_aspeed = _rand_adjust_aspeed(_z_aspeed) _icosahedron.rotation += _aspeed _x_gimbal.rotation += _x_aspeed _y_gimbal.rotation += _y_aspeed _z_gimbal.rotation += _z_aspeed