Class PistonBlockEntity
java.lang.Object
org.geysermc.geyser.translator.level.block.entity.PistonBlockEntity
-
Constructor Summary
ConstructorsConstructorDescriptionPistonBlockEntity(GeyserSession session, com.nukkitx.math.vector.Vector3i position, Direction orientation, boolean sticky, boolean extended) -
Method Summary
Modifier and TypeMethodDescriptionstatic com.nukkitx.nbt.NbtMapbuildStaticPistonTag(com.nukkitx.math.vector.Vector3i position, boolean extended, boolean sticky)Create a piston data tag that has fully extended/retractedbooleanbooleancheckCollision(com.nukkitx.math.vector.Vector3i blockPos, BoundingBox boundingBox)doublecomputeCollisionOffset(com.nukkitx.math.vector.Vector3i blockPos, BoundingBox boundingBox, Axis axis, double movement)Compute the maximum movement of a bounding box that won't collide with the moving block attached to this pistoncom.github.steveice10.mc.protocol.data.game.level.block.value.PistonValueTypecom.nukkitx.math.vector.Vector3ibooleanisDone()voidPush the player If the player is pushed, the displacement is added to playerDisplacement in PistonCache If the player contacts a slime block, playerMotion in PistonCache is updatedvoidsetAction(com.github.steveice10.mc.protocol.data.game.level.block.value.PistonValueType action)Set whether the piston is pulling or pushing blocksvoidsetAction(com.github.steveice10.mc.protocol.data.game.level.block.value.PistonValueType action, it.unimi.dsi.fastutil.objects.Object2IntMap<com.nukkitx.math.vector.Vector3i> attachedBlocks)voidPlace attached blocks in their final position when done pushing or pullingvoidUpdate the position of the piston head, moving blocks, and players.
-
Constructor Details
-
PistonBlockEntity
public PistonBlockEntity(GeyserSession session, com.nukkitx.math.vector.Vector3i position, Direction orientation, boolean sticky, boolean extended)
-
-
Method Details
-
setAction
public void setAction(com.github.steveice10.mc.protocol.data.game.level.block.value.PistonValueType action)Set whether the piston is pulling or pushing blocks- Parameters:
action- PULLING or PUSHING or CANCELED_MID_PUSH
-
setAction
public void setAction(com.github.steveice10.mc.protocol.data.game.level.block.value.PistonValueType action, it.unimi.dsi.fastutil.objects.Object2IntMap<com.nukkitx.math.vector.Vector3i> attachedBlocks) -
updateMovement
public void updateMovement()Update the position of the piston head, moving blocks, and players. -
updateBlocks
public void updateBlocks()Place attached blocks in their final position when done pushing or pulling -
pushPlayer
public void pushPlayer()Push the player If the player is pushed, the displacement is added to playerDisplacement in PistonCache If the player contacts a slime block, playerMotion in PistonCache is updated -
computeCollisionOffset
public double computeCollisionOffset(com.nukkitx.math.vector.Vector3i blockPos, BoundingBox boundingBox, Axis axis, double movement)Compute the maximum movement of a bounding box that won't collide with the moving block attached to this piston- Parameters:
blockPos- The position of the moving blockboundingBox- The bounding box of the moving entityaxis- The axis of movementmovement- The movement in the axis- Returns:
- The adjusted movement
-
checkCollision
-
isDone
public boolean isDone()- Returns:
- True if the piston has finished its movement, otherwise false
-
canBeRemoved
public boolean canBeRemoved() -
buildStaticPistonTag
public static com.nukkitx.nbt.NbtMap buildStaticPistonTag(com.nukkitx.math.vector.Vector3i position, boolean extended, boolean sticky)Create a piston data tag that has fully extended/retracted- Parameters:
position- The position for the base of the pistonextended- Whether the piston is extended or retractedsticky- Whether the piston is a sticky piston or a regular piston- Returns:
- A piston data tag for a fully extended/retracted piston
-
getPosition
public com.nukkitx.math.vector.Vector3i getPosition() -
getAction
public com.github.steveice10.mc.protocol.data.game.level.block.value.PistonValueType getAction()
-