0f3b030a1d
Update FML: bd2123c bd2123c Clean up some patch fuzz c2a603c Update joined.exc file from latest conf db12af4 Update to 1.4.3
105 lines
4.8 KiB
Diff
105 lines
4.8 KiB
Diff
--- ../src_base/common/net/minecraft/src/BlockButton.java
|
|
+++ ../src_work/common/net/minecraft/src/BlockButton.java
|
|
@@ -2,6 +2,10 @@
|
|
|
|
import java.util.List;
|
|
import java.util.Random;
|
|
+
|
|
+import net.minecraftforge.common.ForgeDirection;
|
|
+
|
|
+import static net.minecraftforge.common.ForgeDirection.*;
|
|
|
|
public class BlockButton extends Block
|
|
{
|
|
@@ -55,7 +59,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));
|
|
}
|
|
|
|
/**
|
|
@@ -63,7 +71,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, EAST)) ||
|
|
+ (par1World.isBlockSolidOnSide(par2 + 1, par3, par4, WEST)) ||
|
|
+ (par1World.isBlockSolidOnSide(par2, par3, par4 - 1, SOUTH)) ||
|
|
+ (par1World.isBlockSolidOnSide(par2, par3, par4 + 1, NORTH));
|
|
}
|
|
|
|
public int func_85104_a(World par1World, int par2, int par3, int par4, int par5, float par6, float par7, float par8, int par9)
|
|
@@ -72,19 +83,22 @@
|
|
int var11 = var10 & 8;
|
|
var10 &= 7;
|
|
|
|
- if (par5 == 2 && par1World.isBlockNormalCube(par2, par3, par4 + 1))
|
|
+
|
|
+ ForgeDirection dir = ForgeDirection.getOrientation(par5);
|
|
+
|
|
+ if (dir == NORTH && par1World.isBlockSolidOnSide(par2, par3, par4 + 1, NORTH))
|
|
{
|
|
var10 = 4;
|
|
}
|
|
- else if (par5 == 3 && par1World.isBlockNormalCube(par2, par3, par4 - 1))
|
|
+ else if (dir == SOUTH && par1World.isBlockSolidOnSide(par2, par3, par4 - 1, SOUTH))
|
|
{
|
|
var10 = 3;
|
|
}
|
|
- else if (par5 == 4 && par1World.isBlockNormalCube(par2 + 1, par3, par4))
|
|
+ else if (dir == WEST && par1World.isBlockSolidOnSide(par2 + 1, par3, par4, WEST))
|
|
{
|
|
var10 = 2;
|
|
}
|
|
- else if (par5 == 5 && par1World.isBlockNormalCube(par2 - 1, par3, par4))
|
|
+ else if (dir == EAST && par1World.isBlockSolidOnSide(par2 - 1, par3, par4, EAST))
|
|
{
|
|
var10 = 1;
|
|
}
|
|
@@ -101,7 +115,11 @@
|
|
*/
|
|
private int getOrientation(World par1World, int par2, int par3, int par4)
|
|
{
|
|
- return par1World.isBlockNormalCube(par2 - 1, par3, par4) ? 1 : (par1World.isBlockNormalCube(par2 + 1, par3, par4) ? 2 : (par1World.isBlockNormalCube(par2, par3, par4 - 1) ? 3 : (par1World.isBlockNormalCube(par2, par3, par4 + 1) ? 4 : 1)));
|
|
+ if (par1World.isBlockSolidOnSide(par2 - 1, par3, par4, EAST)) return 1;
|
|
+ if (par1World.isBlockSolidOnSide(par2 + 1, par3, par4, WEST)) return 2;
|
|
+ if (par1World.isBlockSolidOnSide(par2, par3, par4 - 1, SOUTH)) return 3;
|
|
+ if (par1World.isBlockSolidOnSide(par2, par3, par4 + 1, NORTH)) return 4;
|
|
+ return 1;
|
|
}
|
|
|
|
/**
|
|
@@ -115,22 +133,22 @@
|
|
int var6 = par1World.getBlockMetadata(par2, par3, par4) & 7;
|
|
boolean var7 = false;
|
|
|
|
- if (!par1World.isBlockNormalCube(par2 - 1, par3, par4) && var6 == 1)
|
|
+ if (!par1World.isBlockSolidOnSide(par2 - 1, par3, par4, EAST) && var6 == 1)
|
|
{
|
|
var7 = true;
|
|
}
|
|
|
|
- if (!par1World.isBlockNormalCube(par2 + 1, par3, par4) && var6 == 2)
|
|
+ if (!par1World.isBlockSolidOnSide(par2 + 1, par3, par4, WEST) && var6 == 2)
|
|
{
|
|
var7 = true;
|
|
}
|
|
|
|
- if (!par1World.isBlockNormalCube(par2, par3, par4 - 1) && var6 == 3)
|
|
+ if (!par1World.isBlockSolidOnSide(par2, par3, par4 - 1, SOUTH) && var6 == 3)
|
|
{
|
|
var7 = true;
|
|
}
|
|
|
|
- if (!par1World.isBlockNormalCube(par2, par3, par4 + 1) && var6 == 4)
|
|
+ if (!par1World.isBlockSolidOnSide(par2, par3, par4 + 1, NORTH) && var6 == 4)
|
|
{
|
|
var7 = true;
|
|
}
|