diff --git a/Main.py b/Main.py index 7b29a440..776438ac 100644 --- a/Main.py +++ b/Main.py @@ -252,12 +252,11 @@ def main(args, seed=None): precollected_hints = {player: set() for player in range(1, world.players + 1)} # for now special case Factorio tech_tree_information sending_visible_players = set() - for player in world.get_game_players("Factorio"): - if world.tech_tree_information[player].value == 2: - sending_visible_players.add(player) for slot in world.player_ids: slot_data[slot] = world.worlds[slot].fill_slot_data() + if world.worlds[slot].sending_visible: + sending_visible_players.add(slot) def precollect_hint(location): hint = NetUtils.Hint(location.item.player, location.player, location.address, diff --git a/worlds/AutoWorld.py b/worlds/AutoWorld.py index bf48fd97..47936d14 100644 --- a/worlds/AutoWorld.py +++ b/worlds/AutoWorld.py @@ -114,6 +114,9 @@ class World(metaclass=AutoWorldRegister): item_names: Set[str] # set of all potential item names location_names: Set[str] # set of all potential location names + # If there is visibility in what is being sent, this is where it will be known. + sending_visible: bool = False + def __init__(self, world: MultiWorld, player: int): self.world = world self.player = player diff --git a/worlds/factorio/__init__.py b/worlds/factorio/__init__.py index 99dba71e..e9c779a7 100644 --- a/worlds/factorio/__init__.py +++ b/worlds/factorio/__init__.py @@ -66,6 +66,9 @@ class Factorio(World): if map_basic_settings.get("seed", None) is None: # allow seed 0 map_basic_settings["seed"] = self.world.slot_seeds[player].randint(0, 2 ** 32 - 1) # 32 bit uint + self.sending_visible = self.world.tech_tree_information[player] == Options.TechTreeInformation.option_full + + generate_output = generate_mod def create_regions(self):