private void ProcessEntries() { foreach (WebFileEntry entry in Metadata.Entries.Values) { FileScheme scheme = FileCollection.ReadScheme(m_stream, entry.Offset, entry.Size, FilePath, entry.NameOrigin); AddScheme(scheme); } }
private void ProcessEntries() { foreach (BundleFileEntry entry in Metadata.Entries.Values) { FileEntryOffset offset = m_entryStreams[entry]; FileScheme scheme = FileCollection.ReadScheme(offset.Stream, offset.Offset, entry.Size, FilePath, entry.NameOrigin); AddScheme(scheme); } }
private static object LoadScheme(FileScheme scheme) { object file = null; if (scheme is SerializedFileScheme serializedFileScheme) { var platform = serializedFileScheme.Metadata != null && serializedFileScheme.Metadata.TargetPlatform != 0 ? serializedFileScheme.Metadata.TargetPlatform : Platform.StandaloneWin64Player; var version = serializedFileScheme.Metadata != null ? serializedFileScheme.Metadata.UnityVersion : new Version(); var layoutInfo = new LayoutInfo(version, platform, serializedFileScheme.Flags); var layout = new AssetLayout(layoutInfo); var parameters = new GameCollection.Parameters(layout); var collection = new GameCollection(parameters); file = Util.CreateInstance <SerializedFile>(collection, scheme); typeof(SerializedFile).GetMethod("ReadData", AllBindingFlags) .Invoke(file, new object[] { serializedFileScheme.Stream }); } if (scheme is BundleFileScheme bundleFileScheme) { file = Util.CreateInstance <BundleFile>(scheme); AddScheme((BundleFile)file, bundleFileScheme); } if (scheme is ArchiveFileScheme archiveFileScheme) { file = Util.CreateInstance <ArchiveFile>(scheme); AddScheme((ArchiveFile)file, archiveFileScheme); } if (scheme is WebFileScheme webFileScheme) { file = Util.CreateInstance <WebFile>(scheme); AddScheme((WebFile)file, webFileScheme); } if (scheme is ResourceFileScheme resourceFileScheme) { file = Util.CreateInstance <ResourceFile>(scheme); } return(file); }
private static void AddScheme(FileList fileList, FileScheme scheme) { var file = LoadScheme(scheme); switch (scheme.SchemeType) { case FileEntryType.Serialized: fileList.AddSerializedFile((SerializedFile)file); break; case FileEntryType.Bundle: case FileEntryType.Archive: case FileEntryType.Web: fileList.AddSerializedFile((SerializedFile)file); break; case FileEntryType.Resource: fileList.AddResourceFile((ResourceFile)file); break; } }
public static void make_(FileScheme self) { }