Unshift the world
[naja.git] / naja / player.py
index fcfc3301de4ab22bdfed7982b210d4acc73a29e3..97422b867d25fab3ea31675ba2978450a1f00701 100644 (file)
@@ -20,16 +20,16 @@ class PlayerBits(object):
     # Operate on individual bits
 
     def check_bit(self, bit):
-        return bool(self.bits & (1 << bit))
+        return bool(self.bits & bit)
 
     def set_bit(self, bit):
-        self.bits |= (1 << bit)
+        self.bits |= bit
 
     def clear_bit(self, bit):
-        self.bits &= (0xff ^ (1 << bit))
+        self.bits &= (0xff ^ bit)
 
     def toggle_bit(self, bit):
-        self.bits ^= (1 << bit)
+        self.bits ^= bit
 
     # Operate on sets of bits
 
@@ -57,3 +57,13 @@ class Player(object):
     def __init__(self, bits, position):
         self.bits = PlayerBits(bits)
         self.position = position
+
+    @classmethod
+    def import_player(cls, definition):
+        return cls(definition['bits'], tuple(definition['position']))
+
+    def export(self):
+        return {
+            'bits': self.bits.bits,
+            'position': list(self.position),
+        }