From 7a5b24bc0bd1c648efe6e22c729ae5c2368b52ac Mon Sep 17 00:00:00 2001 From: Crzyrndm Date: Fri, 15 Jan 2016 12:44:12 +1300 Subject: [PATCH] dramatically simplified category templating implementation --- FilterExtension/ConfigNodes/customCategory.cs | 17 ++--------------- .../ConfigNodes/customSubCategory.cs | 13 +++++-------- .../000_FilterExtensions/FilterExtensions.dll | Bin 58368 -> 58880 bytes 3 files changed, 7 insertions(+), 23 deletions(-) diff --git a/FilterExtension/ConfigNodes/customCategory.cs b/FilterExtension/ConfigNodes/customCategory.cs index b727c37e..79d59ba2 100644 --- a/FilterExtension/ConfigNodes/customCategory.cs +++ b/FilterExtension/ConfigNodes/customCategory.cs @@ -153,21 +153,8 @@ public void initialise() } customSubCategory sC = new customSubCategory(subcategory.toConfigNode()); - if (subcategoryItem.applyTemplate && templates != null && templates.Any()) - { - List baseSubCatFilters = new List(); - foreach (Filter f in sC.filters) - baseSubCatFilters.Add(new Filter(f)); // create independent copies - sC.filters.Clear(); // create them from scratch - foreach (Filter templateFilter in templates) - { - foreach (Filter f in baseSubCatFilters) - { - sC.filters.Add(new Filter(f)); - sC.filters.Last().checks.AddRange(templateFilter.checks); - } - } - } + if (subcategoryItem.applyTemplate) + sC.template = templates; try { diff --git a/FilterExtension/ConfigNodes/customSubCategory.cs b/FilterExtension/ConfigNodes/customSubCategory.cs index 2df34d03..b393cd2d 100644 --- a/FilterExtension/ConfigNodes/customSubCategory.cs +++ b/FilterExtension/ConfigNodes/customSubCategory.cs @@ -10,13 +10,14 @@ public class customSubCategory public string subCategoryTitle { get; set; } // title of this subcategory public string iconName { get; set; } // default icon to use public List filters { get; set; } // Filters are OR'd together (pass if it meets this filter, or this filter) + public List template { get; set; } // from the category, checked seperately public bool unPurchasedOverride { get; set; } // allow unpurchased parts to be visible even if the global setting hides them public bool hasFilters { get { - return filters.Any(); + return filters.Any() || template.Any(); } } @@ -34,11 +35,13 @@ public customSubCategory(ConfigNode node) { filters.Add(new Filter(subNode)); } + template = new List(); } public customSubCategory(string name, string icon) { filters = new List(); + template = new List(); this.subCategoryTitle = name; this.iconName = icon; } @@ -88,13 +91,7 @@ public bool checkFilters(AvailablePart part, int depth = 0) } if (!unPurchasedOverride && Core.Instance.hideUnpurchased && !ResearchAndDevelopment.PartModelPurchased(part) && !ResearchAndDevelopment.IsExperimentalPart(part)) return false; - - foreach (Filter f in filters) - { - if (f.checkFilter(part, depth)) - return true; - } - return false; // part passed no filter(s), not compatible with this subcategory + return ((!template.Any() || template.Any(t => t.checkFilter(part, depth))) && filters.Any(f => f.checkFilter(part, depth))); // part passed a template if present, and a subcategory filter } /// diff --git a/GameData/000_FilterExtensions/FilterExtensions.dll b/GameData/000_FilterExtensions/FilterExtensions.dll index 82c64c2c1adcde22a0e89d443447866c612a66fe..bb710d1268dc26d6f485ba4dda65481142287daa 100644 GIT binary patch delta 23533 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 KYh_cN=l=n>I2>vK delta 23554 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