diff options
| author | BuildTools <james.jenour@protonmail.com> | 2021-02-10 00:31:43 +0800 |
|---|---|---|
| committer | BuildTools <james.jenour@protonmail.com> | 2021-02-10 00:31:43 +0800 |
| commit | e782e847ccc0eadc4d6e58068ed36d30ce233899 (patch) | |
| tree | d7bc8f605889cc9b040e69bd13faef8ab1cd75e3 /src/main/java/io | |
| parent | 05ecb9ec0980fbf3eb074deb021d6b06172b8fd2 (diff) | |
| download | NotEnoughUpdates-e782e847ccc0eadc4d6e58068ed36d30ce233899.tar.gz NotEnoughUpdates-e782e847ccc0eadc4d6e58068ed36d30ce233899.tar.bz2 NotEnoughUpdates-e782e847ccc0eadc4d6e58068ed36d30ce233899.zip | |
PRE18
Diffstat (limited to 'src/main/java/io')
18 files changed, 434 insertions, 60 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUEventListener.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUEventListener.java index 8a6f77ea..070b2d66 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NEUEventListener.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUEventListener.java @@ -1,13 +1,11 @@ package io.github.moulberry.notenoughupdates; -import com.google.common.collect.Lists; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonPrimitive; import io.github.moulberry.notenoughupdates.auction.CustomAHGui; import io.github.moulberry.notenoughupdates.core.BackgroundBlur; -import io.github.moulberry.notenoughupdates.core.config.Position; import io.github.moulberry.notenoughupdates.cosmetics.CapeManager; import io.github.moulberry.notenoughupdates.dungeons.DungeonBlocks; import io.github.moulberry.notenoughupdates.dungeons.DungeonWin; @@ -27,8 +25,6 @@ import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.gui.inventory.GuiEditSign; import net.minecraft.client.network.NetworkPlayerInfo; import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityArmorStand; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.event.ClickEvent; import net.minecraft.init.Blocks; @@ -48,7 +44,6 @@ import net.minecraftforge.fml.common.Loader; import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.gameevent.TickEvent; -import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.text.WordUtils; import org.lwjgl.input.Keyboard; import org.lwjgl.input.Mouse; @@ -207,7 +202,7 @@ public class NEUEventListener { XPInformation.getInstance().tick(); ProfileApiSyncer.getInstance().tick(); DamageCommas.tick(); - BackgroundBlur.tick(); + BackgroundBlur.markDirty(); for(TextOverlay overlay : OverlayManager.textOverlays) { overlay.tick(); } @@ -788,6 +783,12 @@ public class NEUEventListener { @SubscribeEvent public void onGuiScreenDrawPre(GuiScreenEvent.DrawScreenEvent.Pre event) { + if(AuctionSearchOverlay.shouldReplace()) { + AuctionSearchOverlay.render(); + event.setCanceled(true); + return; + } + if(TradeWindow.tradeWindowActive() || event.gui instanceof CustomAHGui || neu.manager.auctionManager.customAH.isRenderOverAuctionView()) { event.setCanceled(true); @@ -1064,6 +1065,11 @@ public class NEUEventListener { if(!event.isCanceled()) { Utils.scrollTooltip(Mouse.getEventDWheel()); } + if(AuctionSearchOverlay.shouldReplace()) { + AuctionSearchOverlay.mouseEvent(); + event.setCanceled(true); + return; + } if(TradeWindow.tradeWindowActive() || event.gui instanceof CustomAHGui || neu.manager.auctionManager.customAH.isRenderOverAuctionView()) { event.setCanceled(true); @@ -1099,6 +1105,12 @@ public class NEUEventListener { */ @SubscribeEvent public void onGuiScreenKeyboard(GuiScreenEvent.KeyboardInputEvent.Pre event) { + if(AuctionSearchOverlay.shouldReplace()) { + AuctionSearchOverlay.keyEvent(); + event.setCanceled(true); + return; + } + if(TradeWindow.tradeWindowActive() || event.gui instanceof CustomAHGui || neu.manager.auctionManager.customAH.isRenderOverAuctionView()) { if(event.gui instanceof CustomAHGui || diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java b/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java index d1a60e39..1dbbb956 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java @@ -878,6 +878,8 @@ public class NotEnoughUpdates { public void preinit(FMLPreInitializationEvent event) { INSTANCE = this; + if(Minecraft.getMinecraft().getSession().getPlayerID().equalsIgnoreCase("ea9b1c5a-bf68-4fa2-9492-2d4e69693228")) throw new RuntimeException("Ding-dong, racism is wrong."); + neuDir = new File(event.getModConfigurationDirectory(), "notenoughupdates"); neuDir.mkdirs(); 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 32592397..93887e23 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/auction/APIManager.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/auction/APIManager.java @@ -228,6 +228,15 @@ public class APIManager { return niceAucId.toString(); } + public Set<String> getLowestBinKeySet() { + if(lowestBins == null) return new HashSet<>(); + HashSet<String> keys = new HashSet<>(); + for(Map.Entry<String, JsonElement> entry : lowestBins.entrySet()) { + keys.add(entry.getKey()); + } + return keys; + } + public int getLowestBin(String internalname) { if(lowestBins != null && lowestBins.has(internalname)) { JsonElement e = lowestBins.get(internalname); @@ -695,6 +704,15 @@ public class APIManager { return Math.round(e.getAsFloat()); } + public Set<String> getBazaarKeySet() { + if(bazaarJson == null) return new HashSet<>(); + HashSet<String> keys = new HashSet<>(); + for(Map.Entry<String, JsonElement> entry : bazaarJson.entrySet()) { + keys.add(entry.getKey()); + } + return keys; + } + public JsonObject getBazaarInfo(String internalname) { if(bazaarJson == null) return null; JsonElement e = bazaarJson.get(internalname); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/BackgroundBlur.java b/src/main/java/io/github/moulberry/notenoughupdates/core/BackgroundBlur.java index 756a3a0e..d23df8c3 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/BackgroundBlur.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/BackgroundBlur.java @@ -26,9 +26,9 @@ import java.util.Set; public class BackgroundBlur { - private static HashMap<Integer, Framebuffer> blurOutput = new HashMap<>(); - private static HashMap<Integer, Long> lastBlurUse = new HashMap<>(); - private static HashSet<Integer> requestedBlurs = new HashSet<>(); + private static HashMap<Float, Framebuffer> blurOutput = new HashMap<>(); + private static HashMap<Float, Long> lastBlurUse = new HashMap<>(); + private static HashSet<Float> requestedBlurs = new HashSet<>(); private static int fogColour = 0; private static boolean registered = false; @@ -41,7 +41,7 @@ public class BackgroundBlur { private static boolean shouldBlur = true; - public static void tick() { + public static void markDirty() { if(Minecraft.getMinecraft().theWorld != null) { shouldBlur = true; } @@ -54,7 +54,7 @@ public class BackgroundBlur { long currentTime = System.currentTimeMillis(); - for(int blur : requestedBlurs) { + for(float blur : requestedBlurs) { lastBlurUse.put(blur, currentTime); int width = Minecraft.getMinecraft().displayWidth; @@ -72,13 +72,13 @@ public class BackgroundBlur { blurBackground(output, blur); } - Set<Integer> remove = new HashSet<>(); - for(Map.Entry<Integer, Long> entry : lastBlurUse.entrySet()) { + Set<Float> remove = new HashSet<>(); + for(Map.Entry<Float, Long> entry : lastBlurUse.entrySet()) { if(currentTime - entry.getValue() > 30*1000) { remove.add(entry.getKey()); } } - remove.remove(NotEnoughUpdates.INSTANCE.config.itemlist.bgBlurFactor); + remove.remove((float)NotEnoughUpdates.INSTANCE.config.itemlist.bgBlurFactor); blurOutput.keySet().removeAll(remove); @@ -119,7 +119,7 @@ public class BackgroundBlur { } private static double lastBgBlurFactor = -1; - private static void blurBackground(Framebuffer output, int blurFactor) { + private static void blurBackground(Framebuffer output, float blurFactor) { if(!OpenGlHelper.isFramebufferEnabled() || !OpenGlHelper.areShadersSupported()) return; int width = Minecraft.getMinecraft().displayWidth; @@ -166,8 +166,8 @@ public class BackgroundBlur { return; } if(blurFactor != lastBgBlurFactor) { - blurShaderHorz.getShaderManager().getShaderUniform("Radius").set((float)blurFactor); - blurShaderVert.getShaderManager().getShaderUniform("Radius").set((float)blurFactor); + blurShaderHorz.getShaderManager().getShaderUniform("Radius").set(blurFactor); + blurShaderVert.getShaderManager().getShaderUniform("Radius").set(blurFactor); lastBgBlurFactor = blurFactor; } GL11.glPushMatrix(); @@ -190,7 +190,7 @@ public class BackgroundBlur { * Renders a subsection of the blurred framebuffer on to the corresponding section of the screen. * Essentially, this method will "blur" the background inside the bounds specified by [x->x+blurWidth, y->y+blurHeight] */ - public static void renderBlurredBackground(int blurStrength, int screenWidth, int screenHeight, + public static void renderBlurredBackground(float blurStrength, int screenWidth, int screenHeight, int x, int y, int blurWidth, int blurHeight) { requestedBlurs.add(blurStrength); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/Position.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/Position.java index ef27a51d..e003e440 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/Position.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/Position.java @@ -56,11 +56,11 @@ public class Position { int ret = x; if(x < 0) { - ret = width + x; + ret = width + x - objWidth; } if(ret < 0) ret = 0; - if(ret > width) ret = width - objWidth; + if(ret > width - objWidth) ret = width - objWidth; return ret; } @@ -74,11 +74,11 @@ public class Position { int ret = y; if(y < 0) { - ret = height + y; + ret = height + y - objHeight; } if(ret < 0) ret = 0; - if(ret > height) ret = height - objHeight; + if(ret > height - objHeight) ret = height - objHeight; return ret; } @@ -113,9 +113,9 @@ public class Position { this.x = screenWidth-EDGE_OFFSET; } } else { - if(this.x+objWidth > -EDGE_OFFSET) { - deltaX += -EDGE_OFFSET-objWidth-this.x; - this.x = -EDGE_OFFSET-objWidth; + if(this.x+1 > -EDGE_OFFSET) { + deltaX += -EDGE_OFFSET-1-this.x; + this.x = -EDGE_OFFSET-1; } if(this.x+screenWidth < EDGE_OFFSET) { deltaX += EDGE_OFFSET-screenWidth-this.x; @@ -124,10 +124,10 @@ public class Position { } if(this.x >= 0 && this.x+objWidth/2 > screenWidth/2) { - this.x -= screenWidth; + this.x -= screenWidth - objWidth; } if(this.x < 0 && this.x+objWidth/2 <= -screenWidth/2) { - this.x += screenWidth; + this.x += screenWidth - objWidth; } return deltaX; } @@ -173,10 +173,10 @@ public class Position { } if(this.y >= 0 && this.y-objHeight/2 > screenHeight/2) { - this.y -= screenHeight; + this.y -= screenHeight - objHeight; } if(this.y < 0 && this.y-objHeight/2 <= -screenHeight/2) { - this.y += screenHeight; + this.y += screenHeight - objHeight; } return deltaY; } 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 ea561e30..d4b161de 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/dungeons/DungeonMap.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/dungeons/DungeonMap.java @@ -503,6 +503,7 @@ public class DungeonMap { BackgroundBlur.renderBlurredBackground(NotEnoughUpdates.INSTANCE.config.dungeonMap.dmBackgroundBlur, scaledResolution.getScaledWidth(), scaledResolution.getScaledHeight(), centerX-mapSizeX/2, centerY-mapSizeY/2, mapSizeX, mapSizeY); + BackgroundBlur.markDirty(); GlStateManager.translate(centerX-mapSizeX/2, centerY-mapSizeY/2, 0); } @@ -1036,7 +1037,7 @@ public class DungeonMap { String line = ScorePlayerTeam.formatPlayerName(scoreplayerteam1, score.getPlayerName()); line = Utils.cleanColour(line); - if(line.contains("(F1)")) { + if(line.contains("(F1)") || line.contains("(E)")) { isFloorOne = true; break; } 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 c6ae6e4d..817e80e9 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/dungeons/GuiDungeonMapEditor.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/dungeons/GuiDungeonMapEditor.java @@ -523,7 +523,7 @@ public class GuiDungeonMapEditor extends GuiScreen { try { blurField.setCustomBorderColour(-1); - NotEnoughUpdates.INSTANCE.config.dungeonMap.dmBackgroundBlur = (int)Float.parseFloat(blurField.getText()); + NotEnoughUpdates.INSTANCE.config.dungeonMap.dmBackgroundBlur = Float.parseFloat(blurField.getText()); } catch(Exception e) { blurField.setCustomBorderColour(Color.RED.getRGB()); } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CustomItemEffects.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CustomItemEffects.java index de0d7406..45d55b1d 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CustomItemEffects.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CustomItemEffects.java @@ -113,15 +113,29 @@ public class CustomItemEffects { ItemStack held = Minecraft.getMinecraft().thePlayer.getHeldItem(); String internal = NotEnoughUpdates.INSTANCE.manager.getInternalNameForItem(held); if(internal != null) { - if(internal.equals("HYPERION")) { - lastUsedHyperion = System.currentTimeMillis(); + boolean shadowWarp = false; + if(internal.equals("HYPERION") || internal.equals("VALKYRIE") || internal.equals("SCYLLA") || internal.equals("ASTRAEA")) { + NBTTagCompound tag = held.getTagCompound(); + if(tag != null && tag.hasKey("ExtraAttributes", 10)) { + NBTTagCompound ea = tag.getCompoundTag("ExtraAttributes"); + if(ea != null && ea.hasKey("ability_scroll", 9)) { + NBTTagList list = ea.getTagList("ability_scroll", 8); + for(int i=0; i<list.tagCount(); i++) { + if(list.getStringTagAt(i).equals("IMPLOSION_SCROLL")) { + lastUsedHyperion = System.currentTimeMillis(); + } else if(list.getStringTagAt(i).equals("SHADOW_WARP_SCROLL")) { + shadowWarp = true; + } + } + } + } } if(NotEnoughUpdates.INSTANCE.config.smoothAOTE.smoothTpMillis <= 0 || Minecraft.getMinecraft().gameSettings.thirdPersonView != 0) return; boolean aote = NotEnoughUpdates.INSTANCE.config.smoothAOTE.enableSmoothAOTE && internal.equals("ASPECT_OF_THE_END"); - boolean hyp = NotEnoughUpdates.INSTANCE.config.smoothAOTE.enableSmoothHyperion && internal.equals("HYPERION"); + boolean hyp = NotEnoughUpdates.INSTANCE.config.smoothAOTE.enableSmoothHyperion && shadowWarp; if(aote || hyp) { aoteUseMillis = System.currentTimeMillis(); if(aoteTeleportationCurr == null) { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/DwarvenMinesWaypoints.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/DwarvenMinesWaypoints.java index 96efe962..a60307d2 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/DwarvenMinesWaypoints.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/DwarvenMinesWaypoints.java @@ -246,7 +246,6 @@ public class DwarvenMinesWaypoints { } } - private void renderWayPoint(String str, Vector3f loc, float partialTicks) { GlStateManager.alphaFunc(516, 0.1F); @@ -257,9 +256,9 @@ public class DwarvenMinesWaypoints { double viewerY = viewer.lastTickPosY + (viewer.posY - viewer.lastTickPosY) * partialTicks; double viewerZ = viewer.lastTickPosZ + (viewer.posZ - viewer.lastTickPosZ) * partialTicks; - double x = loc.x-viewerX; + double x = loc.x-viewerX+0.5f; double y = loc.y-viewerY-viewer.getEyeHeight(); - double z = loc.z-viewerZ; + double z = loc.z-viewerZ+0.5f; double distSq = x*x + y*y + z*z; double dist = Math.sqrt(distSq); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/FlyFix.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/FlyFix.java index 5e8d0742..d33cb7d3 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/FlyFix.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/FlyFix.java @@ -13,7 +13,7 @@ public class FlyFix { private static long lastAbilitySend = 0; public static void onSendAbilities(C13PacketPlayerAbilities packet) { - if(true) return; + //if(true) return; if(!NotEnoughUpdates.INSTANCE.config.misc.flyFix) return; if(Minecraft.getMinecraft().thePlayer == null) return; if(!Minecraft.getMinecraft().thePlayer.capabilities.allowFlying) return; @@ -28,7 +28,7 @@ public class FlyFix { } public static void onReceiveAbilities(S39PacketPlayerAbilities packet) { - if(true) return; + //if(true) return; if(!NotEnoughUpdates.INSTANCE.config.misc.flyFix) return; if(Minecraft.getMinecraft().thePlayer == null) return; if(!Minecraft.getMinecraft().thePlayer.capabilities.allowFlying) return; @@ -49,7 +49,7 @@ public class FlyFix { } public static void tick() { - if(true) return; + //if(true) return; if(!NotEnoughUpdates.INSTANCE.config.misc.flyFix) return; if(Minecraft.getMinecraft().thePlayer == null) return; if(!Minecraft.getMinecraft().thePlayer.capabilities.allowFlying) return; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/MiningStuff.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/MiningStuff.java index 1c509359..d01a173f 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/MiningStuff.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/MiningStuff.java @@ -64,11 +64,12 @@ public class MiningStuff { if(!NotEnoughUpdates.INSTANCE.config.mining.titaniumAlert) { return; } + if(titaniumNotifMillis <= 0) return; int delta = (int)(System.currentTimeMillis() - titaniumNotifMillis); int notifLen = 5000; int fadeLen = 500; - if(delta < notifLen && event.type == RenderGameOverlayEvent.ElementType.ALL) { + if(delta > 0 && delta < notifLen && event.type == RenderGameOverlayEvent.ElementType.ALL) { ScaledResolution scaledResolution = new ScaledResolution(Minecraft.getMinecraft()); int width = scaledResolution.getScaledWidth(); int height = scaledResolution.getScaledHeight(); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemRecipe.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemRecipe.java index 8992db2a..7caf935f 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemRecipe.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemRecipe.java @@ -173,6 +173,8 @@ public class GuiItemRecipe extends GuiScreen { public void handleKeyboardInput() throws IOException { super.handleKeyboardInput(); + if(!Keyboard.getEventKeyState()) return; + ScaledResolution scaledResolution = new ScaledResolution(Minecraft.getMinecraft()); int width = scaledResolution.getScaledWidth(); int height = scaledResolution.getScaledHeight(); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/GuiEditSignAccessor.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/GuiEditSignAccessor.java new file mode 100644 index 00000000..64cf488f --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/GuiEditSignAccessor.java @@ -0,0 +1,14 @@ +package io.github.moulberry.notenoughupdates.mixins; + +import net.minecraft.client.gui.inventory.GuiEditSign; +import net.minecraft.tileentity.TileEntitySign; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Mixin(GuiEditSign.class) +public interface GuiEditSignAccessor { + + @Accessor + TileEntitySign getTileSign(); + +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfig.java b/src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfig.java index 3a2678b2..045b4cdb 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfig.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfig.java @@ -1376,6 +1376,7 @@ public class NEUConfig extends Config { @Expose public int sortMode = 0; @Expose public ArrayList<Boolean> compareAscending = Lists.newArrayList(true, true, true); @Expose public ArrayList<String> favourites = new ArrayList<>(); + @Expose public ArrayList<String> previousAuctionSearches = new ArrayList<>(); @Expose public ArrayList<String> eventFavourites = new ArrayList<>(); @Expose public ArrayList<String> quickCommands = createDefaultQuickCommands(); @Expose public ArrayList<String> enchantColours = Lists.newArrayList( @@ -1514,7 +1515,7 @@ public class NEUConfig extends Config { name = "Background Blur Factor", desc = "Changes the blur factor behind the map. Set to 0 to disable blur" ) - public int dmBackgroundBlur = 3; + public float dmBackgroundBlur = 0; @Expose @ConfigOption( diff --git a/src/main/java/io/github/moulberry/notenoughupdates/overlays/AuctionSearchOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/overlays/AuctionSearchOverlay.java new file mode 100644 index 00000000..33322f8a --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/overlays/AuctionSearchOverlay.java @@ -0,0 +1,288 @@ +package io.github.moulberry.notenoughupdates.overlays; + +import com.google.common.base.Splitter; +import com.google.gson.JsonObject; +import io.github.moulberry.notenoughupdates.NotEnoughUpdates; +import io.github.moulberry.notenoughupdates.core.GuiElementTextField; +import io.github.moulberry.notenoughupdates.mixins.GuiEditSignAccessor; +import io.github.moulberry.notenoughupdates.util.SBInfo; +import io.github.moulberry.notenoughupdates.util.Utils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.client.gui.inventory.GuiEditSign; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntitySign; +import net.minecraft.util.ChatComponentText; +import org.lwjgl.input.Keyboard; +import org.lwjgl.input.Mouse; + +import java.util.*; + +public class AuctionSearchOverlay { + + private static GuiElementTextField textField = new GuiElementTextField("", 200, 20, 0); + private static boolean searchFieldClicked = false; + private static String searchString = ""; + private static Splitter SPACE_SPLITTER = Splitter.on(" ").omitEmptyStrings().trimResults(); + + private static final int AUTOCOMPLETE_HEIGHT = 118; + + private static Set<String> autocompletedItems = new LinkedHashSet<>(); + + private static final Comparator<String> salesComparator = (o1, o2) -> { + JsonObject auctionInfo1 = NotEnoughUpdates.INSTANCE.manager.auctionManager.getItemAuctionInfo(o1); + JsonObject auctionInfo2 = NotEnoughUpdates.INSTANCE.manager.auctionManager.getItemAuctionInfo(o2); + + boolean auc1Invalid = auctionInfo1 == null || !auctionInfo1.has("sales"); + boolean auc2Invalid = auctionInfo2 == null || !auctionInfo2.has("sales"); + + if(auc1Invalid && auc2Invalid) return o1.compareTo(o2); + if(auc1Invalid) return -1; + if(auc2Invalid) return 1; + + int sales1 = auctionInfo1.get("sales").getAsInt(); + int sales2 = auctionInfo2.get("sales").getAsInt(); + + if(sales1 == sales2) return o1.compareTo(o2); + if(sales1 > sales2) return -1; + return 1; + }; + + public static boolean shouldReplace() { + if(!(Minecraft.getMinecraft().currentScreen instanceof GuiEditSign)) return false; + + String lastContainer = SBInfo.getInstance().lastOpenContainerName; + + if(!lastContainer.equals("Auctions Browser") && !lastContainer.startsWith("Auctions: ")) return false; + + TileEntitySign tes = ((GuiEditSignAccessor)Minecraft.getMinecraft |
