Skip to content

Commit eaebb26

Browse files
committed
fix fluid button and recipe transfer issue
1 parent 568962c commit eaebb26

File tree

4 files changed

+23
-8
lines changed

4 files changed

+23
-8
lines changed

src/main/java/com/glodblock/github/client/GuiFluidPatternTerminal.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,9 @@ protected void updateBeforeRender() {
118118
this.combineBtn.visible = true;
119119
}
120120

121+
this.fluidBtn.forceActive(this.container.fluidFirst ? 0 : 1);
122+
this.combineBtn.forceActive(this.container.combine ? 1 : 0);
123+
121124
setSlotsHidden(SlotSemantic.CRAFTING_RESULT, !this.container.isCraftingMode());
122125
setSlotsHidden(SlotSemantic.PROCESSING_RESULT, this.container.isCraftingMode());
123126
}

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,10 @@ public class ContainerFluidPatternTerminal extends ItemTerminalContainer impleme
7676
public boolean craftingMode;
7777
@GuiSync(96)
7878
public boolean substitute;
79-
@GuiSync(105)
80-
public boolean combine = false;
81-
@GuiSync(106)
82-
public boolean fluidFirst = false;
79+
@GuiSync(95)
80+
public boolean combine;
81+
@GuiSync(94)
82+
public boolean fluidFirst;
8383

8484
public ContainerFluidPatternTerminal(int id, PlayerInventory ip, ITerminalHost monitorable) {
8585
super(TYPE, id, ip, monitorable, false);
@@ -458,8 +458,8 @@ public void detectAndSendChanges() {
458458
this.setCraftingMode(this.patternTerminal.isCraftingRecipe());
459459
}
460460
this.substitute = this.patternTerminal.isSubstitution();
461-
this.combine = patternTerminal.getCombineMode();
462-
this.fluidFirst = patternTerminal.getFluidPlaceMode();
461+
this.combine = this.patternTerminal.getCombineMode();
462+
this.fluidFirst = this.patternTerminal.getFluidPlaceMode();
463463
}
464464
}
465465

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

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.glodblock.github.integration.builder;
22

33
import com.glodblock.github.common.item.ItemFluidPacket;
4+
import com.glodblock.github.util.FCUtil;
45
import it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap;
56
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
67
import mezz.jei.api.gui.IRecipeLayout;
@@ -41,8 +42,11 @@ public RecipeTransferBuilder(int maxInput, int maxOutput, IRecipeLayout recipe)
4142
}
4243

4344
private void split() {
44-
for (int index = 0; index < this.recipe.getItemStacks().getGuiIngredients().size(); index ++) {
45+
for (int index : FCUtil.sort(this.recipe.getItemStacks().getGuiIngredients().keySet())) {
4546
IGuiIngredient<ItemStack> ing = this.recipe.getItemStacks().getGuiIngredients().get(index);
47+
if (ing == null) {
48+
continue;
49+
}
4650
if (ing.isInput()) {
4751
List<ItemStack> holder;
4852
if (ing.getAllIngredients().size() < MAX_ITEMS - 1) {
@@ -59,8 +63,11 @@ private void split() {
5963
this.itemOut.add(ing.getDisplayedIngredient());
6064
}
6165
}
62-
for (int index = 0; index < this.recipe.getFluidStacks().getGuiIngredients().size(); index ++) {
66+
for (int index : FCUtil.sort(this.recipe.getFluidStacks().getGuiIngredients().keySet())) {
6367
IGuiIngredient<FluidStack> ing = this.recipe.getFluidStacks().getGuiIngredients().get(index);
68+
if (ing == null) {
69+
continue;
70+
}
6471
if (ing.isInput()) {
6572
this.fluidIn.add(ing.getDisplayedIngredient());
6673
} else {

src/main/java/com/glodblock/github/util/FCUtil.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import java.util.LinkedList;
3535
import java.util.List;
3636
import java.util.Objects;
37+
import java.util.stream.Collectors;
3738

3839
public final class FCUtil {
3940

@@ -96,6 +97,10 @@ public static void clearItemInventory(IItemHandlerModifiable inv) {
9697
}
9798
}
9899

100+
public static Collection<Integer> sort(Collection<Integer> arr) {
101+
return arr.stream().sorted().collect(Collectors.toList());
102+
}
103+
99104
public static int findMax(Collection<Integer> list) {
100105
int a = Integer.MIN_VALUE;
101106
for (int x : list) {

0 commit comments

Comments
 (0)