Optimize update_reachable_regions using the new region cache, it is almost twice as fast now
This commit is contained in:
parent
e4fef05d53
commit
d608d5ca30
|
@ -318,14 +318,14 @@ class CollectionState(object):
|
|||
self.collect(item, True)
|
||||
|
||||
def update_reachable_regions(self, player):
|
||||
player_regions = [region for region in self.world.regions if region.player == player]
|
||||
player_regions = self.world.get_regions(player)
|
||||
self.stale[player] = False
|
||||
rrp = self.reachable_regions[player]
|
||||
new_regions = True
|
||||
reachable_regions_count = len(rrp)
|
||||
while new_regions:
|
||||
possible = [region for region in player_regions if region not in rrp]
|
||||
for candidate in possible:
|
||||
player_regions = [region for region in player_regions if region not in rrp]
|
||||
for candidate in player_regions:
|
||||
if candidate.can_reach_private(self):
|
||||
rrp.add(candidate)
|
||||
new_regions = len(rrp) > reachable_regions_count
|
||||
|
|
Loading…
Reference in New Issue