42 lines
883 B
GDScript3
42 lines
883 B
GDScript3
|
class_name SignButton extends Node
|
||
|
|
||
|
var parent : Node3D
|
||
|
var intbranch : InteractionBranch
|
||
|
@export var y_up : float
|
||
|
@export var y_down : float
|
||
|
@export var dur : float
|
||
|
var elapsed = 0
|
||
|
var moving = false
|
||
|
var cur
|
||
|
var next
|
||
|
|
||
|
func _ready():
|
||
|
parent = get_parent()
|
||
|
intbranch = parent.get_child(1)
|
||
|
|
||
|
func _process(delta):
|
||
|
Lerp()
|
||
|
|
||
|
func Press():
|
||
|
intbranch.interactionAllowed = false
|
||
|
cur = y_up
|
||
|
next = y_down
|
||
|
elapsed = 0
|
||
|
moving = true
|
||
|
await get_tree().create_timer(.06, false).timeout
|
||
|
moving = false
|
||
|
cur = y_down
|
||
|
next = y_up
|
||
|
elapsed = 0
|
||
|
moving = true
|
||
|
await get_tree().create_timer(.06, false).timeout
|
||
|
moving = false
|
||
|
intbranch.interactionAllowed = true
|
||
|
|
||
|
func Lerp():
|
||
|
if (moving):
|
||
|
elapsed += get_process_delta_time()
|
||
|
var c = elapsed / dur
|
||
|
var temp_pos = lerpf(cur, next, c)
|
||
|
parent.transform.origin = Vector3(parent.transform.origin.x, temp_pos, parent.transform.origin.z)
|