Mercurial > zrpn
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):
