34 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			34 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
|  | using System.Linq; | |||
|  | using EpicGames.UHT.Types; | |||
|  | using UnrealSharpScriptGenerator.Utilities; | |||
|  | 
 | |||
|  | namespace UnrealSharpScriptGenerator.PropertyTranslators; | |||
|  | 
 | |||
|  | public class IntPropertyTranslator : BlittableTypePropertyTranslator | |||
|  | { | |||
|  |     public IntPropertyTranslator() : base(typeof(UhtIntProperty), "int", PropertyKind.Int) | |||
|  |     { | |||
|  |     } | |||
|  | 
 | |||
|  |     public override string GetManagedType(UhtProperty property) | |||
|  |     { | |||
|  |         if (property.Outer is UhtFunction function && property.IsCustomStructureType()) | |||
|  |         { | |||
|  |             if (function.GetCustomStructParamCount() == 1) return "CSP"; | |||
|  |             return $"CSP{property.GetPrecedingCustomStructParams()}"; | |||
|  |         } | |||
|  |          | |||
|  |         return base.GetManagedType(property); | |||
|  |     } | |||
|  | 
 | |||
|  |     public override string GetMarshaller(UhtProperty property) | |||
|  |     { | |||
|  |         if (property.Outer is UhtFunction && property.IsCustomStructureType()) | |||
|  |         { | |||
|  |             return $"StructMarshaller<{GetManagedType(property)}>"; | |||
|  |         } | |||
|  |         return base.GetMarshaller(property); | |||
|  |     } | |||
|  | 
 | |||
|  |     public override bool CanSupportCustomStruct(UhtProperty property) => true; | |||
|  | } |