public static object LoadFile(string filepath) { var scheme = GameCollection.LoadScheme(filepath, Path.GetFileName(filepath)); object file = LoadScheme(scheme); scheme.Dispose(); return(file); }
public static object LoadFile(string filepath) { var scheme = GameCollection.LoadScheme(filepath, Path.GetFileName(filepath)); object file = null; if (scheme is SerializedFileScheme serializedFileScheme) { //TODO /*var platform = serializedFileScheme.Metadata != null && * serializedFileScheme.Metadata.Hierarchy.Platform != 0 ? * serializedFileScheme.Metadata.Hierarchy.Platform * : Platform.StandaloneWin64Player; * var version = serializedFileScheme.Metadata != null ? * serializedFileScheme.Metadata.Hierarchy.Version * : 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); } if (scheme is ArchiveFileScheme archiveFileScheme) { file = Util.CreateInstance <ArchiveFile>(scheme); } if (scheme is WebFileScheme webFileScheme) { file = Util.CreateInstance <WebFile>(scheme); } if (scheme is ResourceFileScheme resourceFileScheme) { file = Util.CreateInstance <ResourceFile>(scheme); } scheme.Dispose(); return(file); }