def __init__(self): self.screenView = ScreenView() self.controllers = list() self.running = True self.mouseDragButton = None self.lastTileOverPosition = HexCoordSys.getTilePosition(0, 0) self.session = ClientSession() self.controllers.append(TileController("Tile", self.session)) self.controllers.append(PieceController("Piece", self.session, self.controllers["Tile"].tilePositionModel)) self.mainLoop()
def processAnyNewData(self): # Not sure if python supports non-blocking queue iteration, so do this as a while event = self.incomingEventQueue.get(block=False) while event is not None: data = event.get("data") id = event["id"] # TODO handle multiple moves if event["type"] == "Remove" or event["type"] == "Move": data = self.remove(id) if event["type"] == "Add" or event["type"] == "Move": tilePosition = HexCoordSys.getTilePosition(int(event["tilePosition"][0]), int(event["tilePosition"][1])) self.add(id, tilePosition, data) event = self.incomingEventQueue.get(block=False)