Serialize light state across day and night transitions
[tabakrolletjie.git] / tabakrolletjie / gamestate.py
index 8d74d8106fcfc39e6199512903d09dc452a99744..6f6725b8e0bda36ef5a031946306194d0496b0e2 100644 (file)
@@ -6,10 +6,12 @@ class GameState(object):
         self._state = {
             "station": None,
             "turnips": [],
+            "seeds": None,
         }
         self.harvested = 0
         self.eaten = 0
         self.days = 0
+        self.resistances = {}
 
     @property
     def station(self):
@@ -25,13 +27,14 @@ class GameState(object):
 
     @property
     def seeds(self):
-        if 'seeds' in self._state:
-            return self._state['seeds']
-        elif (self._state["station"] and
-                'seeds' in self._state["station"]["config"]):
-            self._state['seeds'] = self._state["station"]["config"]["seeds"]
-            return self._state['seeds']
-        return 0
+        if self._state["seeds"] is None:
+            if (self._state["station"] and
+                    "seeds" in self._state["station"]["config"]):
+                self._state["seeds"] = (
+                    self._state["station"]["config"]["seeds"])
+            else:
+                self._state["seeds"] = 0
+        return self._state["seeds"]
 
     @seeds.setter
     def seeds(self, value):
@@ -39,9 +42,16 @@ class GameState(object):
 
     def set_station(self, station):
         self._state["station"] = station
+        self._state["turnips"] = []
+        self._state["seeds"] = None
+        self.resistances = {}
 
     def get_spawn_positions(self):
         return self._state["station"]["config"]["spawn positions"]
 
-    def get_target(self):
+    @property
+    def turnip_target(self):
         return self._state["station"]["config"]["turnip target"]
+
+    def update_lights(self, lights):
+        self._state["station"]["lights"] = lights.serialize_lights()