Skip to content

Commit 167c0c6

Browse files
committed
fix jei item transfer size limit
1 parent 999dd09 commit 167c0c6

12 files changed

+33
-37
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ dependencies {
5151
deobfCompile 'curse.maven:modular-machinery-270790:2761302' // 1.11.1
5252
deobfCompile 'curse.maven:codechicken-lib-1-8-242818:2779848' //ccl
5353
deobfCompile 'curse.maven:gregtech-ce-unofficial-557242:3784798' // gt
54-
deobfCompile 'curse.maven:ae2-extended-life-570458:4429430' //pae2
54+
deobfCompile 'curse.maven:ae2-extended-life-570458:4646658' //pae2
5555
deobfCompile 'curse.maven:dynamistics-383632:3056455' // dy
5656
compileOnly 'curse.maven:opencomputers-223008:4630537' //oc
5757
runtime 'curse.maven:opencomputers-223008:4630537' //oc

src/main/java/com/glodblock/github/client/container/ContainerExtendedFluidPatternTerminal.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -427,7 +427,7 @@ else if (!slot.getStack().isEmpty()) {
427427
}
428428

429429
@Override
430-
public void acceptPattern(Int2ObjectMap<ItemStack[]> inputs, ItemStack[] outputs, boolean combine) {
430+
public void acceptPattern(Int2ObjectMap<ItemStack[]> inputs, List<ItemStack> outputs, boolean combine) {
431431
if (part instanceof PartExtendedFluidPatternTerminal) {
432432
((PartExtendedFluidPatternTerminal) part).onChangeCrafting(inputs, outputs, combine);
433433
}

src/main/java/com/glodblock/github/client/container/ContainerFluidPatternEncoder.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ public void doAction(EntityPlayerMP player, InventoryAction action, int slotId,
156156
}
157157

158158
@Override
159-
public void acceptPattern(Int2ObjectMap<ItemStack[]> inputs, ItemStack[] outputs, boolean combine) {
159+
public void acceptPattern(Int2ObjectMap<ItemStack[]> inputs, List<ItemStack> outputs, boolean combine) {
160160
AeStackInventory<IAEItemStack> craftingSlot = tile.getCraftingSlots();
161161
AeStackInventory<IAEItemStack> outputSlot = tile.getOutputSlots();
162162
for (int index : inputs.keySet()) {
@@ -165,9 +165,9 @@ public void acceptPattern(Int2ObjectMap<ItemStack[]> inputs, ItemStack[] outputs
165165
craftingSlot.setStack(index, AEItemStack.fromItemStack(items[0]));
166166
}
167167
}
168-
int bound = Math.min(outputSlot.getSlotCount(), outputs.length);
168+
int bound = Math.min(outputSlot.getSlotCount(), outputs.size());
169169
for (int index = 0; index < bound; index ++) {
170-
outputSlot.setStack(index, AEItemStack.fromItemStack(outputs[index]));
170+
outputSlot.setStack(index, AEItemStack.fromItemStack(outputs.get(index)));
171171
}
172172
}
173173

src/main/java/com/glodblock/github/client/container/ContainerFluidPatternTerminal.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ private static IAEItemStack[] collectInventory(Slot[] slots) {
203203
}
204204

205205
@Override
206-
public void acceptPattern(Int2ObjectMap<ItemStack[]> inputs, ItemStack[] outputs, boolean combine) {
206+
public void acceptPattern(Int2ObjectMap<ItemStack[]> inputs, List<ItemStack> outputs, boolean combine) {
207207
if (Ae2Reflect.getPart(this) instanceof PartFluidPatternTerminal) {
208208
((PartFluidPatternTerminal) Ae2Reflect.getPart(this)).onChangeCrafting(inputs, outputs, combine);
209209
}

src/main/java/com/glodblock/github/common/part/PartExtendedFluidPatternTerminal.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import net.minecraftforge.items.IItemHandlerModifiable;
3333

3434
import javax.annotation.Nonnull;
35+
import java.util.List;
3536

3637
public class PartExtendedFluidPatternTerminal extends PartExpandedProcessingPatternTerminal {
3738

@@ -125,7 +126,7 @@ public void onChangeInventory(IItemHandler inv, int slot, InvOperation mc, ItemS
125126
super.onChangeInventory(inv, slot, mc, removedStack, newStack);
126127
}
127128

128-
public void onChangeCrafting(Int2ObjectMap<ItemStack[]> inputs, ItemStack[] outputs, boolean combine) {
129+
public void onChangeCrafting(Int2ObjectMap<ItemStack[]> inputs, List<ItemStack> outputs, boolean combine) {
129130
IItemHandler crafting = this.getInventoryByName("crafting");
130131
IItemHandler output = this.getInventoryByName("output");
131132
IItemList<IAEItemStack> storageList = this.getInventory(Util.ITEM) == null ?
@@ -145,9 +146,9 @@ public void onChangeCrafting(Int2ObjectMap<ItemStack[]> inputs, ItemStack[] outp
145146
final ItemStack item = fuzzyFind[x];
146147
((AppEngInternalInventory) crafting).setStackInSlot(x, item == null ? ItemStack.EMPTY : item);
147148
}
148-
bound = Math.min(output.getSlots(), outputs.length);
149+
bound = Math.min(output.getSlots(), outputs.size());
149150
for (int x = 0; x < bound; x++) {
150-
final ItemStack item = outputs[x];
151+
final ItemStack item = outputs.get(x);
151152
((AppEngInternalInventory) output).setStackInSlot(x, item == null ? ItemStack.EMPTY : item);
152153
}
153154
}

src/main/java/com/glodblock/github/common/part/PartFluidPatternTerminal.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import net.minecraftforge.items.IItemHandlerModifiable;
3636

3737
import javax.annotation.Nonnull;
38+
import java.util.List;
3839

3940
public class PartFluidPatternTerminal extends PartPatternTerminal {
4041

@@ -168,7 +169,7 @@ public void putPattern(IAEItemStack[] inputs, IAEItemStack[] outputs) {
168169
}
169170
}
170171

171-
public void onChangeCrafting(Int2ObjectMap<ItemStack[]> inputs, ItemStack[] outputs, boolean combine) {
172+
public void onChangeCrafting(Int2ObjectMap<ItemStack[]> inputs, List<ItemStack> outputs, boolean combine) {
172173
IItemHandler crafting = this.getInventoryByName("crafting");
173174
IItemHandler output = this.getInventoryByName("output");
174175
IItemList<IAEItemStack> storageList = this.getInventory(Util.ITEM) == null ?
@@ -188,9 +189,9 @@ public void onChangeCrafting(Int2ObjectMap<ItemStack[]> inputs, ItemStack[] outp
188189
final ItemStack item = fuzzyFind[x];
189190
((AppEngInternalInventory) crafting).setStackInSlot(x, item == null ? ItemStack.EMPTY : item);
190191
}
191-
bound = Math.min(output.getSlots(), outputs.length);
192+
bound = Math.min(output.getSlots(), outputs.size());
192193
for (int x = 0; x < bound; x++) {
193-
final ItemStack item = outputs[x];
194+
final ItemStack item = outputs.get(x);
194195
((AppEngInternalInventory) output).setStackInSlot(x, item == null ? ItemStack.EMPTY : item);
195196
}
196197
}

src/main/java/com/glodblock/github/integration/jei/ExtendedFluidPatternTerminalRecipeTransferHandler.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,7 @@ public IRecipeTransferError transferRecipe(@Nonnull ContainerExtendedFluidPatter
3333
}
3434

3535
if (doTransfer && container.part instanceof PartExtendedFluidPatternTerminal) {
36-
PartExtendedFluidPatternTerminal tile = (PartExtendedFluidPatternTerminal)container.part;
3736
RecipeTransferBuilder transfer = new RecipeTransferBuilder(
38-
tile.getInventoryByName("crafting").getSlots(),
39-
tile.getInventoryByName("output").getSlots(),
4037
recipeLayout)
4138
.clearEmptySlot(true)
4239
.putFluidFirst(container.fluidFirst)

src/main/java/com/glodblock/github/integration/jei/FluidPatternEncoderRecipeTransferHandler.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,7 @@ public IRecipeTransferError transferRecipe(@Nonnull ContainerFluidPatternEncoder
3131
return new RecipeTransferErrorTooltip(I18n.format(NameConst.TT_PROCESSING_RECIPE_ONLY));
3232
}
3333
if (doTransfer) {
34-
TileFluidPatternEncoder tile = container.getTile();
3534
RecipeTransferBuilder transfer = new RecipeTransferBuilder(
36-
tile.getCraftingSlots().getSlotCount(),
37-
tile.getOutputSlots().getSlotCount(),
3835
recipeLayout)
3936
.clearEmptySlot(true)
4037
.putFluidFirst(false)

src/main/java/com/glodblock/github/integration/jei/FluidPatternTerminalRecipeTransferHandler.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,7 @@ else if (!container.isCraftingMode() && recipeLayout.getRecipeCategory().getUid(
4242
}
4343
} catch (IOException ignore) {
4444
}
45-
PartFluidPatternTerminal tile = (PartFluidPatternTerminal) Ae2Reflect.getPart(container);
4645
RecipeTransferBuilder transfer = new RecipeTransferBuilder(
47-
tile.getInventoryByName("crafting").getSlots(),
48-
tile.getInventoryByName("output").getSlots(),
4946
recipeLayout)
5047
.clearEmptySlot(!craftMode)
5148
.putFluidFirst(container.fluidFirst)

src/main/java/com/glodblock/github/integration/jei/RecipeTransferBuilder.java

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@ public class RecipeTransferBuilder {
1919
private static final int MAX_ITEMS = 16;
2020

2121
private final Int2ObjectArrayMap<ItemStack[]> in;
22-
private final int bound;
23-
private final ItemStack[] out;
22+
private final List<ItemStack> out;
2423
private final IRecipeLayout recipe;
2524
private List<ItemStack[]> itemsIn;
2625
private List<FluidStack> fluidIn;
@@ -29,10 +28,9 @@ public class RecipeTransferBuilder {
2928
private boolean noNull = true;
3029
private boolean fluidFirst = false;
3130

32-
public RecipeTransferBuilder(int maxInput, int maxOutput, IRecipeLayout recipe) {
31+
public RecipeTransferBuilder(IRecipeLayout recipe) {
3332
this.in = new Int2ObjectArrayMap<>();
34-
this.bound = maxInput;
35-
this.out = new ItemStack[maxOutput];
33+
this.out = new ArrayList<>();
3634
this.recipe = recipe;
3735
this.itemsIn = new ArrayList<>();
3836
this.itemOut = new ArrayList<>();
@@ -88,7 +86,7 @@ private void split() {
8886
}
8987

9088
private void setItemIn(int offset) {
91-
int bound = Math.min(this.bound, this.itemsIn.size() + offset);
89+
int bound = this.itemsIn.size() + offset;
9290
for (int index = offset; index < bound; index ++) {
9391
int i = index - offset;
9492
if (this.itemsIn.get(i) != null && this.itemsIn.get(i).length > 0) {
@@ -98,7 +96,7 @@ private void setItemIn(int offset) {
9896
}
9997

10098
private void setFluidIn(int offset) {
101-
int bound = Math.min(this.bound, this.fluidIn.size() + offset);
99+
int bound = this.fluidIn.size() + offset;
102100
for (int index = offset; index < bound; index ++) {
103101
int i = index - offset;
104102
if (this.fluidIn.get(i) != null) {
@@ -108,11 +106,11 @@ private void setFluidIn(int offset) {
108106
}
109107

110108
private void setOutputs() {
111-
for (int index = 0; index < this.out.length; index ++) {
109+
for (int index = 0; index < this.out.size(); index ++) {
112110
if (index < this.itemOut.size()) {
113-
this.out[index] = this.itemOut.get(index);
111+
this.out.add(this.itemOut.get(index));
114112
} else if (index - this.itemOut.size() < this.fluidOut.size()) {
115-
this.out[index] = ItemFluidPacket.newStack(this.fluidOut.get(index - this.itemOut.size()));
113+
this.out.add(ItemFluidPacket.newStack(this.fluidOut.get(index - this.itemOut.size())));
116114
}
117115
}
118116
}
@@ -145,7 +143,7 @@ public RecipeTransferBuilder build() {
145143
return this;
146144
}
147145

148-
public ItemStack[] getOutput() {
146+
public List<ItemStack> getOutput() {
149147
return this.out;
150148
}
151149

0 commit comments

Comments
 (0)