Example #1
0
        public FObjectExport(IAssetConverter converter)
        {
            FPackageFileSummary?summ = converter.GetSummary();

            using (BinaryReader br = new BinaryReader(converter.GetAssetStream(), Encoding.UTF8, true))
            {
                this.ClassIndex = br.ReadInt32();
                this.SuperIndex = br.ReadInt32();

                if (summ.GetUE4Version() >= 508)
                {
                    this.TemplateIndex = br.ReadInt32();
                }

                FObjectResource resource = new FObjectResource(converter);
                this.Index      = resource.Index;
                this.ObjectName = resource.ObjectName;

                this.ObjectFlags = (EObjectFlags)br.ReadInt32();

                if (summ.GetUE4Version() >= 511)
                {
                    this.SerialSize   = br.ReadInt64();
                    this.SerialOffset = br.ReadInt64();
                }
                else
                {
                    this.SerialSize   = br.ReadInt32();
                    this.SerialOffset = br.ReadInt32();
                }

                this.ExportFileOffset = SerialOffset - summ.TotalSize;

                this.IsForcedExport = br.ReadInt32() != 0;
                this.IsNotForClient = br.ReadInt32() != 0;
                this.IsNotForServer = br.ReadInt32() != 0;

                this.PackageGuid  = new FGuid(converter.GetAssetStream());
                this.PackageFlags = (EPackageFlags)br.ReadInt32();

                if (summ.GetUE4Version() >= 365)
                {
                    this.IsNotAlwaysLoadedForEditorGame = br.ReadInt32() != 0;
                }

                if (summ.GetUE4Version() >= 485)
                {
                    this.IsAsset = br.ReadInt32() != 0;
                }

                if (summ.GetUE4Version() >= 507)
                {
                    this.FirstExportDependency = br.ReadInt32();
                    this.SerializationBeforeSerializationDependencies = br.ReadInt32();
                    this.CreateBeforeSerializationDependencies        = br.ReadInt32();
                    this.SerializationBeforeCreateDependencies        = br.ReadInt32();
                    this.CreateBeforeCreateDependencies = br.ReadInt32();
                }
            }
        }
Example #2
0
        public FObjectImport(IAssetConverter converter)
        {
            using (BinaryReader br = new BinaryReader(converter.GetAssetStream(), Encoding.UTF8, true))
            {
                this.ClassPackage = new FName(converter.GetNameMap(), converter.GetAssetStream());
                this.ClassName    = new FName(converter.GetNameMap(), converter.GetAssetStream());

                FObjectResource resource = new FObjectResource(converter);
                this.Index      = resource.Index;
                this.ObjectName = resource.ObjectName;
            }
        }