| @ -0,0 +1,74 @@ | ||||
| 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 | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user