def connected(self, perspective): self.perspective = perspective self.environment = yield perspective.callRemote('getEnvironment') self.environment.team = yield perspective.callRemote('getTeam') self.view = Window(self.environment) self.view.start("Client - %d" % (self.environment.team, )) self.controller = PlayerController(self.perspective, self.view) self.controller.go()
def perspective_getTeam(self): return self.player.team def perspective_switchTeams(self): return self.environment.switchTeams(self.player) #TODO could we add a perspective_getPosition and perspective_getIRTargetStatus here #TODO otherwise, how do we do remote call on a client? pygame.init() pygame.display.set_mode((800, 480), pygame.DOUBLEBUF) realm = GameRealm() env = Environment() view = Window(env) realm.environment = env view.start('Server') LoopingCall(lambda: pygame.event.pump()).start(0.03) controller = ServerController(realm, view) controller.go() portal = portal.Portal(realm, [checkers.AllowAnonymousAccess()]) reactor.listenTCP(8800, pb.PBServerFactory(portal)) from twisted.protocols.basic import LineReceiver from twisted.internet import protocol import cPickle