Class Block

java.lang.Object
net.minecraft.src.Block
Direct Known Subclasses:
AestheticNonOpaqueBlock, AestheticOpaqueBlock, AestheticOpaqueEarthBlock, AestheticVegetationBlock, AnchorBlock, AnvilBlock, AxleBlock, BellowsBlock, BlockAnvil, BlockBasePressurePlate, BlockBookshelf, BlockBreakable, BlockButton, BlockCactus, BlockCake, BlockCarpet, BlockCauldron, BlockClay, BlockColored, BlockContainer, BlockDirectional, BlockDoor, BlockEndPortalFrame, BlockFarmland, BlockFence, BlockFire, BlockFlowerPot, BlockFluid, BlockGlowStone, BlockGrass, BlockHalfSlab, BlockLadder, BlockLeavesBase, BlockLever, BlockLockedChest, BlockMelon, BlockMushroomCap, BlockMycelium, BlockNetherrack, BlockObsidian, BlockOre, BlockOreStorage, BlockPane, BlockPistonBase, BlockPistonExtension, BlockQuartz, BlockRailBase, BlockRedstoneLight, BlockRedstoneOre, BlockRedstoneWire, BlockReed, BlockRotatedPillar, BlockSandStone, BlockSilverfish, BlockSnow, BlockSnowBlock, BlockSoulSand, BlockSponge, BlockStairs, BlockStoneBrick, BlockTemplate, BlockTNT, BlockTorch, BlockTrapDoor, BlockTripWire, BlockTripWireSource, BlockVine, BlockWall, BlockWeb, BlockWood, BlockWorkbench, BloodWoodLogBlock, BrickBlock, BuddyBlock, CharredStumpBlock, ChewedLogBlock, ClusterBlock, CoalBlock, CobblestoneBlock, CompanionCubeBlock, CreeperOysterBlock, DetectorBlock, DetectorLogicBlock, DormantSoulforgeBlock, FallingBlock, FarmlandBlockBase, FenceBlock, FiredBrickBlock, FullBlock, GearBoxBlock, GroundCoverBlock, HandCrankBlock, HibachiBlock, KilnBlock, LadderBlockBase, LegacyCandleBlock, LegacyCornerBlock, LegacySidingBlock, LensBlock, LightBlock, LogSpikeBlock, MetalSpikeBlock, MiningChargeBlock, MossyCobblestoneBlock, MouldingBlock, NetherBrickBlock, NetherGrothBlock, NetherSludgeBlock, OldJackOLanternBlock, OreChunkBlock, PillarBlock, PistonShovelBlock, PlacedShaftBlock, PlanterBlockBase, PlantsBlock, PlatformBlock, RopeBlock, RottenFleshBlock, SawBlock, ScrewPumpBlock, SidingAndCornerBlock, SlabBlock, SolidSnowBlock, SoulforgedSteelBlock, SpiderEyeBlock, StairsBlockBase, StakeBlock, StakeStringBlock, StubBlock, SugarCaneBlockBase, TorchBlockBase, UnfiredClayBlock, UnfiredPotteryBlock, WickerBlock, WorkStumpBlock

public class Block extends Object
  • Field Details

    • textureName

      protected String textureName
    • modIDSetter

      public static String modIDSetter
    • modID

      protected String modID
    • soundPowderFootstep

      public static final StepSound soundPowderFootstep
    • soundWoodFootstep

      public static final StepSound soundWoodFootstep
    • soundGravelFootstep

      public static final StepSound soundGravelFootstep
    • soundGrassFootstep

      public static final StepSound soundGrassFootstep
    • soundStoneFootstep

      public static final StepSound soundStoneFootstep
    • soundMetalFootstep

      public static final StepSound soundMetalFootstep
    • soundGlassFootstep

      public static final StepSound soundGlassFootstep
    • soundClothFootstep

      public static final StepSound soundClothFootstep
    • soundSandFootstep

      public static final StepSound soundSandFootstep
    • soundSnowFootstep

      public static final StepSound soundSnowFootstep
    • soundLadderFootstep

      public static final StepSound soundLadderFootstep
    • soundAnvilFootstep

      public static final StepSound soundAnvilFootstep
    • blocksList

      public static final Block[] blocksList
      List of ly/ff (BlockType) containing the already registered blocks.
    • opaqueCubeLookup

      public static final boolean[] opaqueCubeLookup
      An array of 4096 booleans corresponding to the result of the isOpaqueCube() method for each block ID
    • lightOpacity

      public static final int[] lightOpacity
      How much light is subtracted for going through this block
    • hasKilnRecipe

      public static final boolean[] hasKilnRecipe
    • canBlockGrass

      public static final boolean[] canBlockGrass
      Array of booleans that tells if a block can grass FCNOTE: Misleading name. This is actually wether grass can grow under the block
    • lightValue

      public static final int[] lightValue
      Amount of light emitted
    • useNeighborBrightness

      public static boolean[] useNeighborBrightness
      Flag if block ID should use the brightest neighbor light value as its own // +++START EDIT+++ FCNOTE: Misleading name in that this does not apply to the neighbor below the block, only to sides and top // ---END EDIT---
    • stone

      public static Block stone
    • grass

      public static BlockGrass grass
    • dirt

      public static Block dirt
    • cobblestone

      public static Block cobblestone
    • planks

      public static Block planks
    • sapling

      public static Block sapling
    • bedrock

      public static Block bedrock
    • waterMoving

      public static BlockFluid waterMoving
    • waterStill

      public static Block waterStill
    • lavaMoving

      public static BlockFluid lavaMoving
    • lavaStill

      public static Block lavaStill
    • sand

      public static Block sand
    • gravel

      public static Block gravel
    • oreGold

      public static Block oreGold
    • oreIron

      public static Block oreIron
    • oreCoal

      public static Block oreCoal
    • wood

      public static Block wood
    • leaves

      public static BlockLeaves leaves
    • sponge

      public static Block sponge
    • glass

      public static Block glass
    • oreLapis

      public static Block oreLapis
    • blockLapis

      public static Block blockLapis
    • dispenser

      public static Block dispenser
    • sandStone

      public static Block sandStone
    • music

      public static Block music
    • bed

      public static Block bed
    • railPowered

      public static Block railPowered
    • railDetector

      public static Block railDetector
    • pistonStickyBase

      public static BlockPistonBase pistonStickyBase
    • web

      public static Block web
    • tallGrass

      public static BlockTallGrass tallGrass
    • deadBush

      public static BlockDeadBush deadBush
    • pistonBase

      public static BlockPistonBase pistonBase
    • pistonExtension

      public static BlockPistonExtension pistonExtension
    • cloth

      public static Block cloth
    • pistonMoving

      public static BlockPistonMoving pistonMoving
    • plantYellow

      public static BlockFlower plantYellow
    • plantRed

      public static BlockFlower plantRed
    • mushroomBrown

      public static BlockFlower mushroomBrown
    • mushroomRed

      public static BlockFlower mushroomRed
    • blockGold

      public static Block blockGold
    • blockIron

      public static Block blockIron
    • stoneDoubleSlab

      public static BlockHalfSlab stoneDoubleSlab
    • stoneSingleSlab

      public static BlockHalfSlab stoneSingleSlab
    • brick

      public static Block brick
    • tnt

      public static Block tnt
    • bookShelf

      public static Block bookShelf
    • cobblestoneMossy

      public static Block cobblestoneMossy
    • obsidian

      public static Block obsidian
    • torchWood

      public static Block torchWood
    • fire

      public static BlockFire fire
    • mobSpawner

      public static Block mobSpawner
    • stairsWoodOak

      public static Block stairsWoodOak
    • chest

      public static BlockChest chest
    • redstoneWire

      public static BlockRedstoneWire redstoneWire
    • oreDiamond

      public static Block oreDiamond
    • blockDiamond

      public static Block blockDiamond
    • workbench

      public static Block workbench
    • crops

      public static Block crops
    • tilledField

      public static Block tilledField
    • furnaceIdle

      public static Block furnaceIdle
    • furnaceBurning

      public static Block furnaceBurning
    • signPost

      public static Block signPost
    • doorWood

      public static Block doorWood
    • ladder

      public static Block ladder
    • rail

      public static Block rail
    • stairsCobblestone

      public static Block stairsCobblestone
    • signWall

      public static Block signWall
    • lever

      public static Block lever
    • pressurePlateStone

      public static Block pressurePlateStone
    • doorIron

      public static Block doorIron
    • pressurePlatePlanks

      public static Block pressurePlatePlanks
    • oreRedstone

      public static Block oreRedstone
    • oreRedstoneGlowing

      public static Block oreRedstoneGlowing
    • torchRedstoneIdle

      public static Block torchRedstoneIdle
    • torchRedstoneActive

      public static Block torchRedstoneActive
    • stoneButton

      public static Block stoneButton
    • snow

      public static Block snow
    • ice

      public static Block ice
    • blockSnow

      public static Block blockSnow
    • cactus

      public static Block cactus
    • blockClay

      public static Block blockClay
    • reed

      public static Block reed
    • jukebox

      public static Block jukebox
    • fence

      public static Block fence
    • pumpkin

      public static Block pumpkin
    • netherrack

      public static Block netherrack
    • slowSand

      public static Block slowSand
    • glowStone

      public static Block glowStone
    • portal

      public static BlockPortal portal
    • pumpkinLantern

      public static Block pumpkinLantern
    • cake

      public static Block cake
    • redstoneRepeaterIdle

      public static BlockRedstoneRepeater redstoneRepeaterIdle
    • redstoneRepeaterActive

      public static BlockRedstoneRepeater redstoneRepeaterActive
    • lockedChest

      public static Block lockedChest
      April fools secret locked chest, only spawns on new chunks on 1st April.
    • trapdoor

      public static Block trapdoor
    • silverfish

      public static Block silverfish
    • stoneBrick

      public static Block stoneBrick
    • mushroomCapBrown

      public static Block mushroomCapBrown
    • mushroomCapRed

      public static Block mushroomCapRed
    • fenceIron

      public static Block fenceIron
    • thinGlass

      public static Block thinGlass
    • melon

      public static Block melon
    • pumpkinStem

      public static Block pumpkinStem
    • melonStem

      public static Block melonStem
    • vine

      public static Block vine
    • fenceGate

      public static Block fenceGate
    • stairsBrick

      public static Block stairsBrick
    • stairsStoneBrick

      public static Block stairsStoneBrick
    • mycelium

      public static BlockMycelium mycelium
    • waterlily

      public static Block waterlily
    • netherBrick

      public static Block netherBrick
    • netherFence

      public static Block netherFence
    • stairsNetherBrick

      public static Block stairsNetherBrick
    • netherStalk

      public static Block netherStalk
    • enchantmentTable

      public static Block enchantmentTable
    • brewingStand

      public static Block brewingStand
    • cauldron

      public static BlockCauldron cauldron
    • endPortal

      public static Block endPortal
    • endPortalFrame

      public static Block endPortalFrame
    • whiteStone

      public static Block whiteStone
    • dragonEgg

      public static Block dragonEgg
    • redstoneLampIdle

      public static Block redstoneLampIdle
    • redstoneLampActive

      public static Block redstoneLampActive
    • woodDoubleSlab

      public static BlockHalfSlab woodDoubleSlab
    • woodSingleSlab

      public static BlockHalfSlab woodSingleSlab
    • cocoaPlant

      public static Block cocoaPlant
    • stairsSandStone

      public static Block stairsSandStone
    • oreEmerald

      public static Block oreEmerald
    • enderChest

      public static Block enderChest
    • tripWireSource

      public static BlockTripWireSource tripWireSource
    • tripWire

      public static Block tripWire
    • blockEmerald

      public static Block blockEmerald
    • stairsWoodSpruce

      public static Block stairsWoodSpruce
    • stairsWoodBirch

      public static Block stairsWoodBirch
    • stairsWoodJungle

      public static Block stairsWoodJungle
    • commandBlock

      public static Block commandBlock
    • beacon

      public static BlockBeacon beacon
    • cobblestoneWall

      public static Block cobblestoneWall
    • flowerPot

      public static Block flowerPot
    • carrot

      public static Block carrot
    • potato

      public static Block potato
    • woodenButton

      public static Block woodenButton
    • skull

      public static Block skull
    • anvil

      public static Block anvil
    • chestTrapped

      public static Block chestTrapped
    • pressurePlateGold

      public static Block pressurePlateGold
    • pressurePlateIron

      public static Block pressurePlateIron
    • redstoneComparatorIdle

      public static BlockComparator redstoneComparatorIdle
    • redstoneComparatorActive

      public static BlockComparator redstoneComparatorActive
    • daylightSensor

      public static BlockDaylightDetector daylightSensor
    • blockRedstone

      public static Block blockRedstone
    • oreNetherQuartz

      public static Block oreNetherQuartz
    • hopperBlock

      public static BlockHopper hopperBlock
    • blockNetherQuartz

      public static Block blockNetherQuartz
    • stairsNetherQuartz

      public static Block stairsNetherQuartz
    • railActivator

      public static Block railActivator
    • dropper

      public static Block dropper
    • stainedClay

      public static final Block stainedClay
    • hay

      public static final Block hay
    • carpet

      public static final Block carpet
    • hardenedClay

      public static final Block hardenedClay
    • coalBlock

      public static final Block coalBlock
    • blockID

      public final int blockID
      ID of the block.
    • blockHardness

      public float blockHardness
      Indicates how many hits it takes to break a block.
    • blockResistance

      public float blockResistance
      Indicates the blocks resistance to explosions.
    • blockConstructorCalled

      protected boolean blockConstructorCalled
      set to true when Block's constructor is called through the chain of super()'s. Note: Never used
    • enableStats

      protected boolean enableStats
      If this field is true, the block is counted for statistics (mined or placed)
    • needsRandomTick

      protected boolean needsRandomTick
      Flags whether or not this block is of a type that needs random ticking. Ref-counted by ExtendedBlockStorage in order to broadly cull a chunk from the random chunk update list for efficiency's sake.
    • isBlockContainer

      protected boolean isBlockContainer
      true if the Block contains a Tile Entity
    • minX

      protected double minX
      FCNOTE: DEPRECATED
    • minY

      protected double minY
      FCNOTE: DEPRECATED
    • minZ

      protected double minZ
      FCNOTE: DEPRECATED
    • maxX

      protected double maxX
      FCNOTE: DEPRECATED
    • maxY

      protected double maxY
      FCNOTE: DEPRECATED
    • maxZ

      protected double maxZ
      FCNOTE: DEPRECATED
    • stepSound

      public StepSound stepSound
      Sound of stepping on the block
    • blockParticleGravity

      public float blockParticleGravity
    • blockMaterial

      public Material blockMaterial
      Block material definition.
    • slipperiness

      public float slipperiness
      Determines how much velocity is maintained while moving on top of this block
    • blockIcon

      public Icon blockIcon
    • blockReplaced

      public static final boolean[] blockReplaced
    • blockReplacedBy

      public static final String[] blockReplacedBy
    • currentBlockRenderer

      @Environment(CLIENT) public RenderBlocks currentBlockRenderer
      Mainly used by shouldSideBeRendered() so that it can access the current render bounds. NOTE: Does not apply to item rendering unless specifically set within RenderBlockAsItem()
  • Constructor Details

    • Block

      protected Block(int par1, Material par2Material)
  • Method Details

    • initializeBlock

      protected void initializeBlock()
      This method is called on a block after all other blocks gets already created. You can use it to reference and configure something on the block that needs the others ones.
    • setStepSound

      public Block setStepSound(StepSound par1StepSound)
      Sets the footstep sound for the block. Returns the object for convenience in constructing.
    • setLightOpacity

      protected Block setLightOpacity(int par1)
      Sets how much light is blocked going through this block. Returns the object for convenience in constructing.
    • setLightValue

      public Block setLightValue(float par1)
      Sets the amount of light emitted by a block from 0.0f to 1.0f (converts internally to 0-15). Returns the object for convenience in constructing.
    • setResistance

      public Block setResistance(float par1)
      Sets the the blocks resistance to explosions. Returns the object for convenience in constructing.
    • isNormalCube

      public static boolean isNormalCube(int par0)
    • renderAsNormalBlock

      public boolean renderAsNormalBlock()
      If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc)
    • getBlocksMovement

      public boolean getBlocksMovement(IBlockAccess par1IBlockAccess, int par2, int par3, int par4)
      FCNOTE: This is misnamed and returns true if the block *doesn't* block movement
    • getRenderType

      public int getRenderType()
      The type of render function that is called for this block
    • setHardness

      public Block setHardness(float par1)
      Sets how many hits it takes to break a block.
    • setBlockUnbreakable

      protected Block setBlockUnbreakable()
      This method will make the hardness of the block equals to -1, and the block is indestructible.
    • getBlockHardness

      public float getBlockHardness(World par1World, int par2, int par3, int par4)
      Returns the block hardness at a location. Args: world, x, y, z
    • hideFromEMI

      public Block hideFromEMI()
      Removes this block from the EMI sidebar. Does not remove from recipes.
    • hideFromEMI

      public Block hideFromEMI(int metadata)
    • setTickRandomly

      protected Block setTickRandomly(boolean par1)
      Sets whether this block type will receive random update ticks
    • getTickRandomly

      public boolean getTickRandomly()
      Returns whether or not this block is of a type that needs random ticking. Called for ref-counting purposes by ExtendedBlockStorage in order to broadly cull a chunk from the random chunk update list for efficiency's sake.
    • hasTileEntity

      public boolean hasTileEntity()
    • setBlockBounds

      @Deprecated protected final void setBlockBounds(float par1, float par2, float par3, float par4, float par5, float par6)
      Deprecated.
    • getBlockBrightness

      public float getBlockBrightness(IBlockAccess par1IBlockAccess, int par2, int par3, int par4)
      How bright to render this block based on the light its receiving. Args: iBlockAccess, x, y, z
    • getMixedBrightnessForBlock

      public int getMixedBrightnessForBlock(IBlockAccess par1IBlockAccess, int par2, int par3, int par4)
      Goes straight to getLightBrightnessForSkyBlocks for Blocks, does some fancy computing for Fluids
    • isBlockSolid

      public boolean isBlockSolid(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5)
      Returns Returns true if the given side of this block type should be rendered (if it's solid or not), if the adjacent block is at the given coordinates. Args: blockAccess, x, y, z, side
    • getBlockTexture

      public Icon getBlockTexture(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5)
      Retrieves the block texture to use based on the display side. Args: iBlockAccess, x, y, z, side
    • getIcon

      public Icon getIcon(int par1, int par2)
      From the specified side and block metadata retrieves the blocks texture. Args: side, metadata
    • getBlockTextureFromSide

      public final Icon getBlockTextureFromSide(int par1)
      Returns the block texture based on the side being looked at. Args: side
    • addCollisionBoxesToList

      public void addCollisionBoxesToList(World par1World, int par2, int par3, int par4, AxisAlignedBB par5AxisAlignedBB, List par6List, Entity par7Entity)
      Adds all intersecting collision boxes to a list. (Be sure to only add boxes to the list if they intersect the mask.) Parameters: World, X, Y, Z, mask, list, colliding entity // +++START EDIT+++ FCNOTE: The "mask" referred to above is just the bounding box to check for intersection with // ---END EDIT---
    • isOpaqueCube

      public boolean isOpaqueCube()
      // +++START EDIT+++ // ---END EDIT--- 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.
    • canCollideCheck

      public boolean canCollideCheck(int par1, boolean par2)
      Returns whether this block is collideable based on the arguments passed in \n@param par1 block metaData \n@param par2 whether the player right-clicked while holding a boat
    • isCollidable

      public boolean isCollidable()
      Returns if this block is collidable (only used by Fire). Args: x, y, z
    • updateTick

      public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random)
      Ticks the block if it's been scheduled // +++START EDIT+++ FCNOTE: Called on server only // ---END EDIT---
    • randomDisplayTick

      public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random)
      A randomly called display update to be able to add particles or other items for display
    • onBlockDestroyedByPlayer

      public void onBlockDestroyedByPlayer(World par1World, int par2, int par3, int par4, int par5)
      Called right before the block is destroyed by a player. Args: world, x, y, z, metaData // +++START EDIT+++ FCNOTE: Called AFTER block is set to air, not before // ---END EDIT---
    • 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 // +++START EDIT+++ FCNOTE: Only called on server // ---END EDIT---
    • tickRate

      public int tickRate(World par1World)
      How many world ticks before ticking
    • onBlockAdded

      public void onBlockAdded(World par1World, int par2, int par3, int par4)
      Called whenever the block is added into the world. Args: world, x, y, z // +++START EDIT+++ FCNOTE: Called on server only // ---END EDIT---
    • breakBlock

      public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6)
      Called on server worlds only when the block has been replaced by a different block ID, or the same block with a different metadata value, but before the new metadata value is set. Args: World, x, y, z, old block ID, old metadata ??ejects contained items into the world, and notifies neighbours of an update, as appropriate?? // +++START EDIT+++ FCNOTE: Called on server only. Called AFTER block is set, so it is no longer valid at pos. // ---END EDIT---
    • quantityDropped

      public int quantityDropped(Random par1Random)
      Returns the quantity of items to drop on block destruction.
    • idDropped

      public int idDropped(int par1, Random par2Random, int par3)
      Returns the ID of the items to drop on destruction.
    • dropBlockAsItem

      public final void dropBlockAsItem(World par1World, int par2, int par3, int par4, int par5, int par6)
      // +++START EDIT+++ // ---END EDIT--- Drops the specified block items
    • dropBlockAsItemWithChance

      public void dropBlockAsItemWithChance(World par1World, int par2, int par3, int par4, int par5, float par6, int par7)
      Drops the block items with a specified chance of dropping the specified items
    • dropBlockAsItem_do

      protected void dropBlockAsItem_do(World par1World, int par2, int par3, int par4, ItemStack par5ItemStack)
      Spawns EntityItem in the world for the given ItemStack if the world is not remote.
    • dropXpOnBlockBreak

      protected void dropXpOnBlockBreak(World par1World, int par2, int par3, int par4, int par5)
      called by spawner, ore, redstoneOre blocks
    • damageDropped

      public int damageDropped(int par1)
      Determines the damage on the item the block drops. Used in cloth and wood.
    • getExplosionResistance

      public float getExplosionResistance(Entity par1Entity)
      Returns how much this block can resist explosions from the passed in entity.
    • onBlockDestroyedByExplosion

      public void onBlockDestroyedByExplosion(World par1World, int par2, int par3, int par4, Explosion par5Explosion)
      // +++START EDIT+++ Called upon the block being destroyed by an explosion // ---END EDIT---
    • postBlockDestroyedByExplosion

      public void postBlockDestroyedByExplosion(World par1World, int par2, int par3, int par4, Explosion par5Explosion)
    • onBlockDestroyedByMiningCharge

      public void onBlockDestroyedByMiningCharge(World world, int x, int y, int z)
    • postBlockDestroyedByMiningCharge

      public void postBlockDestroyedByMiningCharge(World world, int x, int y, int z)
    • canWitherDestroyBlock

      public boolean canWitherDestroyBlock()
    • getRenderBlockPass

      public int getRenderBlockPass()
      // +++START EDIT+++ // ---END EDIT--- Returns which pass should this block be rendered on. 0 for solids and 1 for alpha
    • canPlaceBlockOnSide

      public boolean canPlaceBlockOnSide(World par1World, int par2, int par3, int par4, int par5, ItemStack par6ItemStack)
    • canPlaceBlockOnSide

      public boolean canPlaceBlockOnSide(World par1World, int par2, int par3, int par4, int par5)
      checks to see if you can place this block can be placed on that side of a block: BlockLever overrides
    • 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
    • onBlockActivated

      public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9)
      Called upon block activation (right click on the block.)
    • onEntityWalking

      public void onEntityWalking(World par1World, int par2, int par3, int par4, Entity par5Entity)
      Called whenever an entity is walking on top of this block. Args: world, x, y, z, entity
    • onEntityStepsIn

      public void onEntityStepsIn(World world, int x, int y, int z, Entity entity)
      Called whenever an entity is walking through this block. only works for entities that canTriggerWalking.
    • onBlockPlaced

      public int onBlockPlaced(World par1World, int par2, int par3, int par4, int par5, float par6, float par7, float par8, int par9)
      Called when a block is placed using its ItemBlock. Args: World, X, Y, Z, side, hitX, hitY, hitZ, block metadata
    • onBlockClicked

      public void onBlockClicked(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer)
      Called when the block is clicked by a player. Args: x, y, z, entityPlayer
    • velocityToAddToEntity

      public void velocityToAddToEntity(World par1World, int par2, int par3, int par4, Entity par5Entity, Vec3 par6Vec3)
      Can add to the passed in vector for a movement vector to be applied to the entity. Args: x, y, z, entity, vec3d
    • setBlockBoundsBasedOnState

      public void setBlockBoundsBasedOnState(IBlockAccess par1IBlockAccess, int par2, int par3, int par4)
      FCNOTE: DEPRECATED
    • getBlockBoundsMinX

      public final double getBlockBoundsMinX()
      returns the block bounderies minX value
    • getBlockBoundsMaxX

      public final double getBlockBoundsMaxX()
      returns the block bounderies maxX value
    • getBlockBoundsMinY

      public final double getBlockBoundsMinY()
      returns the block bounderies minY value
    • getBlockBoundsMaxY

      public final double getBlockBoundsMaxY()
      returns the block bounderies maxY value
    • getBlockBoundsMinZ

      public final double getBlockBoundsMinZ()
      returns the block bounderies minZ value
    • getBlockBoundsMaxZ

      public final double getBlockBoundsMaxZ()
      returns the block bounderies maxZ value
    • getBlockColor

      public int getBlockColor()
    • getRenderColor

      public int getRenderColor(int par1)
      Returns the color this block should be rendered. Used by leaves.
    • colorMultiplier

      public int colorMultiplier(IBlockAccess par1IBlockAccess, int par2, int par3, int par4)
      Returns a integer with hex for 0xrrggbb with this color multiplied against the blocks color. Note only called when first determining what to render.
    • isProvidingWeakPower

      public int isProvidingWeakPower(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5)
      Returns true if the block is emitting indirect/weak redstone power on the specified side. If isBlockNormalCube returns true, standard redstone propagation rules will apply instead and this will not be called. Args: World, X, Y, Z, side. Note that the side is reversed - eg it is 1 (up) when checking the bottom of the block.
    • canProvidePower

      public boolean canProvidePower()
      Can this block provide power. Only wire currently seems to have this change based on its state.
    • 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
    • isProvidingStrongPower

      public int isProvidingStrongPower(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5)
      Returns true if the block is emitting direct/strong redstone power on the specified side. Args: World, X, Y, Z, side. Note that the side is reversed - eg it is 1 (up) when checking the bottom of the block.
    • isRedstoneConductor

      public boolean isRedstoneConductor(IBlockAccess blockAccess, int x, int y, int z)
      Indicate if a block should conduct redstone power
    • canRedstoneConnectToSide

      public boolean canRedstoneConnectToSide(IBlockAccess blockAccess, int x, int y, int z, int flatDirection)
      Should redstone dust redirect itself to this side of the block
    • setBlockBoundsForItemRender

      public void setBlockBoundsForItemRender()
      Sets the block's bounds for rendering it as an item
    • harvestBlock

      public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6)
      Called when the player destroys a block with an item that can harvest it. (i, j, k) are the coordinates of the block and l is the block's subtype/damage. // +++START EDIT+++ FCNOTE: Only called on server // ---END EDIT---
    • canSilkHarvest

      protected boolean canSilkHarvest()
      Return true if a player with Silk Touch can harvest this block directly, and not its normal drops.
    • createStackedBlock

      protected ItemStack createStackedBlock(int par1)
      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. // +++START EDIT+++ FCNOTE: This is the function used to create the silk-touch drop // ---END EDIT---
    • quantityDroppedWithBonus

      public int quantityDroppedWithBonus(int par1, Random par2Random)
      Returns the usual quantity dropped by the block plus a bonus of 1 to 'i' (inclusive).
    • getUnlocalizedName2

      public String getUnlocalizedName2()
      Returns the unlocalized name without the tile. prefix. Caution: client-only.
    • onBlockEventReceived

      public boolean onBlockEventReceived(World par1World, int par2, int par3, int par4, int par5, int par6)
      Called when the block receives a BlockEvent - see World.addBlockEvent. By default, passes it on to the tile entity at this location. Args: world, x, y, z, blockID, EventID, event parameter
    • getEnableStats

      public boolean getEnableStats()
      Return the state of blocks statistics flags - if the block is counted for mined and placed.
    • disableStats

      public Block disableStats()
      Disable statistics for the block, the block will no count for mined or placed.
    • getMobilityFlag

      public int getMobilityFlag()
      Returns the mobility information of the block, 0 = free, 1 = can't push but can move over, 2 = total immobility and stop pistons // +++START EDIT+++ FCMOD: 3 = can be piston shoveled, but free otherwise // ---END EDIT---
    • getAmbientOcclusionLightValue

      public float getAmbientOcclusionLightValue(IBlockAccess par1IBlockAccess, int par2, int par3, int par4)
      Returns the default ambient occlusion value based on block opacity
    • onFallenUpon

      public void onFallenUpon(World par1World, int par2, int par3, int par4, Entity par5Entity, float par6)
      Block's chance to react to an entity falling on it.
    • idPicked

      public int idPicked(World par1World, int par2, int par3, int par4)
      only called by clickMiddleMouseButton , and passed to inventory.setCurrentItem (along with isCreative) // +++START EDIT+++ FCNOTE: Client only // ---END EDIT---
    • getDamageValue

      public int getDamageValue(World par1World, int par2, int par3, int par4)
      Get the block's damage value (for use with pick block).
    • getSubBlocks

      public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List)
      returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks)
    • getCreativeTabToDisplayOn

      public CreativeTabs getCreativeTabToDisplayOn()
      Returns the CreativeTab to display the given block on.
    • onBlockPlacedBy

      public void onBlockPlacedBy(World par1World, int par2, int par3, int par4, EntityLivingBase par5EntityLivingBase, ItemStack par6ItemStack)
      Called when the block is placed in the world. // +++START EDIT+++ FCNOTE: Called AFTER the block is placed, unlike onBlockPlaced() // ---END EDIT---
    • 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.
    • onPostBlockPlaced

      public void onPostBlockPlaced(World par1World, int par2, int par3, int par4, int par5)
      Called after a block is placed
    • setUnlocalizedName

      public Block setUnlocalizedName(String par1Str)
    • getLocalizedName

      public String getLocalizedName()
      Gets the localized name of this block. Used for the statistics page.
    • getUnlocalizedName

      public String getUnlocalizedName()
      Returns the unlocalized name of this block.
    • setCreativeTab

      public Block setCreativeTab(CreativeTabs par1CreativeTabs)
      Sets the CreativeTab to display this block on.
    • getModId

      public String getModId()
      Mod ID (same as in fabric.mod.json) of mod that adds this item.
    • setModID

      public void setModID(String modID)
      Mod ID (same as in fabric.mod.json) of mod that adds this item.
    • onBlockHarvested

      public void onBlockHarvested(World par1World, int par2, int par3, int par4, int par5, EntityPlayer par6EntityPlayer)
      Called when the block is attempted to be harvested
    • fillWithRain

      public void fillWithRain(World par1World, int par2, int par3, int par4)
      currently only used by BlockCauldron to incrament meta-data during rain
    • isFlowerPot

      public boolean isFlowerPot()
      Returns true only if block is flowerPot
    • func_82506_l

      public boolean func_82506_l()
    • canDropFromExplosion

      public boolean canDropFromExplosion(Explosion par1Explosion)
      Return whether this block can drop from an explosion.
    • isAssociatedBlockID

      public boolean isAssociatedBlockID(int par1)
      Returns true if the given block ID is equivalent to this one. Example: redstoneTorchOn matches itself and redstoneTorchOff, and vice versa. Most blocks only match themselves.
    • isAssociatedBlockID

      public static boolean isAssociatedBlockID(int par0, int par1)
      Static version of isAssociatedBlockID.
    • hasComparatorInputOverride

      public boolean hasComparatorInputOverride()
      If this returns true, then comparators facing away from this block will use the value from getComparatorInputOverride instead of the actual redstone signal strength.
    • hasComparatorInputOverride

      public boolean hasComparatorInputOverride(World world, int x, int y, int z, int direction)
    • getComparatorInputOverride

      public int getComparatorInputOverride(World par1World, int par2, int par3, int par4, int par5)
      If hasComparatorInputOverride returns true, the return value from this is used instead of the redstone signal strength when this block inputs to a comparator.
    • registerIcons

      public void registerIcons(IconRegister par1IconRegister)
      When this method is called, your block should register all the icons it needs with the given IconRegister. This is the only chance you get to register icons.
    • getItemIconName

      public String getItemIconName()
      Gets the icon name of the ItemBlock corresponding to this block. Used by hoppers.
    • isNormalCube

      public boolean isNormalCube(IBlockAccess blockAccess, int i, int j, int k)
    • canBlockSuffocateEntity

      public boolean canBlockSuffocateEntity(IBlockAccess blockAccess, int x, int y, int z)
    • preBlockPlacedBy

      public int preBlockPlacedBy(World world, int i, int j, int k, int iMetadata, EntityLivingBase entityBy)
      Similar to onBlockPlacedBy() but called before the block is placed rather than after
    • setBlockMaterial

      public void setBlockMaterial(Material material)
    • randomUpdateTick

      public void randomUpdateTick(World world, int i, int j, int k, Random rand)
      Called on server only
    • clientNotificationOfMetadataChange

      public void clientNotificationOfMetadataChange(World world, int i, int j, int k, int iOldMetadata, int iNewMetadata)
    • onArrowImpact

      public void onArrowImpact(World world, int i, int j, int k, EntityArrow arrow)
    • onArrowCollide

      public void onArrowCollide(World world, int i, int j, int k, EntityArrow arrow)
    • getMovementModifier

      public float getMovementModifier(World world, int i, int j, int k)
    • onPlayerWalksOnBlock

      public void onPlayerWalksOnBlock(World world, int i, int j, int k, EntityPlayer player)
    • doesBlockHopperEject

      public boolean doesBlockHopperEject(World world, int i, int j, int k)
      Applies to Hopper ejecting items into the world, not inserting into the block itself
    • doesBlockHopperInsert

      public boolean doesBlockHopperInsert(World world, int i, int j, int k)
      Applies to Hopper inserting items directly into the block's inventory. This does not ensure the block has a valid inventory, it's just a first-pass chance to block such behavior.
    • getIsBlockWarm

      public boolean getIsBlockWarm(IBlockAccess blockAccess, int i, int j, int k)
      Returns true if the block is warm enough to melt nearby snow or ice
    • getStepSoundInternal

      protected StepSound getStepSoundInternal(World world, int meta)
    • getStepSound

      public final StepSound getStepSound(World world, int i, int j, int k)
    • getStepSound

      public final StepSound getStepSound(World world, int meta)
    • getStepSoundName

      public final String getStepSoundName(World world, int i, int j, int k)
    • getBreakSoundName

      public final String getBreakSoundName(World world, int i, int j, int k)
    • getPlaceSoundName

      public final String getPlaceSoundName(World world, int i, int j, int k)
    • getStepSoundName

      public final String getStepSoundName(World world, int meta)
    • getBreakSoundName

      public final String getBreakSoundName(World world, int meta)
    • getPlaceSoundName

      public final String getPlaceSoundName(World world, int meta)
    • clientBreakBlock

      public void clientBreakBlock(World world, int i, int j, int k, int iBlockID, int iMetadata)
    • clientBlockAdded

      public void clientBlockAdded(World world, int i, int j, int k)
    • hasStrata

      public boolean hasStrata()
    • getMetadataConversionForStrataLevel

      public int getMetadataConversionForStrataLevel(int iLevel, int iMetadata)
    • getExplosionResistance

      public float getExplosionResistance(Entity entity, World world, int i, int j, int k)
    • canBlockStayDuringGenerate

      public boolean canBlockStayDuringGenerate(World world, int i, int j, int k)
    • isStairBlock

      public boolean isStairBlock()
      Used to determine if this is a stair block for purposes of connecting visually to others
    • onBlockPreDestroy

      public void onBlockPreDestroy(World par1World, int par2, int par3, int par4, int par5)
      Called on server worlds only when the block is about to be replaced by a different block or the same block with a different metadata value. Args: world, x, y, z, old metadata
    • shouldDeleteTileEntityOnBlockChange

      public boolean shouldDeleteTileEntityOnBlockChange(int iNewBlockID)
    • isNaturalStone

      public boolean isNaturalStone(IBlockAccess blockAccess, int i, int j, int k)
      Determines whether other stone will "connect" to this block for purposes of determing whether a stone block can be individually harvested without breaking apart
    • getFullBlockBoundingBoxFromPool

      public static AxisAlignedBB getFullBlockBoundingBoxFromPool(World world, int i, int j, int k)
    • canSpitWebReplaceBlock

      public boolean canSpitWebReplaceBlock(World world, int i, int j, int k)
    • isAirBlock

      public boolean isAirBlock()
    • isReplaceableVegetation

      public boolean isReplaceableVegetation(World world, int i, int j, int k)
    • hasWaterToSidesOrTop

      public boolean hasWaterToSidesOrTop(World world, int i, int j, int k)
    • getPreventsFluidFlow

      public boolean getPreventsFluidFlow(World world, int i, int j, int k, Block fluidBlock)
    • onFluidFlowIntoBlock

      public void onFluidFlowIntoBlock(World world, int i, int j, int k, BlockFluid fluidBlock)
    • isBlockClimbable

      public boolean isBlockClimbable(World world, int i, int j, int k)
    • triggersBuddy

      public boolean triggersBuddy()
      Whether or not the block sets off Buddy Blocks. Set to false for stuff like redstone blocks that can cause feedback loops.
    • canSilkHarvest

      protected boolean canSilkHarvest(int iMetadata)
    • onBlockDestroyedWithImproperTool

      public void onBlockDestroyedWithImproperTool(World world, EntityPlayer player, int i, int j, int k, int iMetadata)
      Called on server only, after the block is removed from the world
    • dropItemsIndividually

      protected void dropItemsIndividually(World world, int i, int j, int k, int iIDDropped, int iPileCount, int iDamageDropped, float fChanceOfPileDrop)
    • dropComponentItemsOnBadBreak

      public boolean dropComponentItemsOnBadBreak(World world, int i, int j, int k, int iMetadata, float fChanceOfDrop)
      Called by explosions and improper tool use. Should return true if the block processes its own drops through this method, false otherwise Note that the block may no longer be at the specified position when this is called
    • dropItemsOnDestroyedByExplosion

      public void dropItemsOnDestroyedByExplosion(World world, int i, int j, int k, Explosion explosion)
      Explosion may be null if this is called by a mining charge
    • dropItemsOnDestroyedByMiningCharge

      public void dropItemsOnDestroyedByMiningCharge(World world, int x, int y, int z, int metadata)
    • onDirtDugWithImproperTool

      protected void onDirtDugWithImproperTool(World world, int i, int j, int k)
      Notifies neighbors of dirt blocks that they should be loosened
    • onDirtSlabDugWithImproperTool

      protected void onDirtSlabDugWithImproperTool(World world, int i, int j, int k, boolean bUpsideDown)
    • notifyNeighborDirtDugWithImproperTool

      protected void notifyNeighborDirtDugWithImproperTool(World world, int i, int j, int k, int iToFacing)
    • onNeighborDirtDugWithImproperTool

      protected void onNeighborDirtDugWithImproperTool(World world, int i, int j, int k, int iToFacing)
    • canBlocksBePlacedAgainstThisBlock

      public boolean canBlocksBePlacedAgainstThisBlock(World world, int x, int y, int z)
    • hasSmallCenterHardPointToFacing

      public boolean hasSmallCenterHardPointToFacing(IBlockAccess blockAccess, int i, int j, int k, int iFacing, boolean bIgnoreTransparency)
      small attachment surfaces, like those required for the bottom of a torch (approx 1/8 block width)
    • hasSmallCenterHardPointToFacing

      public boolean hasSmallCenterHardPointToFacing(IBlockAccess blockAccess, int i, int j, int k, int iFacing)
    • hasCenterHardPointToFacing

      public boolean hasCenterHardPointToFacing(IBlockAccess blockAccess, int i, int j, int k, int iFacing, boolean bIgnoreTransparency)
      medium sized attachment points like the top of fence posts (approx 1/4 block width)
    • hasCenterHardPointToFacing

      public boolean hasCenterHardPointToFacing(IBlockAccess blockAccess, int i, int j, int k, int iFacing)
    • hasLargeCenterHardPointToFacing

      public boolean hasLargeCenterHardPointToFacing(IBlockAccess blockAccess, int i, int j, int k, int iFacing, boolean bIgnoreTransparency)
      large attachment points that can support a full block width
    • hasLargeCenterHardPointToFacing

      public boolean hasLargeCenterHardPointToFacing(IBlockAccess blockAccess, int i, int j, int k, int iFacing)
    • isBlockRestingOnThatBelow

      public boolean isBlockRestingOnThatBelow(IBlockAccess blockAccess, int i, int j, int k)
      returns true if the block is sitting on the one below, like a torch resting on the ground
    • isBlockAttachedToFacing

      public boolean isBlockAttachedToFacing(IBlockAccess blockAccess, int i, int j, int k, int iFacing)
      returns true if block is attached to a block in a particular direction. Example: pumpkins attached to stems
    • attachToFacing

      public void attachToFacing(World world, int i, int j, int k, int iFacing)
    • hasContactPointToFullFace

      public boolean hasContactPointToFullFace(IBlockAccess blockAccess, int i, int j, int k, int iFacing)
    • hasContactPointToSlabSideFace

      public boolean hasContactPointToSlabSideFace(IBlockAccess blockAccess, int i, int j, int k, int iFacing, boolean bIsSlabUpsideDown)
    • hasContactPointToStairShapedFace

      public boolean hasContactPointToStairShapedFace(IBlockAccess blockAccess, int i, int j, int k, int iFacing)
      This method refers to the 'L' shaped sides of stair blocks. Other stair facings will refernce either the full face, stair top, or slab methods, depending on their shape
    • hasContactPointToStairNarrowVerticalFace

      public boolean hasContactPointToStairNarrowVerticalFace(IBlockAccess blockAccess, int i, int j, int k, int iFacing, int iStairFacing)
      This method refers to the half-block shaped top or bottom of stair blocks.
    • onMortarApplied

      public boolean onMortarApplied(World world, int i, int j, int k)
      Should return true if mortar has been successfully applied to block.
    • hasMortar

      public boolean hasMortar(IBlockAccess blockAccess, int i, int j, int k)
    • hasNeighborWithMortarInContact

      public boolean hasNeighborWithMortarInContact(World world, int i, int j, int k)
    • isStickyToSnow

      public boolean isStickyToSnow(IBlockAccess blockAccess, int i, int j, int k)
    • hasStickySnowNeighborInContact

      public boolean hasStickySnowNeighborInContact(World world, int i, int j, int k)
    • getFurnaceBurnTime

      public int getFurnaceBurnTime(int iItemDamage)
    • setFurnaceBurnTime

      public void setFurnaceBurnTime(int iBurnTime)
    • setFurnaceBurnTime

      public void setFurnaceBurnTime(FurnaceBurnTime burnTime)
    • doesInfiniteBurnToFacing

      public boolean doesInfiniteBurnToFacing(IBlockAccess blockAccess, int i, int j, int k, int iFacing)
    • doesExtinguishFireAbove

      public boolean doesExtinguishFireAbove(World world, int i, int j, int k)
    • onDestroyedByFire

      public void onDestroyedByFire(World world, int i, int j, int k, int iFireAge, boolean bForcedFireSpread)
    • setFireProperties

      public Block setFireProperties(int iChanceToEncourageFire, int iAbilityToCatchFire)
    • setFireProperties

      public Block setFireProperties(Flammability flammability)
    • getCanBeSetOnFireDirectly

      public boolean getCanBeSetOnFireDirectly(IBlockAccess blockAccess, int i, int j, int k)
      Whether the block itself can be set on fire, rather than a neighboring block being set to a fire block
    • getCanBeSetOnFireDirectlyByItem

      public boolean getCanBeSetOnFireDirectlyByItem(IBlockAccess blockAccess, int i, int j, int k)
    • setOnFireDirectly

      public boolean setOnFireDirectly(World world, int i, int j, int k)
    • getChanceOfFireSpreadingDirectlyTo

      public int getChanceOfFireSpreadingDirectlyTo(IBlockAccess blockAccess, int i, int j, int k)
    • getCanBlockLightItemOnFire

      public boolean getCanBlockLightItemOnFire(IBlockAccess blockAccess, int i, int j, int k)
    • getDoesFireDamageToEntities

      public boolean getDoesFireDamageToEntities(World world, int i, int j, int k, Entity entity)
    • getDoesFireDamageToEntities

      public boolean getDoesFireDamageToEntities(World world, int i, int j, int k)
    • getCanBlockBeIncinerated

      public boolean getCanBlockBeIncinerated(World world, int i, int j, int k)
      Used by Hibachi to determine if it can remove the block above it when lit
    • getCanBlockBeReplacedByFire

      public boolean getCanBlockBeReplacedByFire(World world, int i, int j, int k)
      Whether a fire block can be directly placed over this one, without first burning or catching fire, as if it were air.
    • isIncineratedInCrucible

      public boolean isIncineratedInCrucible()
    • canPathThroughBlock

      public boolean canPathThroughBlock(IBlockAccess blockAccess, int i, int j, int k, Entity entity, PathFinder pathFinder)
    • shouldOffsetPositionIfPathingOutOf

      public boolean shouldOffsetPositionIfPathingOutOf(IBlockAccess blockAccess, int i, int j, int k, Entity entity, PathFinder pathFinder)
      Used to determine if entities who start their pathing from within this block should instead start pathing from a neighbor block instead, to prevent getting stuck in this one. Mostly applies to stuff like chickens getting stuck in fences.
    • getWeightOnPathBlocked

      public int getWeightOnPathBlocked(IBlockAccess blockAccess, int i, int j, int k)
    • adjustPathWeightOnNotBlocked

      public int adjustPathWeightOnNotBlocked(int iPreviousWeight)
    • isBreakableBarricade

      public boolean isBreakableBarricade(World world, int i, int j, int k, boolean advancedBreaker)
    • isBreakableBarricadeOpen

      public boolean isBreakableBarricadeOpen(IBlockAccess blockAccess, int i, int j, int k)
    • getCanBeCookedByKiLn

      public final boolean getCanBeCookedByKiLn(IBlockAccess blockAccess, int i, int j, int k)
    • getCookTimeMultiplierInKiLn

      public final int getCookTimeMultiplierInKiLn(IBlockAccess blockAccess, int i, int j, int k)
    • getOutputsWhenCookedByKiln

      public final ItemStack[] getOutputsWhenCookedByKiln(IBlockAccess blockAccess, int i, int j, int k)
    • onCookedByKiLn

      public void onCookedByKiLn(World world, int i, int j, int k)
    • doesBlockBreakSaw

      public boolean doesBlockBreakSaw(World world, int x, int y, int z)
    • onBlockSawed

      public boolean onBlockSawed(World world, int i, int j, int k, int iSawPosI, int iSawPosJ, int iSawPosK)
    • onBlockSawed

      public boolean onBlockSawed(World world, int i, int j, int k)
    • doesBlockDropAsItemOnSaw

      public boolean doesBlockDropAsItemOnSaw(World world, int i, int j, int k)
    • getBlockIDOnInfest

      public int getBlockIDOnInfest(EntityLiving entity, int metadata)
    • onInfested

      public void onInfested(World world, EntityLiving entity, int x, int y, int z, int metadata)
      handles all things that happen on infestation, including what should happen to the infector
    • infestBlock

      public void infestBlock(World world, EntityLiving entity, int x, int y, int z, int metadata)
      Basically set block but uses entity and metadata to pick blockID
    • isBlockInfestedBy

      public boolean isBlockInfestedBy(EntityLiving entity)
      If this block is infested by linked entity, used by silverfish
    • isBlockInfestable

      public boolean isBlockInfestable(EntityLiving entity, int metadata)
      Parameters:
      entity - for having hook for other infesting mobs
      metadata - for having single blockID be infestable depending on metadata
      Returns:
    • getMechanicalPowerLevelProvidedToAxleAtFacing

      public int getMechanicalPowerLevelProvidedToAxleAtFacing(World world, int i, int j, int k, int iFacing)
    • areShovelsEffectiveOn

      public boolean areShovelsEffectiveOn()
    • arePicksEffectiveOn

      public boolean arePicksEffectiveOn()
    • areAxesEffectiveOn

      public boolean areAxesEffectiveOn()
    • areHoesEffectiveOn

      public boolean areHoesEffectiveOn()
    • arechiselseffectiveon

      public boolean arechiselseffectiveon()
    • arechiselseffectiveon

      public boolean arechiselseffectiveon(World world, int i, int j, int k)
    • canChiselsHarvest

      public boolean canChiselsHarvest()
    • setShovelsEffectiveOn

      public Block setShovelsEffectiveOn()
    • setShovelsEffectiveOn

      public Block setShovelsEffectiveOn(boolean bEffective)
    • setPicksEffectiveOn

      public Block setPicksEffectiveOn()
    • setPicksEffectiveOn

      public Block setPicksEffectiveOn(boolean bEffective)
    • setAxesEffectiveOn

      public Block setAxesEffectiveOn()
    • setAxesEffectiveOn

      public Block setAxesEffectiveOn(boolean bEffective)
    • setHoesEffectiveOn

      public Block setHoesEffectiveOn()
    • setHoesEffectiveOn

      public Block setHoesEffectiveOn(boolean bEffective)
    • setChiselsEffectiveOn

      public Block setChiselsEffectiveOn()
    • setChiselsEffectiveOn

      public Block setChiselsEffectiveOn(boolean bEffective)
    • setChiselsCanHarvest

      public Block setChiselsCanHarvest()
    • setChiselsCanHarvest

      public Block setChiselsCanHarvest(boolean bCanHarvest)
    • getPlayerRelativeBlockHardness

      public float getPlayerRelativeBlockHardness(EntityPlayer player, World world, int i, int j, int k)
    • canConvertBlock

      public boolean canConvertBlock(ItemStack stack, World world, int i, int j, int k)
    • convertBlock

      public boolean convertBlock(ItemStack stack, World world, int i, int j, int k, int iFromSide)
      Returns false if the block has not been replaced with another, and should be removed
    • shouldPlayStandardConvertSound

      public boolean shouldPlayStandardConvertSound(World world, int x, int y, int z)
    • getEfficientToolLevel

      public int getEfficientToolLevel(IBlockAccess blockAccess, int i, int j, int k)
    • getHarvestToolLevel

      public int getHarvestToolLevel(IBlockAccess blockAccess, int i, int j, int k)
    • getIsProblemToRemove

      public boolean getIsProblemToRemove(ItemStack toolStack, IBlockAccess blockAccess, int i, int j, int k)
      The following is for stumps and such, which are a pain to remove regardless of whether their overall block has relevant tool effeciencies
    • getDoesStumpRemoverWorkOnBlock

      public boolean getDoesStumpRemoverWorkOnBlock(IBlockAccess blockAccess, int i, int j, int k)
    • canToolsStickInBlock

      public boolean canToolsStickInBlock(IBlockAccess blockAccess, int i, int j, int k)
    • canToolStickInBlockSpecialCase

      public boolean canToolStickInBlockSpecialCase(World world, int x, int y, int z, Item toolOrSword)
    • setBuoyancy

      public Block setBuoyancy(float fBuoyancy)
    • setBuoyant

      public Block setBuoyant()
    • setNonBuoyant

      public Block setNonBuoyant()
    • setNeutralBuoyant

      public Block setNeutralBuoyant()
    • getBuoyancy

      public float getBuoyancy(int iMetadata)
    • canGroundCoverRestOnBlock

      public boolean canGroundCoverRestOnBlock(World world, int i, int j, int k)
    • groundCoverRestingOnVisualOffset

      public float groundCoverRestingOnVisualOffset(IBlockAccess blockAccess, int i, int j, int k)
    • isGroundCover

      public boolean isGroundCover()
    • getCanGrassSpreadToBlock

      public boolean getCanGrassSpreadToBlock(World world, int i, int j, int k)
    • spreadGrassToBlock

      public boolean spreadGrassToBlock(World world, int i, int j, int k)
    • getCanGrassGrowUnderBlock

      public boolean getCanGrassGrowUnderBlock(World world, int i, int j, int k, boolean bGrassOnHalfSlab)
    • getCanMyceliumSpreadToBlock

      public boolean getCanMyceliumSpreadToBlock(World world, int i, int j, int k)
    • spreadMyceliumToBlock

      public boolean spreadMyceliumToBlock(World world, int i, int j, int k)
    • getCanBlightSpreadToBlock

      public boolean getCanBlightSpreadToBlock(World world, int i, int j, int k, int iBlightLevel)
    • isSnowCoveringTopSurface

      public boolean isSnowCoveringTopSurface(IBlockAccess blockAccess, int i, int j, int k)
      Used by blocks like grass and mycellium to determine if they should use a snow side texture. Note that this refers to the top visible surface, not just the top facing, which means that stuff like half-slabs should only return true if they have ground cover actually on the top surface halfway up the block vertically.
    • onPreBlockPlacedByPiston

      public int onPreBlockPlacedByPiston(World world, int i, int j, int k, int iMetadata, int iDirectionMoved)
      Returns the metadata that will be placed
    • canBlockBePulledByPiston

      public boolean canBlockBePulledByPiston(World world, int i, int j, int k, int iToFacing)
    • canBlockBePushedByPiston

      public boolean canBlockBePushedByPiston(World world, int i, int j, int k, int iToFacing)
    • canBePistonShoveled

      public boolean canBePistonShoveled(World world, int i, int j, int k)
    • getPistonShovelEjectDirection

      public int getPistonShovelEjectDirection(World world, int i, int j, int k, int iToFacing)
      returns the direction the shoveled block will go in if this block is moving towards iToFacing. return -1 if it's no shoveling is taking place.
    • getAsPistonMovingBoundingBox

      public AxisAlignedBB getAsPistonMovingBoundingBox(World world, int i, int j, int k)
    • adjustMetadataForPistonMove

      public int adjustMetadataForPistonMove(int iMetadata)
    • canContainPistonPackingToFacing

      public boolean canContainPistonPackingToFacing(World world, int i, int j, int k, int iFacing)
    • onBrokenByPistonPush

      public void onBrokenByPistonPush(World world, int i, int j, int k, int iMetadata)
    • isFallingBlock

      public boolean isFallingBlock()
    • checkForFall

      protected boolean checkForFall(World world, int i, int j, int k)
    • onStartFalling

      protected void onStartFalling(EntityFallingSand entity)
      Only called on server
    • onFinishFalling

      public void onFinishFalling(World world, int i, int j, int k, int iMetadata)
      This is actually called when a block lands safely. Do not rename as BlockSand has a child method off of this
    • onFallingUpdate

      public void onFallingUpdate(EntityFallingSand entity)
    • notifyNearbyAnimalsFinishedFalling

      public void notifyNearbyAnimalsFinishedFalling(World world, int i, int j, int k)
    • onFinishedFalling

      public boolean onFinishedFalling(EntityFallingSand entity, float fFallDistance)
      returns true if the block still exists
    • attemptToCombineWithFallingEntity

      public boolean attemptToCombineWithFallingEntity(World world, int i, int j, int k, EntityFallingSand entity)
      returns true if the block has combined with the entity
    • canBeCrushedByFallingEntity

      public boolean canBeCrushedByFallingEntity(World world, int i, int j, int k, EntityFallingSand entity)
    • onCrushedByFallingEntity

      public void onCrushedByFallingEntity(World world, int i, int j, int k, EntityFallingSand entity)
    • canFallIntoBlockAtPos

      public boolean canFallIntoBlockAtPos(World world, int i, int j, int k)
    • canSupportFallingBlocks

      public boolean canSupportFallingBlocks(IBlockAccess blockAccess, int i, int j, int k)
    • checkForUnstableGround

      protected void checkForUnstableGround(World world, int i, int j, int k)
    • scheduleCheckForFall

      public void scheduleCheckForFall(World world, int i, int j, int k)
    • onBlockDestroyedLandingFromFall

      public void onBlockDestroyedLandingFromFall(World world, int i, int j, int k, int iMetadata)
      Called on server only
    • hasFallingBlockRestingOn

      public boolean hasFallingBlockRestingOn(IBlockAccess blockAccess, int i, int j, int k)
    • getFacing

      public int getFacing(IBlockAccess blockAccess, int i, int j, int k)
    • getFacing

      public int getFacing(int iMetadata)
    • setFacing

      public void setFacing(World world, int i, int j, int k, int iFacing)
    • setFacing

      public int setFacing(int iMetadata, int iFacing)
    • toggleFacing

      public boolean toggleFacing(World world, int i, int j, int k, boolean bReverse)
      Cycle through all the possible facings for a block returns true if the facing has actually changed as a result of this call
    • convertFacingToTopTextureRotation

      public int convertFacingToTopTextureRotation(int iFacing)
    • convertFacingToBottomTextureRotation

      public int convertFacingToBottomTextureRotation(int iFacing)
    • getOppositeFacing

      public static int getOppositeFacing(int iFacing)
    • rotateFacingAroundY

      public static int rotateFacingAroundY(int iFacing, boolean bReverse)
    • cycleFacing

      public static int cycleFacing(int iFacing, boolean bReverse)
    • canRotateOnTurntable

      public boolean canRotateOnTurntable(IBlockAccess blockAccess, int i, int j, int k)
    • canTransmitRotationHorizontallyOnTurntable

      public boolean canTransmitRotationHorizontallyOnTurntable(IBlockAccess blockAccess, int i, int j, int k)
    • canTransmitRotationVerticallyOnTurntable

      public boolean canTransmitRotationVerticallyOnTurntable(IBlockAccess blockAccess, int i, int j, int k)
    • rotateOnTurntable

      public int rotateOnTurntable(World world, int x, int y, int z, boolean reverse, int craftingCounter)
      Returns the new crafting counter after rotation. It is unmodified if no crafting has taken place, incremented or reset on completion if it has.
    • onRotatedOnTurntable

      protected void onRotatedOnTurntable(World world, int x, int y, int z)
    • turntableCraftingRotation

      protected int turntableCraftingRotation(World world, int x, int y, int z, boolean reverse, int craftingCounter)
    • onCraftedOnTurntable

      public void onCraftedOnTurntable(World world, int x, int y, int z)
    • rotateAroundJAxis

      public boolean rotateAroundJAxis(World world, int i, int j, int k, boolean bReverse)
      Returns true if the facing has actually changed as a result of this call
    • rotateMetadataAroundYAxis

      public int rotateMetadataAroundYAxis(int iMetadata, boolean bReverse)
    • canRotateAroundBlockOnTurntableToFacing

      public boolean canRotateAroundBlockOnTurntableToFacing(World world, int i, int j, int k, int iFacing)
    • onRotatedAroundBlockOnTurntableToFacing

      public boolean onRotatedAroundBlockOnTurntableToFacing(World world, int i, int j, int k, int iFacing)
      Returns false if the block was destroyed and should not be rotated
    • getNewMetadataRotatedAroundBlockOnTurntableToFacing

      public int getNewMetadataRotatedAroundBlockOnTurntableToFacing(World world, int i, int j, int k, int iInitialFacing, int iRotatedFacing)
    • getStackRetrievedByBlockDispenser

      public ItemStack getStackRetrievedByBlockDispenser(World world, int i, int j, int k)
      If the stack returned is null, the block will not be retrieved
    • isBlockDestroyedByBlockDispenser

      public boolean isBlockDestroyedByBlockDispenser(int iMetadata)
      Whether a block is destroyed by the dispenser, even if no item is collected
    • onRemovedByBlockDispenser

      public void onRemovedByBlockDispenser(World world, int i, int j, int k)
    • onStruckByLightning

      public void onStruckByLightning(World world, int i, int j, int k)
      Called on server only
    • canMobsSpawnOn

      public boolean canMobsSpawnOn(World world, int i, int j, int k)
      This is only a first-pass indicator as to whether ANY mobs can spawn on top of the block, so stuff like leaves where only Jungle Spiders can spawn on them, should still return true.
    • mobSpawnOnVerticalOffset

      public float mobSpawnOnVerticalOffset(World world, int i, int j, int k)
    • canEndermenPickUpBlock

      public boolean canEndermenPickUpBlock(World world, int x, int y, int z)
    • doEndermenIgnoreNeighbors

      public boolean doEndermenIgnoreNeighbors(World world, int x, int y, int z)
    • blocksEndermanPickup

      public boolean blocksEndermanPickup(World world, int x, int y, int z)
    • initBlockBounds

      protected void initBlockBounds(double dMinX, double dMinY, double dMinZ, double dMaxX, double dMaxY, double dMaxZ)
      Should only ever be called once for a block. Repeated calls will silently fail without changing the bounds.
    • initBlockBounds

      protected void initBlockBounds(AxisAlignedBB bounds)
    • getFixedBlockBoundsFromPool

      protected AxisAlignedBB getFixedBlockBoundsFromPool()
    • getCollisionBoundingBoxFromPool

      public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int i, int j, int k)
    • getBlockBoundsFromPoolBasedOnState

      public AxisAlignedBB getBlockBoundsFromPoolBasedOnState(IBlockAccess blockAccess, int i, int j, int k)
    • collisionRayTrace

      public MovingObjectPosition collisionRayTrace(World world, int i, int j, int k, Vec3 startRay, Vec3 endRay)
    • mouseOverRayTrace

      public MovingObjectPosition mouseOverRayTrace(World world, int i, int j, int k, Vec3 startRay, Vec3 endRay)
    • collisionRayTraceVsBlockBounds

      public MovingObjectPosition collisionRayTraceVsBlockBounds(World world, int i, int j, int k, Vec3 startRay, Vec3 endRay)
    • canBeGrazedOn

      public boolean canBeGrazedOn(IBlockAccess blockAccess, int i, int j, int k, EntityAnimal byAnimal)
    • onGrazed

      public void onGrazed(World world, int i, int j, int k, EntityAnimal animal)
    • onVegetationAboveGrazed

      public void onVegetationAboveGrazed(World world, int i, int j, int k, EntityAnimal animal)
    • notifyNeighborsBlockDisrupted

      public void notifyNeighborsBlockDisrupted(World world, int i, int j, int k)
      Used when pigs dig up dirt to let any attached neighbors know that they should break loose
    • onNeighborDisrupted

      public void onNeighborDisrupted(World world, int i, int j, int k, int iToFacing)
    • getHerbivoreItemFoodValue

      public int getHerbivoreItemFoodValue(int iItemDamage)
    • setHerbivoreItemFoodValue

      public void setHerbivoreItemFoodValue(int iFoodValue)
    • getChickenItemFoodValue

      public int getChickenItemFoodValue(int iItemDamage)
    • setChickenItemFoodValue

      public void setChickenItemFoodValue(int iFoodValue)
    • getPigItemFoodValue

      public int getPigItemFoodValue(int iItemDamage)
    • setPigItemFoodValue

      public void setPigItemFoodValue(int iFoodValue)
    • setAlwaysStartlesAnimals

      public Block setAlwaysStartlesAnimals()
    • startlesAnimalsWhenPlaced

      public boolean startlesAnimalsWhenPlaced(World world, int x, int y, int z)
    • canDomesticatedCropsGrowOnBlock

      public boolean canDomesticatedCropsGrowOnBlock(World world, int i, int j, int k)
    • canReedsGrowOnBlock

      public boolean canReedsGrowOnBlock(World world, int i, int j, int k)
    • canSaplingsGrowOnBlock

      public boolean canSaplingsGrowOnBlock(World world, int i, int j, int k)
    • canWildVegetationGrowOnBlock

      public boolean canWildVegetationGrowOnBlock(World world, int i, int j, int k)
      Covers stuff like flowers and tall grass
    • canNetherWartGrowOnBlock

      public boolean canNetherWartGrowOnBlock(World world, int i, int j, int k)
    • canCactusGrowOnBlock

      public boolean canCactusGrowOnBlock(World world, int i, int j, int k)
    • isBlockHydratedForPlantGrowthOn

      public boolean isBlockHydratedForPlantGrowthOn(World world, int i, int j, int k)
    • isConsideredNeighbouringWaterForReedGrowthOn

      public boolean isConsideredNeighbouringWaterForReedGrowthOn(World world, int i, int j, int k)
    • getPlantGrowthOnMultiplier

      public float getPlantGrowthOnMultiplier(World world, int i, int j, int k, Block plantBlock)
      This is used by old style non-daily plant growth
    • getIsFertilizedForPlantGrowth

      public boolean getIsFertilizedForPlantGrowth(World world, int i, int j, int k)
    • notifyOfFullStagePlantGrowthOn

      public void notifyOfFullStagePlantGrowthOn(World world, int i, int j, int k, Block plantBlock)
      Called when a plant hits a full growth stage, like wheat fully grown, or each full block of Hemp. Used to clear fertilizer.
    • notifyOfPlantAboveRemoved

      public void notifyOfPlantAboveRemoved(World world, int i, int j, int k, Block plantBlock)
      Called server only. Called AFTER the plant is removed, so it's no longer valid.
    • canWeedsGrowInBlock

      public boolean canWeedsGrowInBlock(IBlockAccess blockAccess, int i, int j, int k)
      This determines whether weeds can share space with crop blocks, or grow within their own independent weed blocks
    • getWeedsGrowthLevel

      public int getWeedsGrowthLevel(IBlockAccess blockAccess, int i, int j, int k)
      The growth level of weeds growing out of this block. Range of 0 to 7
    • removeWeeds

      public void removeWeeds(World world, int i, int j, int k)
    • attemptToApplyFertilizerTo

      public boolean attemptToApplyFertilizerTo(World world, int i, int j, int k)
    • onCreativeBonemealApplied

      public boolean onCreativeBonemealApplied(World world, int x, int y, int z)
      Called when bonemeal is applied in creative mode.
    • getConvertsLegacySoil

      public boolean getConvertsLegacySoil(IBlockAccess blockAccess, int i, int j, int k)
    • getMapColor

      public MapColor getMapColor(int meta)
      Gets the color used in map rendering for this block with the specified metadata
      Parameters:
      meta -
      Returns:
    • setMapColorsForMetadata

      public Block setMapColorsForMetadata(MapColor[] mapColors)
      Set the array of map colors to use per metadata for this block. Make sure you include ALL possible metadata when using this method!
      Parameters:
      mapColors - Array of mapcolor objects which is referenced when rendering maps
      Returns:
    • getLightValueForBlock

      public static int getLightValueForBlock(IBlockAccess blockAccess, int x, int y, int z, Block block)
    • getLightValue

      public int getLightValue(IBlockAccess blockAccess, int x, int y, int z)
    • canBeConvertedByMobSpawner

      public boolean canBeConvertedByMobSpawner(World world, int x, int y, int z)
    • convertBlockFromMobSpawner

      public void convertBlockFromMobSpawner(World world, int x, int y, int z)
    • shouldWallConnectToThisBlockToFacing

      public boolean shouldWallConnectToThisBlockToFacing(IBlockAccess blockAccess, int x, int y, int z, int facing)
    • shouldFenceConnectToThisBlockToFacing

      public boolean shouldFenceConnectToThisBlockToFacing(IBlockAccess blockAccess, int x, int y, int z, int facing)
    • shouldPaneConnectToThisBlockToFacing

      public boolean shouldPaneConnectToThisBlockToFacing(IBlockAccess blockAccess, int x, int y, int z, int facing)
    • isWall

      public boolean isWall(int metadata)
    • isFence

      public boolean isFence(int metadata)
    • isBenchOrTable

      public boolean isBenchOrTable(int metadata)
    • shouldWallFormPostBelowThisBlock

      public boolean shouldWallFormPostBelowThisBlock(IBlockAccess blockAccess, int x, int y, int z)
    • canLeashKnotOnBlock

      public boolean canLeashKnotOnBlock(World world, int x, int y, int z)
    • isLog

      public boolean isLog(IBlockAccess blockAccess, int x, int y, int z)
    • canSupportLeaves

      public boolean canSupportLeaves(IBlockAccess blockAccess, int x, int y, int z)
    • isLeafBlock

      public boolean isLeafBlock(IBlockAccess blockAccess, int x, int y, int z)
    • installationIntegrityTest

      public static boolean installationIntegrityTest()
    • attemptToAffectBlockWithSoul

      public boolean attemptToAffectBlockWithSoul(World world, int x, int y, int z)
    • shouldSideBeRendered

      public boolean shouldSideBeRendered(IBlockAccess blockAccess, int iNeighborI, int iNeighborJ, int iNeighborK, int iSide)
    • shouldRenderNeighborHalfSlabSide

      @Environment(CLIENT) public boolean shouldRenderNeighborHalfSlabSide(IBlockAccess blockAccess, int i, int j, int k, int iNeighborSlabSide, boolean bNeighborUpsideDown)
    • shouldRenderNeighborFullFaceSide

      @Environment(CLIENT) public boolean shouldRenderNeighborFullFaceSide(IBlockAccess blockAccess, int i, int j, int k, int iNeighborSide)
    • renderBlock

      @Environment(CLIENT) public boolean renderBlock(RenderBlocks renderer, int i, int j, int k)
    • renderBlockSecondPass

      @Environment(CLIENT) public void renderBlockSecondPass(RenderBlocks renderBlocks, int i, int j, int k, boolean bFirstPassResult)
      If the block has a second pass, like a kiln cooking overlay texture, it should Override this method. This method does not call the overlay by default to cut down on rendering time, since this function is called by every single loaded block. Note that this function is necessary to prevent potential recursion within RenderBlock, if it were to call its own overlays directly, and then potentially get called with a texture overlay itself through RenderBlockWithTexture.
    • renderBlockWithTexture

      @Environment(CLIENT) public boolean renderBlockWithTexture(RenderBlocks renderBlocks, int i, int j, int k, Icon texture)
    • getBlockBoundsFromPoolForItemRender

      @Environment(CLIENT) public AxisAlignedBB getBlockBoundsFromPoolForItemRender(int iItemDamage)
    • renderBlockAsItem

      @Environment(CLIENT) public void renderBlockAsItem(RenderBlocks renderBlocks, int iItemDamage, float fBrightness)
    • doesItemRenderAsBlock

      @Environment(CLIENT) public boolean doesItemRenderAsBlock(int iItemDamage)
    • renderCookingByKiLnOverlay

      @Environment(CLIENT) public void renderCookingByKiLnOverlay(RenderBlocks renderBlocks, int i, int j, int k, boolean bFirstPassResult)
    • shouldRenderWhileFalling

      @Environment(CLIENT) public boolean shouldRenderWhileFalling(World world, EntityFallingSand entity)
    • renderFallingBlock

      @Environment(CLIENT) public void renderFallingBlock(RenderBlocks renderBlocks, int i, int j, int k, int iMetadata)
      Applies both to falling blocks, and those pushed by pistons
    • shouldSideBeRenderedOnFallingBlock

      @Environment(CLIENT) public boolean shouldSideBeRenderedOnFallingBlock(int iSide, int iMetadata)
    • renderBlockMovedByPiston

      @Environment(CLIENT) public void renderBlockMovedByPiston(RenderBlocks renderBlocks, int i, int j, int k)
    • setTextureName

      public Block setTextureName(String par1Str)
    • getTextureName

      protected String getTextureName()
    • getSelectedBoundingBoxFromPool

      @Environment(CLIENT) public AxisAlignedBB getSelectedBoundingBoxFromPool(World world, int i, int j, int k)
    • getSelectedBoundingBoxFromPool

      @Environment(CLIENT) public AxisAlignedBB getSelectedBoundingBoxFromPool(World world, MovingObjectPosition rayTraceHit)
      Replaces vanilla call in RenderGlobal to provide ray trace info so specific portions of the block can be highlighted as selected
    • getIconByIndex

      @Environment(CLIENT) public Icon getIconByIndex(int iIndex)
      Called by geometric primitives that FCModelBlock uses, to reference textures not associated with a specific block side.
    • getHopperFilterIcon

      @Environment(CLIENT) public Icon getHopperFilterIcon()
    • renderCrossHatch

      @Environment(CLIENT) public void renderCrossHatch(RenderBlocks renderer, int i, int j, int k, Icon icon, double dBorderWidth, double dVerticalOffset)