43 lines
1.4 KiB
C#
43 lines
1.4 KiB
C#
|
|
using System;
|
|||
|
|
using EpicGames.UHT.Types;
|
|||
|
|
using UnrealSharpScriptGenerator.Utilities;
|
|||
|
|
|
|||
|
|
namespace UnrealSharpScriptGenerator.PropertyTranslators;
|
|||
|
|
|
|||
|
|
public class ClassPropertyTranslator : SimpleTypePropertyTranslator
|
|||
|
|
{
|
|||
|
|
public ClassPropertyTranslator() : base(typeof(UhtClassProperty))
|
|||
|
|
{
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public override string GetManagedType(UhtProperty property)
|
|||
|
|
{
|
|||
|
|
UhtClassProperty classProperty = (UhtClassProperty)property;
|
|||
|
|
string fullName = property.IsGenericType() ? "DOT"
|
|||
|
|
: classProperty.MetaClass!.GetFullManagedName();
|
|||
|
|
|
|||
|
|
return $"TSubclassOf<{fullName}>";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public override string GetMarshaller(UhtProperty property)
|
|||
|
|
{
|
|||
|
|
UhtClassProperty classProperty = (UhtClassProperty)property;
|
|||
|
|
string fullName = property.IsGenericType() ? "DOT"
|
|||
|
|
: classProperty.MetaClass!.GetFullManagedName();
|
|||
|
|
|
|||
|
|
return $"SubclassOfMarshaller<{fullName}>";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*
|
|||
|
|
public override void ExportToNative(GeneratorStringBuilder builder, UhtProperty property, string propertyName, string destinationBuffer, string offset, string source)
|
|||
|
|
{
|
|||
|
|
if (property.IsGenericType())
|
|||
|
|
{
|
|||
|
|
builder.AppendLine($"{GetMarshaller(property)}.ToNative(IntPtr.Add({destinationBuffer}, {offset}), 0, typeof(DOT));");
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
base.ExportToNative(builder, property, propertyName, destinationBuffer, offset, source);
|
|||
|
|
}
|
|||
|
|
}*/
|
|||
|
|
}
|