Refactor MonoBehaviour reading

This commit is contained in:
Perfare
2020-08-14 00:02:59 +08:00
parent efbab7c43a
commit 9b2c85bcae
18 changed files with 727 additions and 524 deletions

View File

@@ -8,7 +8,7 @@ namespace AssetStudio
public sealed class MonoScript : NamedObject
{
public string m_ClassName;
public string m_Namespace = string.Empty;
public string m_Namespace;
public string m_AssemblyName;
public MonoScript(ObjectReader reader) : base(reader)

View File

@@ -43,7 +43,6 @@ namespace AssetStudio
public string Dump()
{
reader.Reset();
if (serializedType?.m_Nodes != null)
{
var sb = new StringBuilder();

View File

@@ -1,19 +1,23 @@
using System;
using System.Collections.Generic;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
namespace AssetStudio
{
public static class TypeTreeHelper
{
public static void ReadTypeString(StringBuilder sb, List<TypeTreeNode> members, BinaryReader reader)
public static void ReadTypeString(StringBuilder sb, List<TypeTreeNode> members, ObjectReader reader)
{
reader.Reset();
for (int i = 0; i < members.Count; i++)
{
ReadStringValue(sb, members, reader, ref i);
}
var readed = reader.Position - reader.byteStart;
if (readed != reader.byteSize)
{
Logger.Error($"Error while read type, read {readed} bytes but expected {reader.byteSize} bytes");
}
}
private static void ReadStringValue(StringBuilder sb, List<TypeTreeNode> members, BinaryReader reader, ref int i)

View File

@@ -18,5 +18,15 @@ namespace AssetStudio
public uint m_TypeStrOffset;
public uint m_NameStrOffset;
public ulong m_RefTypeHash;
public TypeTreeNode() { }
public TypeTreeNode(string type, string name, int level, bool align)
{
m_Type = type;
m_Name = name;
m_Level = level;
m_MetaFlag = align ? 0x4000 : 0;
}
}
}