Skip to content

Commit 6807038

Browse files
committed
仍然是尝试解决mek的依赖问题 2
1 parent 67ab5eb commit 6807038

File tree

2 files changed

+26
-18
lines changed

2 files changed

+26
-18
lines changed

src/main/java/com/glodblock/github/coremod/mixin/ae2/container/MixinContainerCellWorkbench.java

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,8 @@
99
import appeng.tile.misc.TileCellWorkbench;
1010
import com.glodblock.github.common.item.fake.FakeFluids;
1111
import com.glodblock.github.common.item.fake.FakeItemRegister;
12-
import com.glodblock.github.integration.mek.FakeGases;
1312
import com.glodblock.github.util.ModAndClassUtil;
1413
import com.glodblock.github.util.Util;
15-
import mekanism.api.gas.GasStack;
1614
import net.minecraft.entity.player.EntityPlayerMP;
1715
import net.minecraft.entity.player.InventoryPlayer;
1816
import net.minecraft.inventory.Slot;
@@ -81,24 +79,10 @@ public void doAction(final EntityPlayerMP player, final InventoryAction action,
8179
@Unique
8280
@Optional.Method(modid = "mekeng")
8381
private void mek$doAction(EntityPlayerMP player, InventoryAction action, int slotId, long id, Slot slot, ItemStack stack) {
84-
GasStack gas = null;
85-
switch (action) {
86-
case PICKUP_OR_SET_DOWN -> {
87-
gas = Util.getGasFromItem(stack);
88-
slot.putStack(FakeGases.packGas2Drops(gas));
89-
}
90-
case SPLIT_OR_PLACE_SINGLE -> {
91-
gas = Util.getGasFromItem(ItemHandlerHelper.copyStackWithSize(stack, 1));
92-
final GasStack origin = FakeItemRegister.getStack(slot.getStack());
93-
if (gas != null && gas.equals(origin)) {
94-
gas.amount += origin.amount;
95-
if (gas.amount <= 0) gas = null;
96-
}
97-
slot.putStack(FakeGases.packGas2Drops(gas));
98-
}
99-
}
82+
Object gas = Util.gasAction(action, slot, stack);
10083
if (gas == null) {
10184
super.doAction(player, action, slotId, id);
10285
}
10386
}
87+
10488
}

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

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,13 @@
1313
import appeng.core.localization.PlayerMessages;
1414
import appeng.fluids.util.AEFluidInventory;
1515
import appeng.fluids.util.AEFluidStack;
16+
import appeng.helpers.InventoryAction;
1617
import appeng.parts.reporting.AbstractPartEncoder;
1718
import appeng.tile.inventory.AppEngInternalInventory;
1819
import appeng.util.Platform;
1920
import appeng.util.item.AEItemStack;
2021
import com.glodblock.github.common.item.fake.FakeFluids;
22+
import com.glodblock.github.common.item.fake.FakeItemRegister;
2123
import com.glodblock.github.integration.mek.FakeGases;
2224
import com.glodblock.github.inventory.GuiType;
2325
import com.glodblock.github.inventory.InventoryHandler;
@@ -48,6 +50,7 @@
4850
import net.minecraftforge.fml.common.Optional;
4951
import net.minecraftforge.items.IItemHandler;
5052
import net.minecraftforge.items.IItemHandlerModifiable;
53+
import net.minecraftforge.items.ItemHandlerHelper;
5154

5255
import javax.annotation.Nonnull;
5356
import java.io.IOException;
@@ -402,4 +405,25 @@ public static void onPatternTerminalChangeCrafting(final AbstractPartEncoder par
402405
}
403406
}
404407

408+
@Optional.Method(modid = "mekeng")
409+
public static GasStack gasAction(InventoryAction action, Slot slot, ItemStack stack) {
410+
GasStack gas = null;
411+
switch (action) {
412+
case PICKUP_OR_SET_DOWN -> {
413+
gas = Util.getGasFromItem(stack);
414+
slot.putStack(FakeGases.packGas2Drops(gas));
415+
}
416+
case SPLIT_OR_PLACE_SINGLE -> {
417+
gas = Util.getGasFromItem(ItemHandlerHelper.copyStackWithSize(stack, 1));
418+
final GasStack origin = FakeItemRegister.getStack(slot.getStack());
419+
if (gas != null && gas.equals(origin)) {
420+
gas.amount += origin.amount;
421+
if (gas.amount <= 0) gas = null;
422+
}
423+
slot.putStack(FakeGases.packGas2Drops(gas));
424+
}
425+
}
426+
return gas;
427+
}
428+
405429
}

0 commit comments

Comments
 (0)