コード例 #1
0
 def read(self, file_object):
     self.chunk_x = Integer.read(file_object)
     self.chunk_z = Integer.read(file_object)
     records_count = VarInt.read(file_object)
     self.records = []
     for i in range(records_count):
         record = self.Record()
         record.read(file_object)
         self.records.append(record)
コード例 #2
0
 def write_fields(self, packet_buffer):
     Float.send(self.x, packet_buffer)
     Float.send(self.y, packet_buffer)
     Float.send(self.z, packet_buffer)
     Float.send(self.radius, packet_buffer)
     Integer.send(len(self.records), packet_buffer)
     for record in self.records:
         Byte.send(record.x, packet_buffer)
         Byte.send(record.y, packet_buffer)
         Byte.send(record.z, packet_buffer)
     Float.send(self.player_motion_x, packet_buffer)
     Float.send(self.player_motion_y, packet_buffer)
     Float.send(self.player_motion_z, packet_buffer)
コード例 #3
0
    def write_fields(self, packet_buffer):
        VarInt.send(self.entity_id, packet_buffer)
        if self.context.protocol_version >= 49:
            UUID.send(self.object_uuid, packet_buffer)

        if self.context.protocol_version >= 458:
            VarInt.send(self.type_id, packet_buffer)
        else:
            Byte.send(self.type_id, packet_buffer)

        # pylint: disable=no-member
        xyz_type = Double if self.context.protocol_version >= 100 else Integer
        for coord in self.x, self.y, self.z:
            xyz_type.send(coord, packet_buffer)
        for coord in self.pitch, self.yaw:
            Angle.send(coord, packet_buffer)

        Integer.send(self.data, packet_buffer)
        if self.context.protocol_version >= 49 or self.data > 0:
            for coord in self.velocity_x, self.velocity_y, self.velocity_z:
                Short.send(coord, packet_buffer)
コード例 #4
0
 def read(self, file_object):
     self.x = Float.read(file_object)
     self.y = Float.read(file_object)
     self.z = Float.read(file_object)
     self.radius = Float.read(file_object)
     records_count = Integer.read(file_object)
     self.records = []
     for i in range(records_count):
         rec_x = Byte.read(file_object)
         rec_y = Byte.read(file_object)
         rec_z = Byte.read(file_object)
         record = ExplosionPacket.Record(rec_x, rec_y, rec_z)
         self.records.append(record)
     self.player_motion_x = Float.read(file_object)
     self.player_motion_y = Float.read(file_object)
     self.player_motion_z = Float.read(file_object)
コード例 #5
0
    def read(self, file_object):
        self.entity_id = VarInt.read(file_object)
        if self.context.protocol_version >= 49:
            self.object_uuid = UUID.read(file_object)

        if self.context.protocol_version >= 458:
            self.type_id = VarInt.read(file_object)
        else:
            self.type_id = Byte.read(file_object)

        xyz_type = Double if self.context.protocol_version >= 100 else Integer
        for attr in 'x', 'y', 'z':
            setattr(self, attr, xyz_type.read(file_object))
        for attr in 'pitch', 'yaw':
            setattr(self, attr, Angle.read(file_object))

        self.data = Integer.read(file_object)
        if self.context.protocol_version >= 49 or self.data > 0:
            for attr in 'velocity_x', 'velocity_y', 'velocity_z':
                setattr(self, attr, Short.read(file_object))
コード例 #6
0
 def write(self, packet_buffer):
     VarInt.send(self.player_id, packet_buffer)
     Integer.send(self.entity_id, packet_buffer)
     String.send(self.message, packet_buffer)
コード例 #7
0
 def read(self, file_object):
     self.player_id = VarInt.read(file_object)
     self.entity_id = Integer.read(file_object)
     self.message = String.read(file_object)
コード例 #8
0
 def write(self, packet_buffer):
     VarInt.send(self.duration, packet_buffer)
     Integer.send(self.entity_id, packet_buffer)
コード例 #9
0
 def read(self, file_object):
     self.duration = VarInt.read(file_object)
     self.entity_id = Integer.read(file_object)
コード例 #10
0
 def write_fields(self, packet_buffer):
     Integer.send(self.chunk_x, packet_buffer)
     Integer.send(self.chunk_z, packet_buffer)
     VarInt.send(len(self.records), packet_buffer)
     for record in self.records:
         record.write(packet_buffer)
コード例 #11
0
 def send(cls, value, socket):
     for coordinate in value:
         Integer.send(int(coordinate * 8), socket)
コード例 #12
0
 def read(cls, file_object):
     return Vector(*(Integer.read(file_object) / 8.0 for i in range(3)))