Stardew Valley: Precollect building items in deterministic order (#4883)

#4239 refactored buildings, but introduced iteration of a set when precollecting the building items into start inventory.

The iteration order of sets varies between separate Python processes due to set order being partially based on the hashes of the objects in the set and because Python processes each have a random hash seed by default.
This commit is contained in:
Mysteryem
2025-04-18 17:41:46 +01:00
committed by GitHub
parent 38bfb1087b
commit 552a6e7f1c

View File

@@ -206,7 +206,8 @@ class StardewValleyWorld(World):
if not building_progression.is_progressive:
return
for building in building_progression.starting_buildings:
# starting_buildings is a set, so sort for deterministic order.
for building in sorted(building_progression.starting_buildings):
item, quantity = building_progression.to_progressive_item(building)
for _ in range(quantity):
self.multiworld.push_precollected(self.create_item(item))