Skip to content

Commit 30b9f10

Browse files
Fix Robot Arms ignoring Keep Exact behavior when taking input from a Pipe (#3812)
1 parent d4c54e7 commit 30b9f10

2 files changed

Lines changed: 8 additions & 8 deletions

File tree

src/main/java/com/gregtechceu/gtceu/common/cover/ConveyorCover.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -421,10 +421,10 @@ protected static class GroupItemInfo {
421421
}
422422

423423
public boolean shouldRespectDistributionMode() {
424-
return getDistributionMode() != DistributionMode.INSERT_FIRST &&
425-
((io == IO.IN) ?
426-
(coverHolder.getLevel().getBlockEntity(coverHolder.getPos()) instanceof ItemPipeBlockEntity) :
427-
(getAdjacentItemHandler() instanceof ItemPipeBlockEntity));
424+
return ((io == IO.IN) ?
425+
(coverHolder.getLevel().getBlockEntity(coverHolder.getPos()) instanceof ItemPipeBlockEntity) :
426+
(coverHolder.getLevel().getBlockEntity(coverHolder.getPos()
427+
.relative(attachedSide)) instanceof ItemPipeBlockEntity));
428428
}
429429

430430
//////////////////////////////////////
@@ -442,6 +442,7 @@ public Widget createUIWidget() {
442442
DistributionMode.values(), distributionMode, this::setDistributionMode);
443443

444444
distributionSelector.setVisible(shouldRespectDistributionMode());
445+
group.addWidget(distributionSelector);
445446

446447
ioModeSwitch = new SwitchWidget(10, 45, 20, 20,
447448
(clickData, value) -> {

src/main/java/com/gregtechceu/gtceu/common/pipelike/item/ItemNetHandler.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -334,11 +334,10 @@ private ItemStack insertOverRobotArm(IItemHandler handler, RobotArmCover arm, It
334334
case TRANSFER_ANY:
335335
return insertIntoDestination(handler, stack, simulate, allowed, ignoreLimit);
336336
case KEEP_EXACT:
337-
if (arm.getFilterHandler().getFilter().supportsAmounts()) {
338-
count = rate - countStack(handler, stack, arm);
339-
} else {
340-
count = rate;
337+
if (rate == Integer.MAX_VALUE) {
338+
rate = arm.getGlobalTransferLimit();
341339
}
340+
count = rate - countStack(handler, stack, arm);
342341
if (count <= 0) return stack;
343342
count = Math.min(allowed, Math.min(stack.getCount(), count));
344343
return insertIntoDestination(handler, stack, simulate, count, ignoreLimit);

0 commit comments

Comments
 (0)