protected override Data.OverloadSetting GetOverload(Type neosType) { NodeOverload typeOverload = neosType.GetCustomAttribute <NodeOverload>(); if (Overloads.TryGetValue(neosType.FullName, out Data.OverloadSetting overloadSetting)) { return(overloadSetting); } if (typeOverload != null) { if (Overloads.TryGetValue(typeOverload.FunctionName, out overloadSetting)) { return(overloadSetting); } Type foundTypeOverload = LogixHelper.GetMatchingOverload(typeOverload.FunctionName, null, new Func <Type, int>(GetTypeRank)); if (foundTypeOverload != null) { OverloadCache.Add(typeOverload.FunctionName); return(new Data.OverloadSetting { OverloadType = foundTypeOverload?.FullName }); } } return(new Data.OverloadSetting { OverloadType = neosType.FullName }); }
public override bool ValidateProcessor(Type neosType) { NodeOverload typeOverload = neosType.GetCustomAttribute <NodeOverload>(); Category typeCategory = GetCategory(neosType); if (typeOverload != null && OverloadCache.Contains(typeOverload.FunctionName)) { return(false); } if (typeCategory != null && typeCategory.Paths.Any((s) => s == "Hidden")) { return(false); } return(neosType.IsSubclassOf(typeof(Component)) && neosType.IsSubclassOf(typeof(LogixNode)) && !TypeBlacklist.Contains(neosType.FullName)); }