From 15a9af60c8cdecd333bf0b82c507e72feb2792ec Mon Sep 17 00:00:00 2001 From: LepkoQQ Date: Sun, 6 Apr 2014 19:28:31 +0200 Subject: [PATCH] Fixup faucets --- .../java/tconstruct/blocks/SearedBlock.java | 47 ++++++++++++++----- .../tconstruct/blocks/logic/FaucetLogic.java | 8 ++-- 2 files changed, 38 insertions(+), 17 deletions(-) diff --git a/src/main/java/tconstruct/blocks/SearedBlock.java b/src/main/java/tconstruct/blocks/SearedBlock.java index 9a384854fc9..32691bded44 100644 --- a/src/main/java/tconstruct/blocks/SearedBlock.java +++ b/src/main/java/tconstruct/blocks/SearedBlock.java @@ -2,16 +2,6 @@ import java.util.List; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import tconstruct.TConstruct; -import tconstruct.blocks.logic.CastingBasinLogic; -import tconstruct.blocks.logic.CastingTableLogic; -import tconstruct.blocks.logic.FaucetLogic; -import tconstruct.client.block.SearedRender; -import tconstruct.library.TConstructRegistry; -import tconstruct.library.event.SmelteryEvent; -import tconstruct.library.tools.AbilityHelper; import mantle.blocks.abstracts.InventoryBlock; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -25,6 +15,18 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.IFluidHandler; +import tconstruct.TConstruct; +import tconstruct.blocks.logic.CastingBasinLogic; +import tconstruct.blocks.logic.CastingTableLogic; +import tconstruct.blocks.logic.FaucetLogic; +import tconstruct.client.block.SearedRender; +import tconstruct.library.TConstructRegistry; +import tconstruct.library.event.SmelteryEvent; +import tconstruct.library.tools.AbilityHelper; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; public class SearedBlock extends InventoryBlock { @@ -361,16 +363,35 @@ public boolean canConnectRedstone (IBlockAccess world, int x, int y, int z, int return world.getBlockMetadata(x, y, z) == 1; } + private boolean wasPowered = false; + @Override public void onNeighborBlockChange (World world, int x, int y, int z, Block neighborBlockID) { - if (world.isBlockIndirectlyGettingPowered(x, y, z) && world.getBlockMetadata(x, y, z) == 1) + if (world.getBlockMetadata(x, y, z) == 1) { - FaucetLogic logic = (FaucetLogic) world.getTileEntity(x, y, z); - logic.setActive(true); + boolean isPowered = world.isBlockIndirectlyGettingPowered(x, y, z); + if (!wasPowered && isPowered) + { + FaucetLogic logic = (FaucetLogic) world.getTileEntity(x, y, z); + logic.setActive(true); + } + wasPowered = isPowered; } } + @Override + public boolean canPlaceBlockOnSide (World world, int x, int y, int z, int side) + { + ForgeDirection dir = ForgeDirection.getOrientation(side ^ 1); + TileEntity tile = world.getTileEntity(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); + if (tile instanceof IFluidHandler) + { + return true; + } + return false; + } + @Override public TileEntity createNewTileEntity (World world, int metadata) { diff --git a/src/main/java/tconstruct/blocks/logic/FaucetLogic.java b/src/main/java/tconstruct/blocks/logic/FaucetLogic.java index f80f34186a9..19d67c5cb88 100644 --- a/src/main/java/tconstruct/blocks/logic/FaucetLogic.java +++ b/src/main/java/tconstruct/blocks/logic/FaucetLogic.java @@ -103,13 +103,13 @@ public ForgeDirection getForgeDirection () @Override public void setDirection (int side) { - //direction = (byte) side; + direction = (byte) side; } @Override public void setDirection (float yaw, float pitch, EntityLivingBase player) { - int facing = MathHelper.floor_double((double) (yaw / 360) + 0.5D) & 3; + /*int facing = MathHelper.floor_double((double) (yaw / 360) + 0.5D) & 3; switch (facing) { case 0: @@ -127,7 +127,7 @@ public void setDirection (float yaw, float pitch, EntityLivingBase player) case 3: direction = 4; break; - } + }*/ } @Override @@ -244,4 +244,4 @@ public FluidTankInfo[] getTankInfo (ForgeDirection from) // TODO Auto-generated method stub return null; } -} \ No newline at end of file +}