ALTTP: Add fill_slot_data for external trackers (#1919)
* __init__.py: Add fill_slot_data function Add fill_slot_data function. Used by StripesOO7's pop-tracker pack to auto populate settings as convenience for the user * LTTP__init__.py added race condition to fill_slot_data * added missing self to multiworl.is_race * changed filling of slot_data to fill from static list instead of pulling all alttp_options. additional options needed to be done separately cause they are not stored the same way as the rest. "mode", "goal", etc. are simple values as the rest are key:value pairs so `.value` is not supported and I didn't want to introduce an if-statement. * changed filling of slot_data to fill from static list instead of pulling all alttp_options. additional options needed to be done separately cause they are not stored the same way as the rest. "mode", "goal", etc. are simple values as the rest are key:value pairs so `.value` is not supported and I didn't want to introduce an if-statement. * added a comment to describe the use for the option added to slot_data --------- Co-authored-by: StripesOO7 <54711792+StripeesOO7@users.noreply.github.com>
This commit is contained in:
		| @@ -782,6 +782,32 @@ class ALTTPWorld(World): | ||||
|                         res.append(item) | ||||
|         return res | ||||
|  | ||||
|     def fill_slot_data(self): | ||||
|         slot_data = {} | ||||
|         if not self.multiworld.is_race: | ||||
|             # all of these option are NOT used by the SNI- or Text-Client. | ||||
|             # they are used by the alttp-poptracker pack (https://github.com/StripesOO7/alttp-ap-poptracker-pack) | ||||
|             # for convenient auto-tracking of the generated settings and adjusting the tracker accordingly | ||||
|  | ||||
|             slot_options = ["crystals_needed_for_gt", "crystals_needed_for_ganon", "open_pyramid", | ||||
|                             "bigkey_shuffle", "smallkey_shuffle", "compass_shuffle", "map_shuffle", | ||||
|                             "progressive", "swordless", "retro_bow", "retro_caves", "shop_item_slots", | ||||
|                             "boss_shuffle", "pot_shuffle", "enemy_shuffle"] | ||||
|  | ||||
|             slot_data = {option_name: getattr(self.multiworld, option_name)[self.player].value for option_name in slot_options} | ||||
|  | ||||
|             slot_data.update({ | ||||
|                 'mode': self.multiworld.mode[self.player], | ||||
|                 'goal': self.multiworld.goal[self.player], | ||||
|                 'dark_room_logic': self.multiworld.dark_room_logic[self.player], | ||||
|                 'mm_medalion': self.multiworld.required_medallions[self.player][0], | ||||
|                 'tr_medalion': self.multiworld.required_medallions[self.player][1], | ||||
|                 'shop_shuffle': self.multiworld.shop_shuffle[self.player], | ||||
|                 'entrance_shuffle': self.multiworld.shuffle[self.player] | ||||
|                 } | ||||
|             ) | ||||
|         return slot_data | ||||
|          | ||||
|  | ||||
| def get_same_seed(world, seed_def: tuple) -> str: | ||||
|     seeds: typing.Dict[tuple, str] = getattr(world, "__named_seeds", {}) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 StripesOO7
					StripesOO7