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