feat: train easings exposed

This commit is contained in:
tiger tiger tiger 2026-01-21 18:16:11 +01:00
parent f0ad263e57
commit 8561310d9e
3 changed files with 18 additions and 28 deletions

View File

@ -5,12 +5,22 @@ extends Node3D
@export var index : int = -1
@export var signage_group : String
@export var pre_arrival_time : float = 17.0
@export var arrival_time : float = 15.0
@export var pre_leave_time : float = 20.0
@export_group("Motion")
@export_subgroup("Arrival")
@export var pre_arrival_time : float = 17.0 # hold train for this long (to sync with audio!)
@export var arrival_time : float = 15.0 # train takes this long to enter (shorter = faster)
@export var trans_arrival : Tween.TransitionType = Tween.TRANS_CIRC
@export var ease_arrival : Tween.EaseType = Tween.EASE_OUT
@export_subgroup("In Station")
@export var station_wait_time : float = 20.0
@export_subgroup("Departure")
@export var door_close_time : float = 1.0
@export var leave_time : float = 15.0
@export var post_leave_time : float = 5.0
@export var leave_time : float = 15.0 # train takes this long to leave the platform
@export var trans_departure : Tween.TransitionType = Tween.TRANS_QUAD
@export var ease_departure : Tween.EaseType = Tween.EASE_IN
@onready var origination : Node3D = $Origination
@onready var destination : Node3D = $Destination
@ -73,7 +83,7 @@ func arrive(endstation : bool = false) -> void:
train_approaching.emit(self)
if tween: tween.kill()
tween = create_tween().set_trans(Tween.TRANS_CIRC).set_ease(Tween.EASE_OUT)
tween = create_tween().set_trans(trans_arrival).set_ease(ease_arrival)
tween.parallel().tween_property(subway, "global_position", self.global_position, arrival_time)
await tween.finished
subway.door_open = true
@ -90,7 +100,7 @@ func arrive(endstation : bool = false) -> void:
func leave() -> void:
await get_tree().create_timer(pre_leave_time).timeout
await get_tree().create_timer(station_wait_time).timeout
subway.door_open = false
await get_tree().create_timer(door_close_time).timeout
@ -100,7 +110,7 @@ func leave() -> void:
if tween: tween.kill()
tween = create_tween().set_trans(Tween.TRANS_QUART).set_ease(Tween.EASE_IN)
tween = create_tween().set_trans(trans_departure).set_ease(ease_departure)
tween.parallel().tween_property(subway, "global_position", destination.global_position, leave_time)
# Player is on board and will be leaving

View File

@ -221,24 +221,12 @@ unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.2, -0.2, -32.5)
index = 0
signage_group = "signage2"
pre_arrival_time = 17.0
arrival_time = 15.0
pre_leave_time = 20.0
door_close_time = 1.0
leave_time = 15.0
post_leave_time = 5.0
[node name="Track1Dolly" parent="Logic" instance=ExtResource("17_yfan7")]
unique_name_in_owner = true
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, -6.2, -0.2, -32.5)
index = 1
signage_group = "signage1"
pre_arrival_time = 17.0
arrival_time = 15.0
pre_leave_time = 20.0
door_close_time = 1.0
leave_time = 15.0
post_leave_time = 5.0
[node name="Fahrplan" type="Node3D" parent="Logic"]
script = ExtResource("4_yfan7")

View File

@ -108,14 +108,6 @@ size = Vector3(31.194, 0.8, 3.8)
[node name="TrainDolly" type="Node3D"]
script = ExtResource("1_5jpg8")
index = null
signage_group = null
pre_arrival_time = null
arrival_time = null
pre_leave_time = null
door_close_time = null
leave_time = null
post_leave_time = null
metadata/_custom_type_script = "uid://dgfje4druu3sw"
[node name="Destination" type="Node3D" parent="."]