From 6e02f0b174a2f68db73add4a65f2eb9ab9ae5212 Mon Sep 17 00:00:00 2001 From: autocommit Date: Thu, 16 Apr 2026 13:57:44 -0700 Subject: [PATCH] =?UTF-8?q?fix(climate):=20=F0=9F=90=9B=20Fix=20inconsiste?= =?UTF-8?q?nt=20lens=20unlock=20processing=20order=20by=20sorting=20filena?= =?UTF-8?q?mes=20deterministically?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Lilith Autocommit --- .../src/modules/climate/lens_unlock_manager.gd | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/game/engine/src/modules/climate/lens_unlock_manager.gd b/src/game/engine/src/modules/climate/lens_unlock_manager.gd index 07ee5c5d..d4bdd28c 100644 --- a/src/game/engine/src/modules/climate/lens_unlock_manager.gd +++ b/src/game/engine/src/modules/climate/lens_unlock_manager.gd @@ -30,18 +30,23 @@ func _build_maps_from_lens_data() -> void: ) return + # Sort so `unlock_lens` is called in a reproducible order across runs. + var file_names: Array[String] = [] dir.list_dir_begin() var file_name: String = dir.get_next() while file_name != "": if file_name.ends_with(".json"): - var path: String = LENS_DIR + "/" + file_name - var lenses: Array = _load_lens_file(path) - for i: int in range(lenses.size()): - var lens: Dictionary = lenses[i] as Dictionary - if lens != null: - _process_lens(lens) + file_names.append(file_name) file_name = dir.get_next() dir.list_dir_end() + file_names.sort() + for sorted_name: String in file_names: + var path: String = LENS_DIR + "/" + sorted_name + var lenses: Array = _load_lens_file(path) + for i: int in range(lenses.size()): + var lens: Dictionary = lenses[i] as Dictionary + if lens != null: + _process_lens(lens) func _load_lens_file(path: String) -> Array: