--- ../src_base/common/net/minecraft/src/BlockTripWireSource.java +++ ../src_work/common/net/minecraft/src/BlockTripWireSource.java @@ -1,6 +1,9 @@ package net.minecraft.src; import java.util.Random; + +import net.minecraftforge.common.ForgeDirection; +import static net.minecraftforge.common.ForgeDirection.*; public class BlockTripWireSource extends Block { @@ -58,7 +61,11 @@ */ public boolean canPlaceBlockOnSide(World par1World, int par2, int par3, int par4, int par5) { - return par5 == 2 && par1World.isBlockNormalCube(par2, par3, par4 + 1) ? true : (par5 == 3 && par1World.isBlockNormalCube(par2, par3, par4 - 1) ? true : (par5 == 4 && par1World.isBlockNormalCube(par2 + 1, par3, par4) ? true : par5 == 5 && par1World.isBlockNormalCube(par2 - 1, par3, par4))); + ForgeDirection dir = ForgeDirection.getOrientation(par5); + return (dir == NORTH && par1World.isBlockSolidOnSide(par2, par3, par4 + 1, NORTH)) || + (dir == SOUTH && par1World.isBlockSolidOnSide(par2, par3, par4 - 1, SOUTH)) || + (dir == WEST && par1World.isBlockSolidOnSide(par2 + 1, par3, par4, WEST )) || + (dir == EAST && par1World.isBlockSolidOnSide(par2 - 1, par3, par4, EAST )); } /** @@ -66,7 +73,10 @@ */ public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4) { - return par1World.isBlockNormalCube(par2 - 1, par3, par4) ? true : (par1World.isBlockNormalCube(par2 + 1, par3, par4) ? true : (par1World.isBlockNormalCube(par2, par3, par4 - 1) ? true : par1World.isBlockNormalCube(par2, par3, par4 + 1))); + return par1World.isBlockSolidOnSide(par2 - 1, par3, par4, SOUTH) || + par1World.isBlockSolidOnSide(par2 + 1, par3, par4, NORTH) || + par1World.isBlockSolidOnSide(par2, par3, par4 - 1, EAST ) || + par1World.isBlockSolidOnSide(par2, par3, par4 + 1, WEST ); } /** @@ -76,22 +86,22 @@ { byte var9 = 0; - if (par5 == 2 && par1World.isBlockNormalCubeDefault(par2, par3, par4 + 1, true)) + if (par5 == 2 && par1World.isBlockSolidOnSide(par2, par3, par4 + 1, WEST, true)) { var9 = 2; } - if (par5 == 3 && par1World.isBlockNormalCubeDefault(par2, par3, par4 - 1, true)) + if (par5 == 3 && par1World.isBlockSolidOnSide(par2, par3, par4 - 1, EAST, true)) { var9 = 0; } - if (par5 == 4 && par1World.isBlockNormalCubeDefault(par2 + 1, par3, par4, true)) + if (par5 == 4 && par1World.isBlockSolidOnSide(par2 + 1, par3, par4, NORTH, true)) { var9 = 1; } - if (par5 == 5 && par1World.isBlockNormalCubeDefault(par2 - 1, par3, par4, true)) + if (par5 == 5 && par1World.isBlockSolidOnSide(par2 - 1, par3, par4, SOUTH, true)) { var9 = 3; } @@ -113,22 +123,22 @@ int var7 = var6 & 3; boolean var8 = false; - if (!par1World.isBlockNormalCube(par2 - 1, par3, par4) && var7 == 3) + if (!par1World.isBlockSolidOnSide(par2 - 1, par3, par4, SOUTH) && var7 == 3) { var8 = true; } - if (!par1World.isBlockNormalCube(par2 + 1, par3, par4) && var7 == 1) + if (!par1World.isBlockSolidOnSide(par2 + 1, par3, par4, NORTH) && var7 == 1) { var8 = true; } - if (!par1World.isBlockNormalCube(par2, par3, par4 - 1) && var7 == 0) + if (!par1World.isBlockSolidOnSide(par2, par3, par4 - 1, EAST) && var7 == 0) { var8 = true; } - if (!par1World.isBlockNormalCube(par2, par3, par4 + 1) && var7 == 2) + if (!par1World.isBlockSolidOnSide(par2, par3, par4 + 1, WEST) && var7 == 2) { var8 = true; } @@ -149,7 +159,7 @@ boolean var12 = (par6 & 8) == 8; boolean var13 = par5 == Block.tripWireSource.blockID; boolean var14 = false; - boolean var15 = !par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4); + boolean var15 = !par1World.isBlockSolidOnSide(par2, par3 - 1, par4, UP); int var16 = Direction.offsetX[var10]; int var17 = Direction.offsetZ[var10]; int var18 = 0;