public FArchive Serialize(FArchive archive) { SerializeHeader(archive); if ((_bulkDataFlags & EBulkDataFlags.Unused) != 0 || _elementCount == 0) { BulkData = Array.Empty <byte>(); } else { if ((_bulkDataFlags & (EBulkDataFlags.OptionalPayload | EBulkDataFlags.PayloadInSeperateFile)) != 0 && archive.FindTagSubstream((_bulkDataFlags & EBulkDataFlags.OptionalPayload) != 0 ? ".uptnl" : ".ubulk", out var tagData)) { tagData.Seek(_bulkDataOffsetInFile, SeekOrigin.Current); SerializeData(tagData); } else if ((_bulkDataFlags & EBulkDataFlags.PayloadAtEndOfFile) != 0) { throw new NotImplementedException($"{nameof(EBulkDataFlags.PayloadAtEndOfFile)} is not implemented yet!"); } else if ((_bulkDataFlags & EBulkDataFlags.ForceInlinePayload) != 0) { SerializeData(archive); } } return(archive); }