Пример #1
0
 def toNetString(self):
     dg = Datagram()
     dg.addUint8(len(self.seenTips))
     for tipId in self.seenTips:
         dg.addUint8(tipId)
     dgi = DatagramIterator(dg)
     return dgi.getRemainingBytes()
Пример #2
0
    def writeRegisterPacket(self, _data):
        # Build a packet
        pkt = Datagram()

        # Type of packet
        pkt.addUint8(MSG_REGISTER)
        pkt.addString(str(_data))
        return pkt
Пример #3
0
    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
Пример #4
0
 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))