Fixed Fabric of Reality Replacement Bug

Fixed the bug in BlockDimWall that would cause Fabric of Reality to
replace itself when you right-clicked to place FoR against an FoR
surface. This happened because we considered FoR valid for replacing FoR
since it's a cube solid. Now we have an extra check to prevent that. It
was a waste of blocks to have them sort of eat each other up! Also
cleaned up some of the code in BlockDimWall.
This commit is contained in:
SenseiKiwi
2013-07-16 18:39:11 -04:00
parent d805d63c0a
commit 71adfa2358

View File

@@ -22,10 +22,12 @@ import net.minecraft.world.World;
public class BlockDimWall extends Block public class BlockDimWall extends Block
{ {
private static final float SUPER_HIGH_HARDNESS = 10000000000000F;
private Icon[] blockIcon = new Icon[2]; private Icon[] blockIcon = new Icon[2];
public BlockDimWall(int i, int j, Material par2Material)
public BlockDimWall(int blockID, int j, Material par2Material)
{ {
super(i, Material.ground); super(blockID, Material.ground);
setTickRandomly(true); setTickRandomly(true);
this.setCreativeTab(mod_pocketDim.dimDoorsCreativeTab); this.setCreativeTab(mod_pocketDim.dimDoorsCreativeTab);
} }
@@ -38,7 +40,7 @@ public class BlockDimWall extends Block
} }
else else
{ {
return 10000000000000F; return SUPER_HIGH_HARDNESS;
} }
} }
@@ -68,6 +70,7 @@ public class BlockDimWall extends Block
return metadata; return metadata;
} }
@SuppressWarnings({ "rawtypes", "unchecked" })
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public void getSubBlocks(int unknown, CreativeTabs tab, List subItems) public void getSubBlocks(int unknown, CreativeTabs tab, List subItems)
{ {
@@ -91,49 +94,29 @@ public class BlockDimWall extends Block
/** /**
* replaces the block clicked with the held block, instead of placing the block on top of it. Shift click to disable. * replaces the block clicked with the held block, instead of placing the block on top of it. Shift click to disable.
*/ */
public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer entityPlayer, int par6, float par7, float par8, float par9) public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer entityPlayer, int par6, float par7, float par8, float par9)
{ {
if (entityPlayer.getCurrentEquippedItem() != null) if (entityPlayer.getCurrentEquippedItem() != null)
{ {
Item playerEquip = entityPlayer.getCurrentEquippedItem().getItem(); Item playerEquip = entityPlayer.getCurrentEquippedItem().getItem();
if(!(playerEquip instanceof ItemBlock)) if (playerEquip instanceof ItemBlock)
{
return false;
}
else
{ {
Block block = Block.blocksList[playerEquip.itemID]; Block block = Block.blocksList[playerEquip.itemID];
if(!Block.isNormalCube(playerEquip.itemID)) if (!Block.isNormalCube(playerEquip.itemID) || block instanceof BlockContainer || block.blockID == this.blockID)
{ {
return false; return false;
} }
if(block instanceof BlockContainer) if (!world.isRemote)
{ {
return false;
}
}
if(entityPlayer.getCurrentEquippedItem().getItem() instanceof ItemBlock)
{
if(par1World.isRemote)
{
return true;
}
if (!entityPlayer.capabilities.isCreativeMode) if (!entityPlayer.capabilities.isCreativeMode)
{ {
entityPlayer.getCurrentEquippedItem().stackSize--; entityPlayer.getCurrentEquippedItem().stackSize--;
} }
par1World.setBlock(par2, par3, par4, entityPlayer.getCurrentEquippedItem().itemID, entityPlayer.getCurrentEquippedItem().getItemDamage(),0); world.setBlock(x, y, z, entityPlayer.getCurrentEquippedItem().itemID, entityPlayer.getCurrentEquippedItem().getItemDamage(), 0);
}
return true; return true;
} }
}
else
{
return false;
} }
return false; return false;
} }