def write_rcol(self, stream, rcol): self.write_tag(stream) s = StreamWriter(stream) s.u32(self.version) s.tgi(self.rig.key, 'ITG') s.f32(self.unknown) for i in range(self.RESERVED_COUNT): s.u8(self.reserved[i]) s.u32(len(self.bone_weights)) for val in self.bone_weights: s.f32(val)
def write_rcol(self, stream, rcol): s = StreamWriter(stream) self.write_tag(stream) s.u32(self.version) s.u32(rcol.get_block_index(self.actor)) s.u32(self.parameter) s.tgi(self.prop, 'ITG') for i in range(4): s.u32(0) MulticastDecisionGraphNode.write(self, stream, rcol)
def write_rcol(self, stream, rcol): self.write_tag(stream) s = StreamWriter(stream) s.u32(self.version) tgi = TGIList() tgi.begin_write(stream) s.u8(len(self.entries)) for entry in self.entries: s.u8(entry.TYPE) entry.write(stream, tgi) s.u8(2) self.bounds.write(stream) s.u32(self.flags) if self.routing_footprint.key != ResourceKey(): s.u8(1) s.tgi(self.routing_footprint.key, 'TGI') else: s.u8(0) tgi.end_write(stream)
def write_rcol(self, stream, rcol): s = StreamWriter(stream) self.write_tag(stream) s.u32(self.version) s.tgi(self.clip, 'ITG') s.tgi(self.track_mask, 'ITG') s.i32(len(self.actor_slots)) s.u32(0) s.u32(0) s.u32(0) for actor_slot in self.actor_slots: actor_slot.write(stream) s.i32(len(self.actor_iks)) for actor_ik in self.actor_iks: actor_ik.write(stream) s.u32(DEADBEEF) s.tgi(self.additive_clip) s.p32(self.clip_pattern, size=16) s.align() s.p32(self.additive_clip_pattern, size=16) s.align() s.u32(DEADBEEF) AnimationNode.write_rcol(self, stream, rcol)
def write_data(self, stream, keys): s = StreamWriter(stream) self.pointer.end() if self.type_code == self.TYPE.FLOAT: if self.size32 == 1: s.f32(self.value) else: for f in self.value: s.f32(f) elif self.type_code == self.TYPE.INT: if self.size32 == 1: s.i32(self.value) else: for i in self.value: s.i32(i) elif self.type_code == self.TYPE.TEXTURE: if not keys == None: s.u32(keys.get_resource_index(self.value)) s.u32(0) s.u32(0) s.u32(0) else: s.tgi(self.value, 'ITG') s.u32(0)