aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core/block/general
diff options
context:
space:
mode:
authorAlkalus <draknyte1@hotmail.com>2017-09-02 15:38:35 +1000
committerAlkalus <draknyte1@hotmail.com>2017-09-02 15:38:35 +1000
commitfc5766c06673ed0cfec511f23fd259f511fabdac (patch)
tree72084b673a8989c4226ba78d1f0f831e78af9217 /src/Java/gtPlusPlus/core/block/general
parent84baefc6cf063ade20f65a601c68211ac1bbc084 (diff)
downloadGT5-Unofficial-fc5766c06673ed0cfec511f23fd259f511fabdac.tar.gz
GT5-Unofficial-fc5766c06673ed0cfec511f23fd259f511fabdac.tar.bz2
GT5-Unofficial-fc5766c06673ed0cfec511f23fd259f511fabdac.zip
$ Fixed tank fluid container handling.
Diffstat (limited to 'src/Java/gtPlusPlus/core/block/general')
-rw-r--r--src/Java/gtPlusPlus/core/block/general/FluidTankInfinite.java76
1 files changed, 58 insertions, 18 deletions
diff --git a/src/Java/gtPlusPlus/core/block/general/FluidTankInfinite.java b/src/Java/gtPlusPlus/core/block/general/FluidTankInfinite.java
index 722a915d58..fe698dfdd0 100644
--- a/src/Java/gtPlusPlus/core/block/general/FluidTankInfinite.java
+++ b/src/Java/gtPlusPlus/core/block/general/FluidTankInfinite.java
@@ -6,16 +6,21 @@ import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import gtPlusPlus.core.creative.AddToCreativeTab;
import gtPlusPlus.core.lib.CORE;
-import gtPlusPlus.core.tileentities.general.TileEntityFishTrap;
import gtPlusPlus.core.tileentities.general.TileEntityInfiniteFluid;
import gtPlusPlus.core.util.player.PlayerUtils;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
+import net.minecraftforge.fluids.FluidContainerRegistry;
+import net.minecraftforge.fluids.FluidStack;
+import net.minecraftforge.fluids.IFluidContainerItem;
+import net.minecraftforge.fluids.ItemFluidContainer;
public class FluidTankInfinite extends BlockContainer {
@@ -68,30 +73,65 @@ public class FluidTankInfinite extends BlockContainer {
else {
TileEntityInfiniteFluid tank = (TileEntityInfiniteFluid) world.getTileEntity(x, y, z);
if (tank != null){
+ Item handItem;
+ try {
+ handItem = player.getHeldItem().getItem();
+ }
+ catch (Throwable t){
+ handItem = null;
+ }
+ if (handItem != null && (handItem instanceof IFluidContainerItem || handItem instanceof ItemFluidContainer || FluidContainerRegistry.isFilledContainer(player.getHeldItem()))){
+ if (tank.tank.getFluid() == null){
+ try {
+ if (!FluidContainerRegistry.isFilledContainer(player.getHeldItem())){
+ ItemStack handItemStack = player.getHeldItem();
+ IFluidContainerItem container = (IFluidContainerItem) handItem;
+ FluidStack containerFluid = container.getFluid(handItemStack);
+ container.drain(handItemStack, container.getFluid(handItemStack).amount, true);
+ tank.tank.setFluid(containerFluid);
+ }
+ else {
+ ItemStack handItemStack = player.getHeldItem();
+ FluidContainerRegistry.drainFluidContainer(handItemStack);
+ FluidStack containerFluid = FluidContainerRegistry.getFluidForFilledItem(handItemStack);
+ ItemStack emptyContainer = FluidContainerRegistry.drainFluidContainer(handItemStack);
+ player.setItemInUse(emptyContainer, 0);
+
+ tank.tank.setFluid(containerFluid);
+ }
+ }
+ catch (Throwable t){
+ t.printStackTrace();
+ }
+ }
+
+ }
+ if (tank.tank.getFluid() != null){
PlayerUtils.messagePlayer(player, "This tank contains "+tank.tank.getFluidAmount()+"L of "+tank.tank.getFluid().getLocalizedName());
}
}
- return true;
}
+ return true;
+}
- @Override
- public int getRenderBlockPass() {
- return 1;
- }
+@Override
+public int getRenderBlockPass() {
+ return 1;
+}
- @Override
- public boolean isOpaqueCube() {
- return false;
- }
+@Override
+public boolean isOpaqueCube() {
+ return false;
+}
- @Override
- public TileEntity createNewTileEntity(final World world, final int p_149915_2_) {
- return new TileEntityInfiniteFluid();
- }
+@Override
+public TileEntity createNewTileEntity(final World world, final int p_149915_2_) {
+ return new TileEntityInfiniteFluid();
+}
- @Override
- public void onBlockAdded(World world, int x, int y, int z) {
- super.onBlockAdded(world, x, y, z);
- }
+@Override
+public void onBlockAdded(World world, int x, int y, int z) {
+ super.onBlockAdded(world, x, y, z);
+}
}