internal static SerializedFileScheme ReadSceme(SmartStream stream, string filePath, string fileName) { SerializedFileScheme scheme = new SerializedFileScheme(stream, filePath, fileName); scheme.ReadScheme(); return(scheme); }
private LayoutInfo GetLayoutInfo(SerializedFileScheme serialized) { if (RTTIClassHierarchyDescriptor.HasPlatform(serialized.Header.Generation)) { RTTIClassHierarchyDescriptor hierarchy = serialized.Metadata.Hierarchy; return(new LayoutInfo(hierarchy.Version, hierarchy.Platform, serialized.Flags)); } else { const Platform DefaultPlatform = Platform.StandaloneWinPlayer; const TransferInstructionFlags DefaultFlags = TransferInstructionFlags.SerializeGameRelease; BundleFileScheme bundle = GetBundleFile(); if (bundle == null) { Logger.Log(LogType.Warning, LogCategory.Import, "Unable to determine layout for provided files. Tring default one"); Version version = GetDefaultGenerationVersions(serialized.Header.Generation); return(new LayoutInfo(version, DefaultPlatform, DefaultFlags)); } else { Logger.Log(LogType.Warning, LogCategory.Import, "Unable to precisly determine layout for provided files. Tring default one"); return(new LayoutInfo(bundle.Header.EngineVersion, DefaultPlatform, DefaultFlags)); } } }
internal static SerializedFileScheme ReadSceme(SmartStream stream, long offset, long size, string filePath, string fileName, TransferInstructionFlags flags) { SerializedFileScheme scheme = new SerializedFileScheme(stream, offset, size, filePath, fileName, flags); scheme.ReadScheme(); return(scheme); }
private LayoutInfo GetLayoutInfo(SerializedFileScheme serialized) { if (SerializedFileMetadata.HasPlatform(serialized.Header.Version)) { SerializedFileMetadata metadata = serialized.Metadata; return(new LayoutInfo(metadata.UnityVersion, metadata.TargetPlatform, serialized.Flags)); } else { const Platform DefaultPlatform = Platform.StandaloneWinPlayer; const TransferInstructionFlags DefaultFlags = TransferInstructionFlags.SerializeGameRelease; BundleFileScheme bundle = GetBundleFile(); if (bundle == null) { Logger.Log(LogType.Warning, LogCategory.Import, "Unable to determine layout for provided files. Tring default one"); Version version = GetDefaultGenerationVersions(serialized.Header.Version); return(new LayoutInfo(version, DefaultPlatform, DefaultFlags)); } else { Logger.Log(LogType.Warning, LogCategory.Import, "Unable to precisly determine layout for provided files. Tring default one"); return(new LayoutInfo(bundle.Header.UnityWebMinimumRevision, DefaultPlatform, DefaultFlags)); } } }
internal static SerializedFileScheme ReadSceme(byte[] buffer, string filePath, string fileName) { SerializedFileScheme scheme = new SerializedFileScheme(buffer, filePath, fileName); scheme.ReadScheme(); return(scheme); }
internal void AddFile(FileScheme scheme, IFileCollection collection, IAssemblyManager manager) { switch (scheme.SchemeType) { case FileEntryType.Serialized: { SerializedFileScheme serializedScheme = (SerializedFileScheme)scheme; SerializedFile file = serializedScheme.ReadFile(collection, manager); m_serializedFiles.Add(file); OnSerializedFileAdded(file); } break; case FileEntryType.Bundle: { BundleFileScheme bundleScheme = (BundleFileScheme)scheme; BundleFile bundle = bundleScheme.ReadFile(collection, manager); m_fileLists.Add(bundle); OnFileListAdded(bundle); } break; case FileEntryType.Archive: { ArchiveFileScheme archiveScheme = (ArchiveFileScheme)scheme; ArchiveFile archive = archiveScheme.ReadFile(collection, manager); m_fileLists.Add(archive); OnFileListAdded(archive); } break; case FileEntryType.Web: { WebFileScheme webScheme = (WebFileScheme)scheme; WebFile webFile = webScheme.ReadFile(collection, manager); m_fileLists.Add(webFile); OnFileListAdded(webFile); } break; case FileEntryType.Resource: { ResourceFileScheme resourceScheme = (ResourceFileScheme)scheme; ResourceFile resource = resourceScheme.ReadFile(); m_resourceFiles.Add(resource); OnResourceFileAdded(resource); } break; default: throw new NotSupportedException(scheme.SchemeType.ToString()); } }
public LayoutInfo GetLayoutInfo() { SerializedFileScheme prime = GetPrimaryFile(); if (prime != null) { return(GetLayoutInfo(prime)); } SerializedFileScheme serialized = GetEngineFile(); return(GetLayoutInfo(serialized)); }
private static AssetLayout GetLayout(GameCollection collection, SerializedFileScheme scheme, string name) { if (!SerializedFileMetadata.HasPlatform(scheme.Header.Version)) { return(collection.Layout); } if (FilenameUtils.IsDefaultResource(name)) { return(collection.Layout); } LayoutInfo info = new LayoutInfo(scheme.Metadata.UnityVersion, scheme.Metadata.TargetPlatform, scheme.Flags); return(collection.GetLayout(info)); }
private static AssetLayout GetLayout(GameCollection collection, SerializedFileScheme scheme, string name) { if (!RTTIClassHierarchyDescriptor.HasPlatform(scheme.Header.Generation)) { return(collection.Layout); } if (FilenameUtils.IsDefaultResource(name)) { return(collection.Layout); } LayoutInfo info = new LayoutInfo(scheme.Metadata.Hierarchy.Version, scheme.Metadata.Hierarchy.Platform, scheme.Flags); return(collection.GetLayout(info)); }
internal void AddFile(GameProcessorContext context, FileScheme scheme) { switch (scheme.SchemeType) { case FileEntryType.Serialized: { SerializedFileScheme serializedScheme = (SerializedFileScheme)scheme; SerializedFile file = serializedScheme.ReadFile(context); AddSerializedFile(file); } break; case FileEntryType.Bundle: { BundleFileScheme bundleScheme = (BundleFileScheme)scheme; BundleFile bundle = bundleScheme.ReadFile(context); AddFileList(bundle); } break; case FileEntryType.Archive: { ArchiveFileScheme archiveScheme = (ArchiveFileScheme)scheme; ArchiveFile archive = archiveScheme.ReadFile(context); AddFileList(archive); } break; case FileEntryType.Web: { WebFileScheme webScheme = (WebFileScheme)scheme; WebFile webFile = webScheme.ReadFile(context); AddFileList(webFile); } break; case FileEntryType.Resource: { ResourceFileScheme resourceScheme = (ResourceFileScheme)scheme; ResourceFile resource = resourceScheme.ReadFile(); AddResourceFile(resource); } break; default: throw new NotSupportedException(scheme.SchemeType.ToString()); } }
internal SerializedFile(GameCollection collection, SerializedFileScheme scheme) { Collection = collection ?? throw new ArgumentNullException(nameof(collection)); FilePath = scheme.FilePath; NameOrigin = scheme.Name; Name = FilenameUtils.FixFileIdentifier(scheme.Name); Layout = GetLayout(collection, scheme, Name); Header = scheme.Header; Metadata = scheme.Metadata; for (int i = 0; i < Metadata.Entries.Length; i++) { m_assetEntryLookup.Add(Metadata.Entries[i].PathID, i); } }
private void ReadFile(SerializedFile file) { #warning TODO: fix cross dependencies m_knownFiles.Add(file.Name); foreach (FileIdentifier dependency in file.Metadata.Externals) { if (!m_knownFiles.Contains(dependency.PathName)) { if (Collection.GameFiles.TryGetValue(dependency.PathName, out SerializedFile dependencyFile)) { ReadFile(dependencyFile); } else { m_knownFiles.Add(dependency.PathName); } } } SerializedFileScheme scheme = m_files[file]; file.ReadData(scheme.Stream); scheme.Dispose(); m_files.Remove(file); }
public void AddSerializedFile(SerializedFile file, SerializedFileScheme scheme) { m_files.Add(file, scheme); }
public static SerializedFileScheme ReadScheme(SmartStream stream, string filePath, string fileName) { return(SerializedFileScheme.ReadSceme(stream, filePath, fileName)); }
public static SerializedFileScheme ReadScheme(byte[] buffer, string filePath, string fileName) { return(SerializedFileScheme.ReadSceme(buffer, filePath, fileName)); }
internal SerializedFile(IFileCollection collection, IAssemblyManager manager, SerializedFileScheme scheme) { if (collection == null) { throw new ArgumentNullException(nameof(collection)); } if (manager == null) { throw new ArgumentNullException(nameof(manager)); } if (scheme == null) { throw new ArgumentNullException(nameof(scheme)); } Collection = collection; AssemblyManager = manager; FilePath = scheme.FilePath; NameOrigin = scheme.Name; Name = FilenameUtils.FixFileIdentifier(scheme.Name); Flags = scheme.Flags; Header = scheme.Header; Metadata = scheme.Metadata; }
internal SerializedFile(IFileCollection collection, IAssemblyManager manager, SerializedFileScheme scheme) { Collection = collection ?? throw new ArgumentNullException(nameof(collection)); AssemblyManager = manager ?? throw new ArgumentNullException(nameof(manager)); FilePath = scheme.FilePath; NameOrigin = scheme.Name; Name = FilenameUtils.FixFileIdentifier(scheme.Name); Flags = scheme.Flags; Header = scheme.Header; Metadata = scheme.Metadata; for (int i = 0; i < Metadata.Entries.Length; i++) { m_assetEntryLookup.Add(Metadata.Entries[i].PathID, i); } }
public static SerializedFileScheme ReadScheme(SmartStream stream, long offset, long size, string filePath, string fileName) { return(SerializedFileScheme.ReadSceme(stream, offset, size, filePath, fileName)); }
public static SerializedFileScheme ReadScheme(SmartStream stream, long offset, long size, string filePath, string fileName, TransferInstructionFlags flags) { return(SerializedFileScheme.ReadSceme(stream, offset, size, filePath, fileName, flags)); }