net.minecraft.block

## Class BlockCactus

- java.lang.Object
- - net.minecraft.block.Block
  - - net.minecraft.block.BlockCactus

- All Implemented Interfaces:
    IPlantable

      public class BlockCactus
      extends Block
      implements IPlantable

- - ### Field Summary

    - ### Fields inherited from class net.minecraft.block.Block

      `anvil, beacon, bed, bedrock, blockClay, blockDiamond, blockEmerald, blockGold, blockID, blockLapis, blockMaterial, blockParticleGravity, blocksList, blockSnow, blockSteel, bookShelf, brewingStand, brick, cactus, cake, canBlockGrass, carrot, cauldron, chest, cloth, cobblestone, cobblestoneMossy, cobblestoneWall, cocoaPlant, commandBlock, crops, deadBush, dirt, dispenser, doorSteel, doorWood, dragonEgg, enchantmentTable, enderChest, endPortal, endPortalFrame, fence, fenceGate, fenceIron, field_94337_cv, field_94338_cu, field_94339_ct, field_94340_cs, field_94341_cq, field_94342_cr, field_94343_co, field_94344_cp, field_94345_cm, field_94346_cn, field_94347_ck, field_94348_cl, field_96469_cy, fire, flowerPot, furnaceBurning, furnaceIdle, glass, glowStone, grass, gravel, ice, jukebox, ladder, lavaMoving, lavaStill, leaves, lever, lightOpacity, lightValue, lockedChest, melon, melonStem, mobSpawner, mushroomBrown, mushroomCapBrown, mushroomCapRed, mushroomRed, music, mycelium, netherBrick, netherFence, netherrack, netherStalk, obsidian, opaqueCubeLookup, oreCoal, oreDiamond, oreEmerald, oreGold, oreIron, oreLapis, oreRedstone, oreRedstoneGlowing, pistonBase, pistonExtension, pistonMoving, pistonStickyBase, planks, plantRed, plantYellow, portal, potato, pressurePlatePlanks, pressurePlateStone, pumpkin, pumpkinLantern, pumpkinStem, rail, railDetector, railPowered, redstoneLampActive, redstoneLampIdle, redstoneRepeaterActive, redstoneRepeaterIdle, redstoneWire, reed, sand, sandStone, sapling, signPost, signWall, silverfish, skull, slipperiness, slowSand, snow, soundAnvilFootstep, soundClothFootstep, soundGlassFootstep, soundGrassFootstep, soundGravelFootstep, soundLadderFootstep, soundMetalFootstep, soundPowderFootstep, soundSandFootstep, soundSnowFootstep, soundStoneFootstep, soundWoodFootstep, sponge, stairCompactCobblestone, stairCompactPlanks, stairsBrick, stairsNetherBrick, stairsSandStone, stairsStoneBrickSmooth, stairsWoodBirch, stairsWoodJungle, stairsWoodSpruce, stepSound, stone, stoneBrick, stoneButton, stoneDoubleSlab, stoneSingleSlab, tallGrass, thinGlass, tilledField, tnt, torchRedstoneActive, torchRedstoneIdle, torchWood, trapdoor, tripWire, tripWireSource, useNeighborBrightness, vine, waterlily, waterMoving, waterStill, web, whiteStone, wood, woodDoubleSlab, woodenButton, woodSingleSlab, workbench`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `canBlockStay(World par1World, int par2, int par3, int par4)` Can this block stay at this position.
    `boolean` | `canPlaceBlockAt(World par1World, int par2, int par3, int par4)` Checks to see if its valid to put this block at the specified coordinates.
    `void` | `func_94332_a(IconRegister par1IconRegister)`
    `Icon` | `getBlockTextureFromSideAndMetadata(int par1, int par2)`
    `AxisAlignedBB` | `getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int 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)
    `int` | `getPlantID(World world, int x, int y, int z)`
    `int` | `getPlantMetadata(World world, int x, int y, int z)`
    `EnumPlantType` | `getPlantType(World world, int x, int y, int z)`
    `int` | `getRenderType()` The type of render function that is called for this block
    `AxisAlignedBB` | `getSelectedBoundingBoxFromPool(World par1World, int par2, int par3, int par4)`
    `boolean` | `isOpaqueCube()` 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.
    `void` | `onEntityCollidedWithBlock(World par1World, int par2, int par3, int par4, Entity par5Entity)` Triggered whenever an entity collides with this block (enters into the block).
    `void` | `onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5)` Lets the block know when one of its neighbor changes.
    `boolean` | `renderAsNormalBlock()` If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc)
    `void` | `updateTick(World par1World, int par2, int par3, int par4, Random par5Random)` Ticks the block if it's been scheduled

    - ### Methods inherited from class net.minecraft.block.Block

      `addBlockDestroyEffects, addBlockHitEffects, addCollisionBoxesToList, addCreativeItems, beginLeavesDecay, breakBlock, canBeReplacedByLeaves, canCollideCheck, canConnectRedstone, canCreatureSpawn, canDragonDestroy, canDropFromExplosion, canHarvestBlock, canPlaceBlockOnSide, canPlaceTorchOnTop, canProvidePower, canRenderInPass, canSilkHarvest, canSustainLeaves, canSustainPlant, collisionRayTrace, colorMultiplier, createTileEntity, damageDropped, dropBlockAsItem, dropBlockAsItemWithChance, fillWithRain, func_82505_u_, func_82506_l, func_94327_t_, func_94328_b_, func_94329_b, func_94330_A, func_94331_a, func_94334_h, func_96468_q_, getAmbientOcclusionLightValue, getBedDirection, getBedSpawnPosition, getBlockBoundsMaxX, getBlockBoundsMaxY, getBlockBoundsMaxZ, getBlockBoundsMinX, getBlockBoundsMinY, getBlockBoundsMinZ, getBlockBrightness, getBlockColor, getBlockDropped, getBlockHardness, getBlocksMovement, getBlockTexture, getBlockTextureFromSide, getCreativeTabToDisplayOn, getDamageValue, getEnableStats, getExplosionResistance, getExplosionResistance, getFireSpreadSpeed, getFlammability, getLightOpacity, getLightValue, getLocalizedName, getMixedBrightnessForBlock, getMobilityFlag, getPickBlock, getPlayerRelativeBlockHardness, getRenderBlockPass, getRenderColor, getSubBlocks, getTickRandomly, getUnlocalizedName, harvestBlock, hasTileEntity, hasTileEntity, idDropped, idPicked, isAirBlock, isBeaconBase, isBed, isBedFoot, isBlockBurning, isBlockFoliage, isBlockNormalCube, isBlockReplaceable, isBlockSolid, isBlockSolidOnSide, isCollidable, isFertile, isFireSource, isFlammable, isGenMineableReplaceable, isLadder, isLeaves, isNormalCube, isProvidingStrongPower, isProvidingWeakPower, isWood, onBlockActivated, onBlockAdded, onBlockClicked, onBlockDestroyedByExplosion, onBlockDestroyedByPlayer, onBlockEventReceived, onBlockHarvested, onBlockPlaced, onBlockPlacedBy, onEntityWalking, onFallenUpon, onPlantGrow, onPostBlockPlaced, onSetBlockIDWithMetaData, quantityDropped, quantityDropped, quantityDroppedWithBonus, randomDisplayTick, removeBlockByPlayer, setBedOccupied, setBlockBounds, setBlockBoundsBasedOnState, setBlockBoundsForItemRender, setBlockUnbreakable, setBurnProperties, setCreativeTab, setHardness, setLightOpacity, setLightValue, setResistance, setStepSound, setTickRandomly, setUnlocalizedName, shouldSideBeRendered, tickRate, velocityToAddToEntity`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### updateTick

          public void updateTick(World par1World,
                        int par2,
                        int par3,
                        int par4,
                        Random par5Random)

      Ticks the block if it's been scheduled
      Overrides:
        `updateTick` in class `Block`

    - #### getCollisionBoundingBoxFromPool

          public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World,
                                                      int par2,
                                                      int par3,
                                                      int 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)
      Overrides:
        `getCollisionBoundingBoxFromPool` in class `Block`

    - #### renderAsNormalBlock

          public boolean renderAsNormalBlock()

      If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc)
      Overrides:
        `renderAsNormalBlock` in class `Block`

    - #### getSelectedBoundingBoxFromPool

          public AxisAlignedBB getSelectedBoundingBoxFromPool(World par1World,
                                                     int par2,
                                                     int par3,
                                                     int par4)

      Overrides:
        `getSelectedBoundingBoxFromPool` in class `Block`

    - #### getBlockTextureFromSideAndMetadata

          public Icon getBlockTextureFromSideAndMetadata(int par1,
                                                int par2)

      Overrides:
        `getBlockTextureFromSideAndMetadata` in class `Block`

    - #### isOpaqueCube

          public boolean isOpaqueCube()

      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.
      Overrides:
        `isOpaqueCube` in class `Block`

    - #### getRenderType

          public int getRenderType()

      The type of render function that is called for this block
      Overrides:
        `getRenderType` in class `Block`

    - #### canPlaceBlockAt

          public boolean canPlaceBlockAt(World par1World,
                                int par2,
                                int par3,
                                int par4)

      Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z
      Overrides:
        `canPlaceBlockAt` in class `Block`

    - #### onNeighborBlockChange

          public void onNeighborBlockChange(World par1World,
                                   int par2,
                                   int par3,
                                   int par4,
                                   int par5)

      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
      Overrides:
        `onNeighborBlockChange` in class `Block`

    - #### canBlockStay

          public boolean canBlockStay(World par1World,
                             int par2,
                             int par3,
                             int par4)

      Can this block stay at this position. Similar to canPlaceBlockAt except gets checked often with plants.
      Overrides:
        `canBlockStay` in class `Block`

    - #### onEntityCollidedWithBlock

          public void onEntityCollidedWithBlock(World par1World,
                                       int par2,
                                       int par3,
                                       int par4,
                                       Entity par5Entity)

      Triggered whenever an entity collides with this block (enters into the block). Args: world, x, y, z, entity
      Overrides:
        `onEntityCollidedWithBlock` in class `Block`

    - #### func_94332_a

          public void func_94332_a(IconRegister par1IconRegister)

      Overrides:
        `func_94332_a` in class `Block`

    - #### getPlantType

          public EnumPlantType getPlantType(World world,
                                   int x,
                                   int y,
                                   int z)

      Specified by:
        `getPlantType` in interface `IPlantable`

    - #### getPlantID

          public int getPlantID(World world,
                       int x,
                       int y,
                       int z)

      Specified by:
        `getPlantID` in interface `IPlantable`

    - #### getPlantMetadata

          public int getPlantMetadata(World world,
                             int x,
                             int y,
                             int z)

      Specified by:
        `getPlantMetadata` in interface `IPlantable`