diff options
author | olim <bobq4582@gmail.com> | 2024-05-05 19:28:40 +0100 |
---|---|---|
committer | olim <bobq4582@gmail.com> | 2024-05-09 22:42:35 +0100 |
commit | 52054467eac250be104d53f2aa6264eced690d44 (patch) | |
tree | 68d3dca9849a9e7cf02ec49825a24b98ea501b3c | |
parent | ea91129f9e4931c1435c6f294ccc58ff1f75dbdd (diff) | |
download | Skyblocker-52054467eac250be104d53f2aa6264eced690d44.tar.gz Skyblocker-52054467eac250be104d53f2aa6264eced690d44.tar.bz2 Skyblocker-52054467eac250be104d53f2aa6264eced690d44.zip |
add e (160) and addapt for other ui
added magnitude e as valid. and added to EditBidPopup.
4 files changed, 23 insertions, 14 deletions
diff --git a/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java b/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java index d1800e9b..cdffc362 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java @@ -25,7 +25,7 @@ public abstract class SignEditScreenMixin { private void skyblocker$render(DrawContext context, int mouseX, int mouseY, float delta, CallbackInfo ci) { //if the sign is being used to enter number send it to the sign calculator if (Utils.isOnSkyblock() && SkyblockerConfigManager.get().general.enableSignCalculator && Objects.equals(messages[1], "^^^^^^^^^^^^^^^")) { - SignCalculator.renderSign(context, messages); + SignCalculator.renderCalculator(context, messages[0], context.getScaledWindowWidth() / 2, 55); } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/auction/EditBidPopup.java b/src/main/java/de/hysky/skyblocker/skyblock/auction/EditBidPopup.java index 9d460803..bc3d7708 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/auction/EditBidPopup.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/auction/EditBidPopup.java @@ -1,5 +1,7 @@ package de.hysky.skyblocker.skyblock.auction; +import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.skyblock.calculators.SignCalculator; import de.hysky.skyblocker.utils.render.gui.AbstractPopupScreen; import net.minecraft.block.entity.SignBlockEntity; import net.minecraft.client.MinecraftClient; @@ -9,7 +11,6 @@ import net.minecraft.network.packet.c2s.play.UpdateSignC2SPacket; import net.minecraft.text.Style; import net.minecraft.text.Text; import org.jetbrains.annotations.NotNull; -import org.lwjgl.glfw.GLFW; public class EditBidPopup extends AbstractPopupScreen { private DirectionalLayoutWidget layout = DirectionalLayoutWidget.vertical(); @@ -55,6 +56,9 @@ public class EditBidPopup extends AbstractPopupScreen { public void renderBackground(DrawContext context, int mouseX, int mouseY, float delta) { super.renderBackground(context, mouseX, mouseY, delta); drawPopupBackground(context, layout.getX(), layout.getY(), layout.getWidth(), layout.getHeight()); + if (SkyblockerConfigManager.get().general.enableSignCalculator) { + SignCalculator.renderCalculator(context, textFieldWidget.getText(), context.getScaledWindowWidth() / 2, textFieldWidget.getY() - 8); + } } private boolean isStringGood(String s) { @@ -69,8 +73,14 @@ public class EditBidPopup extends AbstractPopupScreen { } private void done(ButtonWidget widget) { - if (!isStringGood(textFieldWidget.getText().trim())) return; - sendPacket(textFieldWidget.getText().trim()); + if (SkyblockerConfigManager.get().general.enableSignCalculator) { + if (!isStringGood(SignCalculator.getNewValue(false))) return; + sendPacket(SignCalculator.getNewValue(false)); + } + else { + if (!isStringGood(textFieldWidget.getText().trim())) return; + sendPacket(textFieldWidget.getText().trim()); + } this.close(); } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/calculators/SignCalculator.java b/src/main/java/de/hysky/skyblocker/skyblock/calculators/SignCalculator.java index 82d86ba7..3a398c15 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/calculators/SignCalculator.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/calculators/SignCalculator.java @@ -15,23 +15,21 @@ public class SignCalculator { private static final DecimalFormat FORMATTER = new DecimalFormat("#,###.##"); private static String lastInput; - private static String input; private static Double output; - public static void renderSign(DrawContext context, String[] messages) { - input = messages[0]; + public static void renderCalculator(DrawContext context, String message, int renderX, int renderY) { //only update output if new input - if (!input.equals(lastInput)) { // + if (!message.equals(lastInput)) { // try { - output = Calculator.calculate(input); + output = Calculator.calculate(message); } catch (Exception e) { output = null; } } - render(context); + render(context, message, renderX, renderY); - lastInput = input; + lastInput = message; } public static String getNewValue(Boolean isPrice) { @@ -46,7 +44,7 @@ public class SignCalculator { return Long.toString(Math.round(output)); } - private static void render(DrawContext context) { + private static void render(DrawContext context, String input, int renderX, int renderY) { Text text; if (output == null) { text = Text.translatable("text.autoconfig.skyblocker.option.general.enableSignCalculator.invalidEquation").formatted(Formatting.RED); @@ -54,6 +52,6 @@ public class SignCalculator { text = Text.literal(input + " = " + FORMATTER.format(output)).formatted(Formatting.GREEN); } - context.drawCenteredTextWithShadow(CLIENT.textRenderer, text, context.getScaledWindowWidth() / 2, 55, 0xFFFFFFFF); + context.drawCenteredTextWithShadow(CLIENT.textRenderer, text, renderX, renderY, 0xFFFFFFFF); } } diff --git a/src/main/java/de/hysky/skyblocker/utils/Calculator.java b/src/main/java/de/hysky/skyblocker/utils/Calculator.java index bb6ed768..157936b3 100644 --- a/src/main/java/de/hysky/skyblocker/utils/Calculator.java +++ b/src/main/java/de/hysky/skyblocker/utils/Calculator.java @@ -18,9 +18,10 @@ public class Calculator { int tokenLength; } - private static final Pattern NUMBER_PATTERN = Pattern.compile("(\\d+\\.?\\d*)([kmbs]?)"); + private static final Pattern NUMBER_PATTERN = Pattern.compile("(\\d+\\.?\\d*)([kmbse]?)"); private static final HashMap<String, Integer> magnitudeValues = Util.make(new HashMap<>(), map -> { map.put("s", 64); + map.put("e", 160); map.put("k", 1000); map.put("m", 1000000); map.put("b", 1000000000); |