diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityPowerSubstation.java b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityPowerSubstation.java index c3fdd2b18b6..af4b6a7a0bd 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityPowerSubstation.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityPowerSubstation.java @@ -587,8 +587,12 @@ public void registerBars(List> bars, PanelSync syncManager.syncValue("energy_capacity", energyCapacityValue); bars.add(b -> b.progress(() -> { - if (energyCapacityValue.getValue().equals(BigInteger.ZERO)) return 0; - return energyStoredValue.getValue().divide(energyCapacityValue.getValue()).doubleValue(); + BigInteger capacity = energyCapacityValue.getValue(); + BigInteger stored = energyStoredValue.getValue(); + if (stored.equals(BigInteger.ZERO)) return 0; + double factor = capacity.divide(stored).doubleValue(); + if (factor == 0) return 0; + return 1 / factor; }) .texture(GTGuiTextures.PROGRESS_BAR_MULTI_ENERGY_YELLOW) .tooltipBuilder(t -> { diff --git a/src/main/java/gregtech/mixins/mui2/BigIntAdapterMixin.java b/src/main/java/gregtech/mixins/mui2/BigIntAdapterMixin.java new file mode 100644 index 00000000000..db374739b7d --- /dev/null +++ b/src/main/java/gregtech/mixins/mui2/BigIntAdapterMixin.java @@ -0,0 +1,20 @@ +package gregtech.mixins.mui2; + +import net.minecraft.network.PacketBuffer; + +import io.netty.buffer.ByteBuf; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +// todo remove in next mui2 update +@Mixin(targets = "com.cleanroommc.modularui.utils.serialization.ByteBufAdapters$3") +public class BigIntAdapterMixin { + + @Redirect(method = "serialize(Lnet/minecraft/network/PacketBuffer;Ljava/math/BigInteger;)V", + at = @At(value = "INVOKE", + target = "Lnet/minecraft/network/PacketBuffer;writeBytes([B)Lio/netty/buffer/ByteBuf;")) + public ByteBuf fixIncorrectCall(PacketBuffer instance, byte[] bytes) { + return instance.writeByteArray(bytes); + } +} diff --git a/src/main/resources/mixins.gregtech.mui2.json b/src/main/resources/mixins.gregtech.mui2.json index 72a083a3408..5299e07453a 100644 --- a/src/main/resources/mixins.gregtech.mui2.json +++ b/src/main/resources/mixins.gregtech.mui2.json @@ -8,6 +8,7 @@ "maxShiftBy": 10 }, "mixins": [ + "BigIntAdapterMixin", "TextWidgetMixin" ], "client": [