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); } } }