mirror of
https://github.com/GTNewHorizons/AE2FluidCraft-Rework.git
synced 2026-11-11 07:47:55 +00:00
Fix fluid stack not doubling (#151)
This commit is contained in:
1 parent
64977b87a9
commit
3d01f50100
2 files changed
+34
-6
No files matched your search
+17
-6
@@ -525,10 +525,18 @@ public abstract class FCContainerEncodeTerminal extends ContainerItemMonitor
|
||||
|
||||
static boolean canDouble(SlotFake[] slots, int mult) {
|
||||
for (Slot s : slots) {
|
||||
if (s.getStack() != null) {
|
||||
long result = (long) s.getStack().stackSize * mult;
|
||||
if (result > Integer.MAX_VALUE) {
|
||||
return false;
|
||||
ItemStack st = s.getStack();
|
||||
if (st != null) {
|
||||
if (st.getItem() instanceof ItemFluidPacket) {
|
||||
long result = (long) ItemFluidPacket.getFluidAmount(st) * mult;
|
||||
if (result > Integer.MAX_VALUE) {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
long result = (long) s.getStack().stackSize * mult;
|
||||
if (result > Integer.MAX_VALUE) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -540,8 +548,11 @@ public abstract class FCContainerEncodeTerminal extends ContainerItemMonitor
|
||||
for (final Slot s : enabledSlots) {
|
||||
ItemStack st = s.getStack();
|
||||
if (st != null) {
|
||||
st.stackSize *= mult;
|
||||
s.putStack(st);
|
||||
if (st.getItem() instanceof ItemFluidPacket) {
|
||||
ItemFluidPacket.setFluidAmount(st, ItemFluidPacket.getFluidAmount(st) * mult);
|
||||
} else {
|
||||
st.stackSize *= mult;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.util.StatCollector;
|
||||
import net.minecraftforge.common.util.Constants;
|
||||
import net.minecraftforge.fluids.Fluid;
|
||||
import net.minecraftforge.fluids.FluidRegistry;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
@@ -88,6 +89,22 @@ public class ItemFluidPacket extends FCBaseItem {
|
||||
return stack != null ? getFluidStack(stack.getItemStack()) : null;
|
||||
}
|
||||
|
||||
public static void setFluidAmount(ItemStack stack, int amount) {
|
||||
if (stack == null || !stack.hasTagCompound()
|
||||
|| stack.getTagCompound().hasKey("FluidStack", Constants.NBT.TAG_COMPOUND)) {
|
||||
return;
|
||||
}
|
||||
stack.getTagCompound().getCompoundTag("FluidStack").setInteger("Amount", amount);
|
||||
}
|
||||
|
||||
public static int getFluidAmount(ItemStack stack) {
|
||||
if (stack == null || !stack.hasTagCompound()) {
|
||||
return 0;
|
||||
}
|
||||
// Default to 0 if no tag exists
|
||||
return stack.getTagCompound().getCompoundTag("FluidStack").getInteger("Amount");
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ItemStack newStack(@Nullable FluidStack fluid) {
|
||||
if (fluid == null || fluid.amount == 0) {
|
||||
|
||||
Reference in new issue
Block a user