changeset 125:1117edef8b2b draft default tip

NES_ROM: new `from_json` and `to_json` methods To allow saving/loading the ROM status.
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Wed, 02 Oct 2019 09:15:51 -0400
parents a74c65cd0ce3
children
files nes.py
diffstat 1 files changed, 19 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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):
     """