public AdvancedObjectSelector(string id, string displayName, int priority, bool active, AdvancedObjectSelectorHandler handler, AdvancedObjectSelectorValidator validator) { this.id = id; this.displayName = displayName; this.priority = priority; this.handler = handler; this.active = active; this.validator = validator; }
static AdvancedObjectSelector GenerateAdvancedObjectSelectorWrapper(Dictionary <int, AdvancedObjectSelectorValidator> validators, AdvancedObjectSelectorAttribute attribute, AdvancedObjectSelectorHandler handler) { if (!validators.TryGetValue(attribute.id.GetHashCode(), out var validator)) { throw new CustomAttributeFormatException($"Advanced Object Selector id \"{attribute.id}\" does not have a matching validator."); } var priority = attribute.defaultPriority; var active = attribute.defaultActive; var displayName = string.IsNullOrEmpty(attribute.displayName) ? SearchUtils.ToPascalWithSpaces(attribute.id) : attribute.displayName; if (SearchSettings.TryGetObjectSelectorSettings(attribute.id, out var settings)) { priority = settings.priority; active = settings.active; } return(new AdvancedObjectSelector(attribute.id, displayName, priority, active, handler, validator)); }