fix snow and exposure

This commit is contained in:
2026-06-30 17:04:40 +02:00
parent 952058b0e0
commit 8198f7df1f
13 changed files with 677 additions and 27 deletions

View File

@@ -1,7 +1,7 @@
extends Path3D
const STEAM_DISTANCE_STAT: String = "stat_distance_km"
const DISTANCE_KM_PER_UNIT: float = 0.001
const DISTANCE_KM_PER_UNIT: float = 0.01
@export_group("Train")
##train speed
@@ -83,17 +83,20 @@ var environment_config: EnvironmentConfig
var wagon_instances: Array[Node3D] = []
var wagon_progress_offsets: Array[float] = []
var _pending_steam_distance_km: float = 0.0
var _initial_is_inmotion: bool = true
func _ready() -> void:
randomize()
_cache_environment_config()
_initial_is_inmotion = is_inmotion
if curve != null and curve.get_baked_length() > 0:
build_rails()
build_train()
_plan_stops()
_apply_initial_train_start()
_apply_train_start_delay()
else:
print("WARNING: Draw Path3D for rails!")
@@ -138,6 +141,23 @@ func _apply_initial_train_start() -> void:
_snap_train_to_progress()
func _apply_train_start_delay() -> void:
if not _initial_is_inmotion:
return
var start_delay_seconds: float = 0.0
if environment_config != null:
start_delay_seconds = maxf(environment_config.train_start_delay_seconds, 0.0)
if start_delay_seconds <= 0.0:
return
is_inmotion = false
await get_tree().create_timer(start_delay_seconds).timeout
if not is_inside_tree():
return
is_inmotion = _initial_is_inmotion
func _set_next_stop_index_from_current(current_stop_index: int) -> void:
if stop_offset.is_empty():
next_stop_index = 0