Browse Source

Add default JSON decoder function

Tankernn 7 years ago
parent
commit
372594b7a7
2 changed files with 5 additions and 2 deletions
  1. 1 1
      citybuilder/player.py
  2. 4 1
      citybuilder/server.py

+ 1 - 1
citybuilder/player.py

@@ -75,7 +75,7 @@ class Player:
             'username': self.username,
             'jobs': [{ 'product': job.product, 'finish_time': job.finish_time } for job in self.jobs],
             'buildings': self.buildings,
-            'units': [unit.__dict__ for unit in self.units],
+            'units': self.units,
             'resources': self.resources,
             'resources_max': { key: self.get_storage_space(key) for key in self.resources.keys() },
             'research': self.research,

+ 4 - 1
citybuilder/server.py

@@ -7,6 +7,9 @@ from citybuilder import core
 connections = {}
 players = {}
 
+def json_default(o):
+    return o.__dict__
+
 class MainServerSocket(WebSocket):
 
     def handleMessage(self):
@@ -39,7 +42,7 @@ class MainServerSocket(WebSocket):
             print(e)
 
     def send_json(self, data):
-        self.sendMessage(json.dumps(data))
+        self.sendMessage(json.dumps(data, default=json_default))
 
     def handleConnected(self):
         print(self.address, 'connected')