From a11e840d3637ffb87d2d297cd8bc5e9692b2ab0b Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Sun, 4 Jul 2021 16:44:27 +0200 Subject: [PATCH] Cache some MultiWorld properties --- BaseClasses.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index ad2e63f8..c7fd5a3b 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -153,23 +153,24 @@ class MultiWorld(): def secure(self): self.random = secrets.SystemRandom() - @property + @functools.cached_property def player_ids(self): yield from range(1, self.players + 1) - @property + # Todo: make these automatic, or something like get_players_for_game(game_name) + @functools.cached_property def alttp_player_ids(self): yield from (player for player in range(1, self.players + 1) if self.game[player] == "A Link to the Past") - @property + @functools.cached_property def hk_player_ids(self): yield from (player for player in range(1, self.players + 1) if self.game[player] == "Hollow Knight") - @property + @functools.cached_property def factorio_player_ids(self): yield from (player for player in range(1, self.players + 1) if self.game[player] == "Factorio") - @property + @functools.cached_property def minecraft_player_ids(self): yield from (player for player in range(1, self.players + 1) if self.game[player] == "Minecraft")