Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package mod.pyrhatt.moplants;
- import cpw.mods.fml.relauncher.Side;
- import cpw.mods.fml.relauncher.SideOnly;
- import java.util.Random;
- import net.minecraft.block.Block;
- import net.minecraft.block.material.Material;
- import net.minecraft.item.Item;
- import net.minecraft.util.AxisAlignedBB;
- import net.minecraft.world.World;
- import net.minecraftforge.common.EnumPlantType;
- import net.minecraftforge.common.ForgeDirection;
- import net.minecraftforge.common.IPlantable;
- public class BlockTomato extends Block implements IPlantable
- {
- protected BlockTomato(int par1)
- {
- super(par1, Material.plants);
- float f = 0.375F;
- this.setBlockBounds(0.5F - f, 0.0F, 0.5F - f, 0.5F + f, 1.0F, 0.5F + f);
- this.setTickRandomly(true);
- this.disableStats();
- }
- /**
- * Ticks the block if it's been scheduled
- */
- public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random)
- {
- if (par1World.isAirBlock(par2, par3 + 1, par4))
- {
- int l;
- for (l = 1; par1World.getBlockId(par2, par3 - l, par4) == this.blockID; ++l)
- {
- ;
- }
- if (l < 2)
- {
- int i1 = par1World.getBlockMetadata(par2, par3, par4);
- if (i1 == 15)
- {
- par1World.setBlock(par2, par3 + 1, par4, this.blockID);
- par1World.setBlockMetadataWithNotify(par2, par3, par4, 0, 4);
- }
- else
- {
- par1World.setBlockMetadataWithNotify(par2, par3, par4, i1 + 1, 4);
- }
- }
- }
- }
- /**
- * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z
- */
- public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4)
- {
- Block block = Block.blocksList[par1World.getBlockId(par2, par3 - 1, par4)];
- return (block != null && block.canSustainPlant(par1World, par2, par3 - 1, par4, ForgeDirection.UP, this));
- }
- /**
- * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are
- * their own) Args: x, y, z, neighbor blockID
- */
- public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5)
- {
- this.checkBlockCoordValid(par1World, par2, par3, par4);
- }
- /**
- * Checks if current block pos is valid, if not, breaks the block as dropable item. Used for reed and cactus.
- */
- protected final void checkBlockCoordValid(World par1World, int par2, int par3, int par4)
- {
- if (!this.canBlockStay(par1World, par2, par3, par4))
- {
- this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0);
- par1World.setBlockToAir(par2, par3, par4);
- }
- }
- /**
- * Can this block stay at this position. Similar to canPlaceBlockAt except gets checked often with plants.
- */
- public boolean canBlockStay(World par1World, int par2, int par3, int par4)
- {
- return this.canPlaceBlockAt(par1World, par2, par3, par4);
- }
- /**
- * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been
- * cleared to be reused)
- */
- public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4)
- {
- return null;
- }
- /**
- * Returns the ID of the items to drop on destruction.
- */
- public int idDropped(int par1, Random par2Random, int par3)
- {
- return BaseMoplants.tomato.itemID;
- }
- /**
- * Is this block (a) opaque and (b) a full 1m cube? This determines whether or not to render the shared face of two
- * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block.
- */
- public boolean isOpaqueCube()
- {
- return false;
- }
- /**
- * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc)
- */
- public boolean renderAsNormalBlock()
- {
- return false;
- }
- /**
- * The type of render function that is called for this block
- */
- public int getRenderType()
- {
- return 1;
- }
- @SideOnly(Side.CLIENT)
- /**
- * only called by clickMiddleMouseButton , and passed to inventory.setCurrentItem (along with isCreative)
- */
- public int idPicked(World par1World, int par2, int par3, int par4)
- {
- return BaseMoplants.tomato.itemID;
- }
- @Override
- public EnumPlantType getPlantType(World world, int x, int y, int z)
- {
- return EnumPlantType.Beach;
- }
- @Override
- public int getPlantID(World world, int x, int y, int z)
- {
- return blockID;
- }
- @Override
- public int getPlantMetadata(World world, int x, int y, int z)
- {
- return world.getBlockMetadata(x, y, z);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement