summaryrefslogtreecommitdiff
path: root/src/main/java/com
diff options
context:
space:
mode:
authorLorenz <ESs95s3P5z8Pheb>2022-07-14 11:28:50 +0200
committerLorenz <ESs95s3P5z8Pheb>2022-07-14 11:28:50 +0200
commit6108ddcf353390cc0d2ddd40e3802d025fc5f4a4 (patch)
tree92f5f8aff5bbbde1a98bfaa6ab794ec91965cc1e /src/main/java/com
parentc65416e03ce0791c4a99e9bdfc18c0fa0863028a (diff)
downloadskyhanni-6108ddcf353390cc0d2ddd40e3802d025fc5f4a4.tar.gz
skyhanni-6108ddcf353390cc0d2ddd40e3802d025fc5f4a4.tar.bz2
skyhanni-6108ddcf353390cc0d2ddd40e3802d025fc5f4a4.zip
changed packages
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/thatgravyboat/amod/GuiTextures.java32
-rw-r--r--src/main/java/com/thatgravyboat/amod/commands/Commands.java31
-rw-r--r--src/main/java/com/thatgravyboat/amod/commands/SimpleCommand.java60
-rw-r--r--src/main/java/com/thatgravyboat/amod/config/ConfigEditor.java602
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/BackgroundBlur.java249
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/ChromaColour.java93
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/GlScissorStack.java86
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/GuiElement.java12
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/GuiElementBoolean.java118
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/GuiElementColour.java370
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/GuiElementTextField.java549
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/GuiScreenElementWrapper.java34
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/config/Config.java5
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/config/KeybindHelper.java49
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/config/Position.java197
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/config/annotations/Category.java14
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/config/annotations/ConfigAccordionId.java12
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/config/annotations/ConfigEditorAccordion.java12
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/config/annotations/ConfigEditorBoolean.java11
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/config/annotations/ConfigEditorButton.java14
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/config/annotations/ConfigEditorColour.java11
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/config/annotations/ConfigEditorDraggableList.java12
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/config/annotations/ConfigEditorDropdown.java14
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/config/annotations/ConfigEditorKeybind.java12
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/config/annotations/ConfigEditorSlider.java16
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/config/annotations/ConfigEditorStyle.java11
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/config/annotations/ConfigEditorText.java11
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/config/annotations/ConfigOption.java16
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/config/gui/GuiOptionEditor.java62
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/config/gui/GuiOptionEditorAccordion.java80
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/config/gui/GuiOptionEditorBoolean.java37
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/config/gui/GuiOptionEditorButton.java60
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/config/gui/GuiOptionEditorColour.java74
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/config/gui/GuiOptionEditorDraggableList.java268
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/config/gui/GuiOptionEditorDropdown.java145
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/config/gui/GuiOptionEditorKeybind.java88
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/config/gui/GuiOptionEditorSlider.java136
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/config/gui/GuiOptionEditorStyle.java42
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/config/gui/GuiOptionEditorText.java78
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/config/gui/GuiPositionEditor.java171
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/config/struct/ConfigProcessor.java166
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/util/GuiElementSlider.java120
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/util/StringUtils.java8
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/util/lerp/LerpUtils.java25
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/util/lerp/LerpingFloat.java68
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/util/lerp/LerpingInteger.java76
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/util/render/RenderUtils.java155
-rw-r--r--src/main/java/com/thatgravyboat/amod/core/util/render/TextRenderUtils.java155
-rw-r--r--src/main/java/com/thatgravyboat/amod/textures/TextureObject.java37
-rw-r--r--src/main/java/com/thatgravyboat/amod/textures/Textures.java56
-rw-r--r--src/main/java/com/thatgravyboat/amod/utils/Utils.java374
51 files changed, 0 insertions, 5134 deletions
diff --git a/src/main/java/com/thatgravyboat/amod/GuiTextures.java b/src/main/java/com/thatgravyboat/amod/GuiTextures.java
deleted file mode 100644
index 605fc5c00..000000000
--- a/src/main/java/com/thatgravyboat/amod/GuiTextures.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.thatgravyboat.amod;
-
-import net.minecraft.util.ResourceLocation;
-
-public class GuiTextures {
-
- private GuiTextures() {}
-
- public static final ResourceLocation DISCORD = new ResourceLocation("lorenzmod:discord.png");
-
- public static final ResourceLocation button_tex = new ResourceLocation("lorenzmod:button.png");
-
- public static final ResourceLocation button_white = new ResourceLocation("lorenzmod:button_white.png");
-
- public static final ResourceLocation BAR = new ResourceLocation("lorenzmod:core/bar.png");
- public static final ResourceLocation OFF = new ResourceLocation("lorenzmod:core/toggle_off.png");
- public static final ResourceLocation ONE = new ResourceLocation("lorenzmod:core/toggle_1.png");
- public static final ResourceLocation TWO = new ResourceLocation("lorenzmod:core/toggle_2.png");
- public static final ResourceLocation THREE = new ResourceLocation("lorenzmod:core/toggle_3.png");
- public static final ResourceLocation ON = new ResourceLocation("lorenzmod:core/toggle_on.png");
- public static final ResourceLocation DELETE = new ResourceLocation("lorenzmod:core/delete.png");
-
- public static final ResourceLocation slider_off_cap = new ResourceLocation("lorenzmod:core/slider/slider_off_cap.png");
- public static final ResourceLocation slider_off_notch = new ResourceLocation("lorenzmod:core/slider/slider_off_notch.png");
- public static final ResourceLocation slider_off_segment = new ResourceLocation("lorenzmod:core/slider/slider_off_segment.png");
- public static final ResourceLocation slider_on_cap = new ResourceLocation("lorenzmod:core/slider/slider_on_cap.png");
- public static final ResourceLocation slider_on_notch = new ResourceLocation("lorenzmod:core/slider/slider_on_notch.png");
- public static final ResourceLocation slider_on_segment = new ResourceLocation("lorenzmod:core/slider/slider_on_segment.png");
- public static final ResourceLocation slider_button_new = new ResourceLocation("lorenzmod:core/slider/slider_button.png");
-
- public static final ResourceLocation mapOverlay = new ResourceLocation("lorenzmod", "maps/map_overlay.png");
-}
diff --git a/src/main/java/com/thatgravyboat/amod/commands/Commands.java b/src/main/java/com/thatgravyboat/amod/commands/Commands.java
deleted file mode 100644
index 97188933a..000000000
--- a/src/main/java/com/thatgravyboat/amod/commands/Commands.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package com.thatgravyboat.amod.commands;
-
-import at.lorenz.mod.LorenzMod;
-import com.thatgravyboat.amod.config.ConfigEditor;
-import com.thatgravyboat.amod.core.GuiScreenElementWrapper;
-import net.minecraft.command.ICommandSender;
-import net.minecraftforge.client.ClientCommandHandler;
-import org.apache.commons.lang3.StringUtils;
-
-public class Commands {
-
- private static final boolean devMode = false;
-
- private static final SimpleCommand.ProcessCommandRunnable settingsRunnable = new SimpleCommand.ProcessCommandRunnable() {
- public void processCommand(ICommandSender sender, String[] args) {
- if (args.length > 0) {
- LorenzMod.screenToOpen = new GuiScreenElementWrapper(new ConfigEditor(LorenzMod.feature, StringUtils.join(args, " ")));
- } else {
- LorenzMod.screenToOpen = new GuiScreenElementWrapper(new ConfigEditor(LorenzMod.feature));
- }
- }
- };
-
- private static final SimpleCommand settingsCommand = new SimpleCommand("lm", settingsRunnable);
- private static final SimpleCommand settingsCommand2 = new SimpleCommand("lorenzmod", settingsRunnable);
-
- public static void init() {
- ClientCommandHandler.instance.registerCommand(settingsCommand);
- ClientCommandHandler.instance.registerCommand(settingsCommand2);
- }
-}
diff --git a/src/main/java/com/thatgravyboat/amod/commands/SimpleCommand.java b/src/main/java/com/thatgravyboat/amod/commands/SimpleCommand.java
deleted file mode 100644
index dc1657976..000000000
--- a/src/main/java/com/thatgravyboat/amod/commands/SimpleCommand.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package com.thatgravyboat.amod.commands;
-
-import java.util.List;
-import net.minecraft.command.CommandBase;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.util.BlockPos;
-
-/**
- @author Moulberry
- **/
-public class SimpleCommand extends CommandBase {
-
- private final String commandName;
- private final ProcessCommandRunnable runnable;
- private TabCompleteRunnable tabRunnable;
-
- public SimpleCommand(String commandName, ProcessCommandRunnable runnable) {
- this.commandName = commandName;
- this.runnable = runnable;
- }
-
- public SimpleCommand(String commandName, ProcessCommandRunnable runnable, TabCompleteRunnable tabRunnable) {
- this.commandName = commandName;
- this.runnable = runnable;
- this.tabRunnable = tabRunnable;
- }
-
- public abstract static class ProcessCommandRunnable {
-
- public abstract void processCommand(ICommandSender sender, String[] args);
- }
-
- public abstract static class TabCompleteRunnable {
-
- public abstract List<String> tabComplete(ICommandSender sender, String[] args, BlockPos pos);
- }
-
- public boolean canCommandSenderUseCommand(ICommandSender sender) {
- return true;
- }
-
- public String getCommandName() {
- return commandName;
- }
-
- public String getCommandUsage(ICommandSender sender) {
- return "/" + commandName;
- }
-
- @Override
- public void processCommand(ICommandSender sender, String[] args) {
- runnable.processCommand(sender, args);
- }
-
- @Override
- public List<String> addTabCompletionOptions(ICommandSender sender, String[] args, BlockPos pos) {
- if (tabRunnable != null) return tabRunnable.tabComplete(sender, args, pos);
- return null;
- }
-}
diff --git a/src/main/java/com/thatgravyboat/amod/config/ConfigEditor.java b/src/main/java/com/thatgravyboat/amod/config/ConfigEditor.java
deleted file mode 100644
index 1c22fbbe8..000000000
--- a/src/main/java/com/thatgravyboat/amod/config/ConfigEditor.java
+++ /dev/null
@@ -1,602 +0,0 @@
-package com.thatgravyboat.amod.config;
-
-import static com.thatgravyboat.amod.GuiTextures.DISCORD;
-
-import at.lorenz.mod.LorenzMod;
-import at.lorenz.mod.config.Features;
-import com.google.common.collect.Lists;
-import com.thatgravyboat.amod.core.GlScissorStack;
-import com.thatgravyboat.amod.core.GuiElement;
-import com.thatgravyboat.amod.core.config.gui.GuiOptionEditor;
-import com.thatgravyboat.amod.core.config.gui.GuiOptionEditorAccordion;
-import com.thatgravyboat.amod.core.config.struct.ConfigProcessor;
-import com.thatgravyboat.amod.core.util.lerp.LerpUtils;
-import com.thatgravyboat.amod.core.util.lerp.LerpingInteger;
-import com.thatgravyboat.amod.core.util.render.RenderUtils;
-import com.thatgravyboat.amod.core.util.render.TextRenderUtils;
-import java.awt.*;
-import java.net.URI;
-import java.util.*;
-import java.util.List;
-import net.minecraft.client.Minecraft;
-import net.minecraft.client.gui.FontRenderer;
-import net.minecraft.client.gui.Gui;
-import net.minecraft.client.gui.ScaledResolution;
-import net.minecraft.client.renderer.GlStateManager;
-import net.minecraft.util.EnumChatFormatting;
-import net.minecraft.util.ResourceLocation;
-import org.lwjgl.input.Mouse;
-import org.lwjgl.opengl.GL11;
-
-public class ConfigEditor extends GuiElement {
-
- private static final ResourceLocation[] socialsIco = new ResourceLocation[] { DISCORD };
- private static final String[] socialsLink = new String[] { "https://discord.gg/NcvkPDBA6Y" };
-
- private final long openedMillis;
-
- private String selectedCategory = null;
-
- private final LerpingInteger optionsScroll = new LerpingInteger(0, 150);
- private final LerpingInteger categoryScroll = new LerpingInteger(0, 150);
-
- private final LinkedHashMap<String, ConfigProcessor.ProcessedCategory> processedConfig;
- private final TreeMap<String, Set<ConfigProcessor.ProcessedOption>> searchOptionMap = new TreeMap<>();
- private final HashMap<ConfigProcessor.ProcessedOption, ConfigProcessor.ProcessedCategory> categoryForOption = new HashMap<>();
-
- public ConfigEditor(Features config) {
- this(config, null);
- }
-
- public ConfigEditor(Features config, String categoryOpen) {
- this.openedMillis = System.currentTimeMillis();
- this.processedConfig = ConfigProcessor.create(config);
-
- for (ConfigProcessor.ProcessedCategory category : processedConfig.values()) {
- for (ConfigProcessor.ProcessedOption option : category.options.values()) {
- categoryForOption.put(option, category);
- }
- }
-
- if (categoryOpen != null) {
- for (Map.Entry<String, ConfigProcessor.ProcessedCategory> category : processedConfig.entrySet()) {
- if (category.getValue().name.equalsIgnoreCase(categoryOpen)) {
- selectedCategory = category.getKey();
- break;
- }
- }
- if (selectedCategory == null) {
- for (Map.Entry<String, ConfigProcessor.ProcessedCategory> category : processedConfig.entrySet()) {
- if (category.getValue().name.toLowerCase().startsWith(categoryOpen.toLowerCase())) {
- selectedCategory = category.getKey();
- break;
- }
- }
- }
- if (selectedCategory == null) {
- for (Map.Entry<String, ConfigProcessor.ProcessedCategory> category : processedConfig.entrySet()) {
- if (category.getValue().name.toLowerCase().contains(categoryOpen.toLowerCase())) {
- selectedCategory = category.getKey();
- break;
- }
- }
- }
- }
- }
-
- private LinkedHashMap<String, ConfigProcessor.ProcessedCategory> getCurrentConfigEditing() {
- return new LinkedHashMap<>(processedConfig);
- }
-
- private LinkedHashMap<String, ConfigProcessor.ProcessedOption> getOptionsInCategory(ConfigProcessor.ProcessedCategory cat) {
- return new LinkedHashMap<>(cat.options);
- }
-
- public String getSelectedCategory() {
- return selectedCategory;
- }
-
- public String getSelectedCategoryName() {
- return processedConfig.get(selectedCategory).name;
- }
-
- private void setSelectedCategory(String category) {
- selectedCategory = category;
- optionsScroll.setValue(0);
- }
-
- public void render() {
- optionsScroll.tick();
- categoryScroll.tick();
-
- List<String> tooltipToDisplay = null;
-
- long currentTime = System.currentTimeMillis();
- long delta = currentTime - openedMillis;
-
- ScaledResolution scaledResolution = new ScaledResolution(Minecraft.getMinecraft());
- int width = scaledResolution.getScaledWidth();
- int height = scaledResolution.getScaledHeight();
- int mouseX = Mouse.getX() * width / Minecraft.getMinecraft().displayWidth;
- int mouseY = height - Mouse.getY() * height / Minecraft.getMinecraft().displayHeight - 1;
-
- float opacityFactor = LerpUtils.sigmoidZeroOne(delta / 500f);
- RenderUtils.drawGradientRect(0, 0, 0, width, height, (int) (0x80 * opacityFactor) << 24 | 0x101010, (int) (0x90 * opacityFactor) << 24 | 0x101010);
-
- int xSize = Math.min(scaledResolution.getScaledWidth() - 100 / scaledResolution.getScaleFactor(), 500);
- int ySize = Math.min(scaledResolution.getScaledHeight() - 100 / scaledResolution.getScaleFactor(), 400);
-
- int x = (scaledResolution.getScaledWidth() - xSize) / 2;
- int y = (scaledResolution.getScaledHeight() - ySize) / 2;
-
- int adjScaleFactor = Math.max(2, scaledResolution.getScaleFactor());
-
- int openingXSize = xSize;
- int openingYSize = ySize;
- if (delta < 150) {
- openingXSize = (int) (delta * xSize / 150);
- openingYSize = 5;
- } else if (delta < 300) {
- openingYSize = 5 + (int) (delta - 150) * (ySize - 5) / 150;
- }
- RenderUtils.drawFloatingRectDark((scaledResolution.getScaledWidth() - openingXSize) / 2, (scaledResolution.getScaledHeight() - openingYSize) / 2, openingXSize, openingYSize);
- GlScissorStack.clear();
- GlScissorStack.push((scaledResolution.getScaledWidth() - openingXSize) / 2, (scaledResolution.getScaledHeight() - openingYSize) / 2, (scaledResolution.getScaledWidth() + openingXSize) / 2, (scaledResolution.getScaledHeight() + openingYSize) / 2, scaledResolution);
-
- RenderUtils.drawFloatingRectDark(x + 5, y + 5, xSize - 10, 20, false);
-
- FontRenderer fr = Minecraft.getMinecraft().fontRendererObj;
- TextRenderUtils.drawStringCenteredScaledMaxWidth("LorenzMod " + LorenzMod.VERSION + " by " + EnumChatFormatting.RED + "hannibal2" + EnumChatFormatting.RESET + ", config by " + EnumChatFormatting.DARK_PURPLE + "Moulberry", fr, x + xSize / 2f, y + 15, false, 200, 0xa0a0a0);
-
- RenderUtils.drawFloatingRectDark(x + 4, y + 49 - 20, 140, ySize - 54 + 20, false);
-
- int innerPadding = 20 / adjScaleFactor;
- int innerLeft = x + 4 + innerPadding;
- int innerRight = x + 144 - innerPadding;
- int innerTop = y + 49 + innerPadding;
- int innerBottom = y + ySize - 5 - innerPadding;
- Gui.drawRect(innerLeft, innerTop, innerLeft + 1, innerBottom, 0xff08080E); //Left
- Gui.drawRect(innerLeft + 1, innerTop, innerRight, innerTop + 1, 0xff08080E); //Top
- Gui.drawRect(innerRight - 1, innerTop + 1, innerRight, innerBottom, 0xff28282E); //Right
- Gui.drawRect(innerLeft + 1, innerBottom - 1, innerRight - 1, innerBottom, 0xff28282E); //Bottom
- Gui.drawRect(innerLeft + 1, innerTop + 1, innerRight - 1, innerBottom - 1, 0x6008080E); //Middle
-
- GlScissorStack.push(0, innerTop + 1, scaledResolution.getScaledWidth(), innerBottom - 1, scaledResolution);
-
- float catBarSize = 1;
- int catY = -categoryScroll.getValue();
-
- LinkedHashMap<String, ConfigProcessor.ProcessedCategory> currentConfigEditing = getCurrentConfigEditing();
- for (Map.Entry<String, ConfigProcessor.ProcessedCategory> entry : currentConfigEditing.entrySet()) {
- String selectedCategory = getSelectedCategory();
- if (selectedCategory == null || !currentConfigEditing.containsKey(selectedCategory)) {
- setSelectedCategory(entry.getKey());
- }
- String catName = entry.getValue().name;
- if (entry.getKey().equals(getSelectedCategory())) {
- catName = EnumChatFormatting.DARK_AQUA.toString() + EnumChatFormatting.UNDERLINE + catName;
- } else {
- catName = EnumChatFormatting.GRAY + catName;
- }
- TextRenderUtils.drawStringCenteredScaledMaxWidth(catName, fr, x + 75, y + 70 + catY, false, 100, -1);
- catY += 15;
- if (catY > 0) {
- catBarSize = LerpUtils.clampZeroOne((float) (innerBottom - innerTop - 2) / (catY + 5 + categoryScroll.getValue()));
- }
- }
-
- float catBarStart = categoryScroll.getValue() / (float) (catY + categoryScroll.getValue());
- float catBarEnd = catBarStart + catBarSize;
- if (catBarEnd > 1) {
- catBarEnd = 1;
- if (categoryScroll.getTarget() / (float) (catY + categoryScroll.getValue()) + catBarSize < 1) {
- int target = optionsScroll.getTarget();
- categoryScroll.setValue((int) Math.ceil((catY + 5 + categoryScroll.getValue()) - catBarSize * (catY + 5 + categoryScroll.getValue())));
- categoryScroll.setTarget(target);
- } else {
- categoryScroll.setValue((int) Math.ceil((catY + 5 + categoryScroll.getValue()) - catBarSize * (catY + 5 + categoryScroll.getValue())));
- }
- }
- int catDist = innerBottom - innerTop - 12;
- Gui.drawRect(innerLeft + 2, innerTop + 5, innerLeft + 7, innerBottom - 5, 0xff101010);
- Gui.drawRect(innerLeft + 3, innerTop + 6 + (int) (catDist * catBarStart), innerLeft + 6, innerTop + 6 + (int) (catDist * catBarEnd), 0xff303030);
-
- GlScissorStack.pop(scaledResolution);
-
- TextRenderUtils.drawStringCenteredScaledMaxWidth("Categories", fr, x + 75, y + 44, false, 120, 0xa368ef);
-
- RenderUtils.drawFloatingRectDark(x + 149, y + 29, xSize - 154, ySize - 34, false);
-
- innerLeft = x + 149 + innerPadding;
- innerRight = x + xSize - 5 - innerPadding;
- innerBottom = y + ySize - 5 - innerPadding;
-
- GlStateManager.color(1, 1, 1, 1);
- int rightStuffLen = 20;
-
- if (getSelectedCategory() != null && currentConfigEditing.containsKey(getSelectedCategory())) {
- ConfigProcessor.ProcessedCategory cat = currentConfigEditing.get(getSelectedCategory());
-
- TextRenderUtils.drawStringScaledMaxWidth(cat.desc, fr, innerLeft + 5, y + 40, true, innerRight - innerLeft - rightStuffLen - 10, 0xb0b0b0);
- }
-
- Gui.drawRect(innerLeft, innerTop, innerLeft + 1, innerBottom, 0xff08080E); //Left
- Gui.drawRect(innerLeft + 1, innerTop, innerRight, innerTop + 1, 0xff08080E); //Top
- Gui.drawRect(innerRight - 1, innerTop + 1, innerRight, innerBottom, 0xff303036); //Right
- Gui.drawRect(innerLeft + 1, innerBottom - 1, innerRight - 1, innerBottom, 0xff303036); //Bottom
- Gui.drawRect(innerLeft + 1, innerTop + 1, innerRight - 1, innerBottom - 1, 0x6008080E); //Middle
-
- GlScissorStack.push(innerLeft + 1, innerTop + 1, innerRight - 1, innerBottom - 1, scaledResolution);
- float barSize = 1;
- int optionY = -optionsScroll.getValue();
- if (getSelectedCategory() != null && currentConfigEditing.containsKey(getSelectedCategory())) {
- ConfigProcessor.ProcessedCategory cat = currentConfigEditing.get(getSelectedCategory());
- int optionWidthDefault = innerRight - innerLeft - 20;
- GlStateManager.enableDepth();
- HashMap<Integer, Integer> activeAccordions = new HashMap<>();
- for (ConfigProcessor.ProcessedOption option : getOptionsInCategory(cat).values()) {
- int optionWidth = optionWidthDefault;
- if (option.accordionId >= 0) {
- if (!activeAccordions.containsKey(option.accordionId)) {
- continue;
- }
- int accordionDepth = activeAccordions.get(option.accordionId);
- optionWidth = optionWidthDefault - (2 * innerPadding) * (accordionDepth + 1);
- }
-
- GuiOptionEditor editor = option.editor;
- if (editor == null) {
- continue;
- }
- if (editor instanceof GuiOptionEditorAccordion) {
- GuiOptionEditorAccordion accordion = (GuiOptionEditorAccordion) editor;
- if (accordion.getToggled()) {
- int accordionDepth = 0;
- if (option.accordionId >= 0) {
- accordionDepth = activeAccordions.get(option.accordionId) + 1;
- }
- activeAccordions.put(accordion.getAccordionId(), accordionDepth);
- }
- }
- int optionHeight = editor.getHeight();
- if (innerTop + 5 + optionY + optionHeight > innerTop + 1 && innerTop + 5 + optionY < innerBottom - 1) {
- editor.render((innerLeft + innerRight - optionWidth) / 2 - 5, innerTop + 5 + optionY, optionWidth);
- }
- optionY += optionHeight + 5;
- }
- GlStateManager.disableDepth();
- if (optionY > 0) {
- barSize = LerpUtils.clampZeroOne((float) (innerBottom - innerTop - 2) / (optionY + 5 + optionsScroll.getVal