Fill: Cache get_all_State
This commit is contained in:
parent
cc458ca5b1
commit
95350a1fa9
|
@ -197,7 +197,6 @@ class MultiWorld():
|
||||||
self._recache()
|
self._recache()
|
||||||
return self._region_cache[player][regionname]
|
return self._region_cache[player][regionname]
|
||||||
|
|
||||||
|
|
||||||
def get_entrance(self, entrance: str, player: int) -> Entrance:
|
def get_entrance(self, entrance: str, player: int) -> Entrance:
|
||||||
try:
|
try:
|
||||||
return self._entrance_cache[entrance, player]
|
return self._entrance_cache[entrance, player]
|
||||||
|
@ -205,7 +204,6 @@ class MultiWorld():
|
||||||
self._recache()
|
self._recache()
|
||||||
return self._entrance_cache[entrance, player]
|
return self._entrance_cache[entrance, player]
|
||||||
|
|
||||||
|
|
||||||
def get_location(self, location: str, player: int) -> Location:
|
def get_location(self, location: str, player: int) -> Location:
|
||||||
try:
|
try:
|
||||||
return self._location_cache[location, player]
|
return self._location_cache[location, player]
|
||||||
|
@ -213,15 +211,18 @@ class MultiWorld():
|
||||||
self._recache()
|
self._recache()
|
||||||
return self._location_cache[location, player]
|
return self._location_cache[location, player]
|
||||||
|
|
||||||
|
|
||||||
def get_dungeon(self, dungeonname: str, player: int) -> Dungeon:
|
def get_dungeon(self, dungeonname: str, player: int) -> Dungeon:
|
||||||
for dungeon in self.dungeons:
|
for dungeon in self.dungeons:
|
||||||
if dungeon.name == dungeonname and dungeon.player == player:
|
if dungeon.name == dungeonname and dungeon.player == player:
|
||||||
return dungeon
|
return dungeon
|
||||||
raise KeyError('No such dungeon %s for player %d' % (dungeonname, player))
|
raise KeyError('No such dungeon %s for player %d' % (dungeonname, player))
|
||||||
|
|
||||||
|
|
||||||
def get_all_state(self, keys=False) -> CollectionState:
|
def get_all_state(self, keys=False) -> CollectionState:
|
||||||
|
key = f"_all_state_{keys}"
|
||||||
|
cached = getattr(self, key, None)
|
||||||
|
if cached:
|
||||||
|
return cached.copy()
|
||||||
|
|
||||||
ret = CollectionState(self)
|
ret = CollectionState(self)
|
||||||
|
|
||||||
for item in self.itempool:
|
for item in self.itempool:
|
||||||
|
@ -246,6 +247,7 @@ class MultiWorld():
|
||||||
p):
|
p):
|
||||||
world.collect(ret, item)
|
world.collect(ret, item)
|
||||||
ret.sweep_for_events()
|
ret.sweep_for_events()
|
||||||
|
setattr(self, key, ret)
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
def get_items(self) -> list:
|
def get_items(self) -> list:
|
||||||
|
|
15
Main.py
15
Main.py
|
@ -271,13 +271,14 @@ def main(args, seed=None):
|
||||||
|
|
||||||
world.spoiler.hashes[(player, team)] = get_hash_string(rom.hash)
|
world.spoiler.hashes[(player, team)] = get_hash_string(rom.hash)
|
||||||
|
|
||||||
palettes_options = {}
|
palettes_options = {
|
||||||
palettes_options['dungeon'] = args.uw_palettes[player]
|
'dungeon': args.uw_palettes[player],
|
||||||
palettes_options['overworld'] = args.ow_palettes[player]
|
'overworld': args.ow_palettes[player],
|
||||||
palettes_options['hud'] = args.hud_palettes[player]
|
'hud': args.hud_palettes[player],
|
||||||
palettes_options['sword'] = args.sword_palettes[player]
|
'sword': args.sword_palettes[player],
|
||||||
palettes_options['shield'] = args.shield_palettes[player]
|
'shield': args.shield_palettes[player],
|
||||||
palettes_options['link'] = args.link_palettes[player]
|
'link': args.link_palettes[player]
|
||||||
|
}
|
||||||
|
|
||||||
apply_rom_settings(rom, args.heartbeep[player], args.heartcolor[player], args.quickswap[player],
|
apply_rom_settings(rom, args.heartbeep[player], args.heartcolor[player], args.quickswap[player],
|
||||||
args.fastmenu[player], args.disablemusic[player], args.sprite[player],
|
args.fastmenu[player], args.disablemusic[player], args.sprite[player],
|
||||||
|
|
Loading…
Reference in New Issue