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);
 | |
|         }
 | |
|     }*/
 | |
| } |