Skip to content

Commit

Permalink
Use GT and ae2fс fluids in ME inputs/outputs and storagе (#191)
Browse files Browse the repository at this point in the history
* use of GT and ae2fс fluids in inputs/outputs and storagе

* remove unused imports

---------

Co-authored-by: slprime <[email protected]>
  • Loading branch information
slprime and slprime authored Feb 1, 2024
1 parent e3cc935 commit 0caf89e
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 48 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;

import com.glodblock.github.client.gui.base.FCGuiMonitor;
import com.glodblock.github.client.gui.container.ContainerFluidMonitor;
Expand Down Expand Up @@ -55,8 +56,9 @@ protected IAEItemStack transformItem(IAEItemStack stack) {

@Override
public void setTextFieldValue(String displayName, int mousex, int mousey, ItemStack stack) {
if (Util.getFluidFromItem(stack) != null) {
setSearchString(Util.getFluidFromItem(stack).getLocalizedName(), true);
final FluidStack fluid = Util.getFluidFromItem(stack);
if (fluid != null) {
setSearchString(fluid.getLocalizedName(), true);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,7 @@
import net.minecraft.nbt.NBTBase;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraftforge.fluids.FluidContainerRegistry;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.IFluidContainerItem;

import com.glodblock.github.client.gui.container.ContainerItemMonitor;
import com.glodblock.github.common.item.ItemFluidDrop;
Expand Down Expand Up @@ -133,17 +131,19 @@ public void doAction(EntityPlayerMP player, InventoryAction action, int slotId,
}
Slot slot = getSlot(slotId);
ItemStack stack = player.inventory.getItemStack();
if (Util.getFluidFromItem(stack) == null || Util.getFluidFromItem(stack).amount <= 0) {
FluidStack fluid = Util.getFluidFromItem(stack);

if (fluid == null || fluid.amount <= 0) {
super.doAction(player, action, slotId, id);
return;
}
if (validPatternSlot(slot)
&& (stack.getItem() instanceof IFluidContainerItem || FluidContainerRegistry.isContainer(stack))) {
FluidStack fluid = null;

if (validPatternSlot(slot)) {

switch (action) {
case PICKUP_OR_SET_DOWN -> {
fluid = Util.getFluidFromItem(stack);
slot.putStack(ItemFluidPacket.newStack(fluid));
return;
}
case SPLIT_OR_PLACE_SINGLE -> {
fluid = Util.getFluidFromItem(Util.copyStackWithSize(stack, 1));
Expand All @@ -153,13 +153,10 @@ public void doAction(EntityPlayerMP player, InventoryAction action, int slotId,
if (fluid.amount <= 0) fluid = null;
}
slot.putStack(ItemFluidPacket.newStack(fluid));
return;
}
}
if (fluid == null) {
super.doAction(player, action, slotId, id);
return;
}
return;

}
super.doAction(player, action, slotId, id);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;

import com.glodblock.github.util.Ae2Reflect;
import com.glodblock.github.util.Util;
Expand Down Expand Up @@ -34,8 +35,9 @@ protected FluidCellInventoryHandler(final IMEInventory<IAEFluidStack> c) {
final IItemList<IAEFluidStack> priorityList = AEApi.instance().storage().createFluidList();
for (int x = 0; x < config.getSizeInventory(); x++) {
final ItemStack is = config.getStackInSlot(x);
if (Util.getFluidFromItem(is) != null) {
priorityList.add(AEFluidStack.create(Util.getFluidFromItem(is)));
final FluidStack fluid = Util.getFluidFromItem(is);
if (fluid != null) {
priorityList.add(AEFluidStack.create(fluid));
}
}
if (!priorityList.isEmpty()) {
Expand All @@ -49,10 +51,9 @@ protected FluidCellInventoryHandler(final IMEInventory<IAEFluidStack> c) {
final ItemStack is = upgrades.getStackInSlot(x);
if (is != null && is.getItem() instanceof IUpgradeModule) {
final Upgrades u = ((IUpgradeModule) is.getItem()).getType(is);
if (u != null) {
if (u == Upgrades.STICKY) {
hasSticky = true;
}
if (u == Upgrades.STICKY) {
hasSticky = true;
break;
}
}
}
Expand Down
51 changes: 23 additions & 28 deletions src/main/java/com/glodblock/github/util/Util.java
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@
import appeng.util.Platform;
import appeng.util.item.AEFluidStack;
import baubles.api.BaublesApi;
import codechicken.nei.recipe.StackInfo;
import cpw.mods.fml.common.ModContainer;
import cpw.mods.fml.common.registry.GameData;
import io.netty.buffer.ByteBuf;
Expand Down Expand Up @@ -230,43 +231,37 @@ public static ItemStack copyStackWithSize(ItemStack itemStack, int size) {

public static AEFluidStack getAEFluidFromItem(ItemStack stack) {
if (stack != null) {
if (stack.getItem() instanceof IFluidContainerItem) {
FluidStack fluid = ((IFluidContainerItem) stack.getItem()).getFluid(stack);
if (fluid != null) {
AEFluidStack fluid0 = AEFluidStack.create(fluid.copy());
fluid0.setStackSize(fluid0.getStackSize() * stack.stackSize);
return fluid0;
}
}
if (FluidContainerRegistry.isContainer(stack)) {
FluidStack fluid = FluidContainerRegistry.getFluidForFilledItem(stack);
if (fluid != null) {
AEFluidStack fluid0 = AEFluidStack.create(fluid.copy());
fluid0.setStackSize(fluid0.getStackSize() * stack.stackSize);
return fluid0;
}
FluidStack fluid = getFluidFromItem(stack);

if (fluid != null) {
return AEFluidStack.create(fluid.copy());
}
}
return null;
}

public static FluidStack getFluidFromItem(ItemStack stack) {
if (stack != null) {
FluidStack fluid = null;

if (stack.getItem() instanceof IFluidContainerItem) {
FluidStack fluid = ((IFluidContainerItem) stack.getItem()).getFluid(stack);
if (fluid != null) {
FluidStack fluid0 = fluid.copy();
fluid0.amount *= stack.stackSize;
return fluid0;
}
fluid = ((IFluidContainerItem) stack.getItem()).getFluid(stack);
} else if (FluidContainerRegistry.isContainer(stack)) {
fluid = FluidContainerRegistry.getFluidForFilledItem(stack);
} else if (stack.getItem() instanceof ItemFluidPacket) {
fluid = ItemFluidPacket.getFluidStack(stack);
} else if (stack.getItem() instanceof ItemFluidDrop) {
fluid = ItemFluidDrop.getFluidStack(Util.copyStackWithSize(stack, 1));
}
if (FluidContainerRegistry.isContainer(stack)) {
FluidStack fluid = FluidContainerRegistry.getFluidForFilledItem(stack);
if (fluid != null) {
FluidStack fluid0 = fluid.copy();
fluid0.amount *= stack.stackSize;
return fluid0;
}

if (fluid == null) {
fluid = StackInfo.getFluid(Util.copyStackWithSize(stack, 1));
}

if (fluid != null) {
FluidStack fluid0 = fluid.copy();
fluid0.amount *= stack.stackSize;
return fluid0;
}
}
return null;
Expand Down

0 comments on commit 0caf89e

Please sign in to comment.