diff options
author | nextdaydelivery <79922345+nxtdaydelivery@users.noreply.github.com> | 2022-05-10 20:19:07 +0100 |
---|---|---|
committer | nextdaydelivery <79922345+nxtdaydelivery@users.noreply.github.com> | 2022-05-10 20:19:07 +0100 |
commit | cefe13f6c232ed5ca2d458b896a76df2ee25a8a3 (patch) | |
tree | d64f34e2ee55124ce9c3469fea9333d94ccfb23f /src/main/java/cc/polyfrost/oneconfig/gui/pages | |
parent | b5a1aea2239b0beace4d4407d2ab75294c6eab12 (diff) | |
parent | 3872c0ae8746e69671ac9b44ff94dc3c7b194817 (diff) | |
download | OneConfig-cefe13f6c232ed5ca2d458b896a76df2ee25a8a3.tar.gz OneConfig-cefe13f6c232ed5ca2d458b896a76df2ee25a8a3.tar.bz2 OneConfig-cefe13f6c232ed5ca2d458b896a76df2ee25a8a3.zip |
reduce dependency on minecraft + stuff
Diffstat (limited to 'src/main/java/cc/polyfrost/oneconfig/gui/pages')
-rw-r--r-- | src/main/java/cc/polyfrost/oneconfig/gui/pages/ModConfigPage.java | 109 |
1 files changed, 6 insertions, 103 deletions
diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/pages/ModConfigPage.java b/src/main/java/cc/polyfrost/oneconfig/gui/pages/ModConfigPage.java index 790d0e4..797f573 100644 --- a/src/main/java/cc/polyfrost/oneconfig/gui/pages/ModConfigPage.java +++ b/src/main/java/cc/polyfrost/oneconfig/gui/pages/ModConfigPage.java @@ -2,6 +2,7 @@ package cc.polyfrost.oneconfig.gui.pages; import cc.polyfrost.oneconfig.config.OneConfigConfig; import cc.polyfrost.oneconfig.config.data.OptionPage; +import cc.polyfrost.oneconfig.config.data.OptionSubcategory; import cc.polyfrost.oneconfig.config.interfaces.BasicOption; import cc.polyfrost.oneconfig.gui.OneConfigGui; import cc.polyfrost.oneconfig.gui.elements.BasicButton; @@ -39,109 +40,11 @@ public class ModConfigPage extends Page { @Override public void draw(long vg, int x, int y) { if (page.categories.size() == 0) return; - String filter = OneConfigGui.INSTANCE == null ? "" : OneConfigGui.INSTANCE.getSearchValue().toLowerCase().trim(); - LinkedHashMap<String, ArrayList<BasicOption>> filteredSubcategories = new LinkedHashMap<>(page.categories.get(selectedCategory).subcategories); - if (!filter.equals("")) { - filteredSubcategories.clear(); - for (String subCategory : page.categories.get(selectedCategory).subcategories.keySet()) { - if (subCategory.toLowerCase().contains(filter)) { - filteredSubcategories.put(subCategory, page.categories.get(selectedCategory).subcategories.get(subCategory)); - continue; - } - for (BasicOption option : page.categories.get(selectedCategory).subcategories.get(subCategory)) { - if (!option.getName().toLowerCase().contains(filter)) continue; - if (!filteredSubcategories.containsKey(subCategory)) - filteredSubcategories.put(subCategory, new ArrayList<>()); - filteredSubcategories.get(subCategory).add(option); - } - } - } - int optionX = x + 30; int optionY = y + (page.categories.size() == 1 ? 16 : 64); - - // Top page buttons - for (ConfigPageButton page : page.categories.get(selectedCategory).topPages) { - if (!page.getName().toLowerCase().contains(filter) && !page.description.toLowerCase().contains(filter)) - continue; - page.draw(vg, optionX, optionY); - optionY += page.getHeight() + 16; - } - - // Background - if (filteredSubcategories.keySet().size() > 0) { - int backgroundSize = 16; - for (String subCategory : filteredSubcategories.keySet()) { - backgroundSize += 48; - for (int i = 0; i < filteredSubcategories.get(subCategory).size(); i++) { - BasicOption option = filteredSubcategories.get(subCategory).get(i); - if (i + 1 < filteredSubcategories.get(subCategory).size()) { - BasicOption nextOption = filteredSubcategories.get(subCategory).get(i + 1); - if (option.size == 1 && option.hasHalfSize() && nextOption.size == 1 && nextOption.hasHalfSize()) { - backgroundSize += Math.max(option.getHeight(), nextOption.getHeight()) + 16; - i++; - continue; - } - } - backgroundSize += option.getHeight() + 16; - } - } - RenderManager.drawRoundedRect(vg, x + 14, optionY, 1024, backgroundSize, OneConfigConfig.GRAY_900, 20); - } - - // draw options - int optionLastY = optionY + 16; - if (filteredSubcategories.keySet().size() > 0) { - optionY += 16; - for (String subCategory : filteredSubcategories.keySet()) { - RenderManager.drawString(vg, subCategory, optionX, optionY + 16, OneConfigConfig.WHITE_90, 24f, Fonts.MEDIUM); - optionY += 48; - for (int i = 0; i < filteredSubcategories.get(subCategory).size(); i++) { - BasicOption option = filteredSubcategories.get(subCategory).get(i); - option.draw(vg, optionX, optionY); - if (i + 1 < filteredSubcategories.get(subCategory).size()) { - BasicOption nextOption = filteredSubcategories.get(subCategory).get(i + 1); - if (option.size == 1 && option.hasHalfSize() && nextOption.size == 1 && nextOption.hasHalfSize()) { - nextOption.draw(vg, optionX + 512, optionY); - optionY += Math.max(option.getHeight(), nextOption.getHeight()) + 16; - i++; - continue; - } - } - optionY += option.getHeight() + 16; - } - } - optionY += 16; - } - - // Bottom page buttons - for (ConfigPageButton page : page.categories.get(selectedCategory).bottomPages) { - if (!page.getName().toLowerCase().contains(filter) && !page.description.toLowerCase().contains(filter)) - continue; - page.draw(vg, optionX, optionY); - optionY += page.getHeight() + 16; + for (OptionSubcategory subCategory : page.categories.get(selectedCategory).subcategories) { + optionY += subCategory.draw(vg, x + 30, optionY); } totalSize = optionY - y; - - // Draw last options - if (filteredSubcategories.keySet().size() > 0) { - for (String subCategory : filteredSubcategories.keySet()) { - optionLastY += 48; - for (int i = 0; i < filteredSubcategories.get(subCategory).size(); i++) { - BasicOption option = filteredSubcategories.get(subCategory).get(i); - option.drawLast(vg, optionX, optionLastY); - if (i + 1 < filteredSubcategories.get(subCategory).size()) { - BasicOption nextOption = filteredSubcategories.get(subCategory).get(i + 1); - if (option.size == 1 && option.hasHalfSize() && nextOption.size == 1 && nextOption.hasHalfSize()) { - nextOption.drawLast(vg, optionX + 512, optionLastY); - optionLastY += Math.max(option.getHeight(), nextOption.getHeight()) + 16; - i++; - continue; - } - } - optionLastY += option.getHeight() + 16; - } - } - } } @Override @@ -166,9 +69,9 @@ public class ModConfigPage extends Page { @Override public void keyTyped(char key, int keyCode) { if (page.categories.size() == 0) return; - for (String subCategory : page.categories.get(selectedCategory).subcategories.keySet()) { - for (int i = 0; i < page.categories.get(selectedCategory).subcategories.get(subCategory).size(); i++) { - page.categories.get(selectedCategory).subcategories.get(subCategory).get(i).keyTyped(key, keyCode); + for (OptionSubcategory subCategory : page.categories.get(selectedCategory).subcategories) { + for (BasicOption option : subCategory.options) { + option.keyTyped(key, keyCode); } } } |