75 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			75 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
|  | using System.Collections.Generic; | ||
|  | using System.IO; | ||
|  | using System.Linq; | ||
|  | using EpicGames.Core; | ||
|  | using EpicGames.UHT.Types; | ||
|  | 
 | ||
|  | namespace UnrealSharpScriptGenerator.Utilities; | ||
|  | 
 | ||
|  | public static class PackageUtilities | ||
|  | { | ||
|  |     public const string SkipGlueGenerationDefine = "SkipGlueGeneration"; | ||
|  | 
 | ||
|  |     public static string GetShortName(this UhtPackage package) | ||
|  |     { | ||
|  |         #if UE_5_5_OR_LATER | ||
|  |         return package.Module.ShortName; | ||
|  |         #else | ||
|  |         return package.ShortName; | ||
|  |         #endif | ||
|  |     } | ||
|  | 
 | ||
|  |     public static bool IsPartOfEngine(this UhtPackage package) | ||
|  |     { | ||
|  |         bool isPartOfEngine = false; | ||
|  |         #if UE_5_5_OR_LATER | ||
|  |         isPartOfEngine = package.Module.IsPartOfEngine; | ||
|  |         #else | ||
|  |         isPartOfEngine = package.IsPartOfEngine; | ||
|  |         #endif | ||
|  | 
 | ||
|  |         return isPartOfEngine || package.IsForcedAsEngineGlue(); | ||
|  |     } | ||
|  | 
 | ||
|  |     public static bool IsPlugin(this UhtPackage package) | ||
|  |     { | ||
|  |         #if UE_5_5_OR_LATER | ||
|  |         return package.Module.IsPlugin; | ||
|  |         #else | ||
|  |         return package.IsPlugin; | ||
|  |         #endif | ||
|  |     } | ||
|  | 
 | ||
|  |     public static bool IsForcedAsEngineGlue(this UhtPackage package) | ||
|  |     { | ||
|  |         bool hasDefine = package.GetModule().TryGetDefine("ForceAsEngineGlue", out int treatedAsEngineGlue); | ||
|  |         return hasDefine && treatedAsEngineGlue != 0; | ||
|  |     } | ||
|  | 
 | ||
|  |     public static UHTManifest.Module GetModule(this UhtPackage package) | ||
|  |     { | ||
|  |         #if UE_5_5_OR_LATER | ||
|  |         return package.Module.Module; | ||
|  |         #else | ||
|  |         return package.Module; | ||
|  |         #endif | ||
|  |     } | ||
|  | 
 | ||
|  |     public static bool ShouldExport(this UhtPackage package) | ||
|  |     { | ||
|  |         bool foundDefine = package.GetModule().PublicDefines.Contains(SkipGlueGenerationDefine); | ||
|  |         return !foundDefine; | ||
|  |     } | ||
|  | 
 | ||
|  |     public static IReadOnlyCollection<UhtHeaderFile> GetHeaderFiles(this UhtPackage package) | ||
|  |     { | ||
|  |         #if UE_5_5_OR_LATER | ||
|  |         return package.Module.Headers; | ||
|  |         #else | ||
|  |         return package.Children | ||
|  |             .OfType<UhtHeaderFile>() | ||
|  |             .ToList(); | ||
|  |         #endif | ||
|  |     } | ||
|  | } |