20 lines
		
	
	
	
		
			540 B
		
	
	
	
		
			GDScript
		
	
	
	
	
	
			
		
		
	
	
			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
 |