diff options
| author | Walker Selby <git@walkerselby.com> | 2022-03-27 12:13:08 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-03-27 13:13:08 -0400 |
| commit | 5e7a8a02fe836c1e635faf067fbe8913549bc0e0 (patch) | |
| tree | dc99a2544bd81af6d70c7bd07ba53142ff38d057 /src/main/java | |
| parent | 47efdd4f84cc9a29738fe16d631eb33ee716db61 (diff) | |
| download | NotEnoughUpdates-5e7a8a02fe836c1e635faf067fbe8913549bc0e0.tar.gz NotEnoughUpdates-5e7a8a02fe836c1e635faf067fbe8913549bc0e0.tar.bz2 NotEnoughUpdates-5e7a8a02fe836c1e635faf067fbe8913549bc0e0.zip | |
Add NBT Data to Profile Viewer Tabs and XP Bars (#94)
* Fixed what hypxiel broke in dungeons
* Added Longswords to Tools Tab (Itemlist)
* Set max cata level to 70
* ups
* why is it now E
* YEP the cap is 99 not 70
* long cata xp BatChest + remove crash check because hypixel profile is null and i havent fixed that yet
* Added checks for chat messages for dungeon win overlay - i think ive got them all but 4Shrug
* Added an option to alert you if you put something for too much onto ah (default 50%) + Lowest bin alert triggers if lowest bin isnt found
* IMPORTANT
* fix dungeon page in /pv
* show minions from coop in /pv
* (BREAKING CHANGE) remove whitespace in changelog
* fix crash with minion check
* initial draft
* tooltip
* important changes
* progress related things
progress bar for community goals
total collected points and personal goals display
* only show bingo tab on Bingo profiles
* make goals display gold when completed
* Added MM7 button to dungeon preset
* wart go not stonks
* fix percents and added stack size
* use code nopo in fortnite shop — Today at 17:29
The capitalisation
* config option for always showing bingo page
* 🙂
* movble pv tabs
* 2.1.md 🙂
* oops
* der Kabel
* import
* Added powder amount to level up perk
* Made it only show if the perk isnt maxed / level 0
* fix /pv crash when pet is not in repo
* 2.1.md 🙂
* web editor my beloved
* Add NBT Data to Profile Viewer Tabs and XP Bars
Add NBT Data Support for Resources in Tabs
Add NBT Data Support for Resources in XP Bars
Optimize renderTabs function
Optimize mouseClicked Function
Optimize ProfileViewerPage Enum
* Update Style
Co-authored-by: NopoTheGamer <40329022+NopoTheGamer@users.noreply.github.com>
* Update GuiProfileViewer
Rebased on pvbingo
Updated formatting with IntelliJ reformatting tool (hopefully that matches now, let me know if you want me to try again but I think I did it right)
* dungeons and pv bingo tab (#93)
* add custom skull loading back (#96)
* Refactor Hollows solvers, add tests, add Vec3Comparable, fix bugs (#95)
* Rebase on master
* Fix conflicts and rebase on master
Add changes to change log
* Oops
Co-authored-by: nopo <noahogno@gmail.com>
Co-authored-by: jani270 <jani270@gmx.de>
Co-authored-by: Lulonaut <lulonaut@tutanota.de>
Co-authored-by: NopoTheGamer <40329022+NopoTheGamer@users.noreply.github.com>
Co-authored-by: Lulonaut <67191924+Lulonaut@users.noreply.github.com>
Co-authored-by: CraftyOldMiner <85420839+CraftyOldMiner@users.noreply.github.com>
Diffstat (limited to 'src/main/java')
16 files changed, 522 insertions, 1403 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java b/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java index 951e7335..0ed68e06 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java @@ -1,5 +1,17 @@ package io.github.moulberry.notenoughupdates; +import java.awt.Color; +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.nio.charset.StandardCharsets; +import java.util.HashMap; +import java.util.Set; + import com.google.common.collect.Sets; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -12,9 +24,22 @@ import io.github.moulberry.notenoughupdates.listener.ChatListener; import io.github.moulberry.notenoughupdates.listener.ItemTooltipListener; import io.github.moulberry.notenoughupdates.listener.NEUEventListener; import io.github.moulberry.notenoughupdates.listener.RenderListener; -import io.github.moulberry.notenoughupdates.miscfeatures.*; +import io.github.moulberry.notenoughupdates.miscfeatures.CrystalOverlay; +import io.github.moulberry.notenoughupdates.miscfeatures.CrystalWishingCompassSolver; +import io.github.moulberry.notenoughupdates.miscfeatures.CustomItemEffects; +import io.github.moulberry.notenoughupdates.miscfeatures.DwarvenMinesWaypoints; +import io.github.moulberry.notenoughupdates.miscfeatures.EnchantingSolvers; +import io.github.moulberry.notenoughupdates.miscfeatures.FairySouls; +import io.github.moulberry.notenoughupdates.miscfeatures.FishingHelper; +import io.github.moulberry.notenoughupdates.miscfeatures.ItemCooldowns; +import io.github.moulberry.notenoughupdates.miscfeatures.ItemCustomizeManager; +import io.github.moulberry.notenoughupdates.miscfeatures.MiningStuff; +import io.github.moulberry.notenoughupdates.miscfeatures.NullzeeSphere; +import io.github.moulberry.notenoughupdates.miscfeatures.PetInfoOverlay; +import io.github.moulberry.notenoughupdates.miscfeatures.SlotLocking; +import io.github.moulberry.notenoughupdates.miscfeatures.StorageManager; +import io.github.moulberry.notenoughupdates.miscfeatures.SunTzu; import io.github.moulberry.notenoughupdates.miscfeatures.customblockzones.CustomBiomes; -import io.github.moulberry.notenoughupdates.miscfeatures.customblockzones.CustomBlockSounds; import io.github.moulberry.notenoughupdates.miscfeatures.customblockzones.DwarvenMinesTextures; import io.github.moulberry.notenoughupdates.miscgui.CalendarOverlay; import io.github.moulberry.notenoughupdates.miscgui.InventoryStorageSelector; @@ -28,14 +53,17 @@ import io.github.moulberry.notenoughupdates.util.Utils; import io.github.moulberry.notenoughupdates.util.XPInformation; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.resources.IReloadableResourceManager; import net.minecraft.client.settings.KeyBinding; import net.minecraft.event.ClickEvent; import net.minecraft.scoreboard.ScoreObjective; import net.minecraft.scoreboard.Scoreboard; import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; -import net.minecraft.world.biome.*; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.BiomeGenHell; +import net.minecraft.world.biome.BiomeGenJungle; +import net.minecraft.world.biome.BiomeGenMesa; +import net.minecraft.world.biome.BiomeGenSnow; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.client.registry.ClientRegistry; import net.minecraftforge.fml.common.Mod; @@ -44,12 +72,6 @@ import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.gameevent.TickEvent; -import java.awt.*; -import java.io.*; -import java.nio.charset.StandardCharsets; -import java.util.HashMap; -import java.util.Set; - @Mod(modid = NotEnoughUpdates.MODID, version = NotEnoughUpdates.VERSION, clientSideOnly = true) public class NotEnoughUpdates { public static final String MODID = "notenoughupdates"; @@ -57,6 +79,60 @@ public class NotEnoughUpdates { public static final String PRE_VERSION = "0.0"; public static final int VERSION_ID = 20100; public static final int PRE_VERSION_ID = 0; + + public static NotEnoughUpdates INSTANCE = null; + + public NEUManager manager; + public NEUOverlay overlay; + public NEUConfig config; + + private File configFile; + + public File getConfigFile() { + return this.configFile; + } + + public void newConfigFile() { + this.configFile = new File(NotEnoughUpdates.INSTANCE.getNeuDir(), "configNew.json"); + } + + private static final long CHAT_MSG_COOLDOWN = 200; + private long lastChatMessage = 0; + private long secondLastChatMessage = 0; + private String currChatMessage = null; + + //Stolen from Biscut and used for detecting whether in skyblock + private static final Set<String> SKYBLOCK_IN_ALL_LANGUAGES = + Sets.newHashSet("SKYBLOCK", "\u7A7A\u5C9B\u751F\u5B58", "\u7A7A\u5CF6\u751F\u5B58"); + + public GuiScreen openGui = null; + public long lastOpenedGui = 0; + + public Commands commands; + + public static HashMap<String, String> petRarityToColourMap = new HashMap<String, String>() {{ + put("UNKNOWN", EnumChatFormatting.RED.toString()); + put("COMMON", EnumChatFormatting.WHITE.toString()); + put("UNCOMMON", EnumChatFormatting.GREEN.toString()); + put("RARE", EnumChatFormatting.BLUE.toString()); + put("EPIC", EnumChatFormatting.DARK_PURPLE.toString()); + put("LEGENDARY", EnumChatFormatting.GOLD.toString()); + put("MYTHIC", EnumChatFormatting.LIGHT_PURPLE.toString()); + }}; + + public static ProfileViewer profileViewer; + + public boolean packDevEnabled = false; + + private final Gson gson = new GsonBuilder().setPrettyPrinting().excludeFieldsWithoutExposeAnnotation().create(); + private File neuDir; + + public File getNeuDir() { + return this.neuDir; + } + + public Color[][] colourMap = null; + /** * Registers the biomes for the crystal hollows here so optifine knows they exists */ @@ -90,48 +166,6 @@ public class NotEnoughUpdates { .setBiomeName("NeuCrystalHollowsCrystalNucleus") .setFillerBlockMetadata(5470985) .setTemperatureRainfall(0.95F, 0.9F); - private static final long CHAT_MSG_COOLDOWN = 200; - //Stolen from Biscut and used for detecting whether in skyblock - private static final Set<String> SKYBLOCK_IN_ALL_LANGUAGES = - Sets.newHashSet("SKYBLOCK", "\u7A7A\u5C9B\u751F\u5B58", "\u7A7A\u5CF6\u751F\u5B58"); - public static NotEnoughUpdates INSTANCE = null; - public static HashMap<String, String> petRarityToColourMap = new HashMap<String, String>() {{ - put("UNKNOWN", EnumChatFormatting.RED.toString()); - put("COMMON", EnumChatFormatting.WHITE.toString()); - put("UNCOMMON", EnumChatFormatting.GREEN.toString()); - put("RARE", EnumChatFormatting.BLUE.toString()); - put("EPIC", EnumChatFormatting.DARK_PURPLE.toString()); - put("LEGENDARY", EnumChatFormatting.GOLD.toString()); - put("MYTHIC", EnumChatFormatting.LIGHT_PURPLE.toString()); - }}; - public static ProfileViewer profileViewer; - private final Gson gson = new GsonBuilder().setPrettyPrinting().excludeFieldsWithoutExposeAnnotation().create(); - public NEUManager manager; - public NEUOverlay overlay; - public NEUConfig config; - public GuiScreen openGui = null; - public long lastOpenedGui = 0; - public Commands commands; - public boolean packDevEnabled = false; - public Color[][] colourMap = null; - private File configFile; - private long lastChatMessage = 0; - private long secondLastChatMessage = 0; - private String currChatMessage = null; - private File neuDir; - private boolean hasSkyblockScoreboard; - - public File getConfigFile() { - return this.configFile; - } - - public void newConfigFile() { - this.configFile = new File(NotEnoughUpdates.INSTANCE.getNeuDir(), "configNew.json"); - } - - public File getNeuDir() { - return this.neuDir; - } /** * Instantiates NEUIo, NEUManager and NEUOverlay instances. Registers keybinds and adds a shutdown hook to clear tmp folder. @@ -215,14 +249,6 @@ public class NotEnoughUpdates { MinecraftForge.EVENT_BUS.register(new CrystalOverlay()); MinecraftForge.EVENT_BUS.register(new ItemCooldowns()); - if (Minecraft.getMinecraft().getResourceManager() instanceof IReloadableResourceManager) { - IReloadableResourceManager manager = (IReloadableResourceManager) Minecraft.getMinecraft().getResourceManager(); - manager.registerReloadListener(CustomSkulls.getInstance()); - manager.registerReloadListener(NPCRetexturing.getInstance()); - manager.registerReloadListener(new ItemCustomizeManager.ReloadListener()); - manager.registerReloadListener(new CustomBlockSounds.ReloaderListener()); - } - this.commands = new Commands(); BackgroundBlur.registerListener(); @@ -384,6 +410,8 @@ public class NotEnoughUpdates { return hasSkyblockScoreboard(); } + private boolean hasSkyblockScoreboard; + public boolean hasSkyblockScoreboard() { return hasSkyblockScoreboard; } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/DiagCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/DiagCommand.java index dab99698..88264538 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/DiagCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/DiagCommand.java @@ -17,10 +17,8 @@ public class DiagCommand extends ClientCommandBase { private static final String USAGE_TEXT = EnumChatFormatting.WHITE + "Usage: /neudiag <metal | wishing | debug>\n\n" + - "/neudiag metal Metal Detector Solver diagnostics\n" + - " <no sub-command> Show current solution diags\n" + - " center=<off | on> Disable / enable using center\n" + - "/neudiag wishing Wishing Compass Solver diagnostics\n" + + "/neudiag metal Metal Detector Solver diagnostics\n" + + "/neudiag wishing Wishing Compass Solver diagnostics\n" + "/neudiag debug\n" + " <no sub-command> Show current flags\n" + " <enable | disable> <flag> Enable/disable flag\n"; @@ -39,26 +37,7 @@ public class DiagCommand extends ClientCommandBase { String command = args[0].toLowerCase(); switch (command) { case "metal": - if (args.length == 1) { - CrystalMetalDetectorSolver.logDiagnosticData(true); - return; - } - - String subCommand = args[1].toLowerCase(); - if (subCommand.equals("center=off")) { - CrystalMetalDetectorSolver.setDebugDoNotUseCenter(true); - sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + - "Center coordinates-based solutions disabled")); - } - else if (subCommand.equals("center=on")) { - CrystalMetalDetectorSolver.setDebugDoNotUseCenter(false); - sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + - "Center coordinates-based solutions enabled")); - } else { - showUsage(sender); - return; - } - + CrystalMetalDetectorSolver.logDiagnosticData(true); break; case "wishing": CrystalWishingCompassSolver.getInstance().logDiagnosticData(true); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorDraggableList.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorDraggableList.java index 5063d543..61e923f5 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorDraggableList.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorDraggableList.java @@ -9,5 +9,5 @@ import java.lang.annotation.Target; @Target(ElementType.FIELD) public @interface ConfigEditorDraggableList { String[] exampleText(); - boolean allowRemovingElements() default true; + boolean allowDeleting() default true; } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorDraggableList.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorDraggableList.java index df373dbf..4dbde24b 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorDraggableList.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorDraggableList.java @@ -24,7 +24,7 @@ public class GuiOptionEditorDraggableList extends GuiOptionEditor { private static final ResourceLocation DELETE = new ResourceLocation("notenoughupdates:core/delete.png"); private final String[] exampleText; - private final boolean allowRemovingElements; + private final boolean enableDeleting; private final List<Integer> activeText; private int currentDragging = -1; private int dragStartIndex = -1; @@ -39,11 +39,11 @@ public class GuiOptionEditorDraggableList extends GuiOptionEditor { public GuiOptionEditorDraggableList( ConfigProcessor.ProcessedOption option, String[] exampleText, - boolean allowRemovingElements + boolean disableDeleting ) { super(option); - this.allowRemovingElements = allowRemovingElements; + this.enableDeleting = disableDeleting; this.exampleText = exampleText; this.activeText = (List<Integer>) option.get(); } @@ -84,7 +84,7 @@ public class GuiOptionEditorDraggableList extends GuiOptionEditor { GlStateManager.color(1, greenBlue, greenBlue, 1); } - if (allowRemovingElements) { + if (enableDeleting) { Minecraft.getMinecraft().getTextureManager().bindTexture(DELETE); Utils.drawTexturedRect(x + width / 6 + 27, y + 45 - 7 - 13, 11, 14, GL11.GL_NEAREST); } @@ -215,7 +215,7 @@ public class GuiOptionEditorDraggableList extends GuiOptionEditor { dragStartIndex >= 0 && Mouse.getEventButton() == 0 && mouseX >= x + width / 6 + 27 - 3 && mouseX <= x + width / 6 + 27 + 11 + 3 && mouseY >= y + 45 - 7 - 13 - 3 && mouseY <= y + 45 - 7 - 13 + 14 + 3) { - if (allowRemovingElements) { + if (enableDeleting) { activeText.remove(dragStartIndex); } currentDragging = -1; @@ -226,13 +226,13 @@ public class GuiOptionEditorDraggableList extends GuiOptionEditor { if (!Mouse.isButtonDown(0) || dropdownOpen) { currentDragging = -1; dragStartIndex = -1; - if (trashHoverTime > 0 && allowRemovingElements) trashHoverTime = -System.currentTimeMillis(); + if (trashHoverTime > 0 && enableDeleting) trashHoverTime = -System.currentTimeMillis(); } else if (currentDragging >= 0 && mouseX >= x + width / 6 + 27 - 3 && mouseX <= x + width / 6 + 27 + 11 + 3 && mouseY >= y + 45 - 7 - 13 - 3 && mouseY <= y + 45 - 7 - 13 + 14 + 3) { - if (trashHoverTime < 0 && allowRemovingElements) trashHoverTime = System.currentTimeMillis(); + if (trashHoverTime < 0 && enableDeleting) trashHoverTime = System.currentTimeMillis(); } else { - if (trashHoverTime > 0 && allowRemovingElements) trashHoverTime = -System.currentTimeMillis(); + if (trashHoverTime > 0 && enableDeleting) trashHoverTime = -System.currentTimeMillis(); } if (Mouse.getEventButtonState()) { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/struct/ConfigProcessor.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/struct/ConfigProcessor.java index 3eb8a2d1..0d06980a 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/struct/ConfigProcessor.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/struct/ConfigProcessor.java @@ -147,7 +147,7 @@ public class ConfigProcessor { if (optionField.isAnnotationPresent(ConfigEditorDraggableList.class)) { ConfigEditorDraggableList configEditorAnnotation = optionField.getAnnotation(ConfigEditorDraggableList.class); - editor = new GuiOptionEditorDraggableList(option, configEditorAnnotation.exampleText(), configEditorAnnotation.allowRemovingElements()); + editor = new GuiOptionEditorDraggableList(option, configEditorAnnotation.exampleText(), configEditorAnnotation.allowDeleting()); } } if (optionType.isAssignableFrom(String.class)) { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/util/Vec3Comparable.java b/src/main/java/io/github/moulberry/notenoughupdates/core/util/Vec3Comparable.java deleted file mode 100644 index cd144c21..00000000 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/util/Vec3Comparable.java +++ /dev/null @@ -1,129 +0,0 @@ -package io.github.moulberry.notenoughupdates.core.util; - -import net.minecraft.util.BlockPos; -import net.minecraft.util.Vec3; -import net.minecraft.util.Vec3i; - -public class Vec3Comparable extends Vec3 implements Comparable<Vec3Comparable> { - public static final Vec3Comparable NULL_VECTOR = new Vec3Comparable(0.0, 0.0, 0.0); - - public Vec3Comparable(double x, double y, double z) { - super(x, y, z); - } - - public Vec3Comparable(Vec3i sourceVec) { - super(sourceVec); - } - - public Vec3Comparable(Vec3 source) { - super(source.xCoord, source.yCoord, source.zCoord); - } - - public Vec3Comparable(BlockPos source) { - - super(source.getX(), source.getY(), source.getZ()); - } - - public Vec3Comparable(Vec3Comparable source) { - super(source.xCoord, source.yCoord, source.zCoord); - } - - @Override - public Vec3Comparable subtractReverse(Vec3 vec) { - return new Vec3Comparable(super.subtractReverse(vec)); - } - - @Override - public Vec3Comparable normalize() { - return new Vec3Comparable(super.normalize()); - } - - @Override - public Vec3Comparable crossProduct(Vec3 vec) { - return new Vec3Comparable(super.crossProduct(vec)); - } - - @Override - public Vec3Comparable subtract(Vec3 vec) { - return new Vec3Comparable(super.subtract(vec)); - } - - @Override - public Vec3Comparable subtract(double x, double y, double z) { - return new Vec3Comparable(super.subtract(x, y, z)); - } - - @Override - public Vec3Comparable add(Vec3 other) { - return new Vec3Comparable(super.add(other)); - } - - @Override - public Vec3Comparable addVector(double x, double y, double z) { - return new Vec3Comparable(super.addVector(x, y, z)); - } - - @Override - public Vec3Comparable getIntermediateWithXValue(Vec3 vec, double x) { - return new Vec3Comparable(super.getIntermediateWithXValue(vec, x)); - } - - @Override - public Vec3Comparable getIntermediateWithYValue(Vec3 vec, double y) { - return new Vec3Comparable(super.getIntermediateWithYValue(vec, y)); - } - - @Override - public Vec3Comparable getIntermediateWithZValue(Vec3 vec, double z) { - return new Vec3Comparable(super.getIntermediateWithZValue(vec, z)); - } - - @Override - public Vec3Comparable rotatePitch(float pitch) { - return new Vec3Comparable(super.rotatePitch(pitch)); - } - - @Override - public Vec3Comparable rotateYaw(float yaw) { - return new Vec3Comparable(super.rotateYaw(yaw)); - } - - @Override - public boolean equals(Object other) { - if (this == other) { - return true; - } else if (!(other instanceof Vec3Comparable)) { - return false; - } else { - Vec3Comparable vec3c = (Vec3Comparable) other; - return this.xCoord == vec3c.xCoord && this.yCoord == vec3c.yCoord && this.zCoord == vec3c.zCoord; - } - } - - @Override - public int hashCode() { - long bits = 1L; - bits = 31L * bits + doubleToLongBits(xCoord); - bits = 31L * bits + doubleToLongBits(yCoord); - bits = 31L * bits + doubleToLongBits(zCoord); - return (int) (bits ^ (bits >> 32)); - } - - public int compareTo(Vec3Comparable other) { - return this.yCoord == other.yCoord ? - (this.zCoord == other.zCoord ? - (int)(this.xCoord - other.xCoord) - : (int)(this.zCoord - other.zCoord)) - : (int)(this.yCoord - other.yCoord); - } - - public boolean signumEquals(Vec3 other) { - return Math.signum(xCoord) == Math.signum(other.xCoord) && - Math.signum(yCoord) == Math.signum(other.yCoord) && - Math.signum(zCoord) == Math.signum(other.zCoord); - } - - private static long doubleToLongBits(double d) { - return d == 0.0 ? 0L : Double.doubleToLongBits(d); - } -} 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 c7bcc0e1..a787ca99 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionBINWarning.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionBINWarning.java @@ -37,7 +37,9 @@ public class AuctionBINWarning extends GuiElement { private String sellingName; private int sellingPrice; private int lowestPrice; + private int buyPercentage; private int sellStackAmount; + private boolean isALoss = true; private boolean shouldPerformCheck() { if (!NotEnoughUpdates.INSTANCE.config.ahTweaks.enableBINWarning || @@ -110,14 +112,13 @@ public class AuctionBINWarning extends GuiElement { float undercutFactor = 1 - NotEnoughUpdates.INSTANCE.config.ahTweaks.warningThreshold / 100; if (undercutFactor < 0) undercutFactor = 0; if (undercutFactor > 1) undercutFactor = 1; - float overcutFactor = 1 + NotEnoughUpdates.INSTANCE.config.ahTweaks.overcutWarningThreshold / 100; + float overcutFactor = 1 - NotEnoughUpdates.INSTANCE.config.ahTweaks.overcutWarningThreshold / 100; if (overcutFactor < 0) overcutFactor = 0; + if (overcutFactor > 1) overcutFactor = 1; - if ( - (sellingPrice > 0 && lowestPrice > 0 && - ((sellingPrice > sellStackAmount * lowestPrice * overcutFactor) || - sellingPrice < sellStackAmount * lowestPrice * undercutFactor)) - || lowestPrice == -1) { + if ((sellingPrice > 0 && lowestPrice > 0 && sellingPrice < sellStackAmount * lowestPrice * undercutFactor) + || (sellingPrice > 0 && lowestPrice > 0 && sellingPrice > sellStackAmount * lowestPrice * (overcutFactor + 1)) + || lowestPrice == -1) { showWarning = true; return true; } else { @@ -180,9 +181,7 @@ public class AuctionBINWarning extends GuiElement { width / 2, height / 2 - 45 + 25, false, 170, 0xffffffff ); TextRenderUtils.drawStringCenteredScaledMaxWidth( - (lowestPrice > 0 - ? "has a lowest BIN of \u00a76" + lowestPriceStr + "\u00a7r coins" - : "\u00a7cWarning: No lowest BIN found!"), + (lowestPrice > 0 ? "has a lowest BIN of \u00a76" + lowestPriceStr + "\u00a7r coins" : "\u00a7cWarning: No lowest BIN found!"), Minecraft.getMinecraft().fontRendererObj, width / 2, height / 2 - 45 + 34, @@ -191,16 +190,16 @@ public class AuctionBINWarning extends GuiElement { 0xffa0a0a0 ); - boolean isALoss = false; - int buyPercentage = 0; if (sellingPrice > lowestPrice * sellStackAmount) { - buyPercentage = sellingPrice * 100 / (lowestPrice * sellStackAmount) - 100; + buyPercentage = sellingPrice * 100 / (lowestPrice * sellStackAmount); isALoss = false; } else if (sellingPrice < lowestPrice * sellStackAmount) { - buyPercentage = 100 - sellingPrice * 100 / (lowestPrice * sellStackAmount); + buyPercentage = 100 - sellingPrice * 100 / (lowestPrice * sellStackAmount); + if (buyPercentage <= 0) buyPercentage = 1; isALoss = true; } + TextRenderUtils.drawStringCenteredScaledMaxWidth( "Continue selling it for", Minecraft.getMinecraft().fontRendererObj, @@ -211,10 +210,7 @@ public class AuctionBINWarning extends GuiElement { 0xffa0a0a0 ); TextRenderUtils.drawStringCenteredScaledMaxWidth( - "\u00a76" + sellingPriceStr + "\u00a7r coins?" + - ((lowestPrice > 0 && buyPercentage > 0) - ? "(\u00a7" + (isALoss ? "c-" : "a+") + buyPercentage + "%\u00a7r)" - : ""), + "\u00a76" + sellingPriceStr + "\u00a7r coins?" + (lowestPrice > 0 ? "(\u00a7" + (isALoss ? "c-" : "a+") + buyPercentage + "%\u00a7r)" : ""), Minecraft.getMinecraft().fontRendererObj, width / 2, height / 2 - 45 + 59, diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalMetalDetectorSolver.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalMetalDetectorSolver.java index f43ebda2..27c334ad 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalMetalDetectorSolver.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalMetalDetectorSolver.java @@ -1,7 +1,6 @@ package io.github.moulberry.notenoughupdates.miscfeatures; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; -import io.github.moulberry.notenoughupdates.core.util.Vec3Comparable; import io.github.moulberry.notenoughupdates.core.util.render.RenderUtils; import io.github.moulberry.notenoughupdates.options.customtypes.NEUDebugFlag; import io.github.moulberry.notenoughupdates.util.NEUDebugLogger; @@ -12,6 +11,7 @@ import net.minecraft.util.BlockPos; import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IChatComponent; +import net.minecraft.util.Vec3; import net.minecraft.util.Vec3i; import java.util.Arrays; @@ -22,35 +22,25 @@ import java.util.List; import java.util.stream.Collectors; public class CrystalMetalDetectorSolver { - enum SolutionState { - NOT_STARTED, - MULTIPLE, - MULTIPLE_KNOWN, - FOUND, - FOUND_KNOWN, - FAILED, - INVALID, - } - private static final Minecraft mc = Minecraft.getMinecraft(); - private static Vec3Comparable prevPlayerPos; - private static double prevDistToTreasure; + private static BlockPos prevPlayerPos; + private static double prevDistToTreasure = 0; private static HashSet<BlockPos> possibleBlocks = new HashSet<>(); - private static final HashMap<Vec3Comparable, Double> evaluatedPlayerPositions = new HashMap<>(); - private static boolean chestRecentlyFound; - private static long chestLastFoundMillis; + private static final HashMap<BlockPos, Double> evaluatedPlayerPositions = new HashMap<>(); |
