def read(self, stream, resources=None): s = StreamReader(stream) s.version = s.u32() tgi = TGIList(package=resources) tgi.begin_read(stream) self.components = [s.hash(self.component_hashes) for i in range(s.i8())] self.component_data = {} def read_component_data(): key = s.p32() val = None t = s.i8() if t == 0x00: val = t, s.p32() elif t == 0x01: val = t, tgi.get_resource(s.i32()) elif t == 0x02: val = t, tgi.get_resource(s.i32()) elif t == 0x03: val = t, s.p32() elif t == 0x04: val = t, s.u32() self.component_data[key] = val for i in range(s.i8()): read_component_data() self.visible = s.u8() tgi.end_read(stream) pass