mirror of
				https://github.com/aelurum/AssetStudio.git
				synced 2025-10-30 15:05:03 -04:00 
			
		
		
		
	Some minor fixes
This commit is contained in:
		| @ -145,8 +145,7 @@ namespace AssetStudio | ||||
|             switch (reader?.FileType) | ||||
|             { | ||||
|                 case FileType.AssetsFile: | ||||
|                     LoadAssetsFile(reader); | ||||
|                     break; | ||||
|                     return LoadAssetsFile(reader); | ||||
|                 case FileType.BundleFile: | ||||
|                     return LoadBundleFile(reader); | ||||
|                 case FileType.WebFile: | ||||
| @ -165,7 +164,7 @@ namespace AssetStudio | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         private void LoadAssetsFile(FileReader reader) | ||||
|         private bool LoadAssetsFile(FileReader reader) | ||||
|         { | ||||
|             if (!assetsFileListHash.Contains(reader.FileName)) | ||||
|             { | ||||
| @ -173,6 +172,7 @@ namespace AssetStudio | ||||
|                 try | ||||
|                 { | ||||
|                     var assetsFile = new SerializedFile(reader, this); | ||||
|                     var dirName = Path.GetDirectoryName(reader.FullPath); | ||||
|                     CheckStrippedVersion(assetsFile); | ||||
|                     assetsFileList.Add(assetsFile); | ||||
|                     assetsFileListHash.Add(assetsFile.fileName); | ||||
| @ -183,12 +183,12 @@ namespace AssetStudio | ||||
|  | ||||
|                         if (!importFilesHash.Contains(sharedFileName)) | ||||
|                         { | ||||
|                             var sharedFilePath = Path.Combine(Path.GetDirectoryName(reader.FullPath), sharedFileName); | ||||
|                             var sharedFilePath = Path.Combine(dirName, sharedFileName); | ||||
|                             if (!noexistFiles.Contains(sharedFilePath)) | ||||
|                             { | ||||
|                                 if (!File.Exists(sharedFilePath)) | ||||
|                                 { | ||||
|                                     var findFiles = Directory.GetFiles(Path.GetDirectoryName(reader.FullPath), sharedFileName, SearchOption.AllDirectories); | ||||
|                                     var findFiles = Directory.GetFiles(dirName, sharedFileName, SearchOption.AllDirectories); | ||||
|                                     if (findFiles.Length > 0) | ||||
|                                     { | ||||
|                                         sharedFilePath = findFiles[0]; | ||||
| @ -211,10 +211,11 @@ namespace AssetStudio | ||||
|                 { | ||||
|                     Logger.Error(e.Message); | ||||
|                     reader.Dispose(); | ||||
|                     return false; | ||||
|                 } | ||||
|                 catch (Exception e) | ||||
|                 { | ||||
|                     Logger.Warning($"Error while reading assets file {reader.FullPath}\r\n{e}"); | ||||
|                     Logger.Warning($"Failed to read assets file {reader.FullPath}\r\n{e}"); | ||||
|                     reader.Dispose(); | ||||
|                 } | ||||
|             } | ||||
| @ -223,9 +224,10 @@ namespace AssetStudio | ||||
|                 Logger.Info($"Skipping {reader.FullPath}"); | ||||
|                 reader.Dispose(); | ||||
|             } | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         private void LoadAssetsFromMemory(FileReader reader, string originalPath, string unityVersion = null) | ||||
|         private bool LoadAssetsFromMemory(FileReader reader, string originalPath, string unityVersion = null) | ||||
|         { | ||||
|             if (!assetsFileListHash.Contains(reader.FileName)) | ||||
|             { | ||||
| @ -245,15 +247,19 @@ namespace AssetStudio | ||||
|                 { | ||||
|                     Logger.Error(e.Message); | ||||
|                     resourceFileReaders.Add(reader.FileName, reader); | ||||
|                     return false; | ||||
|                 } | ||||
|                 catch (Exception e) | ||||
|                 { | ||||
|                     Logger.Warning($"Error while reading assets file {reader.FullPath} from {Path.GetFileName(originalPath)}\r\n{e}"); | ||||
|                     Logger.Warning($"Failed to read assets file {reader.FullPath} from {Path.GetFileName(originalPath)}\r\n{e}"); | ||||
|                     resourceFileReaders.Add(reader.FileName, reader); | ||||
|                 } | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|                 Logger.Info($"Skipping {originalPath} ({reader.FileName})"); | ||||
|             } | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         private bool LoadBundleFile(FileReader reader, string originalPath = null) | ||||
| @ -268,7 +274,8 @@ namespace AssetStudio | ||||
|                     var subReader = new FileReader(dummyPath, file.stream); | ||||
|                     if (subReader.FileType == FileType.AssetsFile) | ||||
|                     { | ||||
|                         LoadAssetsFromMemory(subReader, originalPath ?? reader.FullPath, bundleFile.m_Header.unityRevision); | ||||
|                         if (!LoadAssetsFromMemory(subReader, originalPath ?? reader.FullPath, bundleFile.m_Header.unityRevision)) | ||||
|                             return false; | ||||
|                     } | ||||
|                     else if (!resourceFileReaders.ContainsKey(file.fileName)) | ||||
|                     { | ||||
|  | ||||
| @ -1,20 +1,22 @@ | ||||
| using Newtonsoft.Json.Serialization; | ||||
| using Newtonsoft.Json; | ||||
| using System.Collections.Generic; | ||||
| using Newtonsoft.Json; | ||||
| using System.Collections.Specialized; | ||||
| using System.Reflection; | ||||
|  | ||||
| namespace AssetStudio | ||||
| { | ||||
|     public class Object | ||||
|     { | ||||
|         [JsonIgnore] | ||||
|         public SerializedFile assetsFile; | ||||
|         [JsonIgnore] | ||||
|         public ObjectReader reader; | ||||
|         public long m_PathID; | ||||
|         [JsonIgnore] | ||||
|         public int[] version; | ||||
|         protected BuildType buildType; | ||||
|         [JsonIgnore] | ||||
|         public BuildTarget platform; | ||||
|         public ClassIDType type; | ||||
|         [JsonIgnore] | ||||
|         public SerializedType serializedType; | ||||
|         public uint byteSize; | ||||
|  | ||||
| @ -66,7 +68,6 @@ namespace AssetStudio | ||||
|                 { | ||||
|                     Formatting = Formatting.Indented, | ||||
|                     ReferenceLoopHandling = ReferenceLoopHandling.Ignore, | ||||
|                     ContractResolver = new IgnorePropertiesResolver() | ||||
|                 }).Replace("  ", "    "); | ||||
|             } | ||||
|             catch | ||||
| @ -99,25 +100,5 @@ namespace AssetStudio | ||||
|             reader.Reset(); | ||||
|             return reader.ReadBytes((int)byteSize); | ||||
|         } | ||||
|  | ||||
|         private class IgnorePropertiesResolver : DefaultContractResolver | ||||
|         { | ||||
|             private static readonly HashSet<string> _ignoreProps; | ||||
|  | ||||
|             static IgnorePropertiesResolver() | ||||
|             { | ||||
|                 _ignoreProps = new HashSet<string> { "assetsFile", "reader", "version", "platform", "serializedType" }; | ||||
|             } | ||||
|  | ||||
|             protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization) | ||||
|             { | ||||
|                 JsonProperty property = base.CreateProperty(member, memberSerialization); | ||||
|                 if (_ignoreProps.Contains(property.PropertyName)) | ||||
|                 { | ||||
|                     property.ShouldSerialize = _ => false; | ||||
|                 } | ||||
|                 return property; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user