mirror of
https://github.com/aelurum/AssetStudio.git
synced 2025-05-25 05:40:21 -04:00
Some minor fixes
This commit is contained in:
parent
045f6c0ff4
commit
afdc81bca8
@ -145,8 +145,7 @@ namespace AssetStudio
|
|||||||
switch (reader?.FileType)
|
switch (reader?.FileType)
|
||||||
{
|
{
|
||||||
case FileType.AssetsFile:
|
case FileType.AssetsFile:
|
||||||
LoadAssetsFile(reader);
|
return LoadAssetsFile(reader);
|
||||||
break;
|
|
||||||
case FileType.BundleFile:
|
case FileType.BundleFile:
|
||||||
return LoadBundleFile(reader);
|
return LoadBundleFile(reader);
|
||||||
case FileType.WebFile:
|
case FileType.WebFile:
|
||||||
@ -165,7 +164,7 @@ namespace AssetStudio
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void LoadAssetsFile(FileReader reader)
|
private bool LoadAssetsFile(FileReader reader)
|
||||||
{
|
{
|
||||||
if (!assetsFileListHash.Contains(reader.FileName))
|
if (!assetsFileListHash.Contains(reader.FileName))
|
||||||
{
|
{
|
||||||
@ -173,6 +172,7 @@ namespace AssetStudio
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
var assetsFile = new SerializedFile(reader, this);
|
var assetsFile = new SerializedFile(reader, this);
|
||||||
|
var dirName = Path.GetDirectoryName(reader.FullPath);
|
||||||
CheckStrippedVersion(assetsFile);
|
CheckStrippedVersion(assetsFile);
|
||||||
assetsFileList.Add(assetsFile);
|
assetsFileList.Add(assetsFile);
|
||||||
assetsFileListHash.Add(assetsFile.fileName);
|
assetsFileListHash.Add(assetsFile.fileName);
|
||||||
@ -183,12 +183,12 @@ namespace AssetStudio
|
|||||||
|
|
||||||
if (!importFilesHash.Contains(sharedFileName))
|
if (!importFilesHash.Contains(sharedFileName))
|
||||||
{
|
{
|
||||||
var sharedFilePath = Path.Combine(Path.GetDirectoryName(reader.FullPath), sharedFileName);
|
var sharedFilePath = Path.Combine(dirName, sharedFileName);
|
||||||
if (!noexistFiles.Contains(sharedFilePath))
|
if (!noexistFiles.Contains(sharedFilePath))
|
||||||
{
|
{
|
||||||
if (!File.Exists(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)
|
if (findFiles.Length > 0)
|
||||||
{
|
{
|
||||||
sharedFilePath = findFiles[0];
|
sharedFilePath = findFiles[0];
|
||||||
@ -211,10 +211,11 @@ namespace AssetStudio
|
|||||||
{
|
{
|
||||||
Logger.Error(e.Message);
|
Logger.Error(e.Message);
|
||||||
reader.Dispose();
|
reader.Dispose();
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
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();
|
reader.Dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -223,9 +224,10 @@ namespace AssetStudio
|
|||||||
Logger.Info($"Skipping {reader.FullPath}");
|
Logger.Info($"Skipping {reader.FullPath}");
|
||||||
reader.Dispose();
|
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))
|
if (!assetsFileListHash.Contains(reader.FileName))
|
||||||
{
|
{
|
||||||
@ -245,16 +247,20 @@ namespace AssetStudio
|
|||||||
{
|
{
|
||||||
Logger.Error(e.Message);
|
Logger.Error(e.Message);
|
||||||
resourceFileReaders.Add(reader.FileName, reader);
|
resourceFileReaders.Add(reader.FileName, reader);
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
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);
|
resourceFileReaders.Add(reader.FileName, reader);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
Logger.Info($"Skipping {originalPath} ({reader.FileName})");
|
Logger.Info($"Skipping {originalPath} ({reader.FileName})");
|
||||||
}
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
private bool LoadBundleFile(FileReader reader, string originalPath = null)
|
private bool LoadBundleFile(FileReader reader, string originalPath = null)
|
||||||
{
|
{
|
||||||
@ -268,7 +274,8 @@ namespace AssetStudio
|
|||||||
var subReader = new FileReader(dummyPath, file.stream);
|
var subReader = new FileReader(dummyPath, file.stream);
|
||||||
if (subReader.FileType == FileType.AssetsFile)
|
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))
|
else if (!resourceFileReaders.ContainsKey(file.fileName))
|
||||||
{
|
{
|
||||||
|
@ -1,20 +1,22 @@
|
|||||||
using Newtonsoft.Json.Serialization;
|
using Newtonsoft.Json;
|
||||||
using Newtonsoft.Json;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Collections.Specialized;
|
using System.Collections.Specialized;
|
||||||
using System.Reflection;
|
|
||||||
|
|
||||||
namespace AssetStudio
|
namespace AssetStudio
|
||||||
{
|
{
|
||||||
public class Object
|
public class Object
|
||||||
{
|
{
|
||||||
|
[JsonIgnore]
|
||||||
public SerializedFile assetsFile;
|
public SerializedFile assetsFile;
|
||||||
|
[JsonIgnore]
|
||||||
public ObjectReader reader;
|
public ObjectReader reader;
|
||||||
public long m_PathID;
|
public long m_PathID;
|
||||||
|
[JsonIgnore]
|
||||||
public int[] version;
|
public int[] version;
|
||||||
protected BuildType buildType;
|
protected BuildType buildType;
|
||||||
|
[JsonIgnore]
|
||||||
public BuildTarget platform;
|
public BuildTarget platform;
|
||||||
public ClassIDType type;
|
public ClassIDType type;
|
||||||
|
[JsonIgnore]
|
||||||
public SerializedType serializedType;
|
public SerializedType serializedType;
|
||||||
public uint byteSize;
|
public uint byteSize;
|
||||||
|
|
||||||
@ -66,7 +68,6 @@ namespace AssetStudio
|
|||||||
{
|
{
|
||||||
Formatting = Formatting.Indented,
|
Formatting = Formatting.Indented,
|
||||||
ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
|
ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
|
||||||
ContractResolver = new IgnorePropertiesResolver()
|
|
||||||
}).Replace(" ", " ");
|
}).Replace(" ", " ");
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
@ -99,25 +100,5 @@ namespace AssetStudio
|
|||||||
reader.Reset();
|
reader.Reset();
|
||||||
return reader.ReadBytes((int)byteSize);
|
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user