Multiserver: location name groups fix (#1643)
This commit is contained in:
		
							parent
							
								
									6e271b643d
								
							
						
					
					
						commit
						510a460d84
					
				| 
						 | 
				
			
			@ -260,7 +260,8 @@ class Context:
 | 
			
		|||
 | 
			
		||||
    def _init_game_data(self):
 | 
			
		||||
        for game_name, game_package in self.gamespackage.items():
 | 
			
		||||
            self.checksums[game_name] = game_package["checksum"]
 | 
			
		||||
            if "checksum" in game_package:
 | 
			
		||||
                self.checksums[game_name] = game_package["checksum"]
 | 
			
		||||
            for item_name, item_id in game_package["item_name_to_id"].items():
 | 
			
		||||
                self.item_names[item_id] = item_name
 | 
			
		||||
            for location_name, location_id in game_package["location_name_to_id"].items():
 | 
			
		||||
| 
						 | 
				
			
			@ -268,7 +269,7 @@ class Context:
 | 
			
		|||
            self.all_item_and_group_names[game_name] = \
 | 
			
		||||
                set(game_package["item_name_to_id"]) | set(self.item_name_groups[game_name])
 | 
			
		||||
            self.all_location_and_group_names[game_name] = \
 | 
			
		||||
                set(game_package["location_name_to_id"]) | set(self.location_name_groups[game_name])
 | 
			
		||||
                set(game_package["location_name_to_id"]) | set(self.location_name_groups.get(game_name, []))
 | 
			
		||||
 | 
			
		||||
    def item_names_for_game(self, game: str) -> typing.Optional[typing.Dict[str, int]]:
 | 
			
		||||
        return self.gamespackage[game]["item_name_to_id"] if game in self.gamespackage else None
 | 
			
		||||
| 
						 | 
				
			
			@ -356,9 +357,7 @@ class Context:
 | 
			
		|||
                                   [{"cmd": "PrintJSON", "data": [{ "text": text }], **additional_arguments}
 | 
			
		||||
                                    for text in texts]))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    # loading
 | 
			
		||||
 | 
			
		||||
    def load(self, multidatapath: str, use_embedded_server_options: bool = False):
 | 
			
		||||
        if multidatapath.lower().endswith(".zip"):
 | 
			
		||||
            import zipfile
 | 
			
		||||
| 
						 | 
				
			
			@ -446,9 +445,10 @@ class Context:
 | 
			
		|||
            logging.info(f"Loading embedded data package for game {game_name}")
 | 
			
		||||
            self.gamespackage[game_name] = data
 | 
			
		||||
            self.item_name_groups[game_name] = data["item_name_groups"]
 | 
			
		||||
            self.location_name_groups[game_name] = data["location_name_groups"]
 | 
			
		||||
            if "location_name_groups" in data:
 | 
			
		||||
                self.location_name_groups[game_name] = data["location_name_groups"]
 | 
			
		||||
                del data["location_name_groups"]
 | 
			
		||||
            del data["item_name_groups"]  # remove from data package, but keep in self.item_name_groups
 | 
			
		||||
            del data["location_name_groups"]
 | 
			
		||||
        self._init_game_data()
 | 
			
		||||
        for game_name, data in self.item_name_groups.items():
 | 
			
		||||
            self.read_data[f"item_name_groups_{game_name}"] = lambda lgame=game_name: self.item_name_groups[lgame]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue