Some other fixes

This commit is contained in:
VaDiM
2025-08-27 05:23:50 +03:00
parent 521e2f3bbc
commit ae3b5169df
13 changed files with 204 additions and 196 deletions

View File

@@ -15,7 +15,7 @@ namespace AssetStudio
{
public class AssetsManager
{
public bool LoadingViaTypeTreeEnabled = true;
public bool LoadViaTypeTree = true;
public ImportOptions Options = new ImportOptions();
public readonly List<Action<OptionsFile>> OptionLoaders = new List<Action<OptionsFile>>();
public readonly List<SerializedFile> AssetsFileList = new List<SerializedFile>();
@@ -154,6 +154,8 @@ namespace AssetStudio
importFilesHash.Clear();
noexistFiles.Clear();
assetsFileListHash.Clear();
if (AssetsFileList.Count == 0)
return;
ReadAssets();
ProcessAssets();
@@ -188,6 +190,9 @@ namespace AssetStudio
case FileType.ZipFile:
LoadZipFile(reader);
break;
case FileType.ResourceFile when !fromZip:
reader.Dispose();
break;
}
return true;
}
@@ -277,7 +282,7 @@ namespace AssetStudio
catch (NotSupportedException e)
{
Logger.Error(e.Message);
resourceFileReaders.TryAdd(reader.FileName, reader);
reader.Dispose();
return false;
}
catch (Exception e)
@@ -648,7 +653,7 @@ namespace AssetStudio
obj = new Animation(objectReader);
break;
case ClassIDType.AnimationClip:
obj = objectReader.serializedType?.m_Type != null && LoadingViaTypeTreeEnabled
obj = objectReader.serializedType?.m_Type != null && LoadViaTypeTree
? new AnimationClip(objectReader, TypeTreeHelper.ReadTypeByteArray(objectReader.serializedType.m_Type, objectReader), jsonOptions, objectInfo)
: new AnimationClip(objectReader);
break;
@@ -680,7 +685,7 @@ namespace AssetStudio
obj = new GameObject(objectReader);
break;
case ClassIDType.Material:
obj = objectReader.serializedType?.m_Type != null && LoadingViaTypeTreeEnabled
obj = objectReader.serializedType?.m_Type != null && LoadViaTypeTree
? new Material(objectReader, TypeTreeHelper.ReadTypeByteArray(objectReader.serializedType.m_Type, objectReader), jsonOptions)
: new Material(objectReader);
break;
@@ -728,12 +733,12 @@ namespace AssetStudio
obj = new TextAsset(objectReader);
break;
case ClassIDType.Texture2D:
obj = objectReader.serializedType?.m_Type != null && LoadingViaTypeTreeEnabled
obj = objectReader.serializedType?.m_Type != null && LoadViaTypeTree
? new Texture2D(objectReader, TypeTreeHelper.ReadTypeByteArray(objectReader.serializedType.m_Type, objectReader), jsonOptions)
: new Texture2D(objectReader);
break;
case ClassIDType.Texture2DArray:
obj = objectReader.serializedType?.m_Type != null && LoadingViaTypeTreeEnabled
obj = objectReader.serializedType?.m_Type != null && LoadViaTypeTree
? new Texture2DArray(objectReader, TypeTreeHelper.ReadTypeByteArray(objectReader.serializedType.m_Type, objectReader), jsonOptions)
: new Texture2DArray(objectReader);
break;

View File

@@ -102,7 +102,7 @@ namespace AssetStudio
{
if (typeDict != null)
{
return JsonSerializer.SerializeToDocument(typeDict);
return JsonSerializer.SerializeToDocument(typeDict, jsonOptions);
}
return JsonSerializer.SerializeToDocument(this, GetType(), jsonOptions);
}

View File

@@ -6,7 +6,6 @@ namespace AssetStudio
{
public string Name { get; set; }
public string Container { get; set; }
public bool IsRoot { get; set; }
public MonoBehaviour CubismModelMono { get; set; }
public MonoBehaviour PhysicsController { get; set; }
public MonoBehaviour FadeController { get; set; }
@@ -21,7 +20,6 @@ namespace AssetStudio
public CubismModel(GameObject m_GameObject)
{
Name = m_GameObject.m_Name;
IsRoot = m_GameObject.m_Transform.m_Father.IsNull;
ModelGameObject = m_GameObject;
RenderTextureList = new List<MonoBehaviour>();
ParamDisplayInfoList = new List<MonoBehaviour>();

View File

@@ -27,7 +27,7 @@ namespace AssetStudio
{
var stringData = reader.ReadBytes(length);
var result = Encoding.UTF8.GetString(stringData);
reader.AlignStream(4);
reader.AlignStream();
return result;
}
return "";

View File

@@ -302,10 +302,11 @@ namespace AssetStudio
case "TypelessData":
{
var size = reader.ReadInt32();
var offset = size > 0 ? reader.BaseStream.Position : 0;
var dic = new OrderedDictionary
{
{ "Offset", reader.BaseStream.Position },
{ "Size", size }
{"Offset", offset},
{"Size", size}
};
value = dic;
reader.BaseStream.Position += size;