PneumaticPlaything/Scripts/HelicopterLight.gd
2025-08-04 11:45:32 -07:00

20 lines
540 B
GDScript

extends Node3D
var on = false
var velocity = 0.0
var rate_out = 0.0
func _physics_process(_delta: float) -> void:
$RotationHandle.rotate_object_local(Vector3(0, 1, 0), lerpf(0, 0.1, velocity))
if (on): velocity = minf(velocity*1.05, 1.0)
else: velocity = maxf(velocity-(rate_out/1000), 0.0)
if (!on && velocity == 0.0): $RotationHandle/Light.visible = false
func _movement_in(_movement, rate):
$RotationHandle/Light.visible = true
velocity += rate/1000
on = true
func _movement_out(_movement, rate):
on = false
rate_out = rate