diff options
| author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2024-05-14 17:04:03 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-14 17:04:03 -0400 |
| commit | 992ee43a9e5d78b9613f597923e20f0be4a49f63 (patch) | |
| tree | 7768069aacbbfb255836fd131ca02235d6c56dfe /src/main/java/de/hysky/skyblocker/mixins | |
| parent | cfff7e13191e8c70c8535b831a13b40ce2888ba6 (diff) | |
| parent | 7edaa418067580434ef189a361a6802faabb3b1e (diff) | |
| download | Skyblocker-992ee43a9e5d78b9613f597923e20f0be4a49f63.tar.gz Skyblocker-992ee43a9e5d78b9613f597923e20f0be4a49f63.tar.bz2 Skyblocker-992ee43a9e5d78b9613f597923e20f0be4a49f63.zip | |
Merge pull request #686 from olim88/sign-calculator
Sign calculator
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/mixins')
| -rw-r--r-- | src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java b/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java new file mode 100644 index 00000000..6706db58 --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/mixins/SignEditScreenMixin.java @@ -0,0 +1,44 @@ +package de.hysky.skyblocker.mixins; + + +import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.skyblock.calculators.SignCalculator; +import de.hysky.skyblocker.utils.Utils; +import net.minecraft.client.gui.DrawContext; +import net.minecraft.client.gui.screen.ingame.AbstractSignEditScreen; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import java.util.Objects; + +@Mixin(AbstractSignEditScreen.class) +public abstract class SignEditScreenMixin { + @Shadow + @Final + private String[] messages; + + @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().uiAndVisuals.inputCalculator.enabled && Objects.equals(messages[1], "^^^^^^^^^^^^^^^")) { + SignCalculator.renderCalculator(context, messages[0], context.getScaledWindowWidth() / 2, 55); + } + } + + @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().uiAndVisuals.inputCalculator.enabled && Objects.equals(messages[1], "^^^^^^^^^^^^^^^")) { + boolean isPrice = messages[2].contains("price"); + String value = SignCalculator.getNewValue(isPrice); + if (value.length() >= 15) { + value = value.substring(0, 15); + } + messages[0] = value; + } + } +} |
