diff --git a/src/main/java/gregtech/common/covers/CoverFluidVoidingAdvanced.java b/src/main/java/gregtech/common/covers/CoverFluidVoidingAdvanced.java index f65a83df756..b886c1a6278 100644 --- a/src/main/java/gregtech/common/covers/CoverFluidVoidingAdvanced.java +++ b/src/main/java/gregtech/common/covers/CoverFluidVoidingAdvanced.java @@ -116,6 +116,8 @@ public int getTransferAmount() { public void setVoidingMode(VoidingMode transferMode) { this.voidingMode = transferMode; + this.fluidFilterContainer.setBucketOnly(transferMode == VoidingMode.VOID_ANY); + this.fluidFilterContainer.setMaxTransferSize(getMaxTransferRate()); this.markDirty(); } @@ -216,7 +218,7 @@ public void initFilterUI(int y, Consumer widgetGroup) { @Override public ModularPanel buildUI(SidedPosGuiData guiData, GuiSyncManager guiSyncManager) { - return super.buildUI(guiData, guiSyncManager).height(192 + 38); + return super.buildUI(guiData, guiSyncManager).height(192 + 20); } @Override diff --git a/src/main/java/gregtech/common/covers/CoverPump.java b/src/main/java/gregtech/common/covers/CoverPump.java index fe22399783e..05626a31546 100644 --- a/src/main/java/gregtech/common/covers/CoverPump.java +++ b/src/main/java/gregtech/common/covers/CoverPump.java @@ -106,12 +106,13 @@ public String getStringTransferRate() { } public void setTransferRate(int transferRate) { + if (bucketMode == BucketMode.BUCKET) transferRate *= 1000; this.transferRate = MathHelper.clamp(transferRate, 1, maxFluidTransferRate); markDirty(); } public int getTransferRate() { - return transferRate; + return bucketMode == BucketMode.BUCKET ? transferRate / 1000 : transferRate; } protected void adjustTransferRate(int amount) { @@ -278,14 +279,8 @@ protected ParentWidget createUI(ModularPanel mainPanel, GuiSyncManager syncMa throughput.updateCacheFromSource(true); var throughputString = new StringSyncValue( - () -> String.valueOf(switch (getBucketMode()) { - case BUCKET -> throughput.getIntValue() / 1000; - case MILLI_BUCKET -> throughput.getIntValue(); - }), - s -> throughput.setValue(switch (getBucketMode()) { - case BUCKET -> Integer.parseInt(s) * 1000; - case MILLI_BUCKET -> Integer.parseInt(s); - })); + throughput::getStringValue, + throughput::setStringValue); throughputString.updateCacheFromSource(true); var pumpMode = new EnumSyncValue<>(PumpMode.class, this::getPumpMode, this::setPumpMode); diff --git a/src/main/java/gregtech/common/covers/filter/SimpleFluidFilter.java b/src/main/java/gregtech/common/covers/filter/SimpleFluidFilter.java index 2f4175e7285..786ec4c51ab 100644 --- a/src/main/java/gregtech/common/covers/filter/SimpleFluidFilter.java +++ b/src/main/java/gregtech/common/covers/filter/SimpleFluidFilter.java @@ -161,11 +161,6 @@ public void setFluidAmounts(int amount) { } } - @Override - public int getMaxTransferRate() { - return isBucketOnly() ? 1000 : super.getMaxTransferRate(); - } - @Override public void onTransferRateChange() { for (int i = 0; i < getSlots(); i++) { @@ -230,7 +225,7 @@ protected boolean isBucketOnly() { @Override public int getFluidAmount() { - return isEmpty() ? 0 : getFluidTag().getInteger(FLUID_AMOUNT); + return getFluidTag().getInteger(FLUID_AMOUNT); } @Override