BiomesOPlenty/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAcaciaSlab.java

164 lines
5 KiB
Java
Raw Normal View History

2013-03-28 19:03:53 +00:00
package tdwp_ftw.biomesop.blocks;
import java.util.List;
import java.util.Random;
import tdwp_ftw.biomesop.mod_BiomesOPlenty;
import tdwp_ftw.biomesop.declarations.BOPBlocks;
2013-03-28 19:03:53 +00:00
import tdwp_ftw.biomesop.helpers.CreativeTabsBOP;
import net.minecraft.block.BlockHalfSlab;
import net.minecraft.block.material.Material;
2013-03-30 10:54:53 +00:00
import net.minecraft.client.renderer.texture.IconRegister;
2013-03-28 19:03:53 +00:00
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
2013-03-28 19:03:53 +00:00
import net.minecraft.item.ItemStack;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
2013-03-30 10:54:53 +00:00
2013-03-28 19:03:53 +00:00
public class BlockAcaciaSlab extends BlockHalfSlab
{
/** The type of tree this slab came from. */
public static final String[] woodType = new String[] {"acacia"};
public BlockAcaciaSlab(int par1, boolean par2)
{
super(par1, par2, Material.wood);
this.setBurnProperties(this.blockID, 5, 20);
this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty);
this.useNeighborBrightness[blockID] = true;
}
2013-03-30 10:54:53 +00:00
@Override
public void registerIcons(IconRegister par1IconRegister)
{
this.blockIcon = par1IconRegister.registerIcon("BiomesOPlenty:acaciaplank");
}
2013-03-28 19:03:53 +00:00
/**
* From the specified side and block metadata retrieves the blocks texture. Args: side, metadata
*/
2013-03-30 10:54:53 +00:00
/*public int getBlockTextureFromSideAndMetadata(int par1, int par2)
2013-03-28 19:03:53 +00:00
{
switch (par2 & 7)
{
case 1:
return 198;
case 2:
return 214;
case 3:
return 199;
default:
return 45;
}
2013-03-30 10:54:53 +00:00
}*/
2013-03-28 19:03:53 +00:00
/**
* Returns the block texture based on the side being looked at. Args: side
*/
2013-03-30 10:54:53 +00:00
/*public int getBlockTextureFromSide(int par1)
2013-03-28 19:03:53 +00:00
{
return this.getBlockTextureFromSideAndMetadata(par1, 0);
2013-03-30 10:54:53 +00:00
}*/
2013-03-28 19:03:53 +00:00
/**
* Returns the ID of the items to drop on destruction.
*/
public int idDropped(int par1, Random par2Random, int par3)
{
return BOPBlocks.acaciaSingleSlab.blockID;
2013-03-28 19:03:53 +00:00
}
/**
* 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(BOPBlocks.acaciaSingleSlab.blockID, 2, par1 & 7);
2013-03-28 19:03:53 +00:00
}
/**
* 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() != null)
{
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, BOPBlocks.acaciaDoubleSlab.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, BOPBlocks.acaciaDoubleSlab.blockID);
return true;
}
}
}
return false;
}
return false;
}
2013-03-28 19:03:53 +00:00
/**
* Returns the slab block name with step type.
*/
public String getFullSlabName(int par1)
{
if (par1 < 0 || par1 >= woodType.length)
{
par1 = 0;
}
2013-03-30 10:54:53 +00:00
return super.getUnlocalizedName2() + "." + woodType[par1];
2013-03-28 19:03:53 +00:00
}
/**
* 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 != BOPBlocks.acaciaDoubleSlab.blockID)
2013-03-28 19:03:53 +00:00
{
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 BOPBlocks.acaciaSingleSlab.blockID;
2013-03-28 19:03:53 +00:00
}
}