Initial project sync

This commit is contained in:
wxm
2026-07-06 22:55:14 -07:00
commit 8cca00d0da
1066 changed files with 58585 additions and 0 deletions
+38
View File
@@ -0,0 +1,38 @@
extends Node
const PAST := &"past"
const FUTURE := &"future"
var current_time_phase: StringName = PAST
func set_time_phase(next: StringName, reason: StringName) -> void:
if next != PAST and next != FUTURE:
return
if next == current_time_phase:
return
var previous := current_time_phase
current_time_phase = next
var bus := _event_bus_or_null()
if bus != null and bus.has_signal("time_phase_changed"):
bus.emit_signal("time_phase_changed", previous, current_time_phase, reason)
func toggle_time_phase(reason: StringName) -> void:
set_time_phase(FUTURE if current_time_phase == PAST else PAST, reason)
func reset_to_initial(initial: StringName) -> void:
var target := initial if (initial == PAST or initial == FUTURE) else PAST
set_time_phase(target, &"chart_init")
func _event_bus_or_null() -> Node:
if not is_inside_tree():
return null
var children := get_tree().root.get_children()
for index: int in range(children.size() - 1, -1, -1):
var child: Node = children[index]
if child.has_signal("time_phase_changed") and child.has_signal("chart_event_triggered"):
return child
return null