PocketMine-MP 5.23.2 git-45917d495c14f3ce37bbf0848262ad8a470030f3
Loading...
Searching...
No Matches
pocketmine\block\Ice Class Reference
+ Inheritance diagram for pocketmine\block\Ice:
+ Collaboration diagram for pocketmine\block\Ice:

Public Member Functions

 __clone ()
 
 __toString ()
 
 addVelocityToEntity (Entity $entity)
 
 asItem ()
 
 blocksDirectSkyLight ()
 
 burnsForever ()
 
 calculateIntercept (Vector3 $pos1, Vector3 $pos2)
 
 canBeFlowedInto ()
 
 canBePlaced ()
 
 canBePlacedAt (Block $blockReplace, Vector3 $clickVector, int $face, bool $isClickedBlock)
 
 canBeReplaced ()
 
 canClimb ()
 
 collidesWithBB (AxisAlignedBB $bb)
 
 describeBlockItemState (RuntimeDataDescriber $w)
 
 generateStatePermutations ()
 
 getAffectedBlocks ()
 
 getAllSides ()
 
 getBreakInfo ()
 
 getCollisionBoxes ()
 
 getDrops (Item $item)
 
 getDropsForCompatibleTool (Item $item)
 
 getDropsForIncompatibleTool (Item $item)
 
 getEnchantmentTags ()
 
 getFlameEncouragement ()
 
 getFlammability ()
 
 getFrictionFactor ()
 
 getFuelTime ()
 
 getHorizontalSides ()
 
 getIdInfo ()
 
 getLightFilter ()
 
 getLightLevel ()
 
 getMaxStackSize ()
 
 getModelPositionOffset ()
 
 getName ()
 
 getPickedItem (bool $addUserData=false)
 
 getPosition ()
 
 getSide (int $side, int $step=1)
 
 getSilkTouchDrops (Item $item)
 
 getStateId ()
 
 getSupportType (int $facing)
 
 getTypeId ()
 
 getTypeTags ()
 
 getXpDropForTool (Item $item)
 
 hasEntityCollision ()
 
 hasSameTypeId (Block $other)
 
 hasTypeTag (string $tag)
 
 isAffectedBySilkTouch ()
 
 isFireProofAsItem ()
 
 isFlammable ()
 
 isFullCube ()
 
 isSameState (Block $other)
 
 isSolid ()
 
 isTransparent ()
 
 onAttack (Item $item, int $face, ?Player $player=null)
 
 onBreak (Item $item, ?Player $player=null, array &$returnedItems=[])
 
 onEntityInside (Entity $entity)
 
 onEntityLand (Entity $entity)
 
 onIncinerate ()
 
 onInteract (Item $item, int $face, Vector3 $clickVector, ?Player $player=null, array &$returnedItems=[])
 
 onNearbyBlockChange ()
 
 onPostPlace ()
 
 onProjectileHit (Projectile $projectile, RayTraceResult $hitResult)
 
 onRandomTick ()
 
 onScheduledUpdate ()
 
 place (BlockTransaction $tx, Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, ?Player $player=null)
 
 position (World $world, int $x, int $y, int $z)
 
 readStateFromWorld ()
 
 ticksRandomly ()
 
 writeStateToWorld ()
 

Public Attributes

const EMPTY_STATE_ID = (BlockTypeIds::AIR << self::INTERNAL_STATE_DATA_BITS) | (-7482769108513497636 & self::INTERNAL_STATE_DATA_MASK)
 
const INTERNAL_STATE_DATA_BITS = 11
 
const INTERNAL_STATE_DATA_MASK = ~(~0 << self::INTERNAL_STATE_DATA_BITS)
 

Protected Member Functions

 describeBlockOnlyState (RuntimeDataDescriber $w)
 
 getAdjacentSupportType (int $facing)
 
 getXpDropAmount ()
 
 recalculateCollisionBoxes ()
 

Protected Attributes

array $collisionBoxes = null
 
string $fallbackName
 
BlockIdentifier $idInfo
 
Position $position
 
BlockTypeInfo $typeInfo
 

Detailed Description

Definition at line 31 of file Ice.php.

Member Function Documentation

◆ __clone()

pocketmine\block\Block::__clone ( )
inherited

Definition at line 128 of file Block.php.

◆ __toString()

pocketmine\block\Block::__toString ( )
inherited
Returns
string

Definition at line 834 of file Block.php.

◆ addVelocityToEntity()

pocketmine\block\Block::addVelocityToEntity ( Entity $entity)
inherited

Returns a direction vector describing which way an entity intersecting this block should be pushed. This is used by liquids to push entities in liquid currents.

The returned vector is summed with vectors from every other block the entity is intersecting, and normalized to produce a final direction vector.

WARNING: This will not be called if Block::hasEntityCollision() does not return true!

Reimplemented in pocketmine\block\Liquid.

Definition at line 882 of file Block.php.

◆ asItem()

◆ blocksDirectSkyLight()

pocketmine\block\Block::blocksDirectSkyLight ( )
inherited

Returns whether this block blocks direct sky light from passing through it. This is independent from the light filter value, which is used during propagation.

In most cases, this is the same as isTransparent(); however, some special cases exist such as leaves and cobwebs, which don't have any additional effect on light propagation, but don't allow direct sky light to pass through.

Reimplemented in pocketmine\block\Cobweb, and pocketmine\block\Leaves.

Definition at line 573 of file Block.php.

◆ burnsForever()

pocketmine\block\Block::burnsForever ( )
inherited

Returns whether fire lit on this block will burn indefinitely.

Reimplemented in pocketmine\block\Bedrock, pocketmine\block\Magma, and pocketmine\block\Netherrack.

Definition at line 747 of file Block.php.

◆ calculateIntercept()

pocketmine\block\Block::calculateIntercept ( Vector3 $pos1,
Vector3 $pos2 )
inherited

Performs a ray trace along the line between the two positions using the block's collision boxes. Returns the intersection point closest to pos1, or null if no intersection occurred.

Definition at line 961 of file Block.php.

◆ canBeFlowedInto()

pocketmine\block\Block::canBeFlowedInto ( )
inherited

Returns whether this block can be destroyed by liquid flowing into its cell.

Reimplemented in pocketmine\block\Flowable, pocketmine\block\Liquid, and pocketmine\block\UnderwaterTorch.

Definition at line 600 of file Block.php.

◆ canBePlaced()

pocketmine\block\Block::canBePlaced ( )
inherited

Returns whether this block can be placed when obtained as an item.

Reimplemented in pocketmine\block\Air, and pocketmine\block\UnknownBlock.

Definition at line 409 of file Block.php.

◆ canBePlacedAt()

pocketmine\block\Block::canBePlacedAt ( Block $blockReplace,
Vector3 $clickVector,
int $face,
bool $isClickedBlock )
inherited

Returns whether this block can replace the given block in the given placement conditions. This is used to allow slabs of the same type to combine into double slabs.

Reimplemented in pocketmine\block\Candle, pocketmine\block\Flowable, pocketmine\block\Light, pocketmine\block\PinkPetals, pocketmine\block\SeaPickle, pocketmine\block\Slab, and pocketmine\block\WaterLily.

Definition at line 424 of file Block.php.

◆ canBeReplaced()

pocketmine\block\Block::canBeReplaced ( )
inherited

Returns whether this block can be replaced by another block placed in the same position.

Reimplemented in pocketmine\block\Air, pocketmine\block\BaseFire, pocketmine\block\DoubleTallGrass, pocketmine\block\GlowLichen, pocketmine\block\Light, pocketmine\block\Liquid, pocketmine\block\SnowLayer, and pocketmine\block\Vine.

Definition at line 416 of file Block.php.

◆ canClimb()

pocketmine\block\Block::canClimb ( )
inherited

Returns whether entities can climb up this block.

Reimplemented in pocketmine\block\CaveVines, pocketmine\block\Ladder, pocketmine\block\NetherVines, and pocketmine\block\Vine.

Definition at line 607 of file Block.php.

◆ collidesWithBB()

pocketmine\block\Block::collidesWithBB ( AxisAlignedBB $bb)
inherited

Returns whether any of the block's collision boxes intersect with the given AxisAlignedBB.

Definition at line 841 of file Block.php.

References pocketmine\math\AxisAlignedBB\intersectsWith().

+ Here is the call graph for this function:

◆ describeBlockItemState()

pocketmine\block\Block::describeBlockItemState ( RuntimeDataDescriber $w)
inherited

Describes properties of this block which apply to both the block and item form of the block. Examples of suitable properties include colour, skull type, and any other information which IS kept when the block is mined or block-picked.

The method implementation must NOT use conditional logic to determine which properties are written. It must always write the same properties in the same order, regardless of the current state of the block.

Reimplemented in pocketmine\block\AmethystCluster, pocketmine\block\Anvil, pocketmine\block\Dirt, pocketmine\block\Froglight, pocketmine\block\Light, pocketmine\block\MobHead, pocketmine\block\RedMushroomBlock, pocketmine\block\Sponge, pocketmine\block\TNT, pocketmine\block\UnknownBlock, and pocketmine\block\Wood.

Definition at line 299 of file Block.php.

Referenced by pocketmine\block\Block\__construct().

+ Here is the caller graph for this function:

◆ describeBlockOnlyState()

pocketmine\block\Block::describeBlockOnlyState ( RuntimeDataDescriber $w)
protectedinherited

Describes properties of this block which apply only to the block form of the block. Examples of suitable properties include facing, open/closed, powered/unpowered, on/off, and any other information which IS NOT kept when the block is mined or block-picked.

The method implementation must NOT use conditional logic to determine which properties are written. It must always write the same properties in the same order, regardless of the current state of the block.

Reimplemented in pocketmine\block\Anvil, pocketmine\block\Bamboo, pocketmine\block\BambooSapling, pocketmine\block\Barrel, pocketmine\block\Bed, pocketmine\block\Bedrock, pocketmine\block\Bell, pocketmine\block\BigDripleafHead, pocketmine\block\BrewingStand, pocketmine\block\Button, pocketmine\block\Cake, pocketmine\block\Campfire, pocketmine\block\Candle, pocketmine\block\CaveVines, pocketmine\block\ChiseledBookshelf, pocketmine\block\CocoaBlock, pocketmine\block\CopperBulb, pocketmine\block\DaylightSensor, pocketmine\block\DetectorRail, pocketmine\block\Door, pocketmine\block\DoublePitcherCrop, pocketmine\block\DoublePlant, pocketmine\block\EndPortalFrame, pocketmine\block\Farmland, pocketmine\block\FenceGate, pocketmine\block\FillableCauldron, pocketmine\block\FloorCoralFan, pocketmine\block\Furnace, pocketmine\block\Hopper, pocketmine\block\ItemFrame, pocketmine\block\Lantern, pocketmine\block\Leaves, pocketmine\block\Lectern, pocketmine\block\Lever, pocketmine\block\Liquid, pocketmine\block\MobHead, pocketmine\block\NetherPortal, pocketmine\block\PinkPetals, pocketmine\block\Rail, pocketmine\block\RedstoneComparator, pocketmine\block\RedstoneLamp, pocketmine\block\RedstoneRepeater, pocketmine\block\RedstoneTorch, pocketmine\block\Sapling, pocketmine\block\SeaPickle, pocketmine\block\ShulkerBox, pocketmine\block\SimplePressurePlate, pocketmine\block\Slab, pocketmine\block\SmallDripleaf, pocketmine\block\SnowLayer, pocketmine\block\Stair, pocketmine\block\Stem, pocketmine\block\StraightOnlyRail, pocketmine\block\TNT, pocketmine\block\Torch, pocketmine\block\TorchflowerCrop, pocketmine\block\Trapdoor, pocketmine\block\Tripwire, pocketmine\block\TripwireHook, pocketmine\block\Vine, pocketmine\block\Wall, and pocketmine\block\WallCoralFan.

Definition at line 311 of file Block.php.

Referenced by pocketmine\block\Block\__construct().

+ Here is the caller graph for this function:

◆ generateStatePermutations()

pocketmine\block\Block::generateStatePermutations ( )
inherited

Generates copies of this Block in all possible state permutations. Every possible combination of known properties (e.g. facing, open/closed, powered/unpowered, on/off) will be generated.

@phpstan-return \Generator<int, Block, void, void>

Definition at line 322 of file Block.php.

◆ getAdjacentSupportType()

pocketmine\block\Block::getAdjacentSupportType ( int $facing)
protectedinherited

Definition at line 947 of file Block.php.

◆ getAffectedBlocks()

pocketmine\block\Block::getAffectedBlocks ( )
inherited

Returns a list of blocks that this block is part of. In most cases, only contains the block itself, but in cases such as double plants, beds and doors, will contain both halves.

Returns
Block[]

Reimplemented in pocketmine\block\Bed, pocketmine\block\Door, pocketmine\block\DoublePlant, and pocketmine\block\SmallDripleaf.

Definition at line 827 of file Block.php.

◆ getAllSides()

pocketmine\block\Block::getAllSides ( )
inherited

Returns the six blocks around this block.

Returns
Block[]|\Generator @phpstan-return \Generator<int, Block, void, void>

Definition at line 809 of file Block.php.

◆ getBreakInfo()

pocketmine\block\Block::getBreakInfo ( )
inherited

Returns an object containing information about the destruction requirements of this block.

Definition at line 458 of file Block.php.

◆ getCollisionBoxes()

pocketmine\block\Block::getCollisionBoxes ( )
finalinherited

Returns an array of collision bounding boxes for this block. These are used for:

  • entity movement collision checks (to ensure entities can't clip through blocks)
  • projectile flight paths
  • block placement (to ensure the player can't place blocks inside itself or another entity)
  • anti-cheat checks in plugins
Returns
AxisAlignedBB[]

Definition at line 911 of file Block.php.

◆ getDrops()

pocketmine\block\Block::getDrops ( Item $item)
inherited

◆ getDropsForCompatibleTool()

pocketmine\block\Ice::getDropsForCompatibleTool ( Item $item)

Returns an array of Items to be dropped when the block is broken using the correct tool type.

Returns
Item[]

Reimplemented from pocketmine\block\Block.

Definition at line 60 of file Ice.php.

◆ getDropsForIncompatibleTool()

pocketmine\block\Block::getDropsForIncompatibleTool ( Item $item)
inherited

Returns the items dropped by this block when broken with an incorrect tool type (or tool with a too-low tier).

Returns
Item[]

Reimplemented in pocketmine\block\AmethystCluster, pocketmine\block\Bell, pocketmine\block\DeadBush, pocketmine\block\DoubleTallGrass, and pocketmine\block\HangingRoots.

Definition at line 654 of file Block.php.

◆ getEnchantmentTags()

pocketmine\block\Block::getEnchantmentTags ( )
inherited

Returns tags that represent the type of item being enchanted and are used to determine what enchantments can be applied to the item of this block during in-game enchanting (enchanting table, anvil, fishing, etc.).

See also
ItemEnchantmentTags
ItemEnchantmentTagRegistry
AvailableEnchantmentRegistry
Returns
string[]

Definition at line 471 of file Block.php.

◆ getFlameEncouragement()

◆ getFlammability()

◆ getFrictionFactor()

pocketmine\block\Ice::getFrictionFactor ( )

Returns a multiplier applied to the velocity of entities moving on top of this block. A higher value will make the block more slippery (like ice).

Returns
float 0.0-1.0

Reimplemented from pocketmine\block\Block.

Definition at line 37 of file Ice.php.

◆ getFuelTime()

◆ getHorizontalSides()

pocketmine\block\Block::getHorizontalSides ( )
inherited

Returns the 4 blocks on the horizontal axes around the block (north, south, east, west)

Returns
Block[]|\Generator @phpstan-return \Generator<int, Block, void, void>

Definition at line 790 of file Block.php.

◆ getIdInfo()

pocketmine\block\Block::getIdInfo ( )
inherited

Returns an object containing information about how to identify and store this block type, such as type ID and tile type (if any).

Definition at line 136 of file Block.php.

◆ getLightFilter()

pocketmine\block\Ice::getLightFilter ( )

Returns the amount of light this block will filter out when light passes through this block. This value is used in light spread calculation.

Returns
int 0-15

Reimplemented from pocketmine\block\Block.

Definition at line 33 of file Ice.php.

◆ getLightLevel()

◆ getMaxStackSize()

pocketmine\block\Block::getMaxStackSize ( )
inherited

Returns the maximum number of this block that can fit into a single item stack.

Reimplemented in pocketmine\block\BaseBanner, pocketmine\block\BaseSign, pocketmine\block\Bed, and pocketmine\block\ShulkerBox.

Definition at line 721 of file Block.php.

◆ getModelPositionOffset()

pocketmine\block\Block::getModelPositionOffset ( )
inherited

Returns an additional fractional vector to shift the block model's position by based on the current position. Used to randomize position of things like bamboo canes and tall grass.

Reimplemented in pocketmine\block\Bamboo.

Definition at line 928 of file Block.php.

◆ getName()

pocketmine\block\Block::getName ( )
inherited

Returns the printable English name of the block.

Definition at line 143 of file Block.php.

◆ getPickedItem()

pocketmine\block\Block::getPickedItem ( bool $addUserData = false)
inherited

Returns the item that players will equip when middle-clicking on this block. If addUserData is true, additional data may be added, such as banner patterns, chest contents, etc.

Reimplemented in pocketmine\block\BaseBanner, pocketmine\block\CakeWithCandle, pocketmine\block\Farmland, pocketmine\block\FlowerPot, pocketmine\block\ItemFrame, pocketmine\block\RedMushroomBlock, and pocketmine\block\ShulkerBox.

Definition at line 696 of file Block.php.

◆ getPosition()

pocketmine\block\Block::getPosition ( )
finalinherited

Definition at line 611 of file Block.php.

◆ getSide()

pocketmine\block\Block::getSide ( int $side,
int $step = 1 )
inherited

Returns the Block on the side $side, works like Vector3::getSide()

Returns
Block

Definition at line 770 of file Block.php.

References pocketmine\world\Position\isValid().

Referenced by pocketmine\block\CopperDoor\onInteract(), pocketmine\item\EndCrystal\onInteractBlock(), pocketmine\block\Fence\readStateFromWorld(), and pocketmine\block\Thin\readStateFromWorld().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getSilkTouchDrops()

pocketmine\block\Block::getSilkTouchDrops ( Item $item)
inherited

Returns an array of Items to be dropped when the block is broken using a compatible Silk Touch-enchanted tool.

Returns
Item[]

Reimplemented in pocketmine\block\InfestedStone, and pocketmine\block\RedMushroomBlock.

Definition at line 663 of file Block.php.

◆ getStateId()

pocketmine\block\Block::getStateId ( )
inherited

Definition at line 177 of file Block.php.

◆ getSupportType()

pocketmine\block\Block::getSupportType ( int $facing)
inherited

Returns the type of support that the block can provide on the given face. This is used to determine whether blocks placed on the given face can be supported by this block.

Reimplemented in pocketmine\block\AmethystCluster, pocketmine\block\Anvil, pocketmine\block\Bamboo, pocketmine\block\BaseBanner, pocketmine\block\BaseBigDripleaf, pocketmine\block\BaseCake, pocketmine\block\BaseCoral, pocketmine\block\BaseSign, pocketmine\block\Bed, pocketmine\block\Bell, pocketmine\block\BrewingStand, pocketmine\block\Cactus, pocketmine\block\Campfire, pocketmine\block\Candle, pocketmine\block\Cauldron, pocketmine\block\CaveVines, pocketmine\block\Chain, pocketmine\block\Chest, pocketmine\block\DaylightSensor, pocketmine\block\Door, pocketmine\block\DragonEgg, pocketmine\block\EnchantingTable, pocketmine\block\EnderChest, pocketmine\block\Fence, pocketmine\block\FenceGate, pocketmine\block\FillableCauldron, pocketmine\block\Flowable, pocketmine\block\GlowLichen, pocketmine\block\Hopper, pocketmine\block\Ladder, pocketmine\block\Lantern, pocketmine\block\Leaves, pocketmine\block\Lectern, pocketmine\block\Liquid, pocketmine\block\MonsterSpawner, pocketmine\block\NetherPortal, pocketmine\block\NetherVines, pocketmine\block\PressurePlate, pocketmine\block\SeaPickle, pocketmine\block\ShulkerBox, pocketmine\block\Slab, pocketmine\block\SmallDripleaf, pocketmine\block\SnowLayer, pocketmine\block\Stair, pocketmine\block\Stonecutter, pocketmine\block\Thin, pocketmine\block\Trapdoor, and pocketmine\block\Wall.

Definition at line 943 of file Block.php.

◆ getTypeId()

pocketmine\block\Block::getTypeId ( )
inherited

Returns a type ID that identifies this type of block. This allows comparing basic block types, e.g. wool, stone, glass, etc. Type ID will not change for a given block type.

Information such as colour, powered, open/closed, etc. is not included in this ID. If you want to get a state ID that includes this information, use Block::getStateId() instead.

See also
BlockTypeIds

Definition at line 156 of file Block.php.

Referenced by pocketmine\data\bedrock\block\convert\BlockObjectToStateSerializer\map(), and pocketmine\item\Bucket\onInteractBlock().

+ Here is the caller graph for this function:

◆ getTypeTags()

pocketmine\block\Block::getTypeTags ( )
inherited
Returns
string[]

Definition at line 200 of file Block.php.

◆ getXpDropAmount()

pocketmine\block\Block::getXpDropAmount ( )
protectedinherited

◆ getXpDropForTool()

pocketmine\block\Block::getXpDropForTool ( Item $item)
inherited

Returns how much XP will be dropped by breaking this block with the given item.

Definition at line 670 of file Block.php.

◆ hasEntityCollision()

◆ hasSameTypeId()

pocketmine\block\Block::hasSameTypeId ( Block $other)
inherited

Returns whether the given block has the same type ID as this one.

Definition at line 184 of file Block.php.

Referenced by pocketmine\block\Chest\onPostPlace(), and pocketmine\block\Liquid\onScheduledUpdate().

+ Here is the caller graph for this function:

◆ hasTypeTag()

pocketmine\block\Block::hasTypeTag ( string $tag)
inherited

Returns whether this block type has the given type tag. Type tags are used as a dynamic way to tag blocks as having certain properties, allowing type checks which are more dynamic than hardcoding a bunch of IDs or a bunch of instanceof checks.

For example, grass blocks, dirt, farmland, podzol and mycelium are all dirt-like blocks, and support the placement of blocks like flowers, so they have a common tag which allows them to be identified as such.

Definition at line 212 of file Block.php.

◆ isAffectedBySilkTouch()

pocketmine\block\Ice::isAffectedBySilkTouch ( )

Returns whether Silk Touch enchanted tools will cause this block to drop as itself.

Reimplemented from pocketmine\block\Block.

Definition at line 64 of file Ice.php.

◆ isFireProofAsItem()

pocketmine\block\Block::isFireProofAsItem ( )
inherited

Definition at line 725 of file Block.php.

◆ isFlammable()

pocketmine\block\Block::isFlammable ( )
inherited

Returns whether this block can catch fire.

Definition at line 754 of file Block.php.

◆ isFullCube()

pocketmine\block\Block::isFullCube ( )
inherited

Definition at line 951 of file Block.php.

◆ isSameState()

pocketmine\block\Block::isSameState ( Block $other)
inherited

Returns whether the given block has the same type and properties as this block.

Note: Tile data (e.g. sign text, chest contents) are not compared here.

Definition at line 193 of file Block.php.

◆ isSolid()

pocketmine\block\Block::isSolid ( )
inherited
Deprecated
TL;DR: Don't use this function. Its results are confusing and inconsistent.

No one is sure what the meaning of this property actually is. It's borrowed from Minecraft Java Edition, and is used by various blocks for support checks.

Things like signs and banners are considered "solid" despite having no collision box, and things like skulls and flower pots are considered non-solid despite obviously being "solid" in the conventional, real-world sense.

Reimplemented in pocketmine\block\BaseBanner, pocketmine\block\BaseCoral, pocketmine\block\BaseSign, pocketmine\block\Carpet, pocketmine\block\Door, pocketmine\block\EndRod, pocketmine\block\Flowable, pocketmine\block\GlowLichen, pocketmine\block\Ladder, pocketmine\block\Liquid, pocketmine\block\NetherPortal, pocketmine\block\Opaque, pocketmine\block\PressurePlate, and pocketmine\block\SeaPickle.

Definition at line 593 of file Block.php.

◆ isTransparent()

pocketmine\block\Transparent::isTransparent ( )
inherited

Returns whether this block allows any light to pass through it.

Reimplemented from pocketmine\block\Block.

Reimplemented in pocketmine\block\Slab.

Definition at line 34 of file Transparent.php.

◆ onAttack()

pocketmine\block\Block::onAttack ( Item $item,
int $face,
?Player $player = null )
inherited

Called when this block is attacked (left-clicked) by a player attempting to start breaking it in survival.

Returns
bool if an action took place, prevents starting to break the block if true.

Reimplemented in pocketmine\block\DragonEgg, pocketmine\block\ItemFrame, and pocketmine\block\Lectern.

Definition at line 533 of file Block.php.

◆ onBreak()

pocketmine\block\Ice::onBreak ( Item $item,
?Player $player = null,
array & $returnedItems = [] )

Do the actions needed so the block is broken with the Item

Parameters
Item[]&$returnedItemsItems to be added to the target's inventory (or dropped, if full)

Reimplemented from pocketmine\block\Block.

Definition at line 41 of file Ice.php.

◆ onEntityInside()

pocketmine\block\Block::onEntityInside ( Entity $entity)
inherited

Called when an entity's bounding box clips inside this block's cell. Note that the entity may not be intersecting with the collision box or bounding box.

WARNING: This will not be called if Block::hasEntityCollision() returns false.

Returns
bool Whether the block is still the same after the intersection. If it changed (e.g. due to an explosive being ignited), this should return false.

Reimplemented in pocketmine\block\BaseFire, pocketmine\block\BigDripleafHead, pocketmine\block\Cactus, pocketmine\block\Campfire, pocketmine\block\CaveVines, pocketmine\block\Cobweb, pocketmine\block\Ladder, pocketmine\block\Lava, pocketmine\block\LavaCauldron, pocketmine\block\Magma, pocketmine\block\NetherPortal, pocketmine\block\NetherVines, pocketmine\block\PressurePlate, pocketmine\block\SweetBerryBush, pocketmine\block\Vine, pocketmine\block\Water, pocketmine\block\WaterCauldron, and pocketmine\block\WitherRose.

Definition at line 869 of file Block.php.

◆ onEntityLand()

pocketmine\block\Block::onEntityLand ( Entity $entity)
inherited

Called when an entity lands on this block (usually due to falling).

Returns
float|null The new vertical velocity of the entity, or null if unchanged.

Reimplemented in pocketmine\block\Bed, pocketmine\block\Farmland, pocketmine\block\HayBale, and pocketmine\block\Slime.

Definition at line 890 of file Block.php.

◆ onIncinerate()

pocketmine\block\Block::onIncinerate ( )
inherited

Called when this block is burned away by being on fire.

Reimplemented in pocketmine\block\TNT.

Definition at line 761 of file Block.php.

◆ onInteract()

pocketmine\block\Block::onInteract ( Item $item,
int $face,
Vector3 $clickVector,
?Player $player = null,
array & $returnedItems = [] )
inherited

Do actions when interacted by Item. Returns if it has done anything

Parameters
Vector3$clickVectorExact position where the click occurred, relative to the block's integer position
Item[]&$returnedItemsItems to be added to the target's inventory (or dropped, if the inventory is full)

Reimplemented in pocketmine\block\Anvil, pocketmine\block\Bamboo, pocketmine\block\BambooSapling, pocketmine\block\Barrel, pocketmine\block\BaseBigDripleaf, pocketmine\block\BaseCake, pocketmine\block\BaseSign, pocketmine\block\Bed, pocketmine\block\Bell, pocketmine\block\BrewingStand, pocketmine\block\Button, pocketmine\block\Cake, pocketmine\block\CakeWithCandle, pocketmine\block\Campfire, pocketmine\block\CartographyTable, pocketmine\block\Cauldron, pocketmine\block\CaveVines, pocketmine\block\ChemistryTable, pocketmine\block\Chest, pocketmine\block\ChiseledBookshelf, pocketmine\block\CocoaBlock, pocketmine\block\CopperDoor, pocketmine\block\CopperTrapdoor, pocketmine\block\CraftingTable, pocketmine\block\Crops, pocketmine\block\DaylightSensor, pocketmine\block\Dirt, pocketmine\block\Door, pocketmine\block\DoublePitcherCrop, pocketmine\block\DragonEgg, pocketmine\block\EnchantingTable, pocketmine\block\EnderChest, pocketmine\block\FenceGate, pocketmine\block\FlowerPot, pocketmine\block\Furnace, pocketmine\block\GlowLichen, pocketmine\block\Grass, pocketmine\block\Hopper, pocketmine\block\ItemFrame, pocketmine\block\Jukebox, pocketmine\block\LavaCauldron, pocketmine\block\Lectern, pocketmine\block\Lever, pocketmine\block\Light, pocketmine\block\Loom, pocketmine\block\NetherVines, pocketmine\block\PinkPetals, pocketmine\block\PitcherCrop, pocketmine\block\PotionCauldron, pocketmine\block\Pumpkin, pocketmine\block\RedstoneComparator, pocketmine\block\RedstoneOre, pocketmine\block\RedstoneRepeater, pocketmine\block\Sapling, pocketmine\block\SeaPickle, pocketmine\block\ShulkerBox, pocketmine\block\SmallDripleaf, pocketmine\block\SmithingTable, pocketmine\block\Stonecutter, pocketmine\block\Sugarcane, pocketmine\block\SweetBerryBush, pocketmine\block\TNT, pocketmine\block\TorchflowerCrop, pocketmine\block\Trapdoor, pocketmine\block\WaterCauldron, and pocketmine\block\Wood.

Definition at line 524 of file Block.php.

◆ onNearbyBlockChange()

◆ onPostPlace()

pocketmine\block\Block::onPostPlace ( )
inherited

Called immediately after the block has been placed in the world. Since placement uses a block transaction, some things may not be possible until after the transaction has been executed.

Reimplemented in pocketmine\block\BaseRail, pocketmine\block\BaseSign, and pocketmine\block\Chest.

Definition at line 451 of file Block.php.

◆ onProjectileHit()

pocketmine\block\Block::onProjectileHit ( Projectile $projectile,
RayTraceResult $hitResult )
inherited

Called when a projectile collides with one of this block's collision boxes.

Reimplemented in pocketmine\block\Bell, pocketmine\block\BigDripleafHead, pocketmine\block\Campfire, pocketmine\block\ChorusFlower, and pocketmine\block\TNT.

Definition at line 897 of file Block.php.

◆ onRandomTick()

pocketmine\block\Ice::onRandomTick ( )

Called when this block is randomly updated due to chunk ticking. WARNING: This will not be called if Block::ticksRandomly() does not return true!

Reimplemented from pocketmine\block\Block.

Reimplemented in pocketmine\block\FrostedIce.

Definition at line 53 of file Ice.php.

◆ onScheduledUpdate()

◆ place()

pocketmine\block\Block::place ( BlockTransaction $tx,
Item $item,
Block $blockReplace,
Block $blockClicked,
int $face,
Vector3 $clickVector,
?Player $player = null )
inherited

Generates a block transaction to set all blocks affected by placing this block. Usually this is just the block itself, but may be multiple blocks in some cases (such as doors).

Parameters
BlockTransaction$txBlocks to be set should be added to this transaction (do not modify thr world directly)
Item$itemItem used to place the block
Block$blockReplaceBlock expected to be replaced
Block$blockClickedBlock that was clicked using the item
int$faceFace of the clicked block which was clicked
Vector3$clickVectorExact position inside the clicked block where the click occurred, relative to the block's position
Player | null$playerPlayer who placed the block, or null if it was not a player
Returns
bool whether the placement should go ahead

Reimplemented in pocketmine\block\AmethystCluster, pocketmine\block\Anvil, pocketmine\block\Barrel, pocketmine\block\BaseBanner, pocketmine\block\BaseBigDripleaf, pocketmine\block\BaseRail, pocketmine\block\BaseSign, pocketmine\block\Bed, pocketmine\block\Bell, pocketmine\block\Button, pocketmine\block\Campfire, pocketmine\block\Candle, pocketmine\block\CaveVines, pocketmine\block\CocoaBlock, pocketmine\block\Door, pocketmine\block\DoublePlant, pocketmine\block\EndRod, pocketmine\block\FenceGate, pocketmine\block\FloorBanner, pocketmine\block\FloorCoralFan, pocketmine\block\FloorSign, pocketmine\block\Hopper, pocketmine\block\ItemFrame, pocketmine\block\Ladder, pocketmine\block\Lantern, pocketmine\block\Leaves, pocketmine\block\Lever, pocketmine\block\LightningRod, pocketmine\block\MobHead, pocketmine\block\NetherVines, pocketmine\block\PinkPetals, pocketmine\block\RedMushroom, pocketmine\block\RedstoneComparator, pocketmine\block\RedstoneRepeater, pocketmine\block\SeaPickle, pocketmine\block\ShulkerBox, pocketmine\block\Slab, pocketmine\block\SmallDripleaf, pocketmine\block\SnowLayer, pocketmine\block\Stair, pocketmine\block\Sugarcane, pocketmine\block\Torch, pocketmine\block\Trapdoor, pocketmine\block\TripwireHook, pocketmine\block\Vine, pocketmine\block\WallBanner, pocketmine\block\WallCoralFan, and pocketmine\block\WallSign.

Definition at line 442 of file Block.php.

◆ position()

pocketmine\block\Block::position ( World $world,
int $x,
int $y,
int $z )
finalinherited

Definition at line 618 of file Block.php.

◆ readStateFromWorld()

pocketmine\block\Block::readStateFromWorld ( )
inherited

Called when this block is created, set, or has a neighbouring block update, to re-detect dynamic properties which are not saved in the blockstate ID. If any such properties are updated, don't forget to clear things like AABB caches if necessary.

A replacement block may be returned. This is useful if the block type changed due to reading of world data (e.g. data from a block entity).

@phpstan-impure

Reimplemented in pocketmine\block\BaseBanner, pocketmine\block\BaseSign, pocketmine\block\Bed, pocketmine\block\Campfire, pocketmine\block\ChiseledBookshelf, pocketmine\block\Door, pocketmine\block\Fence, pocketmine\block\FlowerPot, pocketmine\block\ItemFrame, pocketmine\block\Jukebox, pocketmine\block\Lectern, pocketmine\block\Liquid, pocketmine\block\MobHead, pocketmine\block\Note, pocketmine\block\PotionCauldron, pocketmine\block\RedstoneComparator, pocketmine\block\RedstoneWire, pocketmine\block\ShulkerBox, pocketmine\block\Stair, pocketmine\block\Thin, and pocketmine\block\WaterCauldron.

Definition at line 368 of file Block.php.

◆ recalculateCollisionBoxes()

pocketmine\block\Block::recalculateCollisionBoxes ( )
protectedinherited
Returns
AxisAlignedBB[]

Reimplemented in pocketmine\block\AmethystCluster, pocketmine\block\Anvil, pocketmine\block\Bamboo, pocketmine\block\BaseBanner, pocketmine\block\BaseCoral, pocketmine\block\BaseSign, pocketmine\block\Bed, pocketmine\block\Bell, pocketmine\block\BigDripleafHead, pocketmine\block\BigDripleafStem, pocketmine\block\BrewingStand, pocketmine\block\Cactus, pocketmine\block\Cake, pocketmine\block\CakeWithCandle, pocketmine\block\Campfire, pocketmine\block\Candle, pocketmine\block\Carpet, pocketmine\block\Cauldron, pocketmine\block\CaveVines, pocketmine\block\Chain, pocketmine\block\Chest, pocketmine\block\ChorusFlower, pocketmine\block\ChorusPlant, pocketmine\block\CocoaBlock, pocketmine\block\DaylightSensor, pocketmine\block\Door, pocketmine\block\DoublePitcherCrop, pocketmine\block\EnchantingTable, pocketmine\block\EnderChest, pocketmine\block\EndPortalFrame, pocketmine\block\EndRod, pocketmine\block\Farmland, pocketmine\block\Fence, pocketmine\block\FenceGate, pocketmine\block\FillableCauldron, pocketmine\block\Flowable, pocketmine\block\FlowerPot, pocketmine\block\GlowLichen, pocketmine\block\GrassPath, pocketmine\block\Hopper, pocketmine\block\Ladder, pocketmine\block\Lantern, pocketmine\block\Lectern, pocketmine\block\LightningRod, pocketmine\block\Liquid, pocketmine\block\MobHead, pocketmine\block\NetherPortal, pocketmine\block\NetherVines, pocketmine\block\PitcherCrop, pocketmine\block\PressurePlate, pocketmine\block\RedstoneComparator, pocketmine\block\RedstoneRepeater, pocketmine\block\SeaPickle, pocketmine\block\Slab, pocketmine\block\SmallDripleaf, pocketmine\block\SnowLayer, pocketmine\block\SoulSand, pocketmine\block\Stair, pocketmine\block\Stonecutter, pocketmine\block\Thin, pocketmine\block\Trapdoor, pocketmine\block\Vine, pocketmine\block\Wall, and pocketmine\block\WaterLily.

Definition at line 935 of file Block.php.

◆ ticksRandomly()

pocketmine\block\Ice::ticksRandomly ( )

Returns whether random block updates will be done on this block.

Reimplemented from pocketmine\block\Block.

Definition at line 49 of file Ice.php.

◆ writeStateToWorld()

pocketmine\block\Block::writeStateToWorld ( )
inherited

Member Data Documentation

◆ $collisionBoxes

array pocketmine\block\Block::$collisionBoxes = null
protectedinherited

Definition at line 79 of file Block.php.

◆ $fallbackName

string pocketmine\block\Block::$fallbackName
protectedinherited

Definition at line 74 of file Block.php.

◆ $idInfo

BlockIdentifier pocketmine\block\Block::$idInfo
protectedinherited

Definition at line 73 of file Block.php.

◆ $position

Position pocketmine\block\Block::$position
protectedinherited

Definition at line 76 of file Block.php.

◆ $typeInfo

BlockTypeInfo pocketmine\block\Block::$typeInfo
protectedinherited

Definition at line 75 of file Block.php.

◆ EMPTY_STATE_ID

const pocketmine\block\Block::EMPTY_STATE_ID = (BlockTypeIds::AIR << self::INTERNAL_STATE_DATA_BITS) | (-7482769108513497636 & self::INTERNAL_STATE_DATA_MASK)
inherited

Definition at line 71 of file Block.php.

◆ INTERNAL_STATE_DATA_BITS

const pocketmine\block\Block::INTERNAL_STATE_DATA_BITS = 11
inherited

Definition at line 63 of file Block.php.

◆ INTERNAL_STATE_DATA_MASK

const pocketmine\block\Block::INTERNAL_STATE_DATA_MASK = ~(~0 << self::INTERNAL_STATE_DATA_BITS)
inherited

Definition at line 64 of file Block.php.


The documentation for this class was generated from the following file: