aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/BetterContainers.java5
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/CalendarOverlay.java60
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/NEUEventListener.java270
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java8
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java5
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/auction/APIManager.java2
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/dungeons/DungeonMap.java42
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/dungeons/GuiDungeonMapEditor.java51
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiContainer.java3
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/options/Options.java23
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java11
11 files changed, 321 insertions, 159 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/BetterContainers.java b/src/main/java/io/github/moulberry/notenoughupdates/BetterContainers.java
index 07fff01b..02ff2164 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/BetterContainers.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/BetterContainers.java
@@ -19,6 +19,8 @@ import net.minecraft.nbt.NBTTagList;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.ResourceLocation;
import org.lwjgl.input.Keyboard;
+import org.lwjgl.opengl.GL11;
+import org.lwjgl.opengl.GL14;
import javax.imageio.ImageIO;
import java.awt.*;
@@ -90,6 +92,9 @@ public class BetterContainers {
if(texture != null && loaded) {
if(!usingCached) lastRenderMillis = System.currentTimeMillis();
lastRenderMillis = System.currentTimeMillis();
+
+ GlStateManager.color(1, 1, 1, 1);
+
textureManager.loadTexture(rl, texture);
textureManager.bindTexture(rl);
return;
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/CalendarOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/CalendarOverlay.java
index ff6c500b..db168747 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/CalendarOverlay.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/CalendarOverlay.java
@@ -34,6 +34,8 @@ import net.minecraftforge.fml.common.gameevent.TickEvent;
import org.lwjgl.input.Keyboard;
import org.lwjgl.input.Mouse;
import org.lwjgl.opengl.GL11;
+import org.lwjgl.opengl.GL14;
+
import static io.github.moulberry.notenoughupdates.GuiTextures.*;
import java.io.File;
@@ -92,6 +94,10 @@ public class CalendarOverlay {
private int jfFavouriteSelectX = 0;
private int jfFavouriteSelectY = 0;
+ private boolean drawTimerForeground = false;
+
+ private static long spookyStart = 0;
+
private static long SECOND = 1000;
private static long MINUTE = SECOND*60;
private static long HOUR = MINUTE*60;
@@ -649,7 +655,7 @@ public class CalendarOverlay {
}
@SubscribeEvent(priority = EventPriority.LOW)
- public void onGuiDraw(RenderGameOverlayEvent event) {
+ public void onGuiDraw(RenderGameOverlayEvent.Post event) {
if(NotEnoughUpdates.INSTANCE.manager.config.eventNotifications.value &&
event.type == RenderGameOverlayEvent.ElementType.ALL) {
GlStateManager.pushMatrix();
@@ -714,6 +720,15 @@ public class CalendarOverlay {
return false;
}
+ long currentTime = System.currentTimeMillis();
+ if(currentTime - spookyStart < HOUR && NotEnoughUpdates.INSTANCE.manager.config.spookyMorningNotification.value) {
+ long delta = (currentTime - SKYBLOCK_START) % (20*MINUTE) - 7*50*SECOND - 10*SECOND;
+ if(delta < 500 && delta > -8500) {
+ event = new SBEvent("spooky_festival_7am", "Spooky Festival 7am", new ItemStack(Items.bone), null);
+ timeUntil = delta;
+ }
+ }
+
FontRenderer fr = Minecraft.getMinecraft().fontRendererObj;
ScaledResolution scaledResolution = new ScaledResolution(Minecraft.getMinecraft());
int width = scaledResolution.getScaledWidth();
@@ -778,7 +793,23 @@ public class CalendarOverlay {
}
@SubscribeEvent
- public void onGuiDraw(GuiScreenEvent.DrawScreenEvent.Post event) {
+ public void onGuiScreenDrawTimer(GuiScreenEvent.BackgroundDrawnEvent event) {
+ blurBackground();
+ if(!drawTimerForeground) {
+ drawTimer();
+ }
+ GlStateManager.color(1, 1, 1, 1);
+ GlStateManager.enableBlend();
+ }
+
+ @SubscribeEvent
+ public void onGuiScreenDrawTimer(GuiScreenEvent.DrawScreenEvent.Post event) {
+ if(drawTimerForeground) {
+ drawTimer();
+ }
+ }
+
+ public void drawTimer() {
GlStateManager.pushMatrix();
GlStateManager.translate(0, 0, 10);
if(Minecraft.getMinecraft().currentScreen instanceof GuiContainer && NotEnoughUpdates.INSTANCE.isOnSkyblock()) {
@@ -816,6 +847,12 @@ public class CalendarOverlay {
continue;
}
+ if(sbEvent.id.equals("spooky_festival")) {
+ if(currentTime - spookyStart > HOUR || (sbEvents.getKey() > currentTime && sbEvents.getKey() < spookyStart)) {
+ spookyStart = sbEvents.getKey();
+ }
+ }
+
if(nextMajorEvent == null && !sbEvent.id.split(":")[0].equals("jacob_farming") &&
!sbEvent.id.equals("dark_auction")) {
nextMajorEvent = sbEvent;
@@ -865,7 +902,11 @@ public class CalendarOverlay {
List<String> tooltipToDisplay = null;
FontRenderer fr = Minecraft.getMinecraft().fontRendererObj;
- blurBackground();
+ GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
+ GlStateManager.disableFog();
+ GlStateManager.disableLighting();
+ GlStateManager.disableColorMaterial();
+
renderBlurredBackground(width, height, guiLeft+3, guiTop+3, xSize-6, ySize-6);
Minecraft.getMinecraft().getTextureManager().bindTexture(DISPLAYBAR);
@@ -934,8 +975,12 @@ public class CalendarOverlay {
}
}
+ drawTimerForeground = false;
if(tooltipToDisplay != null) {
+ drawTimerForeground = true;
+ GlStateManager.translate(0, 0, 100);
Utils.drawHoveringText(tooltipToDisplay, mouseX, Math.max(17, mouseY), width, height, -1, fr);
+ GlStateManager.translate(0, 0, -100);
}
}
}
@@ -980,7 +1025,6 @@ public class CalendarOverlay {
Utils.drawGradientRect(0, 0, width, height, -1072689136, -804253680);
- blurBackground();
renderBlurredBackground(width, height, guiLeft+3, guiTop+3, 162, 14);
renderBlurredBackground(width, height, guiLeft+3, guiTop+26, 14, 141);
renderBlurredBackground(width, height, guiLeft+151, guiTop+26, 14, 141);
@@ -1045,6 +1089,12 @@ public class CalendarOverlay {
int x = guiLeft+29+17*(index%3);
int y = guiTop+44+17*(index/3);
+ if(sbEvent.id.equals("spooky_festival")) {
+ if(currentTime - spookyStart > HOUR || (sbEvents.getKey() > currentTime && sbEvents.getKey() < spookyStart)) {
+ spookyStart = sbEvents.getKey();
+ }
+ }
+
if(index >= 21) {
if(nextEvent != null) break;
if(eventFavourites.isEmpty()) {
@@ -1405,10 +1455,12 @@ public class CalendarOverlay {
float vMin = (height-y)/(float)height;
float vMax = (height-y-blurHeight)/(float)height;
+ GlStateManager.depthMask(false);
blurOutputVert.bindFramebufferTexture();
GlStateManager.color(1f, 1f, 1f, 1f);
Utils.drawTexturedRect(x, y, blurWidth, blurHeight, uMin, uMax, vMin, vMax);
blurOutputVert.unbindFramebufferTexture();
+ GlStateManager.depthMask(true);
}
}
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUEventListener.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUEventListener.java
index 9f33df1a..e4ec49cb 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/NEUEventListener.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUEventListener.java
@@ -88,14 +88,14 @@ public class NEUEventListener {
String version = o.get("version").getAsString();
- if(!neu.VERSION.equalsIgnoreCase(version)) {
+ boolean shouldUpdate = !NotEnoughUpdates.VERSION.equalsIgnoreCase(version);
+ if(o.has("version_id") && o.get("version_id").isJsonPrimitive()) {
+ int version_id = o.get("version_id").getAsInt();
+ shouldUpdate = version_id > NotEnoughUpdates.VERSION_ID;
+ }
+
+ if(shouldUpdate) {
String update_msg = o.get("update_msg").getAsString();
- String discord_link = o.get("discord_link").getAsString();
- String youtube_link = o.get("youtube_link").getAsString();
- String update_link = o.get("update_link").getAsString();
- String github_link = o.get("github_link").getAsString();
- String other_text = o.get("other_text").getAsString();
- String other_link = o.get("other_link").getAsString();
int first_len = -1;
for(String line : update_msg.split("\n")) {
@@ -119,7 +119,6 @@ public class NEUEventListener {
neu.displayLinks(o);
Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(""));
-
}
} catch(Exception ignored) {}
}
@@ -722,7 +721,7 @@ public class NEUEventListener {
Minecraft.getMinecraft().getTextureManager().bindTexture(dungeon_chest_worth);
GL11.glColor4f(1, 1, 1, 1);
GlStateManager.disableLighting();
- Utils.drawTexturedRect(guiLeft+xSize+4, guiTop, 180, 71, 0, 180/256f, 0, 71/256f, GL11.GL_NEAREST);
+ Utils.drawTexturedRect(guiLeft+xSize+4, guiTop, 180, 101, 0, 180/256f, 0, 101/256f, GL11.GL_NEAREST);
int chestCost = 0;
String line6 = Utils.cleanColour(neu.manager.getLoreFromNBT(rewardChest.getTagCompound())[6]);
@@ -737,8 +736,11 @@ public class NEUEventListener {
chestCost = Integer.parseInt(cost.toString());
}
- boolean missing = false;
+ String missingItemBIN = null;
+ String missingItemABIN = null;
+ String missingItemAUC = null;
int totalValueBIN = 0;
+ int totalValueABIN = 0;
int totalValueAUC = 0;
for(int i=0; i<5; i++) {
ItemStack item = lower.getStackInSlot(11+i);
@@ -750,86 +752,119 @@ public class NEUEventListener {
bazaarPrice = bazaarInfo.get("avg_sell").getAsFloat();
}
- float worthBIN = -1;
+ float worthBIN;
+ float worthABIN;
float worthAUC = -1;
if(bazaarPrice > 0) {
worthBIN = bazaarPrice;
+ worthABIN = bazaarPrice;
worthAUC = bazaarPrice;
} else {
- worthBIN = neu.manager.auctionManager.getItemAvgBin(internal);
- if(worthBIN <= 0) {
- worthBIN = neu.manager.auctionManager.getLowestBin(internal);
- }
+ worthABIN = neu.manager.auctionManager.getItemAvgBin(internal);
+ worthBIN = neu.manager.auctionManager.getLowestBin(internal);
+
JsonObject aucInfo = neu.manager.auctionManager.getItemAuctionInfo(internal);
if(aucInfo != null) {
worthAUC = aucInfo.get("price").getAsFloat();
}
}
- if(worthAUC <= 0 && worthBIN <= 0) {
- missing = true;
- break;
- }
-
if(worthBIN > 0 && totalValueBIN >= 0) {
totalValueBIN += worthBIN;
} else {
+ if(totalValueBIN != -1) {
+ missingItemBIN = internal;
+ }
totalValueBIN = -1;
}
+ if(worthABIN > 0 && totalValueABIN >= 0) {
+ totalValueABIN += worthABIN;
+ } else {
+ if(totalValueABIN != -1) {
+ missingItemABIN = internal;
+ }
+ totalValueABIN = -1;
+ }
+
if(worthAUC > 0 && totalValueAUC >= 0) {
totalValueAUC += worthAUC;
} else {
+ if(totalValueAUC != -1) {
+ missingItemAUC = internal;
+ }
totalValueAUC = -1;
}
}
}
- if(totalValueAUC <= 0 && totalValueBIN <= 0) {
- missing = true;
- }
- if(missing) {
- drawStringShadow(EnumChatFormatting.BLUE+"Couldn't find item on AH. Item is very rare!",
- guiLeft+xSize+4+90, guiTop+14, 170);
- } else {
- NumberFormat format = NumberFormat.getInstance(Locale.US);
- String valueStringBIN = EnumChatFormatting.YELLOW+"Value (BIN): " + EnumChatFormatting.GOLD
+ NumberFormat format = NumberFormat.getInstance(Locale.US);
+ String valueStringBIN;
+ String valueStringABIN;
+ String valueStringAUC;
+ if(totalValueBIN >= 0) {
+ valueStringBIN = EnumChatFormatting.YELLOW+"Value (BIN): " + EnumChatFormatting.GOLD
+ EnumChatFormatting.BOLD + format.format(totalValueBIN) + " coins";
- String valueStringAUC = EnumChatFormatting.YELLOW+"Value (AUC): " + EnumChatFormatting.GOLD
+ } else {
+ valueStringBIN = EnumChatFormatting.YELLOW+"Can't find BIN: " + missingItemBIN;
+ }
+ if(totalValueABIN >= 0) {
+ valueStringABIN = EnumChatFormatting.YELLOW+"Value (AVG BIN): " + EnumChatFormatting.GOLD
+ + EnumChatFormatting.BOLD + format.format(totalValueABIN) + " coins";
+ } else {
+ valueStringABIN = EnumChatFormatting.YELLOW+"Can't find AVG BIN: " + missingItemABIN;
+ }
+ if(totalValueAUC >= 0) {
+ valueStringAUC = EnumChatFormatting.YELLOW+"Value (AUC): " + EnumChatFormatting.GOLD
+ EnumChatFormatting.BOLD + format.format(totalValueAUC) + " coins";
+ } else {
+ valueStringAUC = EnumChatFormatting.YELLOW+"Can't find AUC: " + missingItemAUC;
+ }
+ String profitPrefix = EnumChatFormatting.YELLOW+"Profit/Loss: " + EnumChatFormatting.DARK_GREEN
+ + EnumChatFormatting.BOLD + "+";
+ String lossPrefix = EnumChatFormatting.YELLOW+"Profit/Loss: " + EnumChatFormatting.RED
+ + EnumChatFormatting.BOLD + "-";
- int profitLossBIN = totalValueBIN - chestCost;
- String plStringBIN;
- if(profitLossBIN >= 0) {
- plStringBIN = EnumChatFormatting.YELLOW+"Profit/Loss: " + EnumChatFormatting.DARK_GREEN
- + EnumChatFormatting.BOLD + "+" + format.format(profitLossBIN) + " coins";
- } else {
- plStringBIN = EnumChatFormatting.YELLOW+"Profit/Loss: " + EnumChatFormatting.RED
- + EnumChatFormatting.BOLD + "-" + format.format(-profitLossBIN) + " coins";
- }
-
- int profitLossAUC = totalValueAUC - chestCost;
- String plStringAUC;
- if(profitLossAUC >= 0) {
- plStringAUC = EnumChatFormatting.YELLOW+"Profit/Loss: " + EnumChatFormatting.DARK_GREEN
- + EnumChatFormatting.BOLD + "+" + format.format(profitLossAUC) + " coins";
- } else {
- plStringAUC = EnumChatFormatting.YELLOW+"Profit/Loss: " + EnumChatFormatting.RED
- + EnumChatFormatting.BOLD + "-" + format.format(-profitLossAUC) + " coins";
- }
+ int profitLossBIN = totalValueBIN - chestCost;
+ String plStringBIN;
+ if(profitLossBIN >= 0) {
+ plStringBIN = profitPrefix + format.format(profitLossBIN) + " coins";
+ } else {
+ plStringBIN = lossPrefix + format.format(-profitLossBIN) + " coins";
+ }
- drawStringShadow(valueStringBIN, guiLeft+xSize+4+90,
- guiTop+14, 170);
- drawStringShadow(plStringBIN, guiLeft+xSize+4+90,
- guiTop+26, 170);
+ int profitLossABIN = totalValueABIN - chestCost;
+ String plStringABIN;
+ if(profitLossABIN >= 0) {
+ plStringABIN = profitPrefix + format.format(profitLossABIN) + " coins";
+ } else {
+ plStringABIN = lossPrefix + format.format(-profitLossABIN) + " coins";
+ }
- drawStringShadow(valueStringAUC, guiLeft+xSize+4+90,
- guiTop+44, 170);
- drawStringShadow(plStringAUC, guiLeft+xSize+4+90,
- guiTop+56, 170);
+ int profitLossAUC = totalValueAUC - chestCost;
+ String plStringAUC;
+ if(profitLossAUC >= 0) {
+ plStringAUC = profitPrefix + format.format(profitLossAUC) + " coins";
+ } else {
+ plStringAUC = lossPrefix + format.format(-profitLossAUC) + " coins";
}
+
+ drawStringShadow(valueStringBIN, guiLeft+xSize+4+90,
+ guiTop+14, 170);
+ if(totalValueBIN >= 0) drawStringShadow(plStringBIN, guiLeft+xSize+4+90,
+ guiTop+26, 170);
+
+ drawStringShadow(valueStringABIN, guiLeft+xSize+4+90,
+ guiTop+44, 170);
+ if(totalValueABIN >= 0) drawStringShadow(plStringABIN, guiLeft+xSize+4+90,
+ guiTop+56, 170);
+
+ drawStringShadow(valueStringAUC, guiLeft+xSize+4+90,
+ guiTop+74, 170);
+ if(totalValueAUC >= 0) drawStringShadow(plStringAUC, guiLeft+xSize+4+90,
+ guiTop+86, 170);
}
} catch(Exception e) {
e.printStackTrace();
@@ -1383,8 +1418,11 @@ public class NEUEventListener {
chestCost = Integer.parseInt(cost.toString());
}
- boolean missing = false;
+ String missingItemBIN = null;
+ String missingItemABIN = null;
+ String missingItemAUC = null;
int totalValueBIN = 0;
+ int totalValueABIN = 0;
int totalValueAUC = 0;
for(int i=0; i<5; i++) {
ItemStack item = lower.getStackInSlot(11+i);
@@ -1396,81 +1434,113 @@ public class NEUEventListener {
bazaarPrice = bazaarInfo.get("avg_sell").getAsFloat();
}
- float worthBIN = -1;
+ float worthBIN;
+ float worthABIN;
float worthAUC = -1;
if(bazaarPrice > 0) {
worthBIN = bazaarPrice;
+ worthABIN = bazaarPrice;
worthAUC = bazaarPrice;
} else {
- worthBIN = neu.manager.auctionManager.getItemAvgBin(internal);
- if(worthBIN <= 0) {
- worthBIN = neu.manager.auctionManager.getLowestBin(internal);
- }
+ worthABIN = neu.manager.auctionManager.getItemAvgBin(internal);
+ worthBIN = neu.manager.auctionManager.getLowestBin(internal);
+
JsonObject aucInfo = neu.manager.auctionManager.getItemAuctionInfo(internal);
if(aucInfo != null) {
worthAUC = aucInfo.get("price").getAsFloat();
}
}
- if(worthAUC <= 0 && worthBIN <= 0) {
- missing = true;
- break;
- }
-
if(worthBIN > 0 && totalValueBIN >= 0) {
totalValueBIN += worthBIN;
} else {
+ if(totalValueBIN != -1) {
+ missingItemBIN = internal;
+ }
totalValueBIN = -1;
}
+ if(worthABIN > 0 && totalValueABIN >= 0) {
+ totalValueABIN += worthABIN;
+ } else {
+ if(totalValueABIN != -1) {
+ missingItemABIN = internal;
+ }
+ totalValueABIN = -1;
+ }
+
if(worthAUC > 0 && totalValueAUC >= 0) {
totalValueAUC += worthAUC;
} else {
+ if(totalValueAUC != -1) {
+ missingItemAUC = internal;
+ }
totalValueAUC = -1;
}
}
}
- if(totalValueAUC <= 0 && totalValueBIN <= 0) {
- missing = true;
- }
- String neu = EnumChatFormatting.YELLOW + "[NEU] ";
- if(missing) {
- newTooltip.add(neu + EnumChatFormatting.BLUE+"Couldn't find item on AH. Item is very rare!");
- } else {
- NumberFormat format = NumberFormat.getInstance(Locale.US);
- String valueStringBIN = EnumChatFormatting.YELLOW+"Value (BIN): " + EnumChatFormatting.GOLD
+ NumberFormat format = NumberFormat.getInstance(Locale.US);
+ String valueStringBIN;
+ String valueStringABIN;
+ String valueStringAUC;
+ if(totalValueBIN >= 0) {
+ valueStringBIN = EnumChatFormatting.YELLOW+"Value (BIN): " + EnumChatFormatting.GOLD
+ EnumChatFormatting.BOLD + format.format(totalValueBIN) + " coins";
- String valueStringAUC = EnumChatFormatting.YELLOW+"Value (AUC): " + EnumChatFormatting.GOLD
+ } else {
+ valueStringBIN = EnumChatFormatting.YELLOW+"Can't find BIN: " + missingItemBIN;
+ }
+ if(totalValueABIN >= 0) {
+ valueStringABIN = EnumChatFormatting.YELLOW+"Value (AVG BIN): " + EnumChatFormatting.GOLD
+ + EnumChatFormatting.BOLD + format.format(totalValueABIN) + " coins";
+ } else {
+ valueStringABIN = EnumChatFormatting.YELLOW+"Can't find AVG BIN: " + missingItemABIN;
+ }
+ if(totalValueAUC >= 0) {
+ valueStringAUC = EnumChatFormatting.YELLOW+"Value (AUC): " + EnumChatFormatting.GOLD
+ EnumChatFormatting.BOLD + format.format(totalValueAUC) + " coins";
+ } else {
+ valueStringAUC = EnumChatFormatting.YELLOW+"Can't find AUC: " + missingItemAUC;
+ }
+ String profitPrefix = EnumChatFormatting.YELLOW+"Profit/Loss: " + EnumChatFormatting.DARK_GREEN
+ + EnumChatFormatting.BOLD + "+";
+ String lossPrefix = EnumChatFormatting.YELLOW+"Profit/Loss: " + EnumChatFormatting.RED
+ + EnumChatFormatting.BOLD + "-";
- int profitLossBIN = totalValueBIN - chestCost;
- String plStringBIN;
- if(profitLossBIN >= 0) {
- plStringBIN = EnumChatFormatting.YELLOW+"Profit/Loss: " + EnumChatFormatting.DARK_GREEN
- + EnumChatFormatting.BOLD + "+" + format.format(profitLossBIN) + " coins";
- } else {
- plStringBIN = EnumChatFormatting.YELLOW+"Profit/Loss: " + EnumChatFormatting.RED
- + EnumChatFormatting.BOLD + "-" + format.format(-profitLossBIN) + " coins";
- }
+ int profitLossBIN = totalValueBIN - chestCost;
+ String plStringBIN;
+ if(profitLossBIN >= 0) {
+ plStringBIN = profitPrefix + format.format(profitLossBIN) + " coins";
+ } else {
+ plStringBIN = lossPrefix + format.format(-profitLossBIN) + " coins";
+ }
- int profitLossAUC = totalValueAUC - chestCost;
- String plStringAUC;
- if(profitLossAUC >= 0) {
- plStringAUC = EnumChatFormatting.YELLOW+"Profit/Loss: " + EnumChatFormatting.DARK_GREEN
- + EnumChatFormatting.BOLD + "+" + format.format(profitLossAUC) + " coins";
- } else {
- plStringAUC = EnumChatFormatting.YELLOW+"Profit/Loss: " + EnumChatFormatting.RED
- + EnumChatFormatting.BOLD + "-" + format.format(-profitLossAUC) + " coins";
- }
+ int profitLossABIN = totalValueABIN - chestCost;
+ String plStringABIN;
+ if(profitLossABIN >= 0) {
+ plStringABIN = profitPrefix + format.format(profitLossABIN) + " coins";
+ } else {
+ plStringABIN = lossPrefix + format.format(-profitLossABIN) + " coins";
+ }
- newTooltip.add(neu + valueStringBIN);
- newTooltip.add(neu + plStringBIN);
- newTooltip.add(neu + valueStringAUC);
- newTooltip.add(neu + plStringAUC);
+ int profitLossAUC = totalValueAUC - chestCost;
+ String plStringAUC;
+ if(profitLossAUC >= 0) {
+ plStringAUC = profitPrefix + format.format(profitLossAUC) + " coins";
+ } else {
+ plStringAUC = lossPrefix + format.format(-profitLossAUC) + " coins";
}
+
+ String neu = EnumChatFormatting.YELLOW + "[NEU] ";
+
+ newTooltip.add(neu + valueStringBIN);
+ if(totalValueBIN >= 0) newTooltip.add(neu + plStringBIN);
+ newTooltip.add(neu + valueStringABIN);
+ if(totalValueABIN >= 0) newTooltip.add(neu + plStringABIN);
+ newTooltip.add(neu + valueStringAUC);
+ if(totalValueAUC >= 0) newTooltip.add(neu + plStringAUC);
}
}
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java
index 08d6c50b..7fc519a8 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java
@@ -50,6 +50,9 @@ import java.lang.reflect.Method;
import java.text.NumberFormat;
import java.util.List;
import java.util.*;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference;
@@ -369,11 +372,10 @@ public class NEUOverlay extends Gui {
String command = quickCommandStr.split(":")[0].trim();
if(command.startsWith("/")) {
NotEnoughUpdates.INSTANCE.sendChatMessage(command);
- Utils.playPressSound();
} else {
- ClientCommandHandler.instance.executeCommand(Minecraft.getMinecraft().thePlayer, "/"+command); //Need to add '/' because of sk1er's patcher being unbelievably shit
- Utils.playPressSound();
+ ClientCommandHandler.instance.executeCommand(Minecraft.getMinecraft().thePlayer, "/"+command);
}
+ Utils.playPressSound();
}
}
}
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java b/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java
index 1894023b..fefa6ec0 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java
@@ -79,7 +79,8 @@ import java.util.regex.Pattern;
@Mod(modid = NotEnoughUpdates.MODID, version = NotEnoughUpdates.VERSION, clientSideOnly = true)
public class NotEnoughUpdates {
public static final String MODID = "notenoughupdates";
- public static final String VERSION = "1.7-REL";
+ public static final String VERSION = "1.7.1-REL";
+ public static final int VERSION_ID = 10701;
public static NotEnoughUpdates INSTANCE = null;
@@ -930,7 +931,7 @@ public class NotEnoughUpdates {
JOptionPane.showConfirmDialog(null,
pf,
"Enter password:",
- JOptionPane.NO_OPTION,
+ JOptionPane.DEFAULT_OPTION,
JOptionPane.PLAIN_MESSAGE);
auth.setPassword(new String(pf.getPassword()));
System.out.print("Attempting login...");
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/auction/APIManager.java b/src/main/java/io/github/moulberry/notenoughupdates/auction/APIManager.java
index e2cc82bd..242ad2af 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/auction/APIManager.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/auction/APIManager.java
@@ -663,7 +663,7 @@ public class APIManager {
auctionPricesJson = jsonObject;
lastAuctionAvgUpdate = System.currentTimeMillis();
}, () -> {});
- manager.hypixelApi.getMyApiGZIPAsync("auction_averages_lbin/3day.json.gz", (jsonObject) -> {
+ manager.hypixelApi.getMyApiGZIPAsync("auction_averages_lbin/1day.json.gz", (jsonObject) -> {
auctionPricesAvgLowestBinJson = jsonObject;
}, () -> {});
}
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/dungeons/DungeonMap.java b/src/main/java/io/github/moulberry/notenoughupdates/dungeons/DungeonMap.java
index fb9af536..4a209cd9 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/dungeons/DungeonMap.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/dungeons/DungeonMap.java
@@ -216,7 +216,11 @@ public class DungeonMap {
GlStateManager.rotate(-rotation+180, 0, 0, 1);
}
+ GlStateManager.pushMatrix();
+ GlStateManager.scale(NotEnoughUpdates.INSTANCE.manager.config.dmIconScale.value,
+ NotEnoughUpdates.INSTANCE.manager.config.dmIconScale.value, 1);
Utils.drawTexturedRect(-5, -5, 10, 10, GL11.GL_NEAREST);
+ GlStateManager.popMatrix();
if(!NotEnoughUpdates.INSTANCE.manager.config.dmOrientCheck.value) {
GlStateManager.rotate(rotation-180, 0, 0, 1);
@@ -649,6 +653,7 @@ public class DungeonMap {
}
}
+ boolean blackBorder = false;
boolean headLayer = false;
int pixelWidth = 8;
int pixelHeight = 8;
@@ -660,22 +665,14 @@ public class DungeonMap {
playerSkinMap.containsKey(entry.getKey())) {
Minecraft.getMinecraft().getTextureManager().bindTexture(playerSkinMap.get(entry.getKey()));
- headLayer = true;
- if(NotEnoughUpdates.INSTANCE.manager.config.dmPlayerHeads.value >= 3) {
- minU = 9/64f;
- minV = 9/64f;
- maxU = 15/64f;
- maxV = 15/64f;
- } else {
- minU = 8/64f;
- minV = 8/64f;
- maxU = 16/64f;
- maxV = 16/64f;
- }
+ minU = 8/64f;
+ minV = 8/64f;
+ maxU = 16/64f;
+ maxV = 16/64f;
+ headLayer = true;
if(NotEnoughUpdates.INSTANCE.manager.config.dmPlayerHeads.value >= 2) {
- pixelWidth = pixelWidth*6/8;
- pixelHeight = pixelHeight*6/8;
+ blackBorder = true;
}
} else {
Minecraft.getMinecraft().getTextureManager().bindTexture(mapIcons);
@@ -691,8 +688,16 @@ public class DungeonMap {
GL14.glBlendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ONE_MINUS_SRC_ALPHA);
GlStateManager.translate(x, y, -0.02F);
+ GlStateManager.scale(NotEnoughUpdates.INSTANCE.manager.config.dmIconScale.value,
+ NotEnoughUpdates.INSTANCE.manager.config.dmIconScale.value, 1);
GlStateManager.rotate(angle, 0.0F, 0.0F, 1.0F);
GlStateManager.translate(-0.5F, 0.5F, 0.0F);
+
+ if(blackBorder) {
+ Gui.drawRect(-pixelWidth/2-1,-pixelHeight/2-1, pixelWidth/2+1, pixelHeight/2+1, 0xff111111);
+ GlStateManager.color(1, 1, 1, 1);
+ }
+
worldrenderer.begin(7, DefaultVertexFormats.POSITION_TEX);
worldrenderer.pos(-pixelWidth/2f, pixelHeight/2f, 30+((float)k * -0.005F)).tex(minU, minV).endVertex();
worldrenderer.pos(pixelWidth/2f, pixelHeight/2f, 30+((float)k * -0.005F)).tex(maxU, minV).endVertex();
@@ -1192,13 +1197,14 @@ public class DungeonMap {
byte id = vec4b.func_176110_a();
if(id != 1 && id != 3) continue;
- if(decorations++ == 6) break;
-
float x = (float) vec4b.func_176112_b() / 2.0F + 64.0F;
float y = (float) vec4b.func_176113_c() / 2.0F + 64.0F;
- x = Math.max(0, Math.min(160, x));
- y = Math.max(0, Math.min(160, y));
+ if(x < 0 || y < 0 || x > 128 || y > 128) {
+ continue;
+ }
+
+ if(decorations++ >= 6) break;
float deltaX = x - startRoomX;
float deltaY = y - startRoomY;
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/dungeons/GuiDungeonMapEditor.java b/src/main/java/io/github/moulberry/notenoughupdates/dungeons/GuiDungeonMapEditor.java
index 438eb01d..0bd7ed6f 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/dungeons/GuiDungeonMapEditor.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/dungeons/GuiDungeonMapEditor.java
@@ -141,18 +141,18 @@ public class GuiDungeonMapEditor extends GuiScreen {
//buttons.add(new Button(5, 98, 67+19, "Large", options.dmRoomSize));
//Map Border Styles
- buttons.add(new Button(6, 6, 97, "None"));
- buttons.add(new Button(7, 52, 97, "Custom"));
- buttons.add(new Button(8, 98, 97, "Stone"));
- buttons.add(new Button(9, 6, 116, "Wood"));
- buttons.add(new Button(10, 52, 116, "Rustic(S)"));
- buttons.add(new Button(11, 98, 116, "Rustic(C)"));
- buttons.add(new Button(12, 6, 135, "Fade"));
- buttons.add(new Button(13, 52, 135, "Ribbons"));
- buttons.add(new Button(14, 98, 135, "Paper"));
- buttons.add(new Button(15, 6, 154, "Crimson"));
- buttons.add(new Button(16, 52, 154, "Ornate"));
- buttons.add(new Button(17, 98, 154, "Dragon"));
+ buttons.add(new Button(6, 6, 97+30, "None"));
+ buttons.add(new Button(7, 52, 97+30, "Custom"));
+ buttons.add(new Button(8, 98, 97+30, "Stone"));
+ buttons.add(new Button(9, 6, 116+30, "Wood"));
+ buttons.add(new Button(10, 52, 116+30, "Rustic(S)"));
+ buttons.add(new Button(11, 98, 116+30, "Rustic(C)"));
+ buttons.add(new Button(12, 6, 135+30, "Fade"));
+ buttons.add(new Button(13, 52, 135+30, "Ribbons"));
+ buttons.add(new Button(14, 98, 135+30, "Paper"));
+ buttons.add(new Button(15, 6, 154+30, "Crimson"));
+ buttons.add(new Button(16, 52, 154+30, "Ornate"));
+ buttons.add(new Button(17, 98, 154+30, "Dragon"));
//Dungeon Map
buttons.add(new Button(18, 20+139, 36, "Yes/No", options.dmEnable));
@@ -267,12 +267,14 @@ public class GuiDungeonMapEditor extends GuiScreen {
Minecraft.getMinecraft().fontRendererObj.drawString("NEU Dungeon Map Editor", guiLeft+8, guiTop+6, 0xFFB4B4B4);
- Utils.drawStringCenteredScaledMaxWidth("Map Border Size", Minecraft.getMinecraft().fontRendererObj,
+ Utils.drawStringCenteredScaledMaxWidth("Border Size", Minecraft.getMinecraft().fontRendererObj,
guiLeft+76, guiTop+30, false, 137, 0xFFB4B4B4);
- Utils.drawStringCenteredScaledMaxWidth("Map Rooms Size", Minecraft.getMinecraft().fontRendererObj,
+ Utils.drawStringCenteredScaledMaxWidth("Rooms Size", Minecraft.getMinecraft().fontRendererObj,
guiLeft+76, guiTop+60, false, 137, 0xFFB4B4B4);
- Utils.drawStringCenteredScaledMaxWidth("Map Border Style", Minecraft.getMinecraft().fontRendererObj,
+ Utils.drawStringCenteredScaledMaxWidth("Icon Scale", Minecraft.getMinecraft().fontRendererObj,
guiLeft+76, guiTop+90, false, 137, 0xFFB4B4B4);
+ Utils.drawStringCenteredScaledMaxWidth("Border Style", Minecraft.getMinecraft().fontRendererObj,
+ guiLeft+76, guiTop+120, false, 137, 0xFFB4B4B4);
Utils.drawStringCenteredScaledMaxWidth("Dungeon Map", Minecraft.getMinecraft().fontRendererObj,
guiLeft+44+139, guiTop+30, false, 60, 0xFFB4B4B4);
@@ -305,19 +307,19 @@ public class GuiDungeonMapEditor extends GuiScreen {
guiLeft+108+139, guiTop+175, false, 60, 0xFFB4B4B4);
Utils.drawStringCenteredScaledMaxWidth("X (%)", Minecraft.getMinecraft().fontRendererObj,
- guiLeft+44, guiTop+189, false, 60, 0xFFB4B4B4);
+ guiLeft+44, guiTop+209, false, 60, 0xFFB4B4B4);
Utils.drawStringCenteredScaledMaxWidth("Y (%)", Minecraft.getMinecraft().fontRendererObj,
- guiLeft+108, guiTop+189, false, 60, 0xFFB4B4B4);
+ guiLeft+108, guiTop+209, false, 60, 0xFFB4B4B4);
drawSlider(NotEnoughUpdates.INSTANCE.manager.config.dmBorderSize, guiLeft+76, guiTop+45);
drawSlider(NotEnoughUpdates.INSTANCE.manager.config.dmRoomSize, guiLeft+76, guiTop+75);
+ drawSlider(NotEnoughUpdates.INSTANCE.manager.config.dmIconScale, guiLeft+76, guiTop+105);
Options options = NotEnoughUpdates.INSTANCE.manager.config;
buttons.get(18-6).text = options.dmEnable.value ? "Enabled" : "Disabled";
buttons.get(19-6).text = options.dmCenterPlayer.value ? "Player" : "Map";
buttons.get(20-6).text = options.dmRotatePlayer.value ? "Player" : "Vertical";
- buttons.get(21-6).text = options.dmPlayerHeads.value <= 0 ? "Default" : options.dmPlayerHeads.value >= 3 ? "SmallHeads" :
- options.dmPlayerHeads.value == 1 ? "Heads" : "ScaledHeads";
+ buttons.get(21-6).text = options.dmPlayerHeads.value <= 0 ? "Default" : options.dmPlayerHeads.value == 1 ? "Heads" : "Heads w/ Border";
buttons.get(22-6).text = options.dmOrientCheck.value ? "Orient" : "Off";
buttons.get(23-6).text = options.dmCenterCheck.value ? "Center" : "Off";
buttons.get(24-6).text = options.dmPlayerInterp.value ? "Interp" : "No Interp";
@@ -332,8 +334,8 @@ public class GuiDungeonMapEditor extends GuiScreen {
xField.setSize(48, 16);
yField.setSize(48, 16);
blurField.render(guiLeft+20+139, guiTop+181);
- xField.render(guiLeft+20, guiTop+195);
- yField.render(guiLeft+84, guiTop+195);
+ xField.render(guiLeft+20, guiTop+215);
+ yField.render(guiLeft+84, guiTop+215);
Map<String, Vec4b> decorations = new HashMap<>();
Vec4b vec4b = new Vec4b((byte)3, (byte)(((50)-64)*2), (byte)(((40)-64)*2), (byte)((60)*16/360));
@@ -543,6 +545,9 @@ public class GuiDungeonMapEditor extends GuiScreen {
} else if(mouseY > guiTop+75-8 && mouseY < guiTop+75+8) {
clickedSlider = NotEnoughUpdates.INSTANCE.manager.config.dmRoomSize;
return;
+ } else if(mouseY > guiTop+105-8 && mouseY < guiTop+105+8) {
+ clickedSlider = NotEnoughUpdates.INSTANCE.manager.config.dmIconScale;
+ return;
}
}
@@ -553,7 +558,7 @@ public class GuiDungeonMapEditor extends GuiScreen {
yField.otherComponentClick();
return;
}
- } else if(mouseY > guiTop+195 && mouseY < guiTop+195+16) {
+ } else if(mouseY > guiTop+215 && mouseY < guiTop+215+16) {
if(mouseX > guiLeft+20 && mouseX < guiLeft+20+48) {
xField.mouseClicked(mouseX, mouseY, mouseButton);
yField.otherComponentClick();
@@ -746,7 +751,7 @@ public class GuiDungeonMapEditor extends GuiScreen {
options.dmRotatePlayer.value = !options.dmRotatePlayer.value; break;
case 21:
options.dmPlayerHeads.value++;
- if(options.dmPlayerHeads.value > 3) options.dmPlayerHeads.value = 0.0;break;
+ if(options.dmPlayerHeads.value > 2) options.dmPlayerHeads.value = 0.0; break;
case 22:
options.dmOrientCheck.value = !options.dmOrientCheck.value; break;
case 23:
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiContainer.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiContainer.java
index ee8282e9..e6d0a986 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiContainer.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiContainer.java
@@ -103,12 +103,13 @@ public abstract class MixinGuiContainer {
if(slotIn != null && BetterContainers.isOverriding() && (BetterContainers.isBlankStack(slotIn.getStack()) ||
BetterContainers.isButtonStack(slotIn.getStack()))) {
BetterContainers.clickSlot(slotIn.getSlotIndex());
- Utils.playPressSound();
if(BetterContainers.isBlankStack(slotIn.getStack())) {
GuiContainer $this = (GuiContainer)(Object)this;
$this.mc.playerController.windowClick($this.inventorySlots.windowId, slotId, 2, clickType, $this.mc.thePlayer);
ci.cancel();
+ } else {
+ Utils.playPressSound();
}
}
}
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/Options.java b/src/main/java/io/github/moulberry/notenoughupdates/options/Options.java
index 028f9fae..a5566ce6 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/options/Options.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/options/Options.java
@@ -148,6 +148,11 @@ public class Options {
"Hide GUI Filler Tooltips",
false,
"Hides the tooltip of glass panes in skyblock GUIs. Contrib: ThatGravyBoat", CAT_MISC);
+ public Option<Boolean> guiButtonClicks = new Option(
+ true,
+ "Button Click Sounds",
+ false,
+ "Plays a click sound whenever various NEU GUIs are interacted with", CAT_MISC);
public Option<Boolean> dungeonProfitLore = new Option(
false,
"Dungeon Profit in Lore",
@@ -217,6 +222,12 @@ public class Options {
"Skyblock Event Notification Sounds",
false,
"Will play a sounds whenever a favourited event starts.", CAT_MISC);
+ public Option<Boolean> spookyMorningNotification = new Option(
+ true,
+ "Spooky Festival Morning Notification",
+ false,
+ "During a spooky festival, will notify the player whenever it hits 7am", CAT_MISC);
+
public Option<Boolean> accessoryBagOverlay = new Option(
true,
"Accessory Bag Overlay",
@@ -464,12 +475,17 @@ public class Options {
1.0,
"Border Size",
false,
- "Changes the size of the map border, without changing the size of the contents\nSmall = 90x\nMedium = 120x\nLarge = 160x", 0, 5, CAT_ALL);
+ "Changes the size of the map border, without changing the size of the contents", 0, 5, CAT_ALL);
public Option<Double> dmRoomSize = new Option(
1.0,
"Room Size",
false,
- "Changes the size of rooms. Useful for higher dungeons with larger maps\nSmall = 12x\nMedium = 16x\nLarge = 20x\nXLarge = 24x", 0, 5, CAT_ALL);
+ "Changes the size of rooms. Useful for higher dungeons with larger maps", 0, 5, CAT_ALL);
+ public Option<Double> dmIconScale = new Option(
+ 1.0,
+ "Icon Size",
+ false,
+ "Changes the scale of room indicators and player icons", 0.5, 3, CAT_ALL);
public Option<Double> dmBorderStyle = new Option(
0.0,
"Border Style",
@@ -616,6 +632,7 @@ public class Options {
tryAddOption(showQuickCommands, options);
tryAddOption(hidePotionEffect, options);
tryAddOption(hideEmptyPanes, options);
+ tryAddOption(guiButtonClicks, options);
tryAddOption(advancedPriceInfo, options);
tryAddOption(showUpdateMsg, options);
tryAddOption(tooltipBorderColours, options);
@@ -646,7 +663,7 @@ public class Options {
tryAddOption(neuAuctionHouse, options);
tryAddOption(eventNotifications, options);
tryAddOption(showEventTimerInInventory, options);
- tryAddOption(eventNotificationSounds, options);
+ tryAddOption(spookyMorningNotification, options);
//Sliders
tryAddOption(paneGuiScale, options);
tryAddOption(smoothAoteMillis, options);
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java b/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java
index 667128b9..64bf3015 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java
@@ -99,7 +99,7 @@ public class Utils {
}
}
- int newScale = guiScales.size() > 0 ? Math.max(1, Math.min(4, guiScales.peek())) : Minecraft.getMinecraft().gameSettings.guiScale;
+ int newScale = guiScales.size() > 0 ? Math.max(0, Math.min(4, guiScales.peek())) : Minecraft.getMinecraft().gameSettings.guiScale;
if(newScale == 0) newScale = Minecraft.getMinecraft().gameSettings.guiScale;
int oldScale = Minecraft.getMinecraft().gameSettings.guiScale;
@@ -366,8 +366,10 @@ public class Utils {
}
public static void playPressSound() {
- Minecraft.getMinecraft().getSoundHandler().playSound(PositionedSoundRecord.create(
- new ResourceLocation("gui.button.press"), 1.0F));
+ if(NotEnoughUpdates.INSTANCE.manager.config.guiButtonClicks.value) {
+ Minecraft.getMinecraft().getSoundHandler().playSound(PositionedSoundRecord.create(
+ new ResourceLocation("gui.button.press"), 1.0F));
+ }
}
public static String cleanDuplicateColourCodes(String line) {
@@ -821,7 +823,7 @@ public class Utils {
GlStateManager.disableRescaleNormal();
RenderHelper.disableStandardItemLighting();
GlStateManager.disableLighting();
- GlStateManager.disableDepth();
+ GlStateManager.enableDepth();
int tooltipTextWidth = 0;
for (String textLine : textLines)
@@ -950,6 +952,7 @@ public class Utils {
drawGradientRect(zLevel, tooltipX - 3, tooltipY - 3, tooltipX + tooltipTextWidth + 3, tooltipY - 3 + 1, borderColorStart, borderColorStart);
drawGradientRect(zLevel, tooltipX - 3, tooltipY + tooltipHeight + 2, tooltipX + tooltipTextWidth + 3, tooltipY + tooltipHeight + 3, borderColorEnd, borderColorEnd);
+ GlStateManager.disableDepth();
for (int lineNumber = 0; lineNumber < textLines.size(); ++lineNumber)
{
String line = textLines.get(lineNumber);