 113c54f9be
			
		
	
	113c54f9be
	
	
	
		
			
			* in the middle of work towards no rom for generation (not working) * no rom needed for Zillion generation * revert core changes
		
			
				
	
	
		
			36 lines
		
	
	
		
			1019 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			1019 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| from dataclasses import dataclass
 | |
| import json
 | |
| from typing import Dict, Tuple
 | |
| 
 | |
| from zilliandomizer.game import Game as ZzGame
 | |
| 
 | |
| 
 | |
| @dataclass
 | |
| class GenData:
 | |
|     """ data passed from generation to patcher """
 | |
| 
 | |
|     multi_items: Dict[str, Tuple[str, str]]
 | |
|     """ zz_loc_name to (item_name, player_name) """
 | |
|     zz_game: ZzGame
 | |
|     game_id: bytes
 | |
|     """ the byte string used to detect the rom """
 | |
| 
 | |
|     def to_json(self) -> str:
 | |
|         """ serialized data from generation needed to patch rom """
 | |
|         jsonable = {
 | |
|             "multi_items": self.multi_items,
 | |
|             "zz_game": self.zz_game.to_jsonable(),
 | |
|             "game_id": list(self.game_id)
 | |
|         }
 | |
|         return json.dumps(jsonable)
 | |
| 
 | |
|     @staticmethod
 | |
|     def from_json(gen_data_str: str) -> "GenData":
 | |
|         """ the reverse of `to_json` """
 | |
|         from_json = json.loads(gen_data_str)
 | |
|         return GenData(
 | |
|             from_json["multi_items"],
 | |
|             ZzGame.from_jsonable(from_json["zz_game"]),
 | |
|             bytes(from_json["game_id"])
 | |
|         )
 |