Ejemplo n.º 1
0
 def read_mdx(self, stream: BinaryStream, version):
     start = stream.index
     size = stream.read_uint32()
     super().read_mdx(stream, version)
     self.speed = stream.read_float32()
     self.variation = stream.read_float32()
     self.latitude = stream.read_float32()
     self.gravity = stream.read_float32()
     self.life_span = stream.read_float32()
     self.emission_rate = stream.read_float32()
     self.width = stream.read_float32()
     self.length = stream.read_float32()
     self.filter_mode = stream.read_uint32()
     self.rows = stream.read_uint32()
     self.columns = stream.read_uint32()
     self.head_or_tail = stream.read_uint32()
     self.tail_length = stream.read_float32()
     self.time_middle = stream.read_float32()
     self.segment_colors[0] = stream.read_float32_array(3)
     self.segment_colors[1] = stream.read_float32_array(3)
     self.segment_colors[2] = stream.read_float32_array(3)
     self.segment_alphas = stream.read_uint8_array(3)
     self.segment_scaling = stream.read_float32_array(3)
     self.head_intervals[0] = stream.read_uint32_array(3)
     self.head_intervals[1] = stream.read_uint32_array(3)
     self.tail_intervals[0] = stream.read_uint32_array(3)
     self.tail_intervals[1] = stream.read_uint32_array(3)
     self.texture_id = stream.read_int32()
     self.squirt = stream.read_uint32()
     self.priority_plane = stream.read_int32()
     self.replaceable_id = stream.read_uint32()
     self.read_animations(stream, size - (stream.index - start))
Ejemplo n.º 2
0
 def read_mdx(self, stream: BinaryStream):
     self.name = stream.read(80)
     self.interval = stream.read_uint32_array(2)
     self.move_speed = stream.read_float32()
     self.flags = stream.read_uint32()
     self.rarity = stream.read_float32()
     self.sync_point = stream.read_uint32()
     self.extent.read_mdx(stream)
Ejemplo n.º 3
0
 def read_mdx(self, stream: BinaryStream, version: int):
     stream.read_uint32()
     stream.skip(4)  # VRTX TAG
     self.vertices = stream.read_float32_array(stream.read_uint32() * 3)
     stream.skip(4)  # NRMS TAG
     self.normals = stream.read_float32_array(stream.read_uint32() * 3)
     stream.skip(4)  # PTYP TAG
     self.face_type_groups = stream.read_uint32_array(stream.read_uint32())
     stream.skip(4)  # PCNT TAG
     self.face_groups = stream.read_uint32_array(stream.read_uint32())
     stream.skip(4)  # PVTX TAG
     self.faces = stream.read_uint16_array(stream.read_uint32())
     stream.skip(4)  # GNDX TAG
     self.vertex_groups = stream.read_uint8_array(stream.read_uint32())
     stream.skip(4)  # MTGC TAG
     self.matrix_groups = stream.read_uint32_array(stream.read_uint32())
     stream.skip(4)  # MATS TAG
     self.matrix_indices = stream.read_uint32_array(stream.read_uint32())
     self.material_id = stream.read_uint32()
     self.selection_group = stream.read_uint32()
     self.selection_flags = stream.read_uint32()
     if version > 800:
         self.lod = stream.read_int32()
         self.lod_name = stream.read(80)
     self.extent.read_mdx(stream)
     for i in range(stream.read_uint32()):
         extent = Extent()
         extent.read_mdx(stream)
         self.sequence_extents.append(extent)
     if version > 800:
         if stream.peek(4) == 'TANG':
             stream.skip(4)
             self.tangents = stream.read_float32_array(
                 stream.read_uint32() * 4)
         if stream.peek(4) == 'SKIN':
             stream.skip(4)
             self.skin = stream.read_uint8_array(stream.read_uint32())
     stream.skip(4)
     for i in range(stream.read_uint32()):
         stream.skip(4)
         self.uv_sets.append(
             stream.read_float32_array(stream.read_uint32() * 2))
Ejemplo n.º 4
0
 def read_mdx(self, stream: BinaryStream, version):
     super().read_mdx(stream, version)
     stream.skip(4)  # KEVT TAG
     count = stream.read_uint32()
     self.global_sequence_id = stream.read_int32()
     self.tracks = stream.read_uint32_array(count)