aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMoulberry <james.jenour@protonmail.com>2021-09-02 20:00:10 +0800
committerMoulberry <james.jenour@protonmail.com>2021-09-02 20:00:10 +0800
commit8eee6262a6e2c372240331f3c43c2279bd18539e (patch)
tree8ebf9cdf596fae2ec6b149826475d1d84de9ec3a /src/main/java
parent7cab76126da90f1884c111a1ee589b90a6ef828e (diff)
downloadNotEnoughUpdates-8eee6262a6e2c372240331f3c43c2279bd18539e.tar.gz
NotEnoughUpdates-8eee6262a6e2c372240331f3c43c2279bd18539e.tar.bz2
NotEnoughUpdates-8eee6262a6e2c372240331f3c43c2279bd18539e.zip
finish enchant gui
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/NEUEventListener.java39
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java2
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java2
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionBINWarning.java4
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionSortModeWarning.java7
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/BetterContainers.java27
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiCustomEnchant.java121
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiContainer.java69
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfig.java19
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfigEditor.java4
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/AHTweaks.java97
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/AuctionHouseBINWarning.java29
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/AuctionHouseSearch.java40
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Enchanting.java4
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/SlotLocking.java4
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/TooltipTweaks.java4
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/overlays/AuctionSearchOverlay.java16
17 files changed, 333 insertions, 155 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUEventListener.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUEventListener.java
index 766c5a2f..e0a36686 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/NEUEventListener.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUEventListener.java
@@ -966,21 +966,6 @@ public class NEUEventListener {
GuiChest eventGui = (GuiChest) guiScreen;
ContainerChest cc = (ContainerChest) eventGui.inventorySlots;
containerName = cc.getLowerChestInventory().getDisplayName().getUnformattedText();
- if(containerName.contains(" Profile") && cc.inventorySlots.size() >= 54){
- if(cc.inventorySlots.get(22).getStack() != null && cc.inventorySlots.get(22).getStack().getTagCompound() != null){
- NBTTagCompound tag = eventGui.inventorySlots.inventorySlots.get(22).getStack().getTagCompound();
- if(tag.hasKey("SkullOwner") && tag.getCompoundTag("SkullOwner").hasKey("Name")){
- String tagName = tag.getCompoundTag("SkullOwner").getString("Name");
- String displayname = Utils.cleanColour(cc.inventorySlots.get(22).getStack().getDisplayName());
- if(tagName.equals(displayname.substring(displayname.length()-tagName.length()))){
- Slot slot = new Slot(cc.getLowerChestInventory(), 42, cc.inventorySlots.get(42).xDisplayPosition, cc.inventorySlots.get(42).yDisplayPosition);
- slot.putStack(Utils.createItemStack(Item.getItemFromBlock(Blocks.command_block), EnumChatFormatting.GREEN + "Profile Viewer",
- EnumChatFormatting.YELLOW + "Click to open NEU profile viewer!"));
- cc.inventorySlots.set(42, slot);
- }
- }
- }
- }
}
if(GuiCustomEnchant.getInstance().shouldOverride(containerName)) {
@@ -1444,8 +1429,8 @@ public class NEUEventListener {
GuiChest eventGui = (GuiChest) guiScreen;
ContainerChest cc = (ContainerChest) eventGui.inventorySlots;
containerName = cc.getLowerChestInventory().getDisplayName().getUnformattedText();
- if(containerName.contains(" Profile") && eventGui.getSlotUnderMouse() != null &&
- eventGui.getSlotUnderMouse().getSlotIndex() == 42 && Mouse.getEventButton() >= 0) {
+ if(containerName.contains(" Profile") && eventGui.isMouseOverSlot(cc.inventorySlots.get(42), mouseX, mouseY)
+ && Mouse.getEventButton() >= 0) {
event.setCanceled(true);
if(Mouse.getEventButtonState() && eventGui.inventorySlots.inventorySlots.get(22).getStack() != null &&
eventGui.inventorySlots.inventorySlots.get(22).getStack().getTagCompound() != null){
@@ -1862,7 +1847,6 @@ public class NEUEventListener {
int index = 0;
List<String> newTooltip = new ArrayList<>();
-
for(String line : event.toolTip) {
if(line.endsWith(EnumChatFormatting.DARK_GRAY+"Reforge Stone") && NotEnoughUpdates.INSTANCE.config.tooltipTweaks.showReforgeStats) {
JsonObject reforgeStones = Constants.REFORGESTONES;
@@ -2410,7 +2394,6 @@ public class NEUEventListener {
private void onItemToolTipInternalNameNull(ItemTooltipEvent event){
petToolTipXPExtendPetMenu(event);
-
}
private List<String> petToolTipXPExtend(ItemTooltipEvent event) {
@@ -2423,7 +2406,6 @@ public class NEUEventListener {
}
//7 is just a random number i chose, prob no pets with less lines than 7
if (event.toolTip.size() > 7) {
-
if (Utils.cleanColour(event.toolTip.get(1)).matches("((Farming)|(Combat)|(Fishing)|(Mining)|(Foraging)|(Enchanting)|(Alchemy)) ((Mount)|(Pet)).*")) {
GuiProfileViewer.PetLevel petlevel = null;
@@ -2443,8 +2425,6 @@ public class NEUEventListener {
}
}
-
-
if (petlevel != null) {
tooltipText.add("");
if(petlevel.totalXp > petlevel.maxXP) {
@@ -2453,7 +2433,8 @@ public class NEUEventListener {
tooltipText.add(EnumChatFormatting.GRAY+"Progress to Level "+(int)Math.floor(petlevel.level+1)+": "+EnumChatFormatting.YELLOW+Utils.round(petlevel.levelPercentage*100, 1)+"%");
int levelpercentage = Math.round(petlevel.levelPercentage*20);
tooltipText.add(EnumChatFormatting.DARK_GREEN+String.join("", Collections.nCopies(levelpercentage, "-"))+EnumChatFormatting.WHITE+String.join("", Collections.nCopies(20-levelpercentage, "-")));
- tooltipText.add(EnumChatFormatting.YELLOW + "" + myFormatter.format(petlevel.levelXp) + "/" + myFormatter.format(petlevel.currentLevelRequirement) + " EXP");
+ tooltipText.add(EnumChatFormatting.GRAY + "EXP: " + EnumChatFormatting.YELLOW + myFormatter.format(petlevel.levelXp) +
+ EnumChatFormatting.GOLD + "/" + EnumChatFormatting.YELLOW + myFormatter.format(petlevel.currentLevelRequirement) + " EXP");
}
}
}
@@ -2462,9 +2443,7 @@ public class NEUEventListener {
return tooltipText;
}
-
private void petToolTipXPExtendPetMenu(ItemTooltipEvent event) {
-
if (NotEnoughUpdates.INSTANCE.config.tooltipTweaks.petExtendExp) {
//7 is just a random number i chose, prob no pets with less lines than 7
if (event.toolTip.size() > 7) {
@@ -2493,7 +2472,8 @@ public class NEUEventListener {
return;
}
- event.toolTip.add(xpLine+1, EnumChatFormatting.YELLOW + "" + myFormatter.format(petlevel.levelXp) + "/" + myFormatter.format(petlevel.currentLevelRequirement) + " EXP");
+ event.toolTip.add(xpLine+1, EnumChatFormatting.GRAY + "EXP: " + EnumChatFormatting.YELLOW + myFormatter.format(petlevel.levelXp) +
+ EnumChatFormatting.GOLD + "/" + EnumChatFormatting.YELLOW + myFormatter.format(petlevel.currentLevelRequirement));
}
}
@@ -2502,9 +2482,6 @@ public class NEUEventListener {
DecimalFormat myFormatter = new DecimalFormat("###,###.###");
-
-
-
/**
* This makes it so that holding LCONTROL while hovering over an item with NBT will show the NBT of the item.
* @param event
@@ -2512,14 +2489,14 @@ public class NEUEventListener {
@SubscribeEvent
public void onItemTooltip(ItemTooltipEvent event) {
if(!neu.isOnSkyblock()) return;
- if(NotEnoughUpdates.INSTANCE.config.improvedSBMenu.hideEmptyPanes &&
+ /*if(NotEnoughUpdates.INSTANCE.config.improvedSBMenu.hideEmptyPanes &&
event.itemStack.getItem().equals(Item.getItemFromBlock(Blocks.stained_glass_pane))) {
String first = Utils.cleanColour(event.toolTip.get(0));
first = first.replaceAll("\\(.*\\)", "").trim();
if(first.length() == 0) {
event.toolTip.clear();
}
- }
+ }*/
//AH prices
/*if(Minecraft.getMinecraft().currentScreen != null) {
if(Minecraft.getMinecraft().currentScreen instanceof GuiChest) {
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java
index 1c6ae7f7..080353a7 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java
@@ -329,7 +329,7 @@ public class NEUOverlay extends Gui {
return;
}
if(Mouse.getEventButtonState()) {
- NotEnoughUpdates.INSTANCE.openGui = new GuiScreenElementWrapper(new NEUConfigEditor(NotEnoughUpdates.INSTANCE.config));
+ NotEnoughUpdates.INSTANCE.openGui = new GuiScreenElementWrapper(NEUConfigEditor.editor);
}
}
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java b/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java
index 38c46415..5eb0f861 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java
@@ -1157,7 +1157,7 @@ public class NotEnoughUpdates {
if(args.length > 0) {
openGui = new GuiScreenElementWrapper(new NEUConfigEditor(config, StringUtils.join(args, " ")));
} else {
- openGui = new GuiScreenElementWrapper(new NEUConfigEditor(config));
+ openGui = new GuiScreenElementWrapper(NEUConfigEditor.editor);
}
}
};
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionBINWarning.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionBINWarning.java
index 4ba3bb73..fc2eaf61 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionBINWarning.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionBINWarning.java
@@ -39,7 +39,7 @@ public class AuctionBINWarning extends GuiElement {
private int lowestPrice;
private boolean shouldPerformCheck() {
- if(!NotEnoughUpdates.INSTANCE.config.auctionHouseBINWarning.enableBINWarning ||
+ if(!NotEnoughUpdates.INSTANCE.config.ahTweaks.enableBINWarning ||
!NotEnoughUpdates.INSTANCE.hasSkyblockScoreboard()) {
sellingTooltip = null;
showWarning = false;
@@ -105,7 +105,7 @@ public class AuctionBINWarning extends GuiElement {
//TODO: Add option for warning if lowest price does not exist
- float factor = 1 - NotEnoughUpdates.INSTANCE.config.auctionHouseBINWarning.warningThreshold/100;
+ float factor = 1 - NotEnoughUpdates.INSTANCE.config.ahTweaks.warningThreshold/100;
if(factor < 0) factor = 0;
if(factor > 1) factor = 1;
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionSortModeWarning.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionSortModeWarning.java
index c9e8c33c..3002bce0 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionSortModeWarning.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionSortModeWarning.java
@@ -1,5 +1,6 @@
package io.github.moulberry.notenoughupdates.miscfeatures;
+import io.github.moulberry.notenoughupdates.NotEnoughUpdates;
import io.github.moulberry.notenoughupdates.core.util.render.RenderUtils;
import io.github.moulberry.notenoughupdates.core.util.render.TextRenderUtils;
import io.github.moulberry.notenoughupdates.util.SBInfo;
@@ -20,8 +21,10 @@ public class AuctionSortModeWarning {
}
private boolean isAuctionBrowser() {
- return Minecraft.getMinecraft().currentScreen instanceof GuiChest &&
- SBInfo.getInstance().lastOpenContainerName.startsWith("Auctions Browser");
+ return NotEnoughUpdates.INSTANCE.config.ahTweaks.enableSortWarning &&
+ Minecraft.getMinecraft().currentScreen instanceof GuiChest &&
+ (SBInfo.getInstance().lastOpenContainerName.startsWith("Auctions Browser") ||
+ SBInfo.getInstance().lastOpenContainerName.startsWith("Auctions: \""));
}
public void onPostGuiRender() {
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/BetterContainers.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/BetterContainers.java
index 0aa5e84d..65ccd73f 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/BetterContainers.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/BetterContainers.java
@@ -3,6 +3,7 @@ package io.github.moulberry.notenoughupdates.miscfeatures;
import com.google.gson.JsonObject;
import io.github.moulberry.notenoughupdates.NEUEventListener;
import io.github.moulberry.notenoughupdates.NotEnoughUpdates;
+import io.github.moulberry.notenoughupdates.util.SBInfo;
import io.github.moulberry.notenoughupdates.util.TexLoc;
import io.github.moulberry.notenoughupdates.util.Utils;
import net.minecraft.client.Minecraft;
@@ -119,17 +120,29 @@ public class BetterContainers {
return isChestOpen() && ((loaded && texture != null) || System.currentTimeMillis() - lastRenderMillis < 200) && !isBlacklistedInventory();
}
- public static boolean isBlankStack(ItemStack stack) {
+ public static boolean isBlankStack(int index, ItemStack stack) {
+ if(index == 42 && NotEnoughUpdates.INSTANCE.hasSkyblockScoreboard() &&
+ (SBInfo.getInstance().lastOpenContainerName.contains("'s Profile") ||
+ SBInfo.getInstance().lastOpenContainerName.contains("s' Profile"))) {
+ return false;
+ }
+
return stack != null && stack.getItem() == Item.getItemFromBlock(Blocks.stained_glass_pane) &&
stack.getItemDamage() == 15 &&
stack.getDisplayName() != null && stack.getDisplayName().trim().isEmpty();
}
- public static boolean shouldRenderStack(ItemStack stack) {
- return !isBlankStack(stack) && !isToggleOff(stack) && !isToggleOn(stack);
+ public static boolean shouldRenderStack(int index, ItemStack stack) {
+ return !isBlankStack(index, stack) && !isToggleOff(stack) && !isToggleOn(stack);
}
- public static boolean isButtonStack(ItemStack stack) {
+ public static boolean isButtonStack(int index, ItemStack stack) {
+ if(index == 42 && NotEnoughUpdates.INSTANCE.hasSkyblockScoreboard() &&
+ (SBInfo.getInstance().lastOpenContainerName.contains("'s Profile") ||
+ SBInfo.getInstance().lastOpenContainerName.contains("s' Profile"))) {
+ return true;
+ }
+
return stack != null && stack.getItem() != Item.getItemFromBlock(Blocks.stained_glass_pane)
&& NotEnoughUpdates.INSTANCE.manager.getInternalNameForItem(stack) == null && !isToggleOn(stack) && !isToggleOff(stack);
}
@@ -220,7 +233,7 @@ public class BetterContainers {
!lower.getDisplayName().getUnformattedText().contains("Stakes");
for (int index = 0; index < size; index++) {
ItemStack stack = getStackCached(lower, index);
- buttons[index%9][index/9] = isButtonStack(stack);
+ buttons[index%9][index/9] = isButtonStack(index, stack);
if(ultrasequencer && stack.getItem() == Items.dye) {
buttons[index%9][index/9] = false;
@@ -234,7 +247,7 @@ public class BetterContainers {
//buttons[index%9][index/9] = false;
//slots[index%9][index/9] = true;
} else {
- slots[index%9][index/9] = !isBlankStack(stack) && !buttons[index%9][index/9];
+ slots[index%9][index/9] = !isBlankStack(index, stack) && !buttons[index%9][index/9];
}
}
for (int index = 0; index < size; index++) {
@@ -351,7 +364,7 @@ public class BetterContainers {
IInventory lower = ((ContainerChest)container).getLowerChestInventory();
int size = lower.getSizeInventory();
for(int index=0; index<size; index++) {
- if(isBlankStack(getStackCached(lower, index))) return true;
+ if(isBlankStack(index, getStackCached(lower, index))) return true;
}
}
return false;
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiCustomEnchant.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiCustomEnchant.java
index 1b07ebdc..0fbf9406 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiCustomEnchant.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiCustomEnchant.java
@@ -29,6 +29,7 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.play.client.C0EPacketClickWindow;
+import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.MathHelper;
import net.minecraft.util.ResourceLocation;
import org.apache.commons.lang3.text.WordUtils;
@@ -199,12 +200,6 @@ public class GuiCustomEnchant extends Gui {
}
public boolean shouldOverride(String containerName) {
-
- if(!NotEnoughUpdates.INSTANCE.config.hidden.dev) {
- shouldOverrideFast = false;
- return false;
- }
-
shouldOverrideFast = NotEnoughUpdates.INSTANCE.config.enchantingSolvers.enableTableGUI &&
containerName != null &&
NotEnoughUpdates.INSTANCE.hasSkyblockScoreboard() &&
@@ -509,6 +504,25 @@ public class GuiCustomEnchant extends Gui {
this.pageOpen += this.pageOpenVelocity;
}
+
+ private List<String> createTooltip(String title, int selectedOption, String... options) {
+ String selPrefix = EnumChatFormatting.DARK_AQUA + " \u25b6 ";
+ String unselPrefix = EnumChatFormatting.GRAY.toString();
+
+ for(int i=0; i<options.length; i++) {
+ if(i == selectedOption) {
+ options[i] = selPrefix + options[i];
+ } else {
+ options[i] = unselPrefix + options[i];
+ }
+ }
+
+ List list = Lists.newArrayList(options);
+ list.add(0, "");
+ list.add(0, EnumChatFormatting.GREEN+title);
+ return list;
+ }
+
public void render(float partialTicks) {
if(!(Minecraft.getMinecraft().currentScreen instanceof GuiContainer)) return;
@@ -549,12 +563,14 @@ public class GuiCustomEnchant extends Gui {
Minecraft.getMinecraft().fontRendererObj.drawString("Applicable", guiLeft+7, guiTop+7, 0x404040, false);
Minecraft.getMinecraft().fontRendererObj.drawString("Removable", guiLeft+247, guiTop+7, 0x404040, false);
+ //Page Text
if(currentState == EnchantState.HAS_ITEM || currentState == EnchantState.ADDING_ENCHANT) {
String pageStr = "Page: "+currentPage+"/"+expectedMaxPage;
int pageStrLen = Minecraft.getMinecraft().fontRendererObj.getStringWidth(pageStr);
Utils.drawStringCentered(pageStr, Minecraft.getMinecraft().fontRendererObj,
guiLeft+X_SIZE/2, guiTop+14, false, 0x404040);
+ //Page Arrows
Minecraft.getMinecraft().getTextureManager().bindTexture(TEXTURE);
GlStateManager.color(1, 1, 1, 1);
Utils.drawTexturedRect(guiLeft+X_SIZE/2-pageStrLen/2-2-15, guiTop+6, 15, 15,
@@ -563,6 +579,57 @@ public class GuiCustomEnchant extends Gui {
15/512f, 30/512f, 372/512f, 387/512f, GL11.GL_NEAREST);
}
+ //Settings Buttons
+ Minecraft.getMinecraft().getTextureManager().bindTexture(TEXTURE);
+ GlStateManager.color(1, 1, 1, 1);
+ //On Settings Button
+ Utils.drawTexturedRect(guiLeft+295, guiTop+147, 16, 16,
+ 0, 16/512f, 387/512f, (387+16)/512f, GL11.GL_NEAREST);
+ //Incompatible Settings Button
+ float incompatibleMinU = NotEnoughUpdates.INSTANCE.config.enchantingSolvers.incompatibleEnchants*16/512f;
+ Utils.drawTexturedRect(guiLeft+295+18, guiTop+147, 16, 16,
+ incompatibleMinU, incompatibleMinU+16/512f, 403/512f, (403+16)/512f, GL11.GL_NEAREST);
+ //Sorting Settings Button
+ float sortingMinU = NotEnoughUpdates.INSTANCE.config.enchantingSolvers.enchantSorting*16/512f;
+ Utils.drawTexturedRect(guiLeft+295, guiTop+147+18, 16, 16,
+ sortingMinU, sortingMinU+16/512f, 419/512f, (419+16)/512f, GL11.GL_NEAREST);
+ //Ordering Settings Button
+ float orderingMinU = NotEnoughUpdates.INSTANCE.config.enchantingSolvers.enchantOrdering*16/512f;
+ Utils.drawTexturedRect(guiLeft+295+18, guiTop+147+18, 16, 16,
+ orderingMinU, orderingMinU+16/512f, 435/512f, (435+16)/512f, GL11.GL_NEAREST);
+
+ if(mouseX >= guiLeft+294 && mouseX < guiLeft+294+36 &&
+ mouseY >= guiTop+146 && mouseY < guiTop+146+36) {
+ int index = (mouseX-(guiLeft+295))/18 + (mouseY-(guiTop+147))/18*2;
+ switch (index) {
+ case 0:
+ Gui.drawRect(guiLeft+295, guiTop+147, guiLeft+295+16, guiTop+147+16, 0x80ffffff);
+ tooltipToDisplay = createTooltip("Enable GUI", 0, "On", "Off");
+ break;
+ case 1:
+ Gui.drawRect(guiLeft+295+18, guiTop+147, guiLeft+295+16+18, guiTop+147+16, 0x80ffffff);
+ tooltipToDisplay = createTooltip("Incompatible Enchants",
+ NotEnoughUpdates.INSTANCE.config.enchantingSolvers.incompatibleEnchants,
+ "Highlight", "Hide");
+ tooltipToDisplay.add(1, EnumChatFormatting.GRAY+"How to display enchants that are");
+ tooltipToDisplay.add(2, EnumChatFormatting.GRAY+"incompatible with your current item,");
+ tooltipToDisplay.add(3, EnumChatFormatting.GRAY+"eg. Smite on a sword with Sharpness");
+ break;
+ case 2:
+ Gui.drawRect(guiLeft+295, guiTop+147+18, guiLeft+295+16, guiTop+147+16+18, 0x80ffffff);
+ tooltipToDisplay = createTooltip("Sort enchants...",
+ NotEnoughUpdates.INSTANCE.config.enchantingSolvers.enchantSorting,
+ "By Cost", "Alphabetically");
+ break;
+ case 3:
+ Gui.drawRect(guiLeft+295+18, guiTop+147+18, guiLeft+295+16+18, guiTop+147+16+18, 0x80ffffff);
+ tooltipToDisplay = createTooltip("Order enchants...",
+ NotEnoughUpdates.INSTANCE.config.enchantingSolvers.enchantOrdering,
+ "Ascending", "Descending");
+ break;
+ }
+ }
+
//Left scroll bar
{
int offset;
@@ -1355,6 +1422,48 @@ public class GuiCustomEnchant extends Gui {
lerpingInteger.setValue(newScroll);
}
}
+
+ //Config options
+ if(Mouse.getEventButtonState()) {
+ if(mouseX >= guiLeft+294 && mouseX < guiLeft+294+36 &&
+ mouseY >= guiTop+146 && mouseY < guiTop+146+36) {
+ int index = (mouseX-(guiLeft+295))/18 + (mouseY-(guiTop+147))/18*2;
+
+ int direction = Mouse.getEventButton() == 0 ? 1 : -1;
+
+ switch (index) {
+ case 0: {
+ NotEnoughUpdates.INSTANCE.config.enchantingSolvers.enableTableGUI = false;
+ break;
+ }
+ case 1: {
+ int val = NotEnoughUpdates.INSTANCE.config.enchantingSolvers.incompatibleEnchants;
+ val += direction;
+ if (val < 0) val = 1;
+ if (val > 1) val = 0;
+ NotEnoughUpdates.INSTANCE.config.enchantingSolvers.incompatibleEnchants = val;
+ break;
+ }
+ case 2: {
+ int val = NotEnoughUpdates.INSTANCE.config.enchantingSolvers.enchantSorting;
+ val += direction;
+ if (val < 0) val = 1;
+ if (val > 1) val = 0;
+ NotEnoughUpdates.INSTANCE.config.enchantingSolvers.enchantSorting = val;
+ break;
+ }
+ case 3: {
+ int val = NotEnoughUpdates.INSTANCE.config.enchantingSolvers.enchantOrdering;
+ val += direction;
+ if (val < 0) val = 1;
+ if (val > 1) val = 0;
+ NotEnoughUpdates.INSTANCE.config.enchantingSolvers.enchantOrdering = val;
+ break;
+ }
+ }
+ }
+ }
+
if(Mouse.getEventButton() == 0) {
if(Mouse.getEventButtonState()) {
if(mouseX > guiLeft+104 && mouseX < guiLeft+104+12) {
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 3f559f48..89d97dfa 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiContainer.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiContainer.java
@@ -14,11 +14,15 @@ import net.minecraft.client.gui.inventory.GuiChest;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.RenderHelper;
+import net.minecraft.init.Blocks;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.ContainerChest;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
+import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.EnumChatFormatting;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
@@ -34,6 +38,11 @@ import java.util.concurrent.atomic.AtomicBoolean;
@Mixin(GuiContainer.class)
public abstract class MixinGuiContainer extends GuiScreen {
+ private static boolean hasProfileViewerStack = false;
+ private static final ItemStack profileViewerStack = Utils.createItemStack(Item.getItemFromBlock(Blocks.command_block),
+ EnumChatFormatting.GREEN + "Profile Viewer",
+ EnumChatFormatting.YELLOW + "Click to open NEU profile viewer!");
+
@Inject(method="drawSlot", at=@At("RETURN"))
public void drawSlotRet(Slot slotIn, CallbackInfo ci) {
SlotLocking.getInstance().drawSlot(slotIn);
@@ -43,6 +52,41 @@ public abstract class MixinGuiContainer extends GuiScreen {
public void drawSlot(Slot slot, CallbackInfo ci) {
if(slot == null) return;
+ GuiContainer $this = (GuiContainer)(Object)this;
+
+ if(slot.slotNumber == 42 && $this instanceof GuiChest) {
+ hasProfileViewerStack = false;
+
+ GuiChest eventGui = (GuiChest) $this;
+ ContainerChest cc = (ContainerChest) eventGui.inventorySlots;
+ String containerName = cc.getLowerChestInventory().getDisplayName().getUnformattedText();
+ if(containerName.contains(" Profile") && cc.inventorySlots.size() >= 54) {
+ if(cc.inventorySlots.get(22).getStack() != null && cc.inventorySlots.get(22).getStack().getTagCompound() != null){
+ NBTTagCompound tag = eventGui.inventorySlots.inventorySlots.get(22).getStack().getTagCompound();
+ if(tag.hasKey("SkullOwner") && tag.getCompoundTag("SkullOwner").hasKey("Name")){
+ String tagName = tag.getCompoundTag("SkullOwner").getString("Name");
+ String displayname = Utils.cleanColour(cc.inventorySlots.get(22).getStack().getDisplayName());
+ if(tagName.equals(displayname.substring(displayname.length()-tagName.length()))) {
+ ci.cancel();
+
+ this.zLevel = 100.0F;
+ this.itemRender.zLevel = 100.0F;
+
+ GlStateManager.enableDepth();
+ this.itemRender.renderItemAndEffectIntoGUI(profileViewerStack, slot.xDisplayPosition, slot.yDisplayPosition);
+ this.itemRender.renderItemOverlayIntoGUI(this.fontRendererObj, profileViewerStack,
+ slot.xDisplayPosition, slot.yDisplayPosition, "");
+
+ this.itemRender.zLevel = 0.0F;
+ this.zLevel = 0.0F;
+
+ hasProfileViewerStack = true;
+ }
+ }
+ }
+ }
+ }
+
if(slot.getStack() == null && NotEnoughUpdates.INSTANCE.overlay.searchMode && NEUEventListener.drawingGuiScreen) {
GlStateManager.pushMatrix();
GlStateManager.translate(0, 0, 100 + Minecraft.getMinecraft().getRenderItem().zLevel);
@@ -53,7 +97,6 @@ public abstract class MixinGuiContainer extends GuiScreen {
GlStateManager.popMatrix();
}
- GuiContainer $this = (GuiContainer)(Object)this;
ItemStack stack = slot.getStack();
if(stack != null) {
@@ -65,11 +108,22 @@ public abstract class MixinGuiContainer extends GuiScreen {
RenderHelper.enableGUIStandardItemLighting();