public void LoadFrom(Stream stream) { AssetCabinet.TypeDefinition oldDef = null; try { AssetCabinet.TypeDefinition typeDef; if (file.Parser.ExtendedSignature == null) { MonoScript monoScript; typeDef = AssetCabinet.GetExternalMBTypeDefinition(this, false, out monoScript); if (typeDef == null) { return; } oldDef = file.Types[(int)classID1]; file.Types[(int)classID1] = typeDef; } else { typeDef = AssetCabinet.GetInternalMBTypeDefinition(file, classID1); } Parser = new TypeParser(file, typeDef); Parser.type.LoadFrom(stream); } finally { if (oldDef != null) { file.Types[(int)classID1] = oldDef; } } }