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,37 +22,39 @@ import net.minecraft.world.World;
public class BlockDimWall extends Block public class BlockDimWall extends Block
{ {
private Icon[] blockIcon= new Icon[2]; private static final float SUPER_HIGH_HARDNESS = 10000000000000F;
public BlockDimWall(int i, int j, Material par2Material) private Icon[] blockIcon = new Icon[2];
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);
} }
public float getBlockHardness(World par1World, int par2, int par3, int par4) public float getBlockHardness(World par1World, int par2, int par3, int par4)
{ {
if(par1World.getBlockMetadata(par2, par3, par4)==0) if (par1World.getBlockMetadata(par2, par3, par4) == 0)
{ {
return this.blockHardness; return this.blockHardness;
} }
else else
{ {
return 10000000000000F; return SUPER_HIGH_HARDNESS;
} }
} }
public void registerIcons(IconRegister par1IconRegister) public void registerIcons(IconRegister par1IconRegister)
{ {
this.blockIcon[0] = par1IconRegister.registerIcon(mod_pocketDim.modid + ":" + this.getUnlocalizedName2()); this.blockIcon[0] = par1IconRegister.registerIcon(mod_pocketDim.modid + ":" + this.getUnlocalizedName2());
this.blockIcon[1] = par1IconRegister.registerIcon(mod_pocketDim.modid + ":" + this.getUnlocalizedName2()+"perm"); this.blockIcon[1] = par1IconRegister.registerIcon(mod_pocketDim.modid + ":" + this.getUnlocalizedName2() + "perm");
} }
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
@Override @Override
public Icon getIcon(int par1, int par2) public Icon getIcon(int par1, int par2)
{ {
if(par2==1) if (par2 == 1)
{ {
return blockIcon[par2]; return blockIcon[par2];
} }
@@ -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,50 +94,30 @@ 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; Block block = Block.blocksList[playerEquip.itemID];
} if (!Block.isNormalCube(playerEquip.itemID) || block instanceof BlockContainer || block.blockID == this.blockID)
else
{
Block block= Block.blocksList[playerEquip.itemID];
if(!Block.isNormalCube(playerEquip.itemID))
{ {
return false; return false;
} }
if(block instanceof BlockContainer) if (!world.isRemote)
{ {
return false; if (!entityPlayer.capabilities.isCreativeMode)
{
entityPlayer.getCurrentEquippedItem().stackSize--;
}
world.setBlock(x, y, z, entityPlayer.getCurrentEquippedItem().itemID, entityPlayer.getCurrentEquippedItem().getItemDamage(), 0);
} }
}
if(entityPlayer.getCurrentEquippedItem().getItem() instanceof ItemBlock)
{
if(par1World.isRemote)
{
return true;
}
if(!entityPlayer.capabilities.isCreativeMode)
{
entityPlayer.getCurrentEquippedItem().stackSize--;
}
par1World.setBlock(par2, par3, par4, entityPlayer.getCurrentEquippedItem().itemID, entityPlayer.getCurrentEquippedItem().getItemDamage(),0);
return true; return true;
} }
} }
else return false;
{
return false;
}
return false;
} }
} }