Skip to content

Commit b94d5a3

Browse files
committed
1 parent 0ae1a5e commit b94d5a3

File tree

6 files changed

+49
-18
lines changed

6 files changed

+49
-18
lines changed

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

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,20 @@ public ContainerExtendedFluidPatternTerminal(final InventoryPlayer ip, final ITe
5252

5353
@Override
5454
public void encode() {
55+
ItemStack stack = this.patternSlotOUT.getStack();
5556
if (!checkHasFluidPattern()) {
57+
if (!stack.isEmpty()) {
58+
if (this.patternSlotIN.getStack().isEmpty()) {
59+
this.patternSlotIN.putStack(AEApi.instance().definitions().materials().blankPattern().maybeStack(1).orElse(ItemStack.EMPTY));
60+
this.patternSlotIN.putStack(ItemStack.EMPTY);
61+
} else {
62+
this.patternSlotIN.getStack().grow(1);
63+
this.patternSlotIN.putStack(ItemStack.EMPTY);
64+
}
65+
}
5666
super.encode();
5767
return;
5868
}
59-
ItemStack stack = this.patternSlotOUT.getStack();
6069
if (stack.isEmpty()) {
6170
stack = this.patternSlotIN.getStack();
6271
if (stack.isEmpty() || !isPattern(stack)) {

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

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,15 +58,20 @@ public ContainerFluidPatternTerminal(final InventoryPlayer ip, final ITerminalHo
5858

5959
@Override
6060
public void encode() {
61+
ItemStack stack = this.patternSlotOUT.getStack();
6162
if (!checkHasFluidPattern()) {
62-
if (this.isCraftingMode()
63-
&& this.patternSlotOUT.getStack().getItem() == FCItems.DENSE_ENCODED_PATTERN) {
64-
this.patternSlotOUT.putStack(AEApi.instance().definitions().items().encodedPattern().maybeStack(this.patternSlotOUT.getStack().getCount()).orElse(ItemStack.EMPTY));
63+
if (!stack.isEmpty()) {
64+
if (this.patternSlotIN.getStack().isEmpty()) {
65+
this.patternSlotIN.putStack(AEApi.instance().definitions().materials().blankPattern().maybeStack(1).orElse(ItemStack.EMPTY));
66+
this.patternSlotIN.putStack(ItemStack.EMPTY);
67+
} else {
68+
this.patternSlotIN.getStack().grow(1);
69+
this.patternSlotIN.putStack(ItemStack.EMPTY);
70+
}
6571
}
6672
super.encode();
6773
return;
6874
}
69-
ItemStack stack = this.patternSlotOUT.getStack();
7075
if (stack.isEmpty()) {
7176
stack = this.patternSlotIN.getStack();
7277
if (stack.isEmpty() || !isPattern(stack)) {

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import com.glodblock.github.util.Util;
2828
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
2929
import it.unimi.dsi.fastutil.objects.ObjectArrayList;
30+
import mcp.MethodsReturnNonnullByDefault;
3031
import mekanism.api.gas.GasStack;
3132
import mekanism.api.gas.IGasItem;
3233
import net.minecraft.entity.player.EntityPlayer;
@@ -100,6 +101,7 @@ public TileUltimateEncoder getEncoder() {
100101
}
101102

102103
@Override
104+
@MethodsReturnNonnullByDefault
103105
public ItemStack transferStackInSlot(final EntityPlayer p, final int idx) {
104106
if (Platform.isClient()) {
105107
return ItemStack.EMPTY;

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

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,15 +66,20 @@ public ContainerWirelessFluidPatternTerminal(final InventoryPlayer ip, final Wir
6666

6767
@Override
6868
public void encode() {
69+
ItemStack stack = this.patternSlotOUT.getStack();
6970
if (!checkHasFluidPattern()) {
70-
if (this.isCraftingMode()
71-
&& this.patternSlotOUT.getStack().getItem() == FCItems.DENSE_ENCODED_PATTERN) {
72-
this.patternSlotOUT.putStack(AEApi.instance().definitions().items().encodedPattern().maybeStack(this.patternSlotOUT.getStack().getCount()).orElse(ItemStack.EMPTY));
71+
if (!stack.isEmpty()) {
72+
if (this.patternSlotIN.getStack().isEmpty()) {
73+
this.patternSlotIN.putStack(AEApi.instance().definitions().materials().blankPattern().maybeStack(1).orElse(ItemStack.EMPTY));
74+
this.patternSlotIN.putStack(ItemStack.EMPTY);
75+
} else {
76+
this.patternSlotIN.getStack().grow(1);
77+
this.patternSlotIN.putStack(ItemStack.EMPTY);
78+
}
7379
}
7480
super.encode();
7581
return;
7682
}
77-
ItemStack stack = this.patternSlotOUT.getStack();
7883
if (stack.isEmpty()) {
7984
stack = this.patternSlotIN.getStack();
8085
if (stack.isEmpty() || !isPattern(stack)) {

src/main/java/com/glodblock/github/inventory/GuiType.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -450,7 +450,7 @@ public ItemGuiFactory(final Class<T> invClass) {
450450
@Nullable
451451
@Override
452452
protected T getInventory(final TileEntity tile, final EntityPlayer player, final EnumFacing face, final BlockPos pos) {
453-
if (pos.getZ() == Integer.MIN_VALUE) {
453+
if (pos.getZ() == Integer.MIN_VALUE || (pos.getY() == 0 && pos.getZ() == 0)) {
454454
ItemStack terminal = ItemStack.EMPTY;
455455
if (pos.getY() == 0) { // main inventory
456456
terminal = player.inventory.getStackInSlot(pos.getX());
@@ -487,7 +487,7 @@ public ItemOrPartGuiFactory(final Class<T> invClass) {
487487
@Nullable
488488
@Override
489489
protected T getInventory(final TileEntity tile, final EntityPlayer player, final EnumFacing face, final BlockPos pos) {
490-
if (pos.getZ() == Integer.MIN_VALUE) {
490+
if (pos.getZ() == Integer.MIN_VALUE || (pos.getY() == 0 && pos.getZ() == 0)) {
491491
ItemStack terminal = ItemStack.EMPTY;
492492
if (pos.getY() == 0) { // main inventory
493493
terminal = player.inventory.getStackInSlot(pos.getX());
@@ -524,7 +524,7 @@ public AllGuiFactory(final Class<T> invClass) {
524524
@Nullable
525525
@Override
526526
protected T getInventory(final TileEntity tile, final EntityPlayer player, final EnumFacing face, final BlockPos pos) {
527-
if (pos.getZ() == Integer.MIN_VALUE) {
527+
if (pos.getZ() == Integer.MIN_VALUE || (pos.getY() == 0 && pos.getZ() == 0)) {
528528
ItemStack terminal = ItemStack.EMPTY;
529529
if (pos.getY() == 0) {
530530
terminal = player.inventory.getStackInSlot(pos.getX());

src/main/java/com/glodblock/github/network/CPacketPatternValueSet.java

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -70,12 +70,22 @@ public IMessage onMessage(final CPacketPatternValueSet message, final MessageCon
7070
(GuiType) message.originGui
7171
);
7272
} else {
73-
Platform.openGUI(
74-
player,
75-
context.getTile(),
76-
context.getSide(),
77-
(GuiBridge) message.originGui
78-
);
73+
var tile = context.getTile();
74+
if (tile != null) {
75+
Platform.openGUI(
76+
player,
77+
tile,
78+
context.getSide(),
79+
(GuiBridge) message.originGui
80+
);
81+
} else {
82+
Platform.openGUI(
83+
player,
84+
Ae2Reflect.getContextX(context),
85+
(GuiBridge) message.originGui,
86+
Ae2Reflect.getContextY(context) == 1
87+
);
88+
}
7989
}
8090
if (player.openContainer instanceof FCFluidPatternContainer) {
8191
final Slot slot = player.openContainer.getSlot(message.valueIndex);

0 commit comments

Comments
 (0)