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());
|
|
}
|
|
} |