예제 #1
0
        internal FAssetIdentifier(FNameTableArchiveReader reader)
        {
            PackageName      = default;
            PrimaryAssetType = default;
            ObjectName       = default;
            ValueName        = default;

            byte FieldBits = reader.Loader.ReadByte();

            if ((FieldBits & (1 << 0)) != 0)
            {
                PackageName = reader.ReadFName();
            }
            if ((FieldBits & (1 << 1)) != 0)
            {
                PrimaryAssetType = reader.ReadFName();
            }
            if ((FieldBits & (1 << 2)) != 0)
            {
                ObjectName = reader.ReadFName();
            }
            if ((FieldBits & (1 << 3)) != 0)
            {
                ValueName = reader.ReadFName();
            }
        }
예제 #2
0
        internal FAssetData(FNameTableArchiveReader reader)
        {
            ObjectPath  = reader.ReadFName();
            PackagePath = reader.ReadFName();
            AssetClass  = reader.ReadFName();

            PackageName = reader.ReadFName();
            AssetName   = reader.ReadFName();

            TagsAndValues = new FAssetDataTagMapSharedView(reader);
            ChunkIDs      = reader.Loader.ReadTArray(() => reader.Loader.ReadInt32());
            PackageFlags  = reader.Loader.ReadInt32();
        }
        internal FAssetDataTagMapSharedView(FNameTableArchiveReader reader)
        {
            int l = reader.Loader.ReadInt32();

            Map = new SortedList <string, string>(l);
            for (int i = 0; i < l; i++)
            {
                Map[reader.ReadFName().String] = reader.Loader.ReadFString();
            }
        }
예제 #4
0
 internal FAssetPackageData(FNameTableArchiveReader reader, bool bSerializeHash)
 {
     PackageName = reader.ReadFName();
     DiskSize    = reader.Loader.ReadInt64();
     PackageGuid = new FGuid(reader.Loader);
     if (bSerializeHash)
     {
         CookedHash = new FMD5Hash(reader.Loader);
     }
     else
     {
         CookedHash = default;
     }
 }