Skip to content

Commit

Permalink
Ensure SDK class properties instantiate
Browse files Browse the repository at this point in the history
  • Loading branch information
paulov-t committed May 15, 2023
1 parent d28aedf commit f97ba93
Showing 1 changed file with 16 additions and 10 deletions.
26 changes: 16 additions & 10 deletions Libraries/SDKGenerator/ModuleWriter.cs
Expand Up @@ -327,7 +327,7 @@ private string WriteClass(DbObject classObj)
//stringBuilder.AppendLine("[" + typeof(IsTransientAttribute).Name + "]");
//if (!classObj.HasValue("isData"))
//{
// stringBuilder.AppendLine("[" + typeof(IsHiddenAttribute).Name + "]");
// stringBuilder.AppendLine("[" + typeof(IsHiddenAttribute).Name + "]");
//}
//stringBuilder.AppendLine("[" + typeof(DisplayNameAttribute).Name + "(\"Id\")]");
//stringBuilder.AppendLine("[" + typeof(CategoryAttribute).Name + "(\"Annotations\")]");
Expand All @@ -351,8 +351,8 @@ private string WriteClass(DbObject classObj)
stringBuilder.AppendLine("public void SetInstanceGuid(AssetClassGuid newGuid) { __Guid = newGuid; }");
}
}
bool flag = classObj.GetValue<string>("name").Equals("Asset");
bool flag2 = false;
bool nameIsAsset = classObj.GetValue<string>("name").Equals("Asset");
bool classObjHasIsData = false;

if (classObj.GetValue<string>("name") == "blocking")
{
Expand Down Expand Up @@ -381,7 +381,7 @@ private string WriteClass(DbObject classObj)

stringBuilder.Append(WriteField(item));

if (!flag && item.GetValue<string>("name").Equals("Name", StringComparison.OrdinalIgnoreCase) && ebxFieldType == EbxFieldType.Pointer && (byte)item.GetValue("type", 0) == 7)
if (!nameIsAsset && item.GetValue<string>("name").Equals("Name", StringComparison.OrdinalIgnoreCase) && ebxFieldType == EbxFieldType.Pointer && (byte)item.GetValue("type", 0) == 7)
{
string name = typeof(EbxClassMetaAttribute).GetProperties()[4].Name;
string name2 = typeof(GlobalAttributes).GetFields()[0].Name;
Expand All @@ -397,7 +397,7 @@ private string WriteClass(DbObject classObj)
// stringBuilder.AppendLine("if (_" + value2 + " != \"\") return _" + value2 + ".ToString();");
// stringBuilder.AppendLine("if (" + typeof(GlobalAttributes).Name + "." + name2 + ")\r\n{\r\n" + typeof(EbxClassMetaAttribute).Name + " attr = GetType().GetCustomAttribute<" + typeof(EbxClassMetaAttribute).Name + ">();\r\nif (attr != null && attr." + name + " != \"\")\r\nreturn attr." + name + " + \".\" + GetType().Name;\r\n}\r\nreturn GetType().Name;");
//stringBuilder.AppendLine("}");
flag2 = true;
classObjHasIsData = true;
}
else
{
Expand All @@ -410,7 +410,7 @@ private string WriteClass(DbObject classObj)
}
}
}
if (parentClassName == "DataContainer" && !flag2)
if (parentClassName == "DataContainer" && !classObjHasIsData)
{
//string name4 = typeof(EbxClassMetaAttribute).GetProperties()[4].Name;
//string name5 = typeof(GlobalAttributes).GetFields()[0].Name;
Expand Down Expand Up @@ -502,7 +502,7 @@ private string WriteField(DbObject fieldObj)
}
}
string fieldType = "";
bool flag2 = false;
bool objectBased = false;
stringBuilder.Append(WriteFieldAttributes(fieldObj));
if (ebxFieldType == EbxFieldType.Array)
{
Expand All @@ -512,12 +512,12 @@ private string WriteField(DbObject fieldObj)
type = (EbxFieldType)dbObject.GetValue("arrayType", 0);
}
fieldType = "List<" + GetFieldType(type, baseType) + ">";
flag2 = true;
objectBased = true;
}
else
{
fieldType = GetFieldType(ebxFieldType, baseType);
flag2 = (ebxFieldType == EbxFieldType.ResourceRef || ebxFieldType == EbxFieldType.BoxedValueRef || ebxFieldType == EbxFieldType.CString || ebxFieldType == EbxFieldType.FileRef || ebxFieldType == EbxFieldType.TypeRef || ebxFieldType == EbxFieldType.Struct);
objectBased = (ebxFieldType == EbxFieldType.ResourceRef || ebxFieldType == EbxFieldType.BoxedValueRef || ebxFieldType == EbxFieldType.CString || ebxFieldType == EbxFieldType.FileRef || ebxFieldType == EbxFieldType.TypeRef || ebxFieldType == EbxFieldType.Struct);
}
if (string.IsNullOrEmpty(fieldType))
fieldType = "PointerRef";
Expand All @@ -529,7 +529,13 @@ private string WriteField(DbObject fieldObj)
else
{
//stringBuilder.AppendLine("public " + fieldType + " " + fieldName + " { get { return _" + fieldName + "; } set { _" + fieldName + " = value; } }");
stringBuilder.AppendLine("public " + fieldType + " " + fieldName + " { get; set; }");
stringBuilder.AppendLine(string.Empty);
stringBuilder.Append("public " + fieldType + " " + fieldName + " { get; set; }");
if(objectBased)
{
stringBuilder.Append(" = new " + fieldType + "();");
}
stringBuilder.AppendLine(string.Empty);
}
//stringBuilder.AppendLine("protected " + fieldType + " _" + fieldName + (flag2 ? (" = new " + fieldType + "()") : "") + ";");
return stringBuilder.ToString();
Expand Down

0 comments on commit f97ba93

Please sign in to comment.