BiomesOPlenty/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMangroveSlab.java
Adubbz b35b71b020 Holy Tall grass no longer drops itself without using shears
Fixed things wrongly having wooden footstep sounds
Saplings now use the new bonemeal system added by Minecraft 1.5
Bonemeal now creates Holy Tall Grass when used on Holy Grass
Fixed slabs not stacking
Fixed leaf decay (Except for apple trees, don't know what is going on with them)
2013-04-02 15:08:57 +11:00

156 lines
4.9 KiB
Java

package tdwp_ftw.biomesop.blocks;
import java.util.List;
import java.util.Random;
import tdwp_ftw.biomesop.mod_BiomesOPlenty;
import net.minecraft.block.BlockHalfSlab;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
public class BlockMangroveSlab extends BlockHalfSlab
{
/** The type of tree this slab came from. */
public static final String[] woodType = new String[] {"mangrove"};
public BlockMangroveSlab(int par1, boolean par2)
{
super(par1, par2, Material.wood);
this.setBurnProperties(this.blockID, 5, 20);
this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty);
this.useNeighborBrightness[blockID] = true;
}
@Override
public void registerIcons(IconRegister par1IconRegister)
{
this.blockIcon = par1IconRegister.registerIcon("BiomesOPlenty:mangroveplank");
}
/**
* From the specified side and block metadata retrieves the blocks texture. Args: side, metadata
*/
/*public int getBlockTextureFromSideAndMetadata(int par1, int par2)
{
switch (par2 & 7)
{
case 1:
return 198;
case 2:
return 214;
case 3:
return 199;
default:
return 62;
}
}*/
/**
* Returns the block texture based on the side being looked at. Args: side
*/
/*public int getBlockTextureFromSide(int par1)
{
return this.getBlockTextureFromSideAndMetadata(par1, 0);
}*/
/**
* Returns the ID of the items to drop on destruction.
*/
public int idDropped(int par1, Random par2Random, int par3)
{
return mod_BiomesOPlenty.mangroveSingleSlab.blockID;
}
/**
* Returns an item stack containing a single instance of the current block type. 'i' is the block's subtype/damage
* and is ignored for blocks which do not support subtypes. Blocks which cannot be harvested should return null.
*/
protected ItemStack createStackedBlock(int par1)
{
return new ItemStack(mod_BiomesOPlenty.mangroveSingleSlab.blockID, 2, par1 & 7);
}
/**
* Called upon block activation (right click on the block.)
*/
public boolean onBlockActivated(World world, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9)
{
if (par5EntityPlayer.getCurrentEquippedItem().itemID == this.blockID)
{
if (world.getBlockMetadata(par2, par3, par4) == 0 /*0 = Slab at bottom half*/ )
{
if (par6 == 1 /*1 = top of the block*/)
{
if (!par5EntityPlayer.capabilities.isCreativeMode)
{
--par5EntityPlayer.getCurrentEquippedItem().stackSize;
}
world.playSoundEffect((double)((float)par2 + 0.5F), (double)((float)par3 + 0.5F), (double)((float)par4 + 0.5F), this.stepSound.getPlaceSound(), (this.stepSound.getVolume() + 1.0F) / 2.0F, this.stepSound.getPitch() * 0.8F);
world.setBlock(par2, par3, par4, mod_BiomesOPlenty.mangroveDoubleSlab.blockID);
return true;
}
}
if (world.getBlockMetadata(par2, par3, par4) == 8 /*8 = Slab at top half*/ )
{
if (par6 == 0 /*0 = bottom of the block*/)
{
if (!par5EntityPlayer.capabilities.isCreativeMode)
{
--par5EntityPlayer.getCurrentEquippedItem().stackSize;
}
world.playSoundEffect((double)((float)par2 + 0.5F), (double)((float)par3 + 0.5F), (double)((float)par4 + 0.5F), this.stepSound.getPlaceSound(), (this.stepSound.getVolume() + 1.0F) / 2.0F, this.stepSound.getPitch() * 0.8F);
world.setBlock(par2, par3, par4, mod_BiomesOPlenty.mangroveDoubleSlab.blockID);
return true;
}
}
}
return false;
}
/**
* Returns the slab block name with step type.
*/
public String getFullSlabName(int par1)
{
if (par1 < 0 || par1 >= woodType.length)
{
par1 = 0;
}
return super.getUnlocalizedName() + "." + woodType[par1];
}
/**
* returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks)
*/
public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List)
{
if (par1 != mod_BiomesOPlenty.mangroveDoubleSlab.blockID)
{
par3List.add(new ItemStack(par1, 1, 0));
}
}
/**
* only called by clickMiddleMouseButton , and passed to inventory.setCurrentItem (along with isCreative)
*/
public int idPicked(World par1World, int par2, int par3, int par4)
{
return mod_BiomesOPlenty.mangroveSingleSlab.blockID;
}
}