From da1baa8c0a22d4337f269e2eea9e33932c81ef70 Mon Sep 17 00:00:00 2001 From: olim Date: Sun, 5 May 2024 21:46:42 +0100 Subject: add option to need to start with ("=") also add key for magnitudes into option tooltip --- .../de/hysky/skyblocker/mixins/SignEditScreenMixin.java | 4 ++-- .../hysky/skyblocker/skyblock/auction/EditBidPopup.java | 4 ++-- .../skyblock/calculators/CalculatorCommand.java | 2 +- .../skyblocker/skyblock/calculators/SignCalculator.java | 17 +++++++++++++++-- 4 files changed, 20 insertions(+), 7 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java b/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java index cdffc362..c7053a39 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java @@ -24,7 +24,7 @@ public abstract class SignEditScreenMixin { @Inject(method = "render", at = @At("HEAD")) 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], "^^^^^^^^^^^^^^^")) { + if (Utils.isOnSkyblock() && SkyblockerConfigManager.get().general.inputCalculator.enabled && Objects.equals(messages[1], "^^^^^^^^^^^^^^^")) { SignCalculator.renderCalculator(context, messages[0], context.getScaledWindowWidth() / 2, 55); } } @@ -32,7 +32,7 @@ public abstract class SignEditScreenMixin { @Inject(method = "finishEditing", at = @At("HEAD")) private void skyblocker$finishEditing(CallbackInfo ci) { //if the sign is being used to enter number get number from calculator for if maths has been done - if (Utils.isOnSkyblock() && SkyblockerConfigManager.get().general.enableSignCalculator && Objects.equals(messages[1], "^^^^^^^^^^^^^^^")) { + if (Utils.isOnSkyblock() && SkyblockerConfigManager.get().general.inputCalculator.enabled && Objects.equals(messages[1], "^^^^^^^^^^^^^^^")) { boolean isPrice = messages[2].contains("price"); String value = SignCalculator.getNewValue(isPrice); if (value.length() >= 15) { 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 bc3d7708..def718dd 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/auction/EditBidPopup.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/auction/EditBidPopup.java @@ -56,7 +56,7 @@ 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) { + if (SkyblockerConfigManager.get().general.inputCalculator.enabled) { SignCalculator.renderCalculator(context, textFieldWidget.getText(), context.getScaledWindowWidth() / 2, textFieldWidget.getY() - 8); } } @@ -73,7 +73,7 @@ public class EditBidPopup extends AbstractPopupScreen { } private void done(ButtonWidget widget) { - if (SkyblockerConfigManager.get().general.enableSignCalculator) { + if (SkyblockerConfigManager.get().general.inputCalculator.enabled) { if (!isStringGood(SignCalculator.getNewValue(false))) return; sendPacket(SignCalculator.getNewValue(false)); } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/calculators/CalculatorCommand.java b/src/main/java/de/hysky/skyblocker/skyblock/calculators/CalculatorCommand.java index d78e2c0d..bc44c249 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/calculators/CalculatorCommand.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/calculators/CalculatorCommand.java @@ -44,7 +44,7 @@ public class CalculatorCommand { try { text.append(Text.literal(FORMATTER.format(Calculator.calculate(calculation))).formatted(Formatting.GREEN)); } catch (UnsupportedOperationException e) { - text.append(Text.literal("text.autoconfig.skyblocker.option.general.enableSignCalculator.invalidEquation").formatted(Formatting.RED)); + text.append(Text.literal("text.autoconfig.skyblocker.option.general.inputCalculator.invalidEquation").formatted(Formatting.RED)); } if (CLIENT == null || CLIENT.player == null) { 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 3a398c15..ccdc67f6 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/calculators/SignCalculator.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/calculators/SignCalculator.java @@ -1,5 +1,6 @@ package de.hysky.skyblocker.skyblock.calculators; +import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.utils.Calculator; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; @@ -18,6 +19,16 @@ public class SignCalculator { private static Double output; public static void renderCalculator(DrawContext context, String message, int renderX, int renderY) { + if (SkyblockerConfigManager.get().general.inputCalculator.requiresEquals) { + if (message.startsWith("=")) { + message = message.substring(1); + } + else { + output = null; + lastInput = message; + return; + } + } //only update output if new input if (!message.equals(lastInput)) { // try { @@ -34,8 +45,10 @@ public class SignCalculator { public static String getNewValue(Boolean isPrice) { if (output == null) { - return ""; + //if mode is not activated or just invalid equation return what the user typed in + return lastInput; } + //price can except decimals and exponents if (isPrice) { return output.toString(); @@ -47,7 +60,7 @@ public class SignCalculator { 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); + text = Text.translatable("text.autoconfig.skyblocker.option.general.inputCalculator.invalidEquation").formatted(Formatting.RED); } else { text = Text.literal(input + " = " + FORMATTER.format(output)).formatted(Formatting.GREEN); } -- cgit