changeset 94:b7c8e0e15395

added connections and receivers iterators to server
author Szymon Wróblewski <bluex0@gmail.com>
date Sun, 08 Jul 2012 15:44:05 +0200
parents f32332459fe1
children e9d3ed7d477c
files zrpn/pygame_network/packet.py zrpn/pygame_network/server.py zrpn/server.py
diffstat 3 files changed, 18 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/zrpn/pygame_network/packet.py	Sun Jul 08 15:18:31 2012 +0200
+++ b/zrpn/pygame_network/packet.py	Sun Jul 08 15:44:05 2012 +0200
@@ -3,6 +3,7 @@
 from weakref import WeakKeyDictionary, WeakValueDictionary
 import enet
 try:
+    raise ImportError  # TODO: !!
     import msgpack as s_lib
     _packer = s_lib.Packer()
     _unpacker = s_lib.Unpacker()
--- a/zrpn/pygame_network/server.py	Sun Jul 08 15:18:31 2012 +0200
+++ b/zrpn/pygame_network/server.py	Sun Jul 08 15:44:05 2012 +0200
@@ -1,5 +1,6 @@
 import logging
 from weakref import proxy
+from functools import partial
 import enet
 from receiver import Receiver
 from packet import PacketManager
@@ -50,3 +51,12 @@
                 _logger.info('Received data from %s', event.peer.address)
                 self.peers[event.peer.data]._receive(event.packet.data, event.channelID)
             event = host.check_events()
+
+    def connections(self, exclude=None):
+        if exclude is None:
+            return self.peers.itervalues()
+        else:
+            return (c for c in self.peers.itervalues() if c not in exclude)
+
+    def receivers(self, exclude=None):
+        return (c._receivers[0] for c in self.peers.itervalues() if c not in exclude)
--- a/zrpn/server.py	Sun Jul 08 15:18:31 2012 +0200
+++ b/zrpn/server.py	Sun Jul 08 15:44:05 2012 +0200
@@ -11,7 +11,7 @@
 
     def __init__(self):
         self.click_time = time.time()
-        board.parent=self
+        board.parent = self
 
     def net_click(self, channel, packet_id, packet):
         t = time.time()
@@ -27,17 +27,18 @@
         #TODO: who gets the points?
         if collumn_rows:
             for x, cr in enumerate(collumn_rows):
-                self.scores[self] += 20 + (10*extra[x])
+                self.scores[self] += 20 + (10 * extra[x])
         else:
             self.scores[self] -= 1
 
-        for connection in self.server.peers.values():
-            connection.net_animations(animations)
+        max_score = max(self.scores.values())
+        for receiver in self.server.receivers():
+            receiver.connection.net_animations(animations)
 
             for net_add in net_adds:
-                connection.net_add(net_add)
+                receiver.connection.net_add(net_add)
 
-            connection.net_score(self.scores[connection._receivers[0]], max(self.scores.values()))
+            receiver.connection.net_score(self.scores[receiver], max_score)
 
 
     def on_connect(self):