aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/cc/polyfrost/oneconfig/gui/pages
diff options
context:
space:
mode:
authornextdaydelivery <79922345+nxtdaydelivery@users.noreply.github.com>2022-05-10 20:19:07 +0100
committernextdaydelivery <79922345+nxtdaydelivery@users.noreply.github.com>2022-05-10 20:19:07 +0100
commitcefe13f6c232ed5ca2d458b896a76df2ee25a8a3 (patch)
treed64f34e2ee55124ce9c3469fea9333d94ccfb23f /src/main/java/cc/polyfrost/oneconfig/gui/pages
parentb5a1aea2239b0beace4d4407d2ab75294c6eab12 (diff)
parent3872c0ae8746e69671ac9b44ff94dc3c7b194817 (diff)
downloadOneConfig-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.java109
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);
}
}
}