Callbacks for widget events
[naja.git] / naja / player.py
index acae919c0c46c0b2d14338ca11d0c87289ab7df4..c53c6980b5702e5b26f99a66fd09f0689253cc99 100644 (file)
@@ -33,18 +33,18 @@ class PlayerBits(object):
 
     # Operate on sets of bits
 
-    def check_bits(self, *bits):
+    def check_bits(self, bits):
         return all(self.check_bit(bit) for bit in bits)
 
-    def set_bits(self, *bits):
+    def set_bits(self, bits):
         for bit in bits:
             self.set_bit(bit)
 
-    def clear_bits(self, *bits):
+    def clear_bits(self, bits):
         for bit in bits:
             self.clear_bit(bit)
 
-    def toggle_bits(self, *bits):
+    def toggle_bits(self, bits):
         for bit in bits:
             self.toggle_bit(bit)
 
@@ -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),
+        }