aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/thatgravyboat/skyblockhud/tracker/TrackerHandler.java
diff options
context:
space:
mode:
authorTymanWasTaken <tyman@tyman.tech>2021-07-06 17:13:01 -0400
committerTymanWasTaken <tyman@tyman.tech>2021-07-06 17:13:01 -0400
commitbb75fd7b83b238f1f922ffc64b2a0a535c5524b7 (patch)
tree617c91cced71f672662bddea6c540939cb9a3953 /src/main/java/com/thatgravyboat/skyblockhud/tracker/TrackerHandler.java
parent91464c8f433e8bf323932ac956678971207b607e (diff)
downloadskyblockhud-bb75fd7b83b238f1f922ffc64b2a0a535c5524b7.tar.gz
skyblockhud-bb75fd7b83b238f1f922ffc64b2a0a535c5524b7.tar.bz2
skyblockhud-bb75fd7b83b238f1f922ffc64b2a0a535c5524b7.zip
Format
Diffstat (limited to 'src/main/java/com/thatgravyboat/skyblockhud/tracker/TrackerHandler.java')
-rw-r--r--src/main/java/com/thatgravyboat/skyblockhud/tracker/TrackerHandler.java243
1 files changed, 150 insertions, 93 deletions
diff --git a/src/main/java/com/thatgravyboat/skyblockhud/tracker/TrackerHandler.java b/src/main/java/com/thatgravyboat/skyblockhud/tracker/TrackerHandler.java
index 9d8261b..1d1e33c 100644
--- a/src/main/java/com/thatgravyboat/skyblockhud/tracker/TrackerHandler.java
+++ b/src/main/java/com/thatgravyboat/skyblockhud/tracker/TrackerHandler.java
@@ -6,6 +6,7 @@ import com.thatgravyboat.skyblockhud.core.config.Position;
import com.thatgravyboat.skyblockhud.location.LocationHandler;
import com.thatgravyboat.skyblockhud.location.Locations;
import com.thatgravyboat.skyblockhud.seasons.SeasonDateHandler;
+import java.util.*;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.Gui;
import net.minecraft.client.renderer.GlStateManager;
@@ -15,110 +16,166 @@ import net.minecraft.item.ItemStack;
import net.minecraftforge.client.event.RenderGameOverlayEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
-import java.util.*;
-
public class TrackerHandler {
- public static class TrackerData {
- public Map<String, Map<String,ItemStack>> dropTrackers;
-
- public TrackerData(Map<String, Map<String,ItemStack>> trackers) {
- this.dropTrackers = trackers;
- }
+ public static class TrackerData {
- public String getDropId(String event){
- if (event == null || event.isEmpty() || !eventGoing() || !dropTrackers.containsKey(event.toLowerCase().trim())) return null;
- return event.toLowerCase().trim();
- }
+ public Map<String, Map<String, ItemStack>> dropTrackers;
- private boolean eventGoing(){
- return SeasonDateHandler.getCurrentEventTime().trim().toLowerCase().contains("ends in");
- }
+ public TrackerData(Map<String, Map<String, ItemStack>> trackers) {
+ this.dropTrackers = trackers;
}
- public static Map<String, TrackerData> trackers = new HashMap<>();
- public static Map<Locations,String> trackerIds = new HashMap<>();
-
- public static Map<String, ItemStack> sortTrackers(Map<String, ItemStack> map) {
- List<Map.Entry<String, ItemStack>> list = new ArrayList<>(map.entrySet());
- list.sort((entry1, entry2) -> Integer.compare(entry2.getValue().stackSize, entry1.getValue().stackSize));
-
- Map<String, ItemStack> result = new LinkedHashMap<>();
- for (Map.Entry<String, ItemStack> entry : list) {
- result.put(entry.getKey(), entry.getValue());
- }
-
- return result;
+ public String getDropId(String event) {
+ if (
+ event == null ||
+ event.isEmpty() ||
+ !eventGoing() ||
+ !dropTrackers.containsKey(event.toLowerCase().trim())
+ ) return null;
+ return event.toLowerCase().trim();
}
- public static void onItemAdded(String id, int amount, String enchant, int level){
- if (SkyblockHud.hasSkyblockScoreboard() && trackerIds.containsKey(LocationHandler.getCurrentLocation())){
- String trackerId = trackerIds.get(LocationHandler.getCurrentLocation());
- TrackerData tracked = trackers.get(trackerId);
- String dropTrackerId = tracked.getDropId(SeasonDateHandler.getCurrentEvent());
- Map<String,ItemStack> tracker = tracked.dropTrackers.get(dropTrackerId);
- String dropId = id;
- if (enchant != null){
- dropId = enchant.toUpperCase() + ";" + level;
- }
-
- if (tracker != null && tracker.containsKey(dropId)){
- ItemStack stack = tracker.get(dropId);
- stack.stackSize += amount;
- tracked.dropTrackers.put(dropTrackerId, sortTrackers(tracker));
- }
- }
+ private boolean eventGoing() {
+ return SeasonDateHandler
+ .getCurrentEventTime()
+ .trim()
+ .toLowerCase()
+ .contains("ends in");
}
-
- public static void drawItemStack(ItemStack stack, int x, int y) {
- if(stack == null)return;
- RenderItem itemRender = Minecraft.getMinecraft().getRenderItem();
- RenderHelper.enableGUIStandardItemLighting();
- itemRender.zLevel = -145;
- itemRender.renderItemAndEffectIntoGUI(stack, x, y);
- itemRender.zLevel = 0;
- RenderHelper.disableStandardItemLighting();
+ }
+
+ public static Map<String, TrackerData> trackers = new HashMap<>();
+ public static Map<Locations, String> trackerIds = new HashMap<>();
+
+ public static Map<String, ItemStack> sortTrackers(
+ Map<String, ItemStack> map
+ ) {
+ List<Map.Entry<String, ItemStack>> list = new ArrayList<>(map.entrySet());
+ list.sort(
+ (entry1, entry2) ->
+ Integer.compare(
+ entry2.getValue().stackSize,
+ entry1.getValue().stackSize
+ )
+ );
+
+ Map<String, ItemStack> result = new LinkedHashMap<>();
+ for (Map.Entry<String, ItemStack> entry : list) {
+ result.put(entry.getKey(), entry.getValue());
}
- @SubscribeEvent
- public void renderOverlay(RenderGameOverlayEvent.Post event) {
- if (Utils.overlayShouldRender(event.type, SkyblockHud.hasSkyblockScoreboard(), trackerIds.containsKey(LocationHandler.getCurrentLocation()), !SkyblockHud.config.trackers.hideTracker)) {
- String trackerId = trackerIds.get(LocationHandler.getCurrentLocation());
- Minecraft mc = Minecraft.getMinecraft();
- TrackerData tracked = trackers.get(trackerId);
-
- Map<String, ItemStack> tracker = tracked.dropTrackers.get(tracked.getDropId(SeasonDateHandler.getCurrentEvent()));
- if (tracker != null) {
- Position pos = SkyblockHud.config.trackers.trackerPosition;
- int startPos = pos.getAbsX(event.resolution, (tracker.size() >= 6 ? 120 : tracker.size() * 20));
- int y = pos.getAbsY(event.resolution, (int) (10 + Math.ceil(tracker.size() / 5d) * 20));
-
- Gui.drawRect(startPos, y, startPos + 120, y + 10, -1072689136);
- mc.fontRendererObj.drawString("Tracker", startPos + 4, y + 1, 0xffffff, false);
- y += 10;
- Gui.drawRect(startPos, y, startPos + (tracker.size() >= 6 ? 120 : tracker.size() * 20), (int) (y + (Math.ceil(tracker.size() / 5d) * 20)), 1610612736);
- int x = startPos;
- for (ItemStack stack : tracker.values()) {
- String s = String.valueOf(stack.stackSize);
- GlStateManager.disableLighting();
- GlStateManager.enableDepth();
- drawItemStack(stack, x, y);
- GlStateManager.disableDepth();
- GlStateManager.disableBlend();
- mc.fontRendererObj.drawStringWithShadow(s, (float) (x + 19 - 2 - mc.fontRendererObj.getStringWidth(s)), (float) (y + 9), stack.stackSize < 1 ? 16733525 : 16777215);
- GlStateManager.enableBlend();
- GlStateManager.enableDepth();
-
- if ((x - startPos) / 20 == 5) {
- x = startPos;
- y += 20;
- } else {
- x += 20;
- }
- }
- }
+ return result;
+ }
+
+ public static void onItemAdded(
+ String id,
+ int amount,
+ String enchant,
+ int level
+ ) {
+ if (
+ SkyblockHud.hasSkyblockScoreboard() &&
+ trackerIds.containsKey(LocationHandler.getCurrentLocation())
+ ) {
+ String trackerId = trackerIds.get(LocationHandler.getCurrentLocation());
+ TrackerData tracked = trackers.get(trackerId);
+ String dropTrackerId = tracked.getDropId(
+ SeasonDateHandler.getCurrentEvent()
+ );
+ Map<String, ItemStack> tracker = tracked.dropTrackers.get(dropTrackerId);
+ String dropId = id;
+ if (enchant != null) {
+ dropId = enchant.toUpperCase() + ";" + level;
+ }
+
+ if (tracker != null && tracker.containsKey(dropId)) {
+ ItemStack stack = tracker.get(dropId);
+ stack.stackSize += amount;
+ tracked.dropTrackers.put(dropTrackerId, sortTrackers(tracker));
+ }
+ }
+ }
+
+ public static void drawItemStack(ItemStack stack, int x, int y) {
+ if (stack == null) return;
+ RenderItem itemRender = Minecraft.getMinecraft().getRenderItem();
+ RenderHelper.enableGUIStandardItemLighting();
+ itemRender.zLevel = -145;
+ itemRender.renderItemAndEffectIntoGUI(stack, x, y);
+ itemRender.zLevel = 0;
+ RenderHelper.disableStandardItemLighting();
+ }
+
+ @SubscribeEvent
+ public void renderOverlay(RenderGameOverlayEvent.Post event) {
+ if (
+ Utils.overlayShouldRender(
+ event.type,
+ SkyblockHud.hasSkyblockScoreboard(),
+ trackerIds.containsKey(LocationHandler.getCurrentLocation()),
+ !SkyblockHud.config.trackers.hideTracker
+ )
+ ) {
+ String trackerId = trackerIds.get(LocationHandler.getCurrentLocation());
+ Minecraft mc = Minecraft.getMinecraft();
+ TrackerData tracked = trackers.get(trackerId);
+
+ Map<String, ItemStack> tracker = tracked.dropTrackers.get(
+ tracked.getDropId(SeasonDateHandler.getCurrentEvent())
+ );
+ if (tracker != null) {
+ Position pos = SkyblockHud.config.trackers.trackerPosition;
+ int startPos = pos.getAbsX(
+ event.resolution,
+ (tracker.size() >= 6 ? 120 : tracker.size() * 20)
+ );
+ int y = pos.getAbsY(
+ event.resolution,
+ (int) (10 + Math.ceil(tracker.size() / 5d) * 20)
+ );
+
+ Gui.drawRect(startPos, y, startPos + 120, y + 10, -1072689136);
+ mc.fontRendererObj.drawString(
+ "Tracker",
+ startPos + 4,
+ y + 1,
+ 0xffffff,
+ false
+ );
+ y += 10;
+ Gui.drawRect(
+ startPos,
+ y,
+ startPos + (tracker.size() >= 6 ? 120 : tracker.size() * 20),
+ (int) (y + (Math.ceil(tracker.size() / 5d) * 20)),
+ 1610612736
+ );
+ int x = startPos;
+ for (ItemStack stack : tracker.values()) {
+ String s = String.valueOf(stack.stackSize);
+ GlStateManager.disableLighting();
+ GlStateManager.enableDepth();
+ drawItemStack(stack, x, y);
+ GlStateManager.disableDepth();
+ GlStateManager.disableBlend();
+ mc.fontRendererObj.drawStringWithShadow(
+ s,
+ (float) (x + 19 - 2 - mc.fontRendererObj.getStringWidth(s)),
+ (float) (y + 9),
+ stack.stackSize < 1 ? 16733525 : 16777215
+ );
+ GlStateManager.enableBlend();
+ GlStateManager.enableDepth();
+
+ if ((x - startPos) / 20 == 5) {
+ x = startPos;
+ y += 20;
+ } else {
+ x += 20;
+ }
}
+ }
}
-
-
+ }
}