made the crafting terminal ghost transfer also consider craftables

Closes #50
This commit is contained in:
Ell 2020-10-27 22:51:07 +01:00
parent a5b7bd1e82
commit bb62acf45f

View file

@ -75,13 +75,20 @@ public class CraftingTerminalTileEntity extends ItemTerminalTileEntity {
if (items.size() > 1) {
int highestAmount = 0;
for (ItemStack stack : items) {
EquatableItemStack equatable = new EquatableItemStack(stack);
NetworkItem network = this.networkItems.get(equatable);
if (network == null)
continue;
int amount = network.getLocations().stream()
.mapToInt(l -> l.getItemAmount(this.world, stack, ItemEqualityType.NBT))
.sum();
int amount = 0;
// check existing items
NetworkItem network = this.networkItems.get(new EquatableItemStack(stack));
if (network != null) {
amount = network.getLocations().stream()
.mapToInt(l -> l.getItemAmount(this.world, stack, ItemEqualityType.NBT))
.sum();
}
// check craftables
if (amount <= 0 && highestAmount <= 0) {
PipeTileEntity pipe = this.getConnectedPipe();
if (pipe != null)
amount = PipeNetwork.get(this.world).getCraftableAmount(pipe.getPos(), null, stack, ItemEqualityType.NBT);
}
if (amount > highestAmount) {
highestAmount = amount;
toSet = stack;