aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorThatGravyBoat <thatgravyboat@gmail.com>2021-07-15 01:36:50 -0230
committerThatGravyBoat <thatgravyboat@gmail.com>2021-07-15 01:36:50 -0230
commit718740e85f48b57bf712a62f811cd4d34dd98450 (patch)
tree8d3c7751cf684fe98e513010233f7b7b46e3e351 /src/main/java
parent89fa98d85546eb93064ce4a2b66e79341750b577 (diff)
downloadskyblockhud-718740e85f48b57bf712a62f811cd4d34dd98450.tar.gz
skyblockhud-718740e85f48b57bf712a62f811cd4d34dd98450.tar.bz2
skyblockhud-718740e85f48b57bf712a62f811cd4d34dd98450.zip
Updated important locations
Updated Config System (Thanks Moulberry) Added Trackers Back with kill trackers
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/GuiTextures.java1
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/SkyblockHud.java16
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/Utils.java10
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/api/KillTracking.java5
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/api/events/SkyBlockEntityKilled.java4
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/api/sbentities/EntityTypeHelper.java18
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/api/sbentities/EntityTypeRegistry.java4
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/config/SBHConfig.java27
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/config/SBHConfigEditor.java83
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/core/BackgroundBlur.java118
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/core/ChromaColour.java26
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/core/GlScissorStack.java23
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/core/GuiElement.java6
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/core/GuiElementBoolean.java44
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/core/GuiElementColour.java283
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/core/GuiElementTextField.java383
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/core/config/Config.java4
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/core/config/KeybindHelper.java50
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/core/config/annotations/ConfigEditorKeybind.java14
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/core/config/gui/GuiOptionEditor.java22
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/core/config/gui/GuiOptionEditorAccordion.java20
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/core/config/gui/GuiOptionEditorBoolean.java11
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/core/config/gui/GuiOptionEditorButton.java22
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/core/config/gui/GuiOptionEditorColour.java43
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/core/config/gui/GuiOptionEditorDraggableList.java151
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/core/config/gui/GuiOptionEditorDropdown.java81
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/core/config/gui/GuiOptionEditorKeybind.java93
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/core/config/gui/GuiOptionEditorSlider.java98
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/core/config/gui/GuiOptionEditorText.java36
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/core/config/gui/GuiPositionEditor.java58
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/core/config/struct/ConfigProcessor.java90
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/core/util/GuiElementSlider.java58
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/core/util/MiscUtils.java103
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/core/util/Splitters.java8
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/core/util/StringUtils.java28
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/core/util/lerp/LerpUtils.java11
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/core/util/lerp/LerpingFloat.java16
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/core/util/lerp/LerpingInteger.java16
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/core/util/render/TextRenderUtils.java74
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/handlers/CrystalWaypoints.java2
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/handlers/SlayerHandler.java15
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/location/MinesHandler.java2
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/mixins/MixinNetHandlerPlayClient.java20
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/overlay/GenericOverlays.java22
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/tracker/TrackerFileLoader.java167
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/tracker/TrackerHandler.java99
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/tracker/TrackerObject.java94
47 files changed, 1462 insertions, 1117 deletions
diff --git a/src/main/java/com/thatgravyboat/skyblockhud/GuiTextures.java b/src/main/java/com/thatgravyboat/skyblockhud/GuiTextures.java
index cd8c25f..280a18d 100644
--- a/src/main/java/com/thatgravyboat/skyblockhud/GuiTextures.java
+++ b/src/main/java/com/thatgravyboat/skyblockhud/GuiTextures.java
@@ -31,7 +31,6 @@ public class GuiTextures {
public static final ResourceLocation overlay = new ResourceLocation("skyblockhud", "stats.png");
public static final ResourceLocation dungeon = new ResourceLocation("skyblockhud", "dungeon.png");
public static final ResourceLocation playerStat = new ResourceLocation("skyblockhud", "playerstats.png");
- public static final ResourceLocation bars = new ResourceLocation("skyblockhud", "bars.png");
public static final ResourceLocation mapOverlay = new ResourceLocation("skyblockhud", "maps/map_overlay.png");
public static final ResourceLocation mining = new ResourceLocation("skyblockhud", "mines.png");
}
diff --git a/src/main/java/com/thatgravyboat/skyblockhud/SkyblockHud.java b/src/main/java/com/thatgravyboat/skyblockhud/SkyblockHud.java
index 539a42f..1cb00bb 100644
--- a/src/main/java/com/thatgravyboat/skyblockhud/SkyblockHud.java
+++ b/src/main/java/com/thatgravyboat/skyblockhud/SkyblockHud.java
@@ -3,6 +3,7 @@ package com.thatgravyboat.skyblockhud;
import com.google.common.collect.Sets;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
+import com.thatgravyboat.skyblockhud.api.KillTracking;
import com.thatgravyboat.skyblockhud.api.LeaderboardGetter;
import com.thatgravyboat.skyblockhud.api.events.ProfileSwitchedEvent;
import com.thatgravyboat.skyblockhud.commands.Commands;
@@ -17,6 +18,8 @@ import com.thatgravyboat.skyblockhud.overlay.OverlayHud;
import com.thatgravyboat.skyblockhud.overlay.RPGHud;
import com.thatgravyboat.skyblockhud.playerstats.ActionBarParsing;
import com.thatgravyboat.skyblockhud.seasons.SeasonDateHandler;
+import com.thatgravyboat.skyblockhud.tracker.TrackerFileLoader;
+import com.thatgravyboat.skyblockhud.tracker.TrackerHandler;
import java.awt.*;
import java.awt.datatransfer.StringSelection;
import java.io.*;
@@ -32,11 +35,13 @@ import net.minecraftforge.event.entity.player.ItemTooltipEvent;
import net.minecraftforge.fml.client.registry.ClientRegistry;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler;
+import net.minecraftforge.fml.common.event.FMLLoadCompleteEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.eventhandler.EventPriority;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.gameevent.TickEvent;
+import net.minecraftforge.fml.common.network.FMLNetworkEvent;
import org.lwjgl.input.Keyboard;
@Mod(modid = SkyblockHud.MODID, version = SkyblockHud.VERSION)
@@ -69,10 +74,9 @@ public class SkyblockHud {
MinecraftForge.EVENT_BUS.register(new MinesHandler());
MinecraftForge.EVENT_BUS.register(new FarmingIslandHandler());
- /* DISABLE UNTIL NEW SYSTEM
MinecraftForge.EVENT_BUS.register(new TrackerHandler());
- MinecraftForge.EVENT_BUS.register(new KillTrackerHandler());
- */
+ MinecraftForge.EVENT_BUS.register(new KillTracking());
+
MinecraftForge.EVENT_BUS.register(new HeldItemHandler());
ClientRegistry.registerKeyBinding(KeyBindings.map);
@@ -99,7 +103,7 @@ public class SkyblockHud {
configDirectory = event.getModConfigurationDirectory();
Runtime.getRuntime().addShutdownHook(new Thread(this::saveConfig));
- //Runtime.getRuntime().addShutdownHook(new Thread(() -> TrackerFileLoader.saveTrackerStatsFile(event.getModConfigurationDirectory())));
+ Runtime.getRuntime().addShutdownHook(new Thread(() -> TrackerFileLoader.saveTrackerStatsFile(event.getModConfigurationDirectory())));
}
public void saveConfig() {
@@ -122,7 +126,7 @@ public class SkyblockHud {
MinecraftForge.EVENT_BUS.register(new MiningHud());
}
- /* DISABLE UNTIL NEW SYSTEM
+ // DISABLE UNTIL NEW SYSTEM
@EventHandler
public void loadComplete(FMLLoadCompleteEvent event){
@@ -138,7 +142,7 @@ public class SkyblockHud {
TrackerFileLoader.saveTrackerStatsFile(configDirectory);
}
- */
+
public static boolean hasSkyblockScoreboard() {
Minecraft mc = Minecraft.getMinecraft();
diff --git a/src/main/java/com/thatgravyboat/skyblockhud/Utils.java b/src/main/java/com/thatgravyboat/skyblockhud/Utils.java
index b80d5ae..157077b 100644
--- a/src/main/java/com/thatgravyboat/skyblockhud/Utils.java
+++ b/src/main/java/com/thatgravyboat/skyblockhud/Utils.java
@@ -1,9 +1,13 @@
package com.thatgravyboat.skyblockhud;
+import java.math.RoundingMode;
import java.nio.FloatBuffer;
+import java.text.DecimalFormat;
+import java.text.DecimalFormatSymbols;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
+import java.util.Locale;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.EntityPlayerSP;
import net.minecraft.client.gui.FontRenderer;
@@ -353,4 +357,10 @@ public class Utils {
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
GlStateManager.popMatrix();
}
+
+ public static String formattedNumber(int number, int numberToFormatAt) {
+ DecimalFormat formatter = new DecimalFormat("#.#", DecimalFormatSymbols.getInstance(Locale.CANADA));
+ formatter.setRoundingMode(RoundingMode.FLOOR);
+ return number > numberToFormatAt-1 ? formatter.format((double) number / 1000) + "k" : String.valueOf(number);
+ }
}
diff --git a/src/main/java/com/thatgravyboat/skyblockhud/api/KillTracking.java b/src/main/java/com/thatgravyboat/skyblockhud/api/KillTracking.java
index 32feb1b..c13a7b8 100644
--- a/src/main/java/com/thatgravyboat/skyblockhud/api/KillTracking.java
+++ b/src/main/java/com/thatgravyboat/skyblockhud/api/KillTracking.java
@@ -7,6 +7,7 @@ import java.util.HashSet;
import java.util.Set;
import java.util.UUID;
import net.minecraft.client.Minecraft;
+import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.DamageSource;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.EntityJoinWorldEvent;
@@ -32,7 +33,9 @@ public class KillTracking {
System.out.println("----------------------------------------------------------------------------------------------------------------");
System.out.println("Name : " + event.entity.getName());
System.out.println("UUID : " + event.entity.getUniqueID());
- System.out.println("Tag : " + event.entity.serializeNBT());
+ NBTTagCompound compound = new NBTTagCompound();
+ event.entity.writeToNBT(compound);
+ System.out.println("Tag : " + compound);
System.out.println("Damage : " + getDamageSourceString(event.source));
System.out.println("SBH Entity ID: " + EntityTypeRegistry.getEntityId(event.entity));
System.out.println("----------------------------------------------------------------------------------------------------------------");
diff --git a/src/main/java/com/thatgravyboat/skyblockhud/api/events/SkyBlockEntityKilled.java b/src/main/java/com/thatgravyboat/skyblockhud/api/events/SkyBlockEntityKilled.java
index 325781c..15fb01a 100644
--- a/src/main/java/com/thatgravyboat/skyblockhud/api/events/SkyBlockEntityKilled.java
+++ b/src/main/java/com/thatgravyboat/skyblockhud/api/events/SkyBlockEntityKilled.java
@@ -1,14 +1,16 @@
package com.thatgravyboat.skyblockhud.api.events;
+import javax.annotation.Nullable;
import net.minecraft.entity.Entity;
import net.minecraftforge.fml.common.eventhandler.Event;
public class SkyBlockEntityKilled extends Event {
public String id;
+ @Nullable
public Entity entity;
- public SkyBlockEntityKilled(String id, Entity entity) {
+ public SkyBlockEntityKilled(String id, @Nullable Entity entity) {
this.id = id;
this.entity = entity;
}
diff --git a/src/main/java/com/thatgravyboat/skyblockhud/api/sbentities/EntityTypeHelper.java b/src/main/java/com/thatgravyboat/skyblockhud/api/sbentities/EntityTypeHelper.java
index d1ad8d2..8dc63c8 100644
--- a/src/main/java/com/thatgravyboat/skyblockhud/api/sbentities/EntityTypeHelper.java
+++ b/src/main/java/com/thatgravyboat/skyblockhud/api/sbentities/EntityTypeHelper.java
@@ -4,7 +4,9 @@ import com.thatgravyboat.skyblockhud.location.LocationHandler;
import com.thatgravyboat.skyblockhud.location.Locations;
import net.minecraft.entity.Entity;
import net.minecraft.entity.monster.EntityEnderman;
+import net.minecraft.entity.monster.EntityZombie;
import net.minecraft.init.Blocks;
+import net.minecraft.init.Items;
public class EntityTypeHelper {
@@ -18,4 +20,20 @@ public class EntityTypeHelper {
}
return false;
}
+
+ public static boolean isCrypt(Entity entity){
+ if (entity instanceof EntityZombie) {
+ EntityZombie zombie = ((EntityZombie) entity);
+ double maxHealthBase = zombie.getAttributeMap().getAttributeInstanceByName("generic.maxHealth").getBaseValue();
+ if (maxHealthBase != 2000d) return false;
+ if (zombie.getEquipmentInSlot(0) == null || !zombie.getEquipmentInSlot(0).getItem().equals(Items.iron_sword))
+ return false;
+ if (zombie.getEquipmentInSlot(1) == null || !zombie.getEquipmentInSlot(1).getItem().equals(Items.chainmail_boots))
+ return false;
+ if (zombie.getEquipmentInSlot(2) == null || !zombie.getEquipmentInSlot(2).getItem().equals(Items.chainmail_leggings))
+ return false;
+ return zombie.getEquipmentInSlot(3) != null && zombie.getEquipmentInSlot(3).getItem().equals(Items.chainmail_chestplate);
+ }
+ return false;
+ }
}
diff --git a/src/main/java/com/thatgravyboat/skyblockhud/api/sbentities/EntityTypeRegistry.java b/src/main/java/com/thatgravyboat/skyblockhud/api/sbentities/EntityTypeRegistry.java
index 952aaa7..6ff88fa 100644
--- a/src/main/java/com/thatgravyboat/skyblockhud/api/sbentities/EntityTypeRegistry.java
+++ b/src/main/java/com/thatgravyboat/skyblockhud/api/sbentities/EntityTypeRegistry.java
@@ -6,13 +6,15 @@ import java.util.List;
import java.util.Map;
import net.minecraft.entity.Entity;
import net.minecraft.entity.monster.EntityEnderman;
+import net.minecraft.entity.monster.EntityZombie;
public class EntityTypeRegistry {
private static final Map<Class<? extends Entity>, List<SkyBlockEntity>> entities = Maps.newHashMap();
static {
- entities.put(EntityEnderman.class, ImmutableList.of(SkyBlockEntity.of("zealot", EntityTypeHelper::isZealot)));
+ entities.put(EntityEnderman.class, ImmutableList.of(SkyBlockEntity.of("ZEALOT", EntityTypeHelper::isZealot)));
+ entities.put(EntityZombie.class, ImmutableList.of(SkyBlockEntity.of("CRYPT_GHOUL", EntityTypeHelper::isCrypt)));
}
public static String getEntityId(Entity entity) {
diff --git a/src/main/java/com/thatgravyboat/skyblockhud/config/SBHConfig.java b/src/main/java/com/thatgravyboat/skyblockhud/config/SBHConfig.java
index 8d84833..9b42192 100644
--- a/src/main/java/com/thatgravyboat/skyblockhud/config/SBHConfig.java
+++ b/src/main/java/com/thatgravyboat/skyblockhud/config/SBHConfig.java
@@ -50,9 +50,9 @@ public class SBHConfig extends Config {
case "map":
editOverlay(activeConfigCategory, 72, 72, map.miniMapPosition);
return;
- // case "tracker":
- // editOverlay(activeConfigCategory, 120, 70, trackers.trackerPosition);
- // return;
+ case "tracker":
+ editOverlay(activeConfigCategory, 130, 70, trackers.trackerPosition);
+ return;
}
}
@@ -84,17 +84,26 @@ public class SBHConfig extends Config {
@Category(name = "Mining", desc = "All Options for the Mining Stuff.")
public Mining mining = new Mining();
- //TODO ENABLED WHEN TRACKER GETS ADDED BACK
- // @Expose
- // @Category(name = "Tracker", desc = "All Options for the Trackers.")
- // public Trackers trackers = new Trackers();
+ @Expose
+ @Category(name = "Tracker", desc = "All Options for the Trackers.")
+ public Trackers trackers = new Trackers();
public static class Misc {
@Expose
- @ConfigOption(name = "Hide Scoreboard", desc = "Hides the scoreboard when in skyblock.")
+ @ConfigOption(name = "Hide Scoreboard", desc = "Hides the scoreboard when in Skyblock.")
@ConfigEditorBoolean
public boolean hideScoreboard = false;
+
+ @Expose
+ @ConfigOption(
+ name = "Bar Textures",
+ desc = "Change the style of bars. Dont change this unless the pack ur using tells you can."
+ )
+ @ConfigEditorDropdown(
+ values = {"Style 1", "Style 2"}
+ )
+ public int barTexture = 0;
}
public static class MainHud {
@@ -342,6 +351,6 @@ public class SBHConfig extends Config {
@Expose
@ConfigOption(name = "Hide Tracker", desc = "It will still track the data just in case.")
@ConfigEditorBoolean
- public boolean hideTracker = false;
+ public boolean hideTracker = true;
}
}
diff --git a/src/main/java/com/thatgravyboat/skyblockhud/config/SBHConfigEditor.java b/src/main/java/com/thatgravyboat/skyblockhud/config/SBHConfigEditor.java
index 8bbeaa7..90325f8 100644
--- a/src/main/java/com/thatgravyboat/skyblockhud/config/SBHConfigEditor.java
+++ b/src/main/java/com/thatgravyboat/skyblockhud/config/SBHConfigEditor.java
@@ -1,8 +1,5 @@
package com.thatgravyboat.skyblockhud.config;
-import static com.thatgravyboat.skyblockhud.GuiTextures.DISCORD;
-import static com.thatgravyboat.skyblockhud.GuiTextures.TWITTER;
-
import com.google.common.collect.Lists;
import com.thatgravyboat.skyblockhud.core.GlScissorStack;
import com.thatgravyboat.skyblockhud.core.GuiElement;
@@ -16,8 +13,8 @@ import com.thatgravyboat.skyblockhud.core.util.render.RenderUtils;
import com.thatgravyboat.skyblockhud.core.util.render.TextRenderUtils;
import java.awt.*;
import java.net.URI;
-import java.util.*;
import java.util.List;
+import java.util.*;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.gui.Gui;
@@ -28,6 +25,9 @@ import net.minecraft.util.ResourceLocation;
import org.lwjgl.input.Mouse;
import org.lwjgl.opengl.GL11;
+import static com.thatgravyboat.skyblockhud.GuiTextures.DISCORD;
+import static com.thatgravyboat.skyblockhud.GuiTextures.TWITTER;
+
public class SBHConfigEditor extends GuiElement {
private static final ResourceLocation[] socialsIco = new ResourceLocation[] { DISCORD, TWITTER };
@@ -41,6 +41,7 @@ public class SBHConfigEditor extends GuiElement {
private final LerpingInteger categoryScroll = new LerpingInteger(0, 150);
private LinkedHashMap<String, ConfigProcessor.ProcessedCategory> processedConfig;
+ private TreeMap<String, Set<ConfigProcessor.ProcessedOption>> searchOptionMap = new TreeMap<>();
private HashMap<ConfigProcessor.ProcessedOption, ConfigProcessor.ProcessedCategory> categoryForOption = new HashMap<>();
public SBHConfigEditor(Config config) {
@@ -232,14 +233,15 @@ public class SBHConfigEditor extends GuiElement {
ConfigProcessor.ProcessedCategory cat = currentConfigEditing.get(getSelectedCategory());
int optionWidthDefault = innerRight - innerLeft - 20;
GlStateManager.enableDepth();
- Set<Integer> activeAccordions = new HashSet<>();
+ HashMap<Integer, Integer> activeAccordions = new HashMap<>();
for (ConfigProcessor.ProcessedOption option : getOptionsInCategory(cat).values()) {
int optionWidth = optionWidthDefault;
if (option.accordionId >= 0) {
- if (!activeAccordions.contains(option.accordionId)) {
+ if(!activeAccordions.containsKey(option.accordionId)) {
continue;
}
- optionWidth = optionWidthDefault - 2 * innerPadding;
+ int accordionDepth = activeAccordions.get(option.accordionId);
+ optionWidth = optionWidthDefault - (2 * innerPadding)*(accordionDepth + 1);
}
GuiOptionEditor editor = option.editor;
@@ -249,7 +251,11 @@ public class SBHConfigEditor extends GuiElement {
if (editor instanceof GuiOptionEditorAccordion) {
GuiOptionEditorAccordion accordion = (GuiOptionEditorAccordion) editor;
if (accordion.getToggled()) {
- activeAccordions.add(accordion.getAccordionId());
+ int accordionDepth = 0;
+ if (option.accordionId >= 0) {
+ accordionDepth = activeAccordions.get(option.accordionId)+1;
+ }
+ activeAccordions.put(accordion.getAccordionId(), accordionDepth);
}
}
int optionHeight = editor.getHeight();
@@ -274,14 +280,15 @@ public class SBHConfigEditor extends GuiElement {
GlStateManager.translate(0, 0, 10);
GlStateManager.enableDepth();
- Set<Integer> activeAccordions = new HashSet<>();
+ HashMap<Integer, Integer> activeAccordions = new HashMap<>();
for (ConfigProcessor.ProcessedOption option : getOptionsInCategory(cat).values()) {
int optionWidth = optionWidthDefault;
if (option.accordionId >= 0) {
- if (!activeAccordions.contains(option.accordionId)) {
+ if (!activeAccordions.containsKey(option.accordionId)) {
continue;
}
- optionWidth = optionWidthDefault - 2 * innerPadding;
+ int accordionDepth = activeAccordions.get(option.accordionId);
+ optionWidth = optionWidthDefault - (2 * innerPadding) * (accordionDepth + 1);
}
GuiOptionEditor editor = option.editor;
@@ -291,7 +298,11 @@ public class SBHConfigEditor extends GuiElement {
if (editor instanceof GuiOptionEditorAccordion) {
GuiOptionEditorAccordion accordion = (GuiOptionEditorAccordion) editor;
if (accordion.getToggled()) {
- activeAccordions.add(accordion.getAccordionId());
+ int accordionDepth = 0;
+ if (option.accordionId >= 0) {
+ accordionDepth = activeAccordions.get(option.accordionId)+1;
+ }
+ activeAccordions.put(accordion.getAccordionId(), accordionDepth);
}
}
int optionHeight = editor.getHeight();
@@ -403,10 +414,10 @@ public class SBHConfigEditor extends GuiElement {
int optionY = -newTarget;
if (getSelectedCategory() != null && getCurrentConfigEditing() != null && getCurrentConfigEditing().containsKey(getSelectedCategory())) {
ConfigProcessor.ProcessedCategory cat = getCurrentConfigEditing().get(getSelectedCategory());
- Set<Integer> activeAccordions = new HashSet<>();
+ HashMap<Integer, Integer> activeAccordions = new HashMap<>();
for (ConfigProcessor.ProcessedOption option : getOptionsInCategory(cat).values()) {
if (option.accordionId >= 0) {
- if (!activeAccordions.contains(option.accordionId)) {
+ if (!activeAccordions.containsKey(option.accordionId)) {
continue;
}
}
@@ -418,7 +429,11 @@ public class SBHConfigEditor extends GuiElement {
if (editor instanceof GuiOptionEditorAccordion) {
GuiOptionEditorAccordion accordion = (GuiOptionEditorAccordion) editor;
if (accordion.getToggled()) {
- activeAccordions.add(accordion.getAccordionId());
+ int accordionDepth = 0;
+ if (option.accordionId >= 0) {
+ accordionDepth = activeAccordions.get(option.accordionId)+1;
+ }
+ activeAccordions.put(accordion.getAccordionId(), accordionDepth);
}
}
optionY += editor.getHeight() + 5;
@@ -468,14 +483,15 @@ public class SBHConfigEditor extends GuiElement {
if (getSelectedCategory() != null && getCurrentConfigEditing() != null && getCurrentConfigEditing().containsKey(getSelectedCategory())) {
int optionWidthDefault = innerRight - innerLeft - 20;
ConfigProcessor.ProcessedCategory cat = getCurrentConfigEditing().get(getSelectedCategory());
- Set<Integer> activeAccordions = new HashSet<>();
+ HashMap<Integer, Integer> activeAccordions = new HashMap<>();
for (ConfigProcessor.ProcessedOption option : getOptionsInCategory(cat).values()) {
int optionWidth = optionWidthDefault;
if (option.accordionId >= 0) {
- if (!activeAccordions.contains(option.accordionId)) {
+ if (!activeAccordions.containsKey(option.accordionId)) {
continue;
}
- optionWidth = optionWidthDefault - 2 * innerPadding;
+ int accordionDepth = activeAccordions.get(option.accordionId);
+ optionWidth = optionWidthDefault - (2*innerPadding)*(accordionDepth+1);
}
GuiOptionEditor editor = option.editor;
@@ -485,7 +501,11 @@ public class SBHConfigEditor extends GuiElement {
if (editor instanceof GuiOptionEditorAccordion) {
GuiOptionEditorAccordion accordion = (GuiOptionEdit