- commit
- 5f29ef03fd8fea8544e984c6316e7922ebec88a9
- parent
- b26cca8e2b9521ae7b8cc9d418fbbc0b8c4661a7
- Author
- radow <masteroftheriddles@googlemail.com>
- Date
- 2014-10-05 19:42
Implement move on individual Users
Diffstat
| M | laneya/server.py | 45 | ++++++++++++++++++++++++--------------------- |
1 files changed, 24 insertions, 21 deletions
diff --git a/laneya/server.py b/laneya/server.py
@@ -8,16 +8,23 @@ from twisted.internet import task 8 8 import protocol 9 9 10 10 -1 11 class User(object): -1 12 def __init__(self, position_x=0, position_y=0, direction='stop'): -1 13 self.position_x = position_x -1 14 self.position_y = position_y -1 15 self.direction = direction -1 16 -1 17 11 18 class ServerProtocol(protocol.ServerProtocol): 12 19 def requestReceived(self, user, action, **kwargs): # TODO 13 20 if user not in self.factory.users:14 -1 self.factory.users[user] = {}-1 21 self.factory.users[user] = User() 15 22 print("login %s" % user) 16 23 17 24 if action == 'echo': 18 25 return kwargs 19 26 elif action == 'move':20 -1 self.factory.direction = kwargs['direction']-1 27 self.factory.users[user].direction = kwargs['direction'] 21 28 return {} 22 29 elif action == 'logout': 23 30 del self.factory.users[user] @@ -34,26 +41,22 @@ class Server(protocol.ServerProtocolFactory): 34 41 protocol.ServerProtocolFactory.__init__(self, ServerProtocol) 35 42 self.users = {} 36 4337 -1 # TODO: should be set per user38 -1 self.direction = 'stop'39 -1 self.position_x = 040 -1 self.position_y = 041 -142 44 def mainloop(self):43 -1 if self.direction == 'north':44 -1 self.position_y -= 145 -1 elif self.direction == 'east':46 -1 self.position_x += 147 -1 elif self.direction == 'south':48 -1 self.position_y += 149 -1 elif self.direction == 'west':50 -1 self.position_x -= 151 -1 if self.direction != 'stop':52 -1 self.broadcastUpdate(53 -1 'position',54 -1 x=self.position_x,55 -1 y=self.position_y,56 -1 entity='example')-1 45 for key, user in self.users.iteritems(): -1 46 if user.direction == 'north': -1 47 user.position_y -= 1 -1 48 elif user.direction == 'east': -1 49 user.position_x += 1 -1 50 elif user.direction == 'south': -1 51 user.position_y += 1 -1 52 elif user.direction == 'west': -1 53 user.position_x -= 1 -1 54 if user.direction != 'stop': -1 55 self.broadcastUpdate( -1 56 'position', -1 57 x=user.position_x, -1 58 y=user.position_y, -1 59 entity=key) 57 60 58 61 59 62 def main():