49 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using EpicGames.UHT.Types;
 | |
| using System.Collections.Generic;
 | |
| using System.Linq;
 | |
| using UnrealSharpScriptGenerator.Utilities;
 | |
| 
 | |
| namespace UnrealSharpScriptGenerator;
 | |
| 
 | |
| public static class InclusionLists
 | |
| {
 | |
|     private static readonly IDictionary<string, HashSet<string>> BannedProperties = new Dictionary<string, HashSet<string>>();
 | |
|     private static readonly HashSet<string> BannedEquality = new HashSet<string>();
 | |
|     private static readonly HashSet<string> BannedArithmetic = new HashSet<string>();
 | |
| 
 | |
|     public static void BanProperty(string structName, string propertyName)
 | |
|     {
 | |
|         if (!BannedProperties.TryGetValue(structName, out var propertySet))
 | |
|         {
 | |
|             propertySet = new HashSet<string>();
 | |
|             BannedProperties[structName] = propertySet;
 | |
|         }
 | |
| 
 | |
|         propertySet.Add(propertyName);
 | |
|     }
 | |
|     
 | |
|     public static bool HasBannedProperty(UhtProperty property)
 | |
|     {
 | |
|         return BannedProperties.TryGetValue(property.Outer!.SourceName, out var propertySet) && propertySet.Contains(property.SourceName);
 | |
|     }
 | |
| 
 | |
|     public static void BanEquality(string structName)
 | |
|     {
 | |
|         BannedEquality.Add(structName);
 | |
|     }
 | |
| 
 | |
|     public static bool HasBannedEquality(UhtStruct scriptStruct)
 | |
|     {
 | |
|         return BannedEquality.Contains(scriptStruct.GetStructName());
 | |
|     }
 | |
| 
 | |
|     public static void BanArithmetic(string structName)
 | |
|     {
 | |
|         BannedArithmetic.Add(structName);
 | |
|     }
 | |
| 
 | |
|     public static bool HasBannedArithmetic(UhtStruct scriptStruct)
 | |
|     {
 | |
|         return BannedArithmetic.Contains(scriptStruct.GetStructName());
 | |
|     }
 | |
| } |