From 15fb695bcdbd71e0a7d8c9d50d0a46e225a1a475 Mon Sep 17 00:00:00 2001 From: mm00 Date: Tue, 18 Feb 2025 17:59:52 +0100 Subject: [PATCH] modified handling of array types in dna field attributes generation --- CodeGenerator/Program.cs | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/CodeGenerator/Program.cs b/CodeGenerator/Program.cs index e32cbe1..8e8daa6 100644 --- a/CodeGenerator/Program.cs +++ b/CodeGenerator/Program.cs @@ -221,7 +221,7 @@ namespace CodeGenerator { cmp = new CodeMemberProperty() { Name = "UnderlyingType", - Type = new CodeTypeReference(typeof(Type)), + Type = new CodeTypeReference(typeof(string)), Attributes = MemberAttributes.Public, HasGet = true, GetStatements = { @@ -240,7 +240,7 @@ namespace CodeGenerator { new(typeof(int), "originalIndex"), new(typeof(string), "originalType"), new(typeof(string), "originalName"), - new(typeof(Type), "underlyingType"), + new(typeof(string), "underlyingType"), new(typeof(int), "size") }); @@ -324,12 +324,20 @@ namespace CodeGenerator { private static CodeAttributeDeclaration GenerateDNAFieldAttribute(int index, BlendFile.DnaField field, BlendFile.Dna1Body body) { - Type t; + string t; if (field.Name.Contains('[')) { CodeMemberField amf = CreateArrayMemberField(field); - t = Type.GetType($"Array<{amf.Type.ArrayElementType.BaseType}>"); - } else { - t = Type.GetType(field.Type.ParseFType()); + var sb = new StringBuilder(); + sb.Append(amf.Type.BaseType); + sb.Append("["); + for(int i=1; i