From df808760ad428cd203c6357fcdd7502433f60dac Mon Sep 17 00:00:00 2001
From: drcrazy <hcb@wowhcb.ru>
Date: Fri, 25 Aug 2017 10:39:44 +0300
Subject: [PATCH] Make cells drainable again (#1246)

* FIx unused import

* Make cells drainable again

* Fix deprecated warning
---
 src/main/java/techreborn/init/ModRecipes.java |  1 -
 .../java/techreborn/items/DynamicCell.java    | 21 ++++++++++++++++++-
 2 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/src/main/java/techreborn/init/ModRecipes.java b/src/main/java/techreborn/init/ModRecipes.java
index 43856c006..44d84f62b 100644
--- a/src/main/java/techreborn/init/ModRecipes.java
+++ b/src/main/java/techreborn/init/ModRecipes.java
@@ -42,7 +42,6 @@ import techreborn.Core;
 import techreborn.api.reactor.FusionReactorRecipe;
 import techreborn.api.reactor.FusionReactorRecipeHelper;
 import techreborn.api.recipe.machines.*;
-import techreborn.blocks.BlockMachineFrames;
 import techreborn.blocks.BlockOre;
 import techreborn.compat.CompatManager;
 import techreborn.config.ConfigTechReborn;
diff --git a/src/main/java/techreborn/items/DynamicCell.java b/src/main/java/techreborn/items/DynamicCell.java
index 0121f10c2..7b9fa70cf 100644
--- a/src/main/java/techreborn/items/DynamicCell.java
+++ b/src/main/java/techreborn/items/DynamicCell.java
@@ -45,7 +45,9 @@ import net.minecraftforge.common.capabilities.ICapabilityProvider;
 import net.minecraftforge.fluids.Fluid;
 import net.minecraftforge.fluids.FluidRegistry;
 import net.minecraftforge.fluids.FluidStack;
+import net.minecraftforge.fluids.FluidUtil;
 import net.minecraftforge.fluids.IFluidBlock;
+import net.minecraftforge.fluids.capability.IFluidHandlerItem;
 import net.minecraftforge.fluids.capability.templates.FluidHandlerItemStack;
 import org.apache.commons.lang3.Validate;
 import techreborn.client.TechRebornCreativeTab;
@@ -109,7 +111,7 @@ public class DynamicCell extends Item {
 					}
 
 				} else if (block instanceof BlockStaticLiquid) {
-					Fluid fluid = block.getMaterial(state) == Material.LAVA ? FluidRegistry.LAVA : FluidRegistry.WATER;
+					Fluid fluid = state.getMaterial() == Material.LAVA ? FluidRegistry.LAVA : FluidRegistry.WATER;
 
 					if (tryAddCellToInventory(playerIn, stack, fluid)) {
 						if (fluid != FluidRegistry.WATER)
@@ -117,6 +119,23 @@ public class DynamicCell extends Item {
 						return ActionResult.newResult(EnumActionResult.SUCCESS, stack);
 					}
 
+				} else {
+					 ItemStack usedCell = stack.copy();
+					 usedCell.setCount(1);
+					 IFluidHandlerItem fluidHandler = FluidUtil.getFluidHandler(usedCell);
+					 if (fluidHandler != null) {
+						 FluidStack fluid = fluidHandler.drain(DynamicCell.CAPACITY, false);
+						 if (fluid != null){
+							 if(FluidUtil.tryPlaceFluid(playerIn, worldIn, pos.offset(result.sideHit), fluidHandler, fluid)){
+								 stack.shrink(1);
+								 playerIn.inventory.addItemStackToInventory(getEmptyCell(1));
+								 return ActionResult.newResult(EnumActionResult.SUCCESS, stack);
+							 }
+							 return ActionResult.newResult(EnumActionResult.FAIL, stack);
+						 }
+						 return ActionResult.newResult(EnumActionResult.FAIL, stack);				 
+					 }
+					 return ActionResult.newResult(EnumActionResult.FAIL, stack);   
 				}
 			}
 		}