Example #1
0
 def write(self, stream, resource=None):
     s = StreamWriter(stream)
     s.u32(self.version)
     s.u32(len(self.bones))
     for bone in self.bones:
         s.s7(bone.name, 16, '>')
     s.u32(len(self.bones))
     for bone in self.bones:
         for i in range(3):
             for j in range(4):
                 s.f32(bone[i][j])
Example #2
0
 def write(self, stream, resource=None):
     s = StreamWriter(stream)
     s.u32(self.version)
     s.u32(len(self.bones))
     for bone in self.bones:
         s.s7(bone.name, 16, '>')
     s.u32(len(self.bones))
     for bone in self.bones:
         for i in range(3):
             for j in range(4):
                 s.f32(bone[i][j])
Example #3
0
 def write(self, stream, resource=None):
     s = StreamWriter(stream)
     s.u32(self.version)
     tgi = TGIList(use_length=self.version >= 7, add_eight=True)
     tgi.begin_write(stream)
     s.s7(self.part_name, 16, '>')
     s.u32(self.blend_type)
     s.i32(len(self.entries))
     for entry in self.entries:
         s.u32(entry.region_flags)
         s.i32(len(entry.geom_entries))
         for geom_entry in entry.geom_entries: geom_entry.write_rcol(stream, tgi)
         s.i32(len(entry.bone_entries))
         for bone_entry in entry.bone_entries: bone_entry.write_rcol(stream, tgi)
     tgi.end_write(stream)
Example #4
0
 def write(self, stream, resource=None):
     s = StreamWriter(stream)
     s.u32(self.version)
     tgi = TGIList('igt', 8, False)
     tgi.begin_write(stream)
     for preset in self.presets:
         preset.write(stream)
     s.s7(self.part_name, 16, '>')
     s.f32(self.display_index)
     s.u8(self.has_unique_texture_space)
     s.u32(self.body_type)
     s.u32(self.part_flags)
     s.u32(self.age_gender_flags)
     s.u32(self.clothing_category)
     s.i8(tgi.get_resource_index(self.naked_cas_part))
     s.i8(tgi.get_resource_index(self.base_cas_part))
     s.i8(tgi.get_resource_index(self.blend_fat))
     s.i8(tgi.get_resource_index(self.blend_fit))
     s.i8(tgi.get_resource_index(self.blend_thin))
     s.i8(tgi.get_resource_index(self.blend_special))
     s.u32(self.draw_layer)
     s.i8(len(self.sources))
     for source in self.sources:
         s.i8(tgi.get_resource_index(source))
     s.i8(len(self.lod_infos))
     for lod_info in self.lod_infos:
         lod_info.write(stream)
     s.i8(len(self.diffuse_refs))
     for diffuse_ref in self.diffuse_refs:
         s.i8(tgi.get_resource_index(diffuse_ref))
     s.i8(len(self.specular_refs))
     for specular_ref in self.specular_refs:
         s.i8(tgi.get_resource_index(specular_ref))
     s.u8(len(self.secondary_diffuse_refs))
     for block in self.secondary_diffuse_refs:
         s.u8(tgi.get_resource_index(block))
     s.u8(len(self.secondary_specular_refs))
     for block in self.secondary_specular_refs:
         s.u8(tgi.get_resource_index(block))
     s.u8(len(self.slot_poses))
     for block in self.slot_poses:
         s.u8(tgi.get_resource_index(block))
     s.s7(self.shoe_material, 16, '>')
     tgi.end_write(stream)
Example #5
0
 def write(self, stream, resource=None):
     s = StreamWriter(stream)
     s.u32(self.version)
     tgi = TGIList('igt', 8, False)
     tgi.begin_write(stream)
     for preset in self.presets: preset.write(stream)
     s.s7(self.part_name, 16, '>')
     s.f32(self.display_index)
     s.u8(self.has_unique_texture_space)
     s.u32(self.body_type)
     s.u32(self.part_flags)
     s.u32(self.age_gender_flags)
     s.u32(self.clothing_category)
     s.i8(tgi.get_resource_index(self.naked_cas_part))
     s.i8(tgi.get_resource_index(self.base_cas_part))
     s.i8(tgi.get_resource_index(self.blend_fat))
     s.i8(tgi.get_resource_index(self.blend_fit))
     s.i8(tgi.get_resource_index(self.blend_thin))
     s.i8(tgi.get_resource_index(self.blend_special))
     s.u32(self.draw_layer)
     s.i8(len(self.sources))
     for source in self.sources: s.i8(tgi.get_resource_index(source))
     s.i8(len(self.lod_infos))
     for lod_info in self.lod_infos: lod_info.write(stream)
     s.i8(len(self.diffuse_refs))
     for diffuse_ref in self.diffuse_refs: s.i8(tgi.get_resource_index(diffuse_ref))
     s.i8(len(self.specular_refs))
     for specular_ref in self.specular_refs: s.i8(tgi.get_resource_index(specular_ref))
     s.u8(len(self.secondary_diffuse_refs))
     for block in self.secondary_diffuse_refs: s.u8(tgi.get_resource_index(block))
     s.u8(len(self.secondary_specular_refs))
     for block in self.secondary_specular_refs: s.u8(tgi.get_resource_index(block))
     s.u8(len(self.slot_poses))
     for block in self.slot_poses: s.u8(tgi.get_resource_index(block))
     s.s7(self.shoe_material, 16, '>')
     tgi.end_write(stream)
Example #6
0
 def write(self, stream, resources=None):
     s = StreamWriter(stream)
     s.u32(self.version)
     tgi = TGIList()
     tgi.begin_write(stream)
     ProductBase.write_presets(stream,self.presets,tgi)
     if self.version >= 0x00000016:
         s.s7(self.instance_name,size=16,order='>')
     self.product_info.write(stream,tgi)
     s.i32(tgi.get_resource(self.object_component))
     s.u32(self.object_type_flags)
     if self.version >= 0x000001A:
         s.u32(self.object_type_flags_2)
     s.u32(self.wall_placement_flags)
     s.u32(self.movement_flags)
     s.i32(self.num_wall_cutout_tiles_per_level)
     s.i32(self.num_levels)
     s.i8(len(self.wall_masks))
     for wall_mask in self.wall_masks:
         wall_mask.write(stream,tgi)
     s.i8(1 if self.script_enabled else 0)
     s.i32(tgi.get_resource_index(self.diagonal_object))
     s.hash(self.ambiance_type)
     s.u32(self.room_flags)
     s.u32(self.function_category_flags)
     s.u64(self.sub_category_flags)
     if self.version >= 0x0000001C:
         s.u64(self.sub_category_flags_2)
     s.u64(self.sub_room_flags)
     s.u32(self.build_category_flags)
     s.i32(tgi.get_resource_index(self.wall_cutout_texture))
     if self.version >= 0x00000017:
         s.i32(tgi.get_resource_index(self.floor_cutout_texture))
         s.i32(self.floor_cutout_level_offset)
         s.f32(self.floor_cutout_bounds_length )
     if self.version >= 0x00000020:
         s.f32(self.floor_cutout_bounds_width )
     if self.version >= 0x0000021:
         s.f32(self.floor_cutout_offset_x )
         s.f32(self.floor_cutout_offset_z )
     if self.version >= 0x00000018:
         s.i32(len(self.shell_states))
         for shell_state in self.shell_states: s.hash(shell_state)
     if self.version >= 0x00000019:
         s.i32(tgi.get_resource_index(self.shell_level_below ))
     if self.version >= 0x0000001B:
         s.i32(tgi.get_resource_index(self.shell_proxy ))
     if self.version >= 0x0000001D:
         s.i32(tgi.get_resource_index(self.blueprint_xml ))
     if self.version >= 0x0000001E:
         s.i32(tgi.get_resource_index(self.blueprint_icon ))
     if self.version >= 0x0000001F:
         s.f32(self.blueprint_icon_offset_min_x)
         s.f32(self.blueprint_icon_offset_min_z)
         s.f32(self.blueprint_icon_offset_max_x)
         s.f32(self.blueprint_icon_offset_max_z)
     s.u32(self.slot_placement_flags)
     s.s7(self.surface_type,size=16,order='>')
     s.s7(self.source_material,size=16,order='>')
     s.u32(self.moodlet_given)
     s.u32(self.moodlet_score)
     s.u32(5)
     for rating in self.ratings: rating.write(stream)
     s.i32(tgi.get_resource_index(self.fallback))
     if self.version >= 0x00000022:
         s.i32(tgi.get_resource_index(self.modular_arch_end_east_model))
         s.i32(tgi.get_resource_index(self.modular_arch_end_east_model))
         s.i32(tgi.get_resource_index(self.modular_arch_connecting_model))
         s.i32(tgi.get_resource_index(self.modular_arch_single_model))
     tgi.end_write(stream)
Example #7
0
 def write(self, stream, resources=None):
     s = StreamWriter(stream)
     s.s7(self.scengraph_name)
Example #8
0
 def write(self, stream, resources=None):
     s = StreamWriter(stream)
     s.s7(self.SG)
     s.u32(self.ID)
     s.u32(self.version)