Ejemplo n.º 1
0
        public MonoBehaviourEditor(MonoBehaviour parser)
        {
            Parser = parser;

            using (Stream stream = new MemoryStream())
            {
                Parser.WriteTo(stream);

                backupMB        = new MonoBehaviour(Parser.file, Parser.classID1);
                stream.Position = 0;
                backupMB.LoadFrom(stream);
                backupMB.file.Components.Remove(backupMB);

                if (backupMB.Parser == null)
                {
                    MonoScript monoScript;
                    AssetCabinet.GetExternalMBTypeDefinition(Parser, true, out monoScript);

                    backupMB = null;
                    Parser   = null;
                    throw new Exception("Parser construction failed - see message above.");
                }

                stream.Position = 0;
                Parser.m_MonoScript.instance.WriteTo(stream);
                backupMS        = new MonoScript(Parser.m_MonoScript.instance.file);
                stream.Position = 0;
                backupMS.LoadFrom(stream);
                backupMS.file.Components.Remove(backupMS);
            }
        }
Ejemplo n.º 2
0
 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;
         }
     }
 }