Разделить частоту обновления часов и расчёта симуляции

Счётчик времени UI обновляется до 10 Гц по запрошенному времени, а тяжёлые циклы по-прежнему запускаются с адаптивным интервалом и обрабатывают весь накопленный промежуток. Обновить тесты и описание модели.
This commit is contained in:
Kirill
2026-10-17 23:41:18 +03:00
parent 00b6192d19
commit 273093bd9e
14 changed files with 853 additions and 10 deletions
+9 -4
View File
@@ -98,6 +98,7 @@ var g_active_items: Dictionary = {}
var pending_page: int = -1
var active_actions_dirty: bool = true
var active_actions_elapsed: float = 0.0
var clock_display_elapsed: float = 0.0
var interface_sounds_enabled: bool = false
var owniverse:Owniverse = Owniverse.new()
@@ -389,7 +390,7 @@ func create_new_universe() -> void:
func _refresh_universe_ui() -> void:
owniverse.presentation.refresh(owniverse.state, owniverse.catalog)
_change_speed(0)
set_datetime(owniverse.state.time.year)
set_datetime(owniverse.display_clock().year)
set_owniverse_item_value()
_unlock_items()
if world_indicators != null: world_indicators.update(owniverse)
@@ -397,6 +398,10 @@ func _refresh_universe_ui() -> void:
func _process(delta: float) -> void:
owniverse.evolute_frame(delta, get_tree())
clock_display_elapsed += delta
if clock_display_elapsed >= 0.1:
clock_display_elapsed = fmod(clock_display_elapsed, 0.1)
set_datetime(owniverse.display_clock().year)
indicator_elapsed += delta
if indicator_elapsed >= 0.1 and indicator_revision != owniverse.presentation.revision:
indicator_elapsed = 0.0
@@ -404,9 +409,9 @@ func _process(delta: float) -> void:
indicator_revision = owniverse.presentation.revision
_update_descriptions(delta)
if not owniverse.presentation.pending_amounts.is_empty(): set_owniverse_item_value()
if displayed_year == null or E.ne(displayed_year, owniverse.state.time.year):
set_datetime(owniverse.state.time.year)
displayed_year = owniverse.state.time.year
var committed_year: Variant = owniverse.state.time.year
if displayed_year == null or E.ne(displayed_year, committed_year):
displayed_year = committed_year
#owniverse.cycle(delta)