aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java598
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/core/GuiElementTextField.java50
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/listener/ItemTooltipListener.java38
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/miscgui/CalendarOverlay.java2
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiEnchantColour.java28
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemCustomize.java1
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/DungeonMapConfig.java2
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ItemOverlays.java2
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/LocationEdit.java11
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Mining.java2
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/PetOverlay.java2
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Toolbar.java2
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/overlays/AuctionSearchOverlay.java43
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/overlays/TimersOverlay.java2
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java2
-rw-r--r--src/main/resources/assets/notenoughupdates/auc_search/master_star.pngbin0 -> 761 bytes
-rw-r--r--src/main/resources/assets/notenoughupdates/auc_search/star_board.pngbin4352 -> 639 bytes
17 files changed, 447 insertions, 338 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java
index f473a56f..d3efc06a 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java
@@ -1,63 +1,9 @@
package io.github.moulberry.notenoughupdates;
-import static io.github.moulberry.notenoughupdates.util.GuiTextures.ascending_overlay;
-import static io.github.moulberry.notenoughupdates.util.GuiTextures.close;
-import static io.github.moulberry.notenoughupdates.util.GuiTextures.descending_overlay;
-import static io.github.moulberry.notenoughupdates.util.GuiTextures.help;
-import static io.github.moulberry.notenoughupdates.util.GuiTextures.itemPaneTabArrow;
-import static io.github.moulberry.notenoughupdates.util.GuiTextures.item_haschild;
-import static io.github.moulberry.notenoughupdates.util.GuiTextures.item_mask;
-import static io.github.moulberry.notenoughupdates.util.GuiTextures.order_alphabetical;
-import static io.github.moulberry.notenoughupdates.util.GuiTextures.order_alphabetical_active;
-import static io.github.moulberry.notenoughupdates.util.GuiTextures.order_rarity;
-import static io.github.moulberry.notenoughupdates.util.GuiTextures.order_rarity_active;
-import static io.github.moulberry.notenoughupdates.util.GuiTextures.order_value;
-import static io.github.moulberry.notenoughupdates.util.GuiTextures.order_value_active;
-import static io.github.moulberry.notenoughupdates.util.GuiTextures.quickcommand_background;
-import static io.github.moulberry.notenoughupdates.util.GuiTextures.rightarrow;
-import static io.github.moulberry.notenoughupdates.util.GuiTextures.rightarrow_overlay;
-import static io.github.moulberry.notenoughupdates.util.GuiTextures.settings;
-import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_accessory;
-import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_accessory_active;
-import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_all;
-import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_all_active;
-import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_armor;
-import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_armor_active;
-import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_mob;
-import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_mob_active;
-import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_pet;
-import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_pet_active;
-import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_tool;
-import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_tool_active;
-
-import java.awt.Color;
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeSet;
-import java.util.UUID;
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.atomic.AtomicReference;
-
import com.google.common.collect.Lists;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
-import org.lwjgl.input.Keyboard;
-import org.lwjgl.input.Mouse;
-import org.lwjgl.opengl.GL11;
-import org.lwjgl.opengl.GL14;
-import org.lwjgl.util.vector.Vector2f;
import io.github.moulberry.notenoughupdates.auction.CustomAHGui;
import io.github.moulberry.notenoughupdates.core.BackgroundBlur;
import io.github.moulberry.notenoughupdates.core.GuiScreenElementWrapper;
@@ -75,6 +21,7 @@ import io.github.moulberry.notenoughupdates.miscfeatures.SunTzu;
import io.github.moulberry.notenoughupdates.miscgui.GuiPriceGraph;
import io.github.moulberry.notenoughupdates.options.NEUConfigEditor;
import io.github.moulberry.notenoughupdates.util.Constants;
+import io.github.moulberry.notenoughupdates.util.GuiTextures;
import io.github.moulberry.notenoughupdates.util.LerpingFloat;
import io.github.moulberry.notenoughupdates.util.NotificationHandler;
import io.github.moulberry.notenoughupdates.util.SpecialColour;
@@ -115,6 +62,30 @@ import net.minecraft.util.Matrix4f;
import net.minecraft.util.ResourceLocation;
import net.minecraft.world.World;
import net.minecraftforge.client.ClientCommandHandler;
+import org.lwjgl.input.Keyboard;
+import org.lwjgl.input.Mouse;
+import org.lwjgl.opengl.GL11;
+import org.lwjgl.opengl.GL14;
+import org.lwjgl.util.vector.Vector2f;
+
+import java.awt.*;
+import java.lang.reflect.InvocationTargetException;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
+import java.util.UUID;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicReference;
public class NEUOverlay extends Gui {
private static final ResourceLocation SUPERGEHEIMNISVERMOGEN = new ResourceLocation(
@@ -170,17 +141,27 @@ public class NEUOverlay extends Gui {
private final String petRegex = ".*?;[0-5]$";
private final ResourceLocation[] sortIcons = new ResourceLocation[]{
- sort_all, sort_mob, sort_pet, sort_tool, sort_armor, sort_accessory
+ GuiTextures.sort_all,
+ GuiTextures.sort_mob,
+ GuiTextures.sort_pet,
+ GuiTextures.sort_tool,
+ GuiTextures.sort_armor,
+ GuiTextures.sort_accessory
};
private final ResourceLocation[] sortIconsActive = new ResourceLocation[]{
- sort_all_active, sort_mob_active, sort_pet_active, sort_tool_active, sort_armor_active, sort_accessory_active
+ GuiTextures.sort_all_active,
+ GuiTextures.sort_mob_active,
+ GuiTextures.sort_pet_active,
+ GuiTextures.sort_tool_active,
+ GuiTextures.sort_armor_active,
+ GuiTextures.sort_accessory_active
};
private final ResourceLocation[] orderIcons = new ResourceLocation[]{
- order_alphabetical, order_rarity, order_value
+ GuiTextures.order_alphabetical, GuiTextures.order_rarity, GuiTextures.order_value
};
private final ResourceLocation[] orderIconsActive = new ResourceLocation[]{
- order_alphabetical_active, order_rarity_active, order_value_active
+ GuiTextures.order_alphabetical_active, GuiTextures.order_rarity_active, GuiTextures.order_value_active
};
//Various constants used for GUI structure
@@ -449,13 +430,13 @@ public class NEUOverlay extends Gui {
if (!NotEnoughUpdates.INSTANCE.config.toolbar.enableSettingsButton) {
return;
}
- Minecraft.getMinecraft().getTextureManager().bindTexture(quickcommand_background);
+ Minecraft.getMinecraft().getTextureManager().bindTexture(GuiTextures.quickcommand_background);
GlStateManager.color(1, 1, 1, 1);
Utils.drawTexturedRect(x, y,
searchYSize + paddingUnscaled * 2, searchYSize + paddingUnscaled * 2, GL11.GL_NEAREST
);
- Minecraft.getMinecraft().getTextureManager().bindTexture(settings);
+ Minecraft.getMinecraft().getTextureManager().bindTexture(GuiTextures.settings);
GlStateManager.color(1f, 1f, 1f, 1f);
Utils.drawTexturedRect((int) x + paddingUnscaled, (int) y + paddingUnscaled,
searchYSize, searchYSize
@@ -507,13 +488,13 @@ public class NEUOverlay extends Gui {
return;
}
- Minecraft.getMinecraft().getTextureManager().bindTexture(quickcommand_background);
+ Minecraft.getMinecraft().getTextureManager().bindTexture(GuiTextures.quickcommand_background);
GlStateManager.color(1, 1, 1, 1);
Utils.drawTexturedRect(x, y,
searchYSize + paddingUnscaled * 2, searchYSize + paddingUnscaled * 2, GL11.GL_NEAREST
);
- Minecraft.getMinecraft().getTextureManager().bindTexture(help);
+ Minecraft.getMinecraft().getTextureManager().bindTexture(GuiTextures.help);
GlStateManager.color(1f, 1f, 1f, 1f);
Utils.drawTexturedRect((int) x + paddingUnscaled, (int) y + paddingUnscaled,
getSearchBarYSize(), getSearchBarYSize()
@@ -609,7 +590,7 @@ public class NEUOverlay extends Gui {
tag.setString("qc_id", quickCommandStrSplit[0].toLowerCase().trim());
render.setTagCompound(tag);
- Minecraft.getMinecraft().getTextureManager().bindTexture(quickcommand_background);
+ Minecraft.getMinecraft().getTextureManager().bindTexture(GuiTextures.quickcommand_background);
GlStateManager.color(1, 1, 1, 1);
Utils.drawTexturedRect(x, y,
bigItemSize + paddingUnscaled * 2, bigItemSize + paddingUnscaled * 2, GL11.GL_NEAREST
@@ -1378,7 +1359,8 @@ public class NEUOverlay extends Gui {
"DUNGEON BOW",
"DRILL",
"GAUNTLET",
- "LONGSWORD"
+ "LONGSWORD",
+ "DEPLOYABLE"
) >= 0;
} else if (getSortMode() == SORT_MODE_ARMOR) {
return checkItemType(
@@ -1679,12 +1661,12 @@ public class NEUOverlay extends Gui {
drawRect(leftSide - 1, top, leftSide - 1 + buttonXSize, top + ySize, fg.getRGB());
GlStateManager.color(1f, 1f, 1f, 1f);
- Minecraft.getMinecraft().getTextureManager().bindTexture(rightarrow);
+ Minecraft.getMinecraft().getTextureManager().bindTexture(GuiTextures.rightarrow);
Utils.drawTexturedRect(leftSide - 1 + leftPressed,
top + leftPressed,
buttonXSize, ySize, 1, 0, 0, 1
);
- Minecraft.getMinecraft().getTextureManager().bindTexture(rightarrow_overlay);
+ Minecraft.getMinecraft().getTextureManager().bindTexture(GuiTextures.rightarrow_overlay);
Utils.drawTexturedRect(leftSide - 1,
top,
buttonXSize, ySize, 1 - leftPressed, leftPressed, 1 - leftPressed, leftPressed
@@ -1698,12 +1680,12 @@ public class NEUOverlay extends Gui {
drawRect(rightSide + 1 - buttonXSize, top, rightSide + 1, top + ySize, fg.getRGB());
GlStateManager.color(1f, 1f, 1f, 1f);
- Minecraft.getMinecraft().getTextureManager().bindTexture(rightarrow);
+ Minecraft.getMinecraft().getTextureManager().bindTexture(GuiTextures.rightarrow);
Utils.drawTexturedRect(rightSide + 1 - buttonXSize + rightPressed,
top + rightPressed,
buttonXSize, ySize
);
- Minecraft.getMinecraft().getTextureManager().bindTexture(rightarrow_overlay);
+ Minecraft.getMinecraft().getTextureManager().bindTexture(GuiTextures.rightarrow_overlay);
Utils.drawTexturedRect(rightSide + 1 - buttonXSize,
top,
buttonXSize, ySize, 1 - rightPressed, rightPressed, 1 - rightPressed, rightPressed
@@ -1879,7 +1861,6 @@ public class NEUOverlay extends Gui {
return wardrobeOpen;
}
-
private ItemStack getChestSlotsAsItemStack(int slot) {
GuiScreen guiScreen = Minecraft.getMinecraft().currentScreen;
if (guiScreen instanceof GuiChest) {
@@ -1890,14 +1871,12 @@ public class NEUOverlay extends Gui {
}
}
-
private ItemStack getWardrobeSlot(int armourSlot) {
if (isInNamedGui("Your Equipment")) {
- return getChestSlotsAsItemStack(armourSlot);
+ return getChestSlotsAsItemStack(armourSlot);
} else return null;
}
-
public ItemStack slot1 = null;
public ItemStack slot2 = null;
public ItemStack slot3 = null;
@@ -1944,228 +1923,6 @@ public class NEUOverlay extends Gui {
Utils.drawTexturedRect((width - 64) / 2f, (height - 64) / 2f - 114, 64, 64, GL11.GL_LINEAR);
GlStateManager.bindTexture(0);
}
- GuiScreen guiScreen = Minecraft.getMinecraft().currentScreen;
-
- if (NotEnoughUpdates.INSTANCE.config.customArmour.enableArmourHud &&
- NotEnoughUpdates.INSTANCE.config.misc.hidePotionEffect
- && NotEnoughUpdates.INSTANCE.hasSkyblockScoreboard()) {
- if (getWardrobeSlot(10) != null) {
- slot1 = getWardrobeSlot(10);
- slot2 = getWardrobeSlot(19);
- slot3 = getWardrobeSlot(28);
- slot4 = getWardrobeSlot(37);
- }
- if (guiScreen instanceof GuiInventory) {
- renderingArmorHud = true;
-
- List<String> tooltipToDisplay = null;
- if (NotEnoughUpdates.INSTANCE.config.customArmour.colourStyle == 0) {
- Minecraft.getMinecraft().getTextureManager().bindTexture(ARMOR_DISPLAY);
- }
- if (NotEnoughUpdates.INSTANCE.config.customArmour.colourStyle == 1) {
- Minecraft.getMinecraft().getTextureManager().bindTexture(ARMOR_DISPLAY_GREY);
- }
- if (NotEnoughUpdates.INSTANCE.config.customArmour.colourStyle == 2) {
- Minecraft.getMinecraft().getTextureManager().bindTexture(ARMOR_DISPLAY_DARK);
- }
- if (NotEnoughUpdates.INSTANCE.config.customArmour.colourStyle == 3) {
- if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 3 &&
- NotEnoughUpdates.INSTANCE.config.petOverlay.petInvDisplay && petSlot != null) {
- Minecraft.getMinecraft().getTextureManager().bindTexture(ARMOR_DISPLAY_TRANSPARENT_PET);
- } else {
- Minecraft.getMinecraft().getTextureManager().bindTexture(ARMOR_DISPLAY_TRANSPARENT);
- }
- }
- if (NotEnoughUpdates.INSTANCE.config.customArmour.colourStyle == 4) {
- Minecraft.getMinecraft().getTextureManager().bindTexture(ARMOR_DISPLAY_FSR);
- }
-
- GlStateManager.color(1, 1, 1, 1);
- GL11.glTranslatef(0, 0, 401);
- float yNumber = (float) (height - 167) / 2f;
- Utils.drawTexturedRect((float) ((width - 224.1) / 2f), yNumber, 31, 86, GL11.GL_NEAREST);
- GlStateManager.bindTexture(0);
-
- Utils.drawItemStack(slot1, (int) ((width - 208) / 2f), (int) ((height + 60) / 2f - 105));
- Utils.drawItemStack(slot2, (int) ((width - 208) / 2f), (int) ((height + 60) / 2f - 105) + 18);
- Utils.drawItemStack(slot3, (int) ((width - 208) / 2f), (int) ((height + 60) / 2f - 105) + 36);
- Utils.drawItemStack(slot4, (int) ((width - 208) / 2f), (int) ((height + 60) / 2f - 105) + 54);
- if (slot1 == null) {
- Minecraft.getMinecraft().getTextureManager().bindTexture(QUESTION_MARK);
- GlStateManager.color(1, 1, 1, 1);
- Utils.drawTexturedRect(((width - 208) / 2f), ((height + 60) / 2f - 105), 16, 16, GL11.GL_NEAREST);
- GlStateManager.bindTexture(0);
-
- tooltipToDisplay = Lists.newArrayList(
- EnumChatFormatting.RED + "Warning",
- EnumChatFormatting.GREEN + "You need to open /equipment",
- EnumChatFormatting.GREEN + "To cache your armour"
- );
- if (mouseX >= ((width - 208) / 2f) && mouseX < ((width - 208) / 2f) + 16) {
- if (mouseY >= ((height + 60) / 2f - 105) && mouseY <= ((height + 60) / 2f - 105) + 70 &&
- NotEnoughUpdates.INSTANCE.config.customArmour.sendWardrobeCommand) {
- if (Minecraft.getMinecraft().thePlayer.inventory.getItemStack() == null) {
- if (Mouse.getEventButtonState()) {
- if (ClientCommandHandler.instance.executeCommand(Minecraft.getMinecraft().thePlayer, "/equipment") ==
- 0) {
- NotEnoughUpdates.INSTANCE.sendChatMessage("/equipment");
- }
- }
- }
- }
- if (mouseY >= ((height + 60) / 2f - 105) && mouseY <= ((height + 60) / 2f - 105) + 16) {
- Utils.drawHoveringText(tooltipToDisplay, mouseX, mouseY, width, height, -1, fr);
- GL11.glTranslatef(0, 0, -401);
- }
- }
-
- }
- if (slot1 != null && slot2 != null && slot3 != null && slot4 != null) {
- if (mouseX >= ((width - 208) / 2f) && mouseX < ((width - 208) / 2f) + 16) {
- if (mouseY >= ((height + 60) / 2f - 105) && mouseY <= ((height + 60) / 2f - 105) + 70 &&
- NotEnoughUpdates.INSTANCE.config.customArmour.sendWardrobeCommand) {
- if (Minecraft.getMinecraft().thePlayer.inventory.getItemStack() == null) {
- if (Mouse.getEventButtonState()) {
- if (ClientCommandHandler.instance.executeCommand(Minecraft.getMinecraft().thePlayer, "/equipment") ==
- 0) {
- NotEnoughUpdates.INSTANCE.sendChatMessage("/equipment");
- }
- }
- }
- }
- //top slot
- if (mouseY >= ((height + 60) / 2f - 105) && mouseY <= ((height + 60) / 2f - 105) + 16) {
- tooltipToDisplay = slot1.getTooltip(Minecraft.getMinecraft().thePlayer, false);
- Utils.drawHoveringText(tooltipToDisplay, mouseX, mouseY, width, height, -1, fr);
- tooltipToDisplay = null;
- GL11.glTranslatef(0, 0, -401);
- }
- if (mouseY >= ((height + 60) / 2f - 105) + 18 && mouseY <= ((height + 60) / 2f - 105) + 34) {
- tooltipToDisplay = slot2.getTooltip(Minecraft.getMinecraft().thePlayer, false);
- Utils.drawHoveringText(tooltipToDisplay, mouseX, mouseY, width, height, -1, fr);
- tooltipToDisplay = null;
- GL11.glTranslatef(0, 0, -401);
- }
- if (mouseY >= ((height + 60) / 2f - 105) + 36 && mouseY <= ((height + 60) / 2f - 105) + 52) {
- tooltipToDisplay = slot3.getTooltip(Minecraft.getMinecraft().thePlayer, false);
- Utils.drawHoveringText(tooltipToDisplay, mouseX, mouseY, width, height, -1, fr);
- tooltipToDisplay = null;
- GL11.glTranslatef(0, 0, -401);
- }
- if (mouseY >= ((height + 60) / 2f - 105) + 54 && mouseY <= ((height + 60) / 2f - 105) + 70) {
- tooltipToDisplay = slot4.getTooltip(Minecraft.getMinecraft().thePlayer, false);
- Utils.drawHoveringText(tooltipToDisplay, mouseX, mouseY, width, height, -1, fr);
- tooltipToDisplay = null;
- GL11.glTranslatef(0, 0, -401);
- }
- }
- GL11.glTranslatef(0, 0, -401);
- }
- }
- }
- if (PetInfoOverlay.getCurrentPet() != null) {
- if (NotEnoughUpdates.INSTANCE.config.petOverlay.petInvDisplay
- && (NotEnoughUpdates.INSTANCE.manager
- .jsonToStack(NotEnoughUpdates.INSTANCE.manager
- .getItemInformation()
- .get(PetInfoOverlay.getCurrentPet().petType + ";" + PetInfoOverlay.getCurrentPet().rarity.petId))
- .hasDisplayName()
- || NotEnoughUpdates.INSTANCE.manager
- .jsonToStack(NotEnoughUpdates.INSTANCE.manager
- .getItemInformation()
- .get(PetInfoOverlay.getCurrentPet().petType + ";" + (PetInfoOverlay.getCurrentPet().rarity.petId - 1)))
- .hasDisplayName())
- && NotEnoughUpdates.INSTANCE.config.misc.hidePotionEffect &&
- NotEnoughUpdates.INSTANCE.hasSkyblockScoreboard()) {
- if (!NotEnoughUpdates.INSTANCE.manager
- .jsonToStack(
- NotEnoughUpdates.INSTANCE.manager
- .getItemInformation()
- .get(PetInfoOverlay.getCurrentPet().petType + ";" + PetInfoOverlay.getCurrentPet().rarity.petId))
- .hasDisplayName()) {
- petSlot = NotEnoughUpdates.INSTANCE.manager.jsonToStack(
- NotEnoughUpdates.INSTANCE.manager.getItemInformation().get(
- PetInfoOverlay.getCurrentPet().petType + ";" + (PetInfoOverlay.getCurrentPet().rarity.petId - 1)));
- } else {
- petSlot = NotEnoughUpdates.INSTANCE.manager.jsonToStack(
- NotEnoughUpdates.INSTANCE.manager.getItemInformation().get(
- PetInfoOverlay.getCurrentPet().petType + ";" + PetInfoOverlay.getCurrentPet().rarity.petId));
- }
- petSlot.getTagCompound().setBoolean("NEUPETINVDISPLAY", true);
- petSlot.getTagCompound().setBoolean(
- "NEUHIDEPETTOOLTIP",
- NotEnoughUpdates.INSTANCE.config.petOverlay.hidePetTooltip
- );
- ItemStack petInfo = petSlot;
-
- if (guiScreen instanceof GuiInventory) {
- GL11.glTranslatef(0, 0, 401);
- if (!NotEnoughUpdates.INSTANCE.config.customArmour.enableArmourHud) {
- if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 0) {
- Minecraft.getMinecraft().getTextureManager().bindTexture(PET_DISPLAY);
- }
- if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 1) {
- Minecraft.getMinecraft().getTextureManager().bindTexture(PET_DISPLAY_GREY);
- }
- if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 2) {
- Minecraft.getMinecraft().getTextureManager().bindTexture(PET_DISPLAY_DARK);
- }
- if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 3) {
- Minecraft.getMinecraft().getTextureManager().bindTexture(PET_DISPLAY_TRANSPARENT);
- }
- if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 4) {
- Minecraft.getMinecraft().getTextureManager().bindTexture(PET_DISPLAY_FSR);
- }
- } else {
- if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 0) {
- Minecraft.getMinecraft().getTextureManager().bindTexture(PET_ARMOR_DISPLAY);
- }
- if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 1) {
- Minecraft.getMinecraft().getTextureManager().bindTexture(PET_ARMOR_DISPLAY_GREY);
- }
- if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 2) {
- Minecraft.getMinecraft().getTextureManager().bindTexture(PET_ARMOR_DISPLAY_DARK);
- }
- if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 3) {
- Minecraft.getMinecraft().getTextureManager().bindTexture(PET_ARMOR_DISPLAY_TRANSPARENT);
- }
- if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 4) {
- Minecraft.getMinecraft().getTextureManager().bindTexture(PET_ARMOR_DISPLAY_FSR);
- }
- }
-
- GlStateManager.color(1, 1, 1, 1);
- float yNumber = (float) (height - 23) / 2f;
- Utils.drawTexturedRect((float) ((width - 224.1) / 2f), yNumber, 31, 32, GL11.GL_NEAREST);
- GlStateManager.bindTexture(0);
-
- Utils.drawItemStack(petInfo, (int) ((width - 208) / 2f), (int) ((height + 60) / 2f - 105) + 72);
- renderingPetHud = true;
-
- List<String> tooltipToDisplay = null;
- if (petInfo != null) {
- if (mouseX >= ((width - 208) / 2f) && mouseX < ((width - 208) / 2f) + 16) {
- if (mouseY >= ((height + 60) / 2f - 105) + 72 && mouseY <= ((height + 60) / 2f - 105) + 88 &&
- NotEnoughUpdates.INSTANCE.config.petOverlay.sendPetsCommand) {
- if (Minecraft.getMinecraft().thePlayer.inventory.getItemStack() == null) {
- if (Mouse.getEventButtonState()) {
- if (ClientCommandHandler.instance.executeCommand(Minecraft.getMinecraft().thePlayer, "/pets") ==
- 0) {
- NotEnoughUpdates.INSTANCE.sendChatMessage("/pets");
- }
- }
- }
- tooltipToDisplay = petInfo.getTooltip(Minecraft.getMinecraft().thePlayer, false);
- Utils.drawHoveringText(tooltipToDisplay, mouseX, mouseY, width, height, -1, fr);
- tooltipToDisplay = null;
- GL11.glTranslatef(0, 0, -80);
- }
- }
-
- }
- }
- }
- }
SunTzu.setEnabled(textField.getText().toLowerCase().startsWith("potato"));
@@ -2239,7 +1996,7 @@ public class NEUOverlay extends Gui {
//Tab
if (NotEnoughUpdates.INSTANCE.config.itemlist.tabOpen) {
- Minecraft.getMinecraft().getTextureManager().bindTexture(itemPaneTabArrow);
+ Minecraft.getMinecraft().getTextureManager().bindTexture(GuiTextures.itemPaneTabArrow);
GlStateManager.color(1f, 1f, 1f, 0.3f);
Utils.drawTexturedRect(width - itemPaneTabOffset.getValue() * 64 / 20f, height / 2f - 32, 64, 64);
GlStateManager.bindTexture(0);
@@ -2301,8 +2058,8 @@ public class NEUOverlay extends Gui {
Utils.drawTexturedRect(orderIconX, iconTop, scaledITEM_SIZE, scaledITEM_SIZE, 0, 1, 0, 1, GL11.GL_NEAREST);
Minecraft.getMinecraft().getTextureManager().bindTexture(getCompareAscending().get(i)
- ? ascending_overlay
- : descending_overlay);
+ ? GuiTextures.ascending_overlay
+ : GuiTextures.descending_overlay);
GlStateManager.color(1f, 1f, 1f, 1f);
Utils.drawTexturedRect(orderIconX, iconTop, scaledITEM_SIZE, scaledITEM_SIZE, 0, 1, 0, 1, GL11.GL_NEAREST);
GlStateManager.bindTexture(0);
@@ -2486,7 +2243,7 @@ public class NEUOverlay extends Gui {
activeInfoPane.render(width, height, bg, fg, Utils.peekGuiScale(), mouseX, mouseY);
GlStateManager.color(1f, 1f, 1f, 1f);
- Minecraft.getMinecraft().getTextureManager().bindTexture(close);
+ Minecraft.getMinecraft().getTextureManager().bindTexture(GuiTextures.close);
Utils.drawTexturedRect(rightSide - getBoxPadding() - 8, getBoxPadding() - 8, 16, 16);
GL11.glBindTexture(GL11.GL_TEXTURE_2D, 0);
}
@@ -2532,7 +2289,7 @@ public class NEUOverlay extends Gui {
GlStateManager.enableAlpha();
GlStateManager.alphaFunc(516, 0.1F);
GlStateManager.disableLighting();
-
+ renderInfoHuds();
Utils.pushGuiScale(-1);
if (System.currentTimeMillis() - lastSearchMode > 120000 &&
@@ -2542,6 +2299,245 @@ public class NEUOverlay extends Gui {
}
}
+ void renderInfoHuds() {
+ FontRenderer fr = Minecraft.getMinecraft().fontRendererObj;
+
+ Utils.resetGuiScale();
+ Utils.pushGuiScale(Minecraft.getMinecraft().gameSettings.guiScale);
+
+ int width = Utils.peekGuiScale().getScaledWidth();
+ int height = Utils.peekGuiScale().getScaledHeight();
+ int mouseX = Mouse.getX() * width / Minecraft.getMinecraft().displayWidth;
+ int mouseY = height - Mouse.getY() * height / Minecraft.getMinecraft().displayHeight - 1;
+ GuiScreen guiScreen = Minecraft.getMinecraft().currentScreen;
+
+ if (NotEnoughUpdates.INSTANCE.config.customArmour.enableArmourHud &&
+ NotEnoughUpdates.INSTANCE.config.misc.hidePotionEffect
+ && NotEnoughUpdates.INSTANCE.hasSkyblockScoreboard()) {
+ if (getWardrobeSlot(10) != null) {
+ slot1 = getWardrobeSlot(10);
+ slot2 = getWardrobeSlot(19);
+ slot3 = getWardrobeSlot(28);
+ slot4 = getWardrobeSlot(37);
+ }
+ if (guiScreen instanceof GuiInventory) {
+ renderingArmorHud = true;
+
+ List<String> tooltipToDisplay = null;
+ if (NotEnoughUpdates.INSTANCE.config.customArmour.colourStyle == 0) {
+ Minecraft.getMinecraft().getTextureManager().bindTexture(ARMOR_DISPLAY);
+ }
+ if (NotEnoughUpdates.INSTANCE.config.customArmour.colourStyle == 1) {
+ Minecraft.getMinecraft().getTextureManager().bindTexture(ARMOR_DISPLAY_GREY);
+ }
+ if (NotEnoughUpdates.INSTANCE.config.customArmour.colourStyle == 2) {
+ Minecraft.getMinecraft().getTextureManager().bindTexture(ARMOR_DISPLAY_DARK);
+ }
+ if (NotEnoughUpdates.INSTANCE.config.customArmour.colourStyle == 3) {
+ if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 3 &&
+ NotEnoughUpdates.INSTANCE.config.petOverlay.petInvDisplay && petSlot != null) {
+ Minecraft.getMinecraft().getTextureManager().bindTexture(ARMOR_DISPLAY_TRANSPARENT_PET);
+ } else {
+ Minecraft.getMinecraft().getTextureManager().bindTexture(ARMOR_DISPLAY_TRANSPARENT);
+ }
+ }
+ if (NotEnoughUpdates.INSTANCE.config.customArmour.colourStyle == 4) {
+ Minecraft.getMinecraft().getTextureManager().bindTexture(ARMOR_DISPLAY_FSR);
+ }
+
+ GlStateManager.color(1, 1, 1, 1);
+ GL11.glTranslatef(0, 0, 401);
+ float yNumber = (float) (height - 167) / 2f;
+ Utils.drawTexturedRect((float) ((width - 224.1) / 2f), yNumber, 31, 86, GL11.GL_NEAREST);
+ GlStateManager.bindTexture(0);
+
+ Utils.drawItemStack(slot1, (int) ((width - 208) / 2f), (int) ((height + 60) / 2f - 105));
+ Utils.drawItemStack(slot2, (int) ((width - 208) / 2f), (int) ((height + 60) / 2f - 105) + 18);
+ Utils.drawItemStack(slot3, (int) ((width - 208) / 2f), (int) ((height + 60) / 2f - 105) + 36);
+ Utils.drawItemStack(slot4, (int) ((width - 208) / 2f), (int) ((height + 60) / 2f - 105) + 54);
+ if (slot1 == null) {
+ Minecraft.getMinecraft().getTextureManager().bindTexture(QUESTION_MARK);
+ GlStateManager.color(1, 1, 1, 1);
+ Utils.drawTexturedRect(((width - 208) / 2f), ((height + 60) / 2f - 105), 16, 16, GL11.GL_NEAREST);
+ GlStateManager.bindTexture(0);
+
+ tooltipToDisplay = Lists.newArrayList(
+ EnumChatFormatting.RED + "Warning",
+ EnumChatFormatting.GREEN + "You need to open /equipment",
+ EnumChatFormatting.GREEN + "To cache your armour"
+ );
+ if (mouseX >= ((width - 208) / 2f) && mouseX < ((width - 208) / 2f) + 16) {
+ if (mouseY >= ((height + 60) / 2f - 105) && mouseY <= ((height + 60) / 2f - 105) + 70 &&
+ NotEnoughUpdates.INSTANCE.config.customArmour.sendWardrobeCommand) {
+ if (Minecraft.getMinecraft().thePlayer.inventory.getItemStack() == null) {
+ if (Mouse.getEventButtonState()) {
+ if (ClientCommandHandler.instance.executeCommand(Minecraft.getMinecraft().thePlayer, "/equipment") ==
+ 0) {
+ NotEnoughUpdates.INSTANCE.sendChatMessage("/equipment");
+ }
+ }
+ }
+ }
+ if (mouseY >= ((height + 60) / 2f - 105) && mouseY <= ((height + 60) / 2f - 105) + 16) {
+ Utils.drawHoveringText(tooltipToDisplay, mouseX, mouseY, width, height, -1, fr);
+ }
+ }
+ GL11.glTranslatef(0, 0, -401);
+ }
+ if (slot1 != null && slot2 != null && slot3 != null && slot4 != null) {
+ if (mouseX >= ((width - 208) / 2f) && mouseX < ((width - 208) / 2f) + 16) {
+ if (mouseY >= ((height + 60) / 2f - 105) && mouseY <= ((height + 60) / 2f - 105) + 70 &&
+ NotEnoughUpdates.INSTANCE.config.customArmour.sendWardrobeCommand) {
+ if (Minecraft.getMinecraft().thePlayer.inventory.getItemStack() == null) {
+ if (Mouse.getEventButtonState()) {
+ if (ClientCommandHandler.instance.executeCommand(Minecraft.getMinecraft().thePlayer, "/equipment") ==
+ 0) {
+ NotEnoughUpdates.INSTANCE.sendChatMessage("/equipment");
+ }
+ }
+ }
+ }
+ //top slot
+ int tooltipXModifier = -175;
+ if (mouseY >= ((height + 60) / 2f - 105) && mouseY <= ((height + 60) / 2f - 105) + 16) {
+ tooltipToDisplay = slot1.getTooltip(Minecraft.getMinecraft().thePlayer, false);
+ if (shouldShowEquipmentTooltip(tooltipToDisplay)) {
+ Utils.drawHoveringText(tooltipToDisplay, mouseX + tooltipXModifier, mouseY, width, height, -1, fr);
+ }
+ }
+ if (mouseY >= ((height + 60) / 2f - 105) + 18 && mouseY <= ((height + 60) / 2f - 105) + 34) {
+ tooltipToDisplay = slot2.getTooltip(Minecraft.getMinecraft().thePlayer, false);
+ if (shouldShowEquipmentTooltip(tooltipToDisplay)) {
+ Utils.drawHoveringText(tooltipToDisplay, mouseX + tooltipXModifier, mouseY, width, height, -1, fr);
+ }
+ }
+ if (mouseY >= ((height + 60) / 2f - 105) + 36 && mouseY <= ((height + 60) / 2f - 105) + 52) {
+ tooltipToDisplay = slot3.getTooltip(Minecraft.getMinecraft().thePlayer, false);
+ if (shouldShowEquipmentTooltip(tooltipToDisplay)) {
+ Utils.drawHoveringText(tooltipToDisplay, mouseX + tooltipXModifier, mouseY, width, height, -1, fr);
+ }
+ }
+ if (mouseY >= ((height + 60) / 2f - 105) + 54 && mouseY <= ((height + 60) / 2f - 105) + 70) {
+ tooltipToDisplay = slot4.getTooltip(Minecraft.getMinecraft().thePlayer, false);
+ if (shouldShowEquipmentTooltip(tooltipToDisplay)) {
+ Utils.drawHoveringText(tooltipToDisplay, mouseX + tooltipXModifier, mouseY, width, height, -1, fr);
+ }
+ }
+ }
+ GL11.glTranslatef(0, 0, -401);
+ }
+ }
+ }
+ if (PetInfoOverlay.getCurrentPet() != null) {
+ if (NotEnoughUpdates.INSTANCE.config.petOverlay.petInvDisplay
+ && (NotEnoughUpdates.INSTANCE.manager
+ .jsonToStack(NotEnoughUpdates.INSTANCE.manager
+ .getItemInformation()
+ .get(PetInfoOverlay.getCurrentPet().petType + ";" + PetInfoOverlay.getCurrentPet().rarity.petId))
+ .hasDisplayName()
+ || NotEnoughUpdates.INSTANCE.manager
+ .jsonToStack(NotEnoughUpdates.INSTANCE.manager
+ .getItemInformation()
+ .get(PetInfoOverlay.getCurrentPet().petType + ";" + (PetInfoOverlay.getCurrentPet().rarity.petId - 1)))
+ .hasDisplayName())
+ && NotEnoughUpdates.INSTANCE.config.misc.hidePotionEffect &&
+ NotEnoughUpdates.INSTANCE.hasSkyblockScoreboard()) {
+ if (!NotEnoughUpdates.INSTANCE.manager
+ .jsonToStack(
+ NotEnoughUpdates.INSTANCE.manager
+ .getItemInformation()
+ .get(PetInfoOverlay.getCurrentPet().petType + ";" + PetInfoOverlay.getCurrentPet().rarity.petId))
+ .hasDisplayName()) {
+ petSlot = NotEnoughUpdates.INSTANCE.manager.jsonToStack(
+ NotEnoughUpdates.INSTANCE.manager.getItemInformation().get(
+ PetInfoOverlay.getCurrentPet().petType + ";" + (PetInfoOverlay.getCurrentPet().rarity.petId - 1)));
+ } else {
+ petSlot = NotEnoughUpdates.INSTANCE.manager.jsonToStack(
+ NotEnoughUpdates.INSTANCE.manager.getItemInformation().get(
+ PetInfoOverlay.getCurrentPet().petType + ";" + PetInfoOverlay.getCurrentPet().rarity.petId));
+ }
+ if (petSlot == null) {
+ return;
+ }
+ petSlot.getTagCompound().setBoolean(
+ "NEUHIDEPETTOOLTIP",
+ NotEnoughUpdates.INSTANCE.config.petOverlay.hidePetTooltip
+ );
+ ItemStack petInfo = petSlot;
+
+ if (guiScreen instanceof GuiInventory) {
+ GL11.glTranslatef(0, 0, 401);
+ if (!NotEnoughUpdates.INSTANCE.config.customArmour.enableArmourHud) {
+ if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 0) {
+ Minecraft.getMinecraft().getTextureManager().bindTexture(PET_DISPLAY);
+ }
+ if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 1) {
+ Minecraft.getMinecraft().getTextureManager().bindTexture(PET_DISPLAY_GREY);
+ }
+ if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 2) {
+ Minecraft.getMinecraft().getTextureManager().bindTexture(PET_DISPLAY_DARK);
+ }
+ if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 3) {
+ Minecraft.getMinecraft().getTextureManager().bindTexture(PET_DISPLAY_TRANSPARENT);
+ }
+ if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 4) {
+ Minecraft.getMinecraft().getTextureManager().bindTexture(PET_DISPLAY_FSR);
+ }
+ } else {
+ if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 0) {
+ Minecraft.getMinecraft().getTextureManager().bindTexture(PET_ARMOR_DISPLAY);
+ }
+ if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 1) {
+ Minecraft.getMinecraft().getTextureManager().bindTexture(PET_ARMOR_DISPLAY_GREY);
+ }
+ if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 2) {
+ Minecraft.getMinecraft().getTextureManager().bindTexture(PET_ARMOR_DISPLAY_DARK);
+ }
+ if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 3) {
+ Minecraft.getMinecraft().getTextureManager().bindTexture(PET_ARMOR_DISPLAY_TRANSPARENT);
+ }
+ if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 4) {
+ Minecraft.getMinecraft().getTextureManager().bindTexture(PET_ARMOR_DISPLAY_FSR);
+ }
+ }
+
+ GlStateManager.color(1, 1, 1, 1);
+ float yNumber = (float) (height - 23) / 2f;
+ Utils.drawTexturedRect((float) ((width - 224.1) / 2f), yNumber, 31, 32, GL11.GL_NEAREST);
+ GlStateManager.bindTexture(0);
+
+ Utils.drawItemStack(petInfo, (int) ((width - 208) / 2f), (int) ((height + 60) / 2f - 105) + 72);
+ renderingPetHud = true;
+
+ List<String> tooltipToDisplay = null;
+ if (petInfo != null) {
+ if (mouseX >= ((width - 208) / 2f) && mouseX < ((width - 208) / 2f) + 16) {
+ if (mouseY >= ((height + 60) / 2f - 105) + 72 && mouseY <= ((height + 60) / 2f - 105) + 88 &&
+ NotEnoughUpdates.INSTANCE.config.petOverlay.sendPetsCommand) {
+ if (Minecraft.getMinecraft().thePlayer.inventory.getItemStack() == null) {
+ if (Mouse.getEventButtonState()) {
+ if (ClientCommandHandler.instance.executeCommand(Minecraft.getMinecraft().thePlayer, "/pets") ==
+ 0) {
+ NotEnoughUpdates.INSTANCE.sendChatMessage("/pets");
+ }
+ }
+ }
+ tooltipToDisplay = petInfo.getTooltip(Minecraft.getMinecraft().thePlayer, false);
+ Utils.drawHoveringText(tooltipToDisplay, mouseX - 200, mouseY, width, height, -1, fr);
+ GL11.glTranslatef(0, 0, -80);
+ }
+ }
+
+ }
+ }
+ }
+ }
+ }
+
+ private boolean shouldShowEquipmentTooltip(List<String> toolTip) {
+ return !toolTip.get(0).equals("§o§7Empty Equipment Slot§r");
+ }
+
/**
* Used in SettingsInfoPane to redraw the items when a setting changes.
*/
@@ -2753,7 +2749,7 @@ public class NEUOverlay extends Gui {
return;
}
- Minecraft.getMinecraft().getTextureManager().bindTexture(item_mask);
+ Minecraft.getMinecraft().getTextureManager().bindTexture(GuiTextures.item_mask);
if (getFavourites().contains(json.get("internalname").getAsString())) {
if (NotEnoughUpdates.INSTANCE.config.itemlist.itemStyle == 0) {
GlStateManager.color(fgFavourite2.getRed() / 255f, fgFavourite2.getGreen() / 255f,
@@ -2835,7 +2831,7 @@ public class NEUOverlay extends Gui {
GlStateManager.translate(0, 0, 50);
if (searchedItemsSubgroup.containsKey(json.get("internalname").getAsString())) {
- Minecraft.getMinecraft().getTextureManager().bindTexture(item_haschild);
+ Minecraft.getMinecraft().getTextureManager().bindTexture(GuiTextures.item_haschild);
GlStateManager.color(1, 1, 1, 1);
Utils.drawTexturedRect(x - 1, y - 1, ITEM_SIZE + 2, ITEM_SIZE + 2, GL11.GL_NEAREST);
}
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/GuiElementTextField.java b/src/main/java/io/github/moulberry/notenoughupdates/core/GuiElementTextField.java
index 51a4654c..f3d038e9 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/core/GuiElementTextField.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/core/GuiElementTextField.java
@@ -36,6 +36,7 @@ public class GuiElementTextField {
private int y;
private String prependText = "";
+ private String masterStarUnicode = "";
private int customTextColour = 0xffffffff;
private final GuiTextField textField = new GuiTextField(0, Minecraft.getMinecraft().fontRendererObj,
@@ -395,6 +396,55 @@ public class GuiElementTextField {
textField.setCursorPosition(pos + 1);
}
}
+ } else {
+ for (int i = 0; i < 10; i++) {
+ if (typedChar == Integer.toString(i + 1).charAt(0)) {
+ int pos = textField.getCursorPosition() - 2;
+ if (pos >= 0 && pos < textField.getText().length()) {
+ if (textField.getText().charAt(pos) == '*') {
+ switch (i) {
+ case 0:
+ masterStarUnicode = "\u278A";
+ break;
+ case 1:
+ masterStarUnicode = "\u278B";
+ break;
+ case 2:
+ masterStarUnicode = "\u278C";
+ break;
+ case 3:
+ masterStarUnicode = "\u278D";
+ break;
+ case 4:
+ masterStarUnicode = "\u278E";
+ break;
+ case 5:
+ masterStarUnicode = "\u278F";
+ break;
+ case 6:
+ masterStarUnicode = "\u2790";
+ break;
+ case 7:
+ masterStarUnicode = "\u2791";
+ break;
+ case 8:
+ masterStarUnicode = "\u2792";
+ break;
+ case 9:
+ masterStarUnicode = "\u2793";
+ break;
+ }
+ String before = textField.getText().substring(0, pos);
+ String after = "";
+ if (pos + 2 < textField.getText().length()) {
+ after = textField.getText().substring(pos + 2);
+ }
+ textField.setText(before + masterStarUnicode + after);
+ textField.setCursorPosition(pos + 1);
+ }
+ }
+ }
+ }
}
}
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/listener/ItemTooltipListener.java b/src/main/java/io/github/moulberry/notenoughupdates/listener/ItemTooltipListener.java
index a00e7e8a..ab4e9dca 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/listener/ItemTooltipListener.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/listener/ItemTooltipListener.java
@@ -16,7 +16,6 @@ import io.github.moulberry.notenoughupdates.util.Constants;
import io.github.moulberry.notenoughupdates.util.Utils;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.inventory.GuiChest;
-import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.inventory.ContainerChest;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
@@ -36,8 +35,15 @@ import java.awt.*;
import java.awt.datatransfer.StringSelection;
import java.text.DecimalFormat;
import java.text.NumberFormat;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
-import java.util.*;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
@@ -90,10 +96,13 @@ public class ItemTooltipListener {
"enchantments",
10
);
+ boolean hasAttributes = event.itemStack.getTagCompound().getCompoundTag("ExtraAttributes").hasKey(
+ "attributes",
+ 10
+ );
Set<String> enchantIds = new HashSet<>();
- if (hasEnchantments)
- enchantIds =
- event.itemStack.getTagCompound().getCompoundTag("ExtraAttributes").getCompoundTag("enchantments").getKeySet();
+ if (hasEnchantments) enchantIds = event.itemStack.getTagCompound().getCompoundTag("ExtraAttributes").getCompoundTag(
+ "enchantments").getKeySet();
JsonObject enchantsConst = Constants.ENCHANTS;
JsonArray allItemEnchs = null;
@@ -348,6 +357,8 @@ public class ItemTooltipListener {
}
}
}
+ }
+ if (hasEnchantments || hasAttributes) {
for (String op : NotEnoughUpdates.INSTANCE.config.hidden.enchantColours) {
List<String> colourOps = GuiEnchantColour.splitter.splitToList(op);
String enchantName = GuiEnchantColour.getColourOpIndex(colourOps, 0);
@@ -388,9 +399,10 @@ public class ItemTooltipListener {
//9([a-zA-Z ]+?) ([0-9]+|(I|II|III|IV|V|VI|VII|VIII|IX|X))(,|$)
Pattern pattern;
try {
- pattern = Pattern.compile("(\\u00A79|\\u00A7(9|l)\\u00A7d\\u00A7l)(?<enchantName>" + enchantName + ") " +
- "(?<level>[0-9]+|(I|II|III|IV|V|VI|VII|VIII|IX|X|XI|XII|XIII|XIV|XV|XVI|XVII|XVIII|XIX|XX))((\\u00A79)?,|( \\u00A78(?:,?[0-9]+)*)?$)");
- } catch (PatternSyntaxException e) {
+ pattern = Pattern.compile(
+ "(\\u00A7b|\\u00A79|\\u00A7(b|9|l)\\u00A7d\\u00A7l)(?<enchantName>" + enchantName + ") " +
+ "(?<level>[0-9]+|(I|II|III|IV|V|VI|VII|VIII|IX|X|XI|XII|XIII|XIV|XV|XVI|XVII|XVIII|XIX|XX))((\\u00A79)?,|( \\u00A78(?:,?[0-9]+)*)?$)");
+ } catch (Exception e) {
continue;
}
Matcher matcher = pattern.matcher(line);
@@ -441,11 +453,16 @@ public class ItemTooltipListener {
if (!colourCode.equals("z")) {
line = line.replace("\u00A79" + enchantText, "\u00A7" + colourCode + extraMods + enchantText);
+ line = line.replace("\u00A7b" + enchantText, "\u00A7" + colourCode + extraMods + enchantText);
line = line.replace(
"\u00A79\u00A7d\u00A7l" + enchantText,
"\u00A7" + colourCode + extraMods + enchantText
);
line = line.replace(
+ "\u00A7b\u00A7d\u00A7l" + enchantText,
+ "\u00A7" + colourCode + extraMods + enchantText
+ );
+ line = line.replace(
"\u00A7l\u00A7d\u00A7l" + enchantText,
"\u00A7" + colourCode + extraMods + enchantText
);
@@ -781,7 +798,6 @@ public class ItemTooltipListener {
/**
* This method does the following:
- * Move the pet inventory display tooltip to the left to avoid conflicts
* Remove reforge stats for Legendary items from Hypixel if enabled
* Show NBT data when holding LCONTROL
*/
@@ -789,10 +805,6 @@ public class ItemTooltipListener {
public void onItemTooltip(ItemTooltipEvent event) {
if (!neu.isOnSkyblock()) return;
if (event.toolTip == null) return;
- //Render the pet inventory display tooltip to the left to avoid things from other mods rendering over the tooltip
- if (event.itemStack.getTagCompound() != null && event.itemStack.getTagCompound().getBoolean("NEUPETINVDISPLAY")) {
- GlStateManager.translate(-200, 0, 0);
- }
if (event.toolTip.size() > 2 && NotEnoughUpdates.INSTANCE.config.tooltipTweaks.hideDefaultReforgeStats) {
String secondLine = StringUtils.stripControlCodes(event.toolTip.get(1));
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/CalendarOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/CalendarOverlay.java
index a9cf44c4..06cf28e1 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/CalendarOverlay.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/CalendarOverlay.java
@@ -659,6 +659,8 @@ public class CalendarOverlay {
}
}
}
+ } else {
+ Minecraft.getMinecraft().dispatchKeypresses();
}
}
}
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiEnchantColour.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiEnchantColour.java
index bd4bd680..4e865b28 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiEnchantColour.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiEnchantColour.java
@@ -66,7 +66,9 @@ public class GuiEnchantColour extends GuiScreen {
private static final Pattern settingPattern = Pattern.compile(".*:[>=<]:[0-9]+:[a-zA-Z0-9]+(:[a-zA-Z0-9]+)?");
private ItemStack maxedBook;
+ private ItemStack maxedAttBook;
private int maxedBookFound = 0;
+ private int maxedAttBookFound = 0;
private List<String> getEnchantColours() {
return NotEnoughUpdates.INSTANCE.config.hidden.enchantColours;
@@ -227,13 +229,37 @@ public class GuiEnchantColour extends GuiScreen {
if (maxedBookFound == 1) {
Utils.drawItemStack(maxedBook, guiLeft + xSize + 3, guiTopSidebar - 34);
}
+ if (maxedAttBookFound == 0) {
+ try {
+ if (NotEnoughUpdates.INSTANCE.manager.jsonToStack(
+ NotEnoughUpdates.INSTANCE.manager.getItemInformation().get("MAXED_ATTRIBUTE_SHARD")).hasDisplayName()) {
+ maxedAttBook = NotEnoughUpdates.INSTANCE.manager.jsonToStack(NotEnoughUpdates.INSTANCE.manager
+ .getItemInformation()
+ .get("MAXED_ATTRIBUTE_SHARD"));
+ maxedAttBookFound = 1;
+ } else {
+ maxedAttBookFound = 2;
+ }
- if (mouseX >= guiLeft + xSize + 3 && mouseX < guiLeft + xSize + 19) {
+ } catch (Exception ignored) {
+ maxedAttBookFound = 2;
+ }
+ }
+ if (maxedAttBookFound == 1) {
+ Utils.drawItemStack(maxedAttBook, guiLeft + xSize + 3, guiTopSidebar - 52);
+ }
+
+ if (mouseX >= guiLeft + xSize + 3 && mouseX < guiLeft + xSize + 39) {
if (mouseY >= guiTopSidebar - 34 && mouseY <= guiTopSidebar - 18 && maxedBookFound == 1) {
tooltipToDisplay = maxedBook.getTooltip(Minecraft.getMinecraft().thePlayer, false);
Utils.drawHoveringText(tooltipToDisplay, mouseX, mouseY, width, height, -1, fr);
tooltipToDisplay = null;
}
+ if (mouseY >= guiTopSidebar - 52 && mouseY <= guiTopSidebar - 34 && maxedAttBookFound == 1) {
+ tooltipToDisplay = maxedAttBook.getTooltip(Minecraft.getMinecraft().thePlayer, false);
+ Utils.drawHoveringText(tooltipToDisplay, mouseX, mouseY, width, height, -1, fr);
+ tooltipToDisplay = null;
+ }
if (mouseY >= guiTopSidebar - 18 && mouseY <= guiTopSidebar - 2) {
tooltipToDisplay = Lists.newArrayList(
EnumChatFormatting.AQUA + "NEUEC Colouring Guide",
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemCustomize.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemCustomize.java
index 222a0f88..12d48991 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemCustomize.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemCustomize.java
@@ -199,6 +199,7 @@ public class GuiItemCustomize extends GuiScreen {
EnumChatFormatting.GREEN + "",
EnumChatFormatting.GREEN + "Type \"&&\" to use colour codes",
EnumChatFormatting.GREEN + "Type \"**\" for \u272A",
+ EnumChatFormatting.GREEN + "Type \"*1-9\" for \u278A-\u2792",
EnumChatFormatting.GREEN + "",
EnumChatFormatting.GREEN + "Available colour codes:",
Utils.chromaString("\u00B6z = Chroma"),
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/DungeonMapConfig.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/DungeonMapConfig.java
index d69eca82..03465db7 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/DungeonMapConfig.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/DungeonMapConfig.java
@@ -136,7 +136,7 @@ public class DungeonMapConfig {
@Expose
@ConfigOption(
name = "Position",
- desc = "The position of the map"
+ desc = "Change the position of the map"
)
public Position dmPosition = new Position(10, 10);
}
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ItemOverlays.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ItemOverlays.java
index 2fedf559..9298623b 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ItemOverlays.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ItemOverlays.java
@@ -242,7 +242,7 @@ public class ItemOverlays {
@Expose
@ConfigOption(
name = "Bonemerang Overlay Position",
- desc = "The position of the Bonemerang overlay."
+ desc = "Change the position of the Bonemerang overlay."
)
@ConfigEditorButton(
runnableId = 9,
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/LocationEdit.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/LocationEdit.java
index 385a3cc1..462fbd92 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/LocationEdit.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/LocationEdit.java
@@ -20,7 +20,7 @@ public class LocationEdit {
@Expose
@ConfigOption(
name = "Edit Pet Info Position",
- desc = "The position of the pet info overlay."
+ desc = "Change the position of the pet info overlay"
)
@ConfigEditorButton(
runnableId = 4,
@@ -37,13 +37,12 @@ public class LocationEdit {
runnableId = 5,
buttonText = "Edit"
)
- @ConfigAccordionId(id = 0)
public Position todoPosition = new Position(100, 0);
@Expose
@ConfigOption(
name = "Edit Bonemerang Overlay Position",
- desc = "The position of the Bonemerang overlay."
+ desc = "Change the position of the Bonemerang overlay"
)
@ConfigEditorButton(
runnableId = 9,
@@ -72,7 +71,7 @@ public class LocationEdit {
@Expose
@ConfigOption(
name = "Edit Toolbar Positions",
- desc = "Edit the position of the QuickCommands / Search Bar"
+ desc = "Change the position of the QuickCommands / Search Bar"
)
@ConfigAccordionId(id = 1)
@ConfigEditorButton(runnableId = 6, buttonText = "Edit")
@@ -109,7 +108,7 @@ public class LocationEdit {
@Expose
@ConfigOption(
name = "Edit Crystal Overlay Position",
- desc = "Change the position of the Crystal Hollows Overlay."
+ desc = "Change the position of the Crystal Hollows Overlay"
)
@ConfigEditorButton(
runnableId = 10,
@@ -121,7 +120,7 @@ public class LocationEdit {
@Expose
@ConfigOption(
name = "Edit Fuel Bar Position",
- desc = "Set the position of the drill fuel bar"
+ desc = "Change the position of the drill fuel bar"
)
@ConfigEditorButton(
runnableId = 2,
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Mining.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Mining.java
index 9ff88089..697cabf3 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Mining.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Mining.java
@@ -84,7 +84,7 @@ public class Mining {
@Expose
@ConfigOption(
name = "Edit Fuel Bar Position",
- desc = "Set the position of the drill fuel bar"
+ desc = "Change the position of the drill fuel bar"
)
@ConfigEditorButton(
runnableId = 2,
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/PetOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/PetOverlay.java
index 6f96e972..9cba8202 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/PetOverlay.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/PetOverlay.java
@@ -20,7 +20,7 @@ public class PetOverlay {
@Expose
@ConfigOption(
name = "Edit Pet Info Position",
- desc = "The position of the pet info."
+ desc = "Change the position of the pet info overlay"
)
@ConfigEditorButton(
runnableId = 4,
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Toolbar.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Toolbar.java
index ff1b94c5..741b57e5 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Toolbar.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Toolbar.java
@@ -7,7 +7,7 @@ public class Toolbar {
@Expose
@ConfigOption(
name = "Edit Toolbar Positions",
- desc = "Edit the position of the QuickCommands / Search Bar"
+ desc = "Change the position of the QuickCommands / Search Bar"
)
@ConfigEditorButton(runnableId = 6, buttonText = "Edit")
public boolean positionButton = true;
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/overlays/AuctionSearchOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/overlays/AuctionSearchOverlay.java
index 7281eecf..36b37766 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/overlays/AuctionSearchOverlay.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/overlays/AuctionSearchOverlay.java
@@ -35,6 +35,7 @@ public class AuctionSearchOverlay {
private static final ResourceLocation SEARCH_OVERLAY_TEXTURE_TAB_COMPLETED = new ResourceLocation(
"notenoughupdates:auc_search/ah_search_overlay_tab_completed.png");
private static final ResourceLocation STAR = new ResourceLocation("notenoughupdates:auc_search/star.png");
+ private static final ResourceLocation MASTER_STAR = new ResourceLocation("notenoughupdates:auc_search/master_star.png");
private static final ResourceLocation STAR_BOARD = new ResourceLocation("notenoughupdates:auc_search/star_board.png");
private static final GuiElementTextField textField = new GuiElementTextField("", 200, 20, 0);
@@ -114,22 +115,26 @@ public class AuctionSearchOverlay {
Utils.drawTexturedRect(width / 2 - 100, topY - 1, 203, h, 0, 203 / 512f, 0, h / 256f, GL11.GL_NEAREST);
Minecraft.getMinecraft().getTextureManager().bindTexture(STAR_BOARD);
- Utils.drawTexturedRect(width / 2 + 105, topY + 27, 55, 13, GL11.GL_NEAREST);
+ Utils.drawTexturedRect(width / 2 + 105, topY + 27, 105, 13, GL11.GL_NEAREST);
Minecraft.getMinecraft().getTextureManager().bindTexture(STAR);
GlStateManager.color(1, 1, 1, 1);
- int stars = atLeast && selectedStars > 0 ? 5 : selectedStars;
+ int stars = atLeast && selectedStars > 0 ? 10 : selectedStars;
for (int i = 0; i < stars; i++) {
+ if (i >= 5) {
+ Minecraft.getMinecraft().getTextureManager().bindTexture(MASTER_STAR);
+ GlStateManager.color(1, 1, 1, 1);
+ }
if (i >= selectedStars) {
GlStateManager.color(1, 1, 1, 0.3f);
}
Utils.drawTexturedRect(width / 2 + 108 + 10 * i, topY + 29, 9, 10, GL11.GL_NEAREST);
}
- Gui.drawRect(width / 2 + 106, topY + 42, width / 2 + 115, topY + 51, 0xffffffff);
- Gui.drawRect(width / 2 + 107, topY + 43, width / 2 + 114, topY + 50, 0xff000000);
- if (atLeast) Gui.drawRect(width / 2 + 108, topY + 44, width / 2 + 113, topY + 49, 0xffffffff);
- Minecraft.getMinecraft().fontRendererObj.drawString("At Least?", width / 2 + 117, topY + 43, 0xffffff);
+ if (selectedStars < 6) Gui.drawRect(width / 2 + 106, topY + 42, width / 2 + 115, topY + 51, 0xffffffff);
+ if (selectedStars < 6) Gui.drawRect(width / 2 + 107, topY + 43, width / 2 + 114, topY + 50, 0xff000000);
+ if (atLeast && selectedStars < 6) Gui.drawRect(width / 2 + 108, topY + 44, width / 2 + 113, topY + 49, 0xffffffff);
+ if (selectedStars < 6) Minecraft.getMinecraft().fontRendererObj.drawString("At Least?", width / 2 + 117, topY + 43, 0xffffff);
Minecraft.getMinecraft().fontRendererObj.drawString("Enter Query:", width / 2 - 100, topY - 10, 0xdddddd, true);
@@ -507,10 +512,10 @@ public class AuctionSearchOverlay {
topY = height / 2 - h / 2 + 5;
}
- if (Mouse.getEventButtonState() && mouseX > width / 2 + 105 && mouseX < width / 2 + 105 + 55 &&
+ if (Mouse.getEventButtonState() && mouseX > width / 2 + 105 && mouseX < width / 2 + 105 + 105 &&
mouseY > topY + 27 && mouseY < topY + 40) {
- int starClicked = 5;
- for (int i = 1; i <= 5; i++) {
+ int starClicked = 10;
+ for (int i = 1; i <= 10; i++) {
if (mouseX < width / 2 + 108 + 10 * i) {
starClicked = i;
break;
@@ -584,9 +589,27 @@ public class AuctionSearchOverlay {
searchStringExtra = "";
if (essenceCosts != null && essenceCosts.has(str) && selectedStars > 0) {
for (int i = 0; i < selectedStars; i++) {
+ if (i > 4) break;
searchStringExtra += "\u272A";
}
- if (selectedStars < 5 && !atLeast) {
+ switch (selectedStars) {
+ case 6:
+ searchStringExtra += "\u278A";
+ break;
+ case 7:
+ searchStringExtra += "\u278B";
+ break;
+ case 8:
+ searchStringExtra += "\u278C";
+ break;
+ case 9:
+ searchStringExtra += "\u278D";
+ break;
+ case 10:
+ searchStringExtra += "\u278E";
+ break;
+ }
+ if (selectedStars < 6 && !atLeast) {
searchStringExtra += " ";
searchStringExtra += stack.getItem().getItemStackDisplayName(stack).substring(0, 1);
}
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/overlays/TimersOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/overlays/TimersOverlay.java
index 59a77ea3..d3f17fbf 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/overlays/TimersOverlay.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/overlays/TimersOverlay.java
@@ -535,7 +535,7 @@ public class TimersOverlay extends TextOverlay {
}
long midnightReset = (currentTime - 18000000) / 86400000 * 86400000 + 18000000; // 12am est
- long pearlsReset = midnightReset - 14400000 + 86400000; //8pm est
+ long pearlsReset = midnightReset - 14400000; //8pm est
long catacombsReset = currentTime / 86400000 * 86400000; // 7pm est
long timeDiffMidnightNow = midnightReset + 86400000 - currentTime;
long catacombsDiffNow = catacombsReset + 86400000 - currentTime;
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java
index 06ba32ad..87712378 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java
@@ -5013,7 +5013,7 @@ public class GuiProfileViewer extends GuiScreen {
);
if (mouseX > guiLeft + 132 && mouseX < guiLeft + 212) {
- if (mouseY > guiTop + 27 + 11f * i && mouseY < guiTop + 37 + 11f * i) {
+ if (mouseY > guiTop + 21 + 11f * i && mouseY < guiTop + 37 + 11f * i) {
List<String> split = splitter.splitToList(statNamePretty);
PlayerStats.Stats baseStats = PlayerStats.getBaseStats();
tooltipToDisplay = new ArrayList<>();
diff --git a/src/main/resources/assets/notenoughupdates/auc_search/master_star.png b/src/main/resources/assets/notenoughupdates/auc_search/master_star.png
new file mode 100644
index 00000000..210ecf49
--- /dev/null
+++ b/src/main/resources/assets/notenoughupdates/auc_search/master_star.png
Binary files differ
diff --git a/src/main/resources/assets/notenoughupdates/auc_search/star_board.png b/src/main/resources/assets/notenoughupdates/auc_search/star_board.png
index 8251731f..0a42884d 100644
--- a/src/main/resources/assets/notenoughupdates/auc_search/star_board.png
+++ b/src/main/resources/assets/notenoughupdates/auc_search/star_board.png
Binary files differ