def toNetString(self): dg = Datagram() dg.addUint8(len(self.seenTips)) for tipId in self.seenTips: dg.addUint8(tipId) dgi = DatagramIterator(dg) return dgi.getRemainingBytes()
def writeRegisterPacket(self, _data): # Build a packet pkt = Datagram() # Type of packet pkt.addUint8(MSG_REGISTER) pkt.addString(str(_data)) return pkt
def buildPacket(self, _opcode, _managerCode=None): pkt = Datagram() pkt.addUint8(_opcode) if _managerCode == MOVE_MANAGER: pkt.addUint8(_managerCode) if _managerCode == MOTD: pkt.addUint8(_managerCode) # MOTD code return pkt
def saveMap(self): # Save map to bytes-file self.rememberMap() data = Datagram() no_part = 64 next_tile = 65 next_map = 66 for m, map in enumerate(self.maps): if len(map) >= 1: data.addUint8(map[0]) # gravity data.addUint8(map[1]) # fuel-drain data.addUint8(map[2]) # o2-drain map = map[3:] for y in map: for x in y: for z in x: if z == P: data.addUint8(no_part) else: data.addUint8(z[0]) data.addUint8(z[1]) data.addUint8(next_tile) data.addUint8(next_map) with open('tracks.trk', 'wb') as outfile: outfile.write(bytes(data))