From be9a63e5a08d4497d02e5fb9779a5f9fbf29660e Mon Sep 17 00:00:00 2001 From: Hexeption Date: Fri, 14 Jun 2024 09:31:50 +0100 Subject: [PATCH] Don't show long number but infinity sign --- .../MixinWirelessAccessPointScreen.java | 46 +++++++++++++++++++ .../resources/AEInfinityBooster.mixins.json | 3 +- 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 src/main/java/uk/co/hexeption/aeinfinitybooster/mixins/MixinWirelessAccessPointScreen.java diff --git a/src/main/java/uk/co/hexeption/aeinfinitybooster/mixins/MixinWirelessAccessPointScreen.java b/src/main/java/uk/co/hexeption/aeinfinitybooster/mixins/MixinWirelessAccessPointScreen.java new file mode 100644 index 0000000..35bab61 --- /dev/null +++ b/src/main/java/uk/co/hexeption/aeinfinitybooster/mixins/MixinWirelessAccessPointScreen.java @@ -0,0 +1,46 @@ +package uk.co.hexeption.aeinfinitybooster.mixins; + +import appeng.client.gui.AEBaseScreen; +import appeng.client.gui.implementations.WirelessAccessPointScreen; +import appeng.client.gui.style.ScreenStyle; +import appeng.core.localization.GuiText; +import appeng.menu.implementations.WirelessAccessPointMenu; +import appeng.util.Platform; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.player.Inventory; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(value = WirelessAccessPointScreen.class, remap = false) +public class MixinWirelessAccessPointScreen extends AEBaseScreen { + + public MixinWirelessAccessPointScreen(WirelessAccessPointMenu menu, Inventory playerInventory, Component title, ScreenStyle style) { + + super(menu, playerInventory, title, style); + } + + @Inject(method = "updateBeforeRender", at = @At("HEAD"), cancellable = true) + private void updateBeforeRender(CallbackInfo ci) { + super.updateBeforeRender(); + + Component rangeText = Component.empty(); + Component energyUseText = Component.empty(); + if (menu.getRange() > 0) { + double rangeBlocks = menu.getRange() / 10.0; + rangeText = GuiText.WirelessRange.text(rangeBlocks); + energyUseText = GuiText.PowerUsageRate.text(Platform.formatPowerLong(menu.getDrain(), true)); + } + + if(menu.getRange() == Long.MAX_VALUE) { + rangeText = GuiText.WirelessRange.text("∞"); + energyUseText = GuiText.PowerUsageRate.text(Platform.formatPowerLong(menu.getDrain(), true)); + } + + setTextContent("range", rangeText); + setTextContent("energy_use", energyUseText); + + ci.cancel(); + } +} diff --git a/src/main/resources/AEInfinityBooster.mixins.json b/src/main/resources/AEInfinityBooster.mixins.json index 41cdbcf..d5f1a01 100644 --- a/src/main/resources/AEInfinityBooster.mixins.json +++ b/src/main/resources/AEInfinityBooster.mixins.json @@ -8,7 +8,8 @@ "MixinWirelessTerminalMenuHost", "MixinWirelessBlockEntity", "MixinRestrictedInputSlot", - "MixinWirelessMenu" + "MixinWirelessMenu", + "MixinWirelessAccessPointScreen" ], "client": [ ],