Skip to content

Commit

Permalink
try fix weird throughput and bucket mode issues
Browse files Browse the repository at this point in the history
  • Loading branch information
ghzdude committed Jan 19, 2024
1 parent a9fb241 commit df1581a
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}

Expand Down Expand Up @@ -216,7 +218,7 @@ public void initFilterUI(int y, Consumer<Widget> 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
Expand Down
13 changes: 4 additions & 9 deletions src/main/java/gregtech/common/covers/CoverPump.java
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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++) {
Expand Down Expand Up @@ -230,7 +225,7 @@ protected boolean isBucketOnly() {

@Override
public int getFluidAmount() {
return isEmpty() ? 0 : getFluidTag().getInteger(FLUID_AMOUNT);
return getFluidTag().getInteger(FLUID_AMOUNT);
}

@Override
Expand Down

0 comments on commit df1581a

Please sign in to comment.