# HG changeset patch # User Jordi GutiƩrrez Hermoso # Date 1570022151 14400 # Node ID 1117edef8b2b29744ea1293611c2a76adb7a9e35 # Parent a74c65cd0ce35e3aff1400242abb08fac1d6fc7a NES_ROM: new `from_json` and `to_json` methods To allow saving/loading the ROM status. diff --git a/nes.py b/nes.py --- a/nes.py +++ b/nes.py @@ -1,3 +1,4 @@ +import json from zipfile import ZipFile, BadZipFile from PyQt5 import QtGui as QG @@ -102,6 +103,24 @@ self.rotate_tile_data(-1) self.update_tiles() + def to_json(self): + data = { + "initial_position": self.initial_position, + "filename": self.filename, + "tile_palettes": [tile.palette for tile in self.tiles], + } + + return json.dumps(data) + + @classmethod + def from_json(cls, data): + data = json.loads(data) + filename = data['filename'] + palettes = data['tile_palettes'] + initial_position = data['initial_position'] + + return cls(filename=filename, palettes=palettes, initial_position=initial_position) + class Tile(object): """