Add __getitem__ and __setitem__ for WorldDictProxy.
[koperkapel.git] / koperkapel / world.py
index b0e3debfd16d830ee8d030aee2aa2eb4e5be8a3a..d68294949f46a7d520275a19532737cdc02db7c5 100644 (file)
@@ -30,7 +30,12 @@ class World:
         ]
         state["vehicles"] = {
             "current": "walking",
-            "available": ["walking"],
+            "walking": {
+                "seating": [
+                    "roachel", None, "roeginald",
+                    None, None, None,
+                ]
+            }
         }
         state["level"] = {
             "name": "level1",
@@ -119,6 +124,12 @@ class WorldDictProxy(WorldBaseProxy):
         value = self._state.get(name)
         return _maybe_subproxy(self, name, value)
 
+    def __setitem__(self, name, value):
+        return self.__setattr__(name, value)
+
+    def __getitem__(self, name):
+        return self.__getattr__(name)
+
 
 class WorldListProxy(WorldBaseProxy):
     """ World list proxy that records changes and produces events. """
@@ -128,3 +139,9 @@ class WorldListProxy(WorldBaseProxy):
 
     def __getitem__(self, index):
         return _maybe_subproxy(self, index, self._state[index])
+
+    def __len__(self):
+        return len(self._state)
+
+    def __bool__(self):
+        return bool(self._state)