diff --git a/.gitignore b/.gitignore index 2f61790..1249539 100644 --- a/.gitignore +++ b/.gitignore @@ -37,6 +37,9 @@ bld/ # Uncomment if you have tasks that create the project's static files in wwwroot #wwwroot/ +# Rider +/.idea + # Visual Studio 2017 auto generated files Generated\ Files/ diff --git a/TypeTreeGeneratorAPI/TypeTreeGenerator/AssetRipper/AssetRipper.cs b/TypeTreeGeneratorAPI/TypeTreeGenerator/AssetRipper/AssetRipper.cs index fccb0d0..7a6e9e4 100644 --- a/TypeTreeGeneratorAPI/TypeTreeGenerator/AssetRipper/AssetRipper.cs +++ b/TypeTreeGeneratorAPI/TypeTreeGenerator/AssetRipper/AssetRipper.cs @@ -26,8 +26,9 @@ public AssetRipperGenerator(string unityVersionString) : base(unityVersionString var nameSpace = lastDot == -1 ? "" : fullName.Substring(0, lastDot); var className = lastDot == -1 ? fullName : fullName.Substring(lastDot + 1); + var assemblyNameNormalized = assemblyName.EndsWith(".dll") ? assemblyName[..^".dll".Length] : assemblyName; - var type = FindType(assemblyName, nameSpace, className); + var type = FindType(assemblyNameNormalized, nameSpace, className); if (type == null) { return null; diff --git a/TypeTreeGeneratorAPI/TypeTreeGenerator/AssetStudio/AssetStudioGenerator.cs b/TypeTreeGeneratorAPI/TypeTreeGenerator/AssetStudio/AssetStudioGenerator.cs index 1abf9c1..6661e1c 100644 --- a/TypeTreeGeneratorAPI/TypeTreeGenerator/AssetStudio/AssetStudioGenerator.cs +++ b/TypeTreeGeneratorAPI/TypeTreeGenerator/AssetStudio/AssetStudioGenerator.cs @@ -48,7 +48,9 @@ public override void LoadDll(Stream dllStream) public override List? GenerateTreeNodes(string assemblyName, string fullName) { - var typeDef = GetTypeDefinition(assemblyName, fullName); + var assemblyNameNormalized = assemblyName.EndsWith(".dll") ? assemblyName : $"{assemblyName}.dll"; + + var typeDef = GetTypeDefinition(assemblyNameNormalized, fullName); if (typeDef != null) { return GenerateTreeNodes(typeDef); @@ -80,12 +82,8 @@ private static bool IsMonoBehaviour(TypeDefinition type) private List GenerateTreeNodes(TypeDefinition typeDef) { - // from AssetStudioUtility.MonoBehaviourConverter - var m_Nodes = new List(); - serializedTypeHelper.AddMonoBehaviour(m_Nodes, 0); var converter = new TypeDefinitionConverter(typeDef, serializedTypeHelper, 1); - m_Nodes.AddRange(converter.ConvertToTypeTreeNodes()); - return m_Nodes; + return converter.ConvertToTypeTreeNodes(); } private TypeDefinition? GetTypeDefinition(string assemblyName, string fullName) diff --git a/TypeTreeGeneratorAPI/TypeTreeGenerator/AssetStudio/AssetStudioUtility/SerilizedTypeHelper.cs b/TypeTreeGeneratorAPI/TypeTreeGenerator/AssetStudio/AssetStudioUtility/SerilizedTypeHelper.cs index c07c209..5559161 100644 --- a/TypeTreeGeneratorAPI/TypeTreeGenerator/AssetStudio/AssetStudioUtility/SerilizedTypeHelper.cs +++ b/TypeTreeGeneratorAPI/TypeTreeGenerator/AssetStudio/AssetStudioUtility/SerilizedTypeHelper.cs @@ -9,15 +9,6 @@ public SerializedTypeHelper(int[] version) this.version = version; } - public void AddMonoBehaviour(List nodes, int indent) - { - nodes.Add(new TypeTreeNode("MonoBehaviour", "Base", indent, false)); - AddPPtr(nodes, "GameObject", "m_GameObject", indent + 1); - nodes.Add(new TypeTreeNode("UInt8", "m_Enabled", indent + 1, true)); - AddPPtr(nodes, "MonoScript", "m_Script", indent + 1); - AddString(nodes, "m_Name", indent + 1); - } - public void AddPPtr(List nodes, string type, string name, int indent) { nodes.Add(new TypeTreeNode($"PPtr<{type}>", name, indent, false));