From 57f974ce020ec61d9c88d009b2584198da2a39a1 Mon Sep 17 00:00:00 2001 From: Crzyrndm Date: Fri, 26 Dec 2014 21:58:27 +1300 Subject: [PATCH] stuff --- FilterExtension/Category.cs | 29 ++++++++++++++---- .../Filter definitions/TestCategory.cfg | 1 + .../Filter definitions/TestCategoryFunc.cfg | 1 + .../Filter definitions/TestCategoryFunc2.cfg | 25 +++++++++++++++ .../Filter Extensions/FilterExtensions.dll | Bin 25600 -> 25600 bytes 5 files changed, 50 insertions(+), 6 deletions(-) create mode 100644 GameData/Filter Extensions/Filter definitions/TestCategoryFunc2.cfg diff --git a/FilterExtension/Category.cs b/FilterExtension/Category.cs index 299688de..e1094f46 100644 --- a/FilterExtension/Category.cs +++ b/FilterExtension/Category.cs @@ -14,8 +14,7 @@ class customCategory internal Color colour; internal string type; internal string value; // mod folder name for mod type categories - - internal static AvailablePart roid = PartLoader.Instance.parts.First(ap => ap.name == "PotatoRoid"); + internal string location; // filter == top set, category = custom section public customCategory(ConfigNode node) { @@ -24,18 +23,20 @@ public customCategory(ConfigNode node) convertToColor(node.GetValue("colour")); type = node.GetValue("type"); value = node.GetValue("value"); + location = node.GetValue("location"); } internal void initialise() { if (categoryTitle == null) return; - - // PartCategorizer.Instance.filters.Add(new PartCategorizer.Category( - // PartCategorizer.ButtonType.FILTER, EditorPartList.State.PartsList, categoryTitle, Core.getIcon(iconName), colour, colour, - + PartCategorizer.AddCustomFilter(categoryTitle, Core.getIcon(iconName), colour); + //PartCategorizer.Instance.filters.Add(new PartCategorizer.Category( + // PartCategorizer.ButtonType.FILTER, EditorPartList.State.PartsList, categoryTitle, Core.getIcon(iconName), colour, colour, + // new EditorPartListFilter(categoryTitle, (part => Exclude(part))))); + PartCategorizer.Category category = PartCategorizer.Instance.filters.Find(c => c.button.categoryName == categoryTitle); category.displayType = EditorPartList.State.PartsList; category.exclusionFilter = PartCategorizer.Instance.filterGenericNothing; @@ -65,6 +66,22 @@ private bool Filter(AvailablePart part, string category) return false; } + private bool Exclude(AvailablePart part) + { + if (PartType.checkFolder(part, value)) + return true; + else + return false; + } + + private bool genericExclude(AvailablePart part) + { + if (part.category != PartCategories.none) + return true; + else + return false; + } + private void convertToColor(string hex_ARGB) { hex_ARGB = hex_ARGB.Replace("#", ""); diff --git a/GameData/Filter Extensions/Filter definitions/TestCategory.cfg b/GameData/Filter Extensions/Filter definitions/TestCategory.cfg index 52b541e1..c14aa89e 100644 --- a/GameData/Filter Extensions/Filter definitions/TestCategory.cfg +++ b/GameData/Filter Extensions/Filter definitions/TestCategory.cfg @@ -3,6 +3,7 @@ CATEGORY title = TestCategory icon = R&D_node_icon_experimentalmotors colour = #FF0000FF + location = filter } SUBCATEGORY diff --git a/GameData/Filter Extensions/Filter definitions/TestCategoryFunc.cfg b/GameData/Filter Extensions/Filter definitions/TestCategoryFunc.cfg index db9f0a6a..5c94b92c 100644 --- a/GameData/Filter Extensions/Filter definitions/TestCategoryFunc.cfg +++ b/GameData/Filter Extensions/Filter definitions/TestCategoryFunc.cfg @@ -5,6 +5,7 @@ CATEGORY colour = #FF00FF00 type = mod value = Squad + location = category } SUBCATEGORY diff --git a/GameData/Filter Extensions/Filter definitions/TestCategoryFunc2.cfg b/GameData/Filter Extensions/Filter definitions/TestCategoryFunc2.cfg new file mode 100644 index 00000000..2cea39bd --- /dev/null +++ b/GameData/Filter Extensions/Filter definitions/TestCategoryFunc2.cfg @@ -0,0 +1,25 @@ +CATEGORY +{ + title = TestNASA + icon = R&D_node_icon_experimentalmotors + colour = #FF00FF00 + type = mod + value = NASAmission + location = filter +} + +SUBCATEGORY +{ + category = TestNASA + title = TestCustom1 + icon = R&D_node_icon_advrocketry + FILTER + { + CHECK + { + type = custom + value = isEngine + pass = true + } + } +} \ No newline at end of file diff --git a/GameData/Filter Extensions/FilterExtensions.dll b/GameData/Filter Extensions/FilterExtensions.dll index c3924e835ea8791182216e48012694494b5aac15..31eac47ee7c6de0fd95e6e6e86c59b31eac7df40 100644 GIT binary patch literal 25600 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 Y-~VUG`9A~XH!pwx>imxef13sV6Lf8iRsaA1 literal 25600 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