Contents
Interface IBlockCollisionConsumer
- All Known Implementing Classes:
SimplePhysicsProvider, StandardPhysicsProvider
public interface IBlockCollisionConsumer
An interface for processing collisions provided by
BlockCollisionProvider.-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic enumResult codes to terminate processing of collisions. -
Method Summary
Modifier and TypeMethodDescriptiononCollision(int blockX, int blockY, int blockZ, org.joml.Vector3d direction, BlockContactData contactData, BlockData blockData, Box collider) Process a collision between a block and the collider.voidonCollisionDamage(int blockX, int blockY, int blockZ, org.joml.Vector3d direction, BlockContactData collisionData, BlockData blockData) Process damage caused by block.voidCalled when all blocks are processed.Called whenBoxBlockIteratorused for iteration ends a slice.probeCollisionDamage(int blockX, int blockY, int blockZ, org.joml.Vector3d direction, BlockContactData collisionData, BlockData blockData) Test if the damage caused by block should stop processing and stop movement of collider.
-
Method Details
-
onCollision
IBlockCollisionConsumer.Result onCollision(int blockX, int blockY, int blockZ, org.joml.Vector3d direction, BlockContactData contactData, BlockData blockData, Box collider) Process a collision between a block and the collider.collisionDataandblockDataare only valid until this call returns.- Parameters:
blockX- X position of blockblockY- Y position of blockblockZ- Z position of blockdirection- Direction collider is movingcontactData- Information about collision contactblockData- Information about blockcollider- Sub hitbox collision happens with- Returns:
- Return
IBlockCollisionConsumer.Result.STOPorIBlockCollisionConsumer.Result.STOP_NOWto stop processing after this block orIBlockCollisionConsumer.Result.CONTINUEto continue
-
probeCollisionDamage
IBlockCollisionConsumer.Result probeCollisionDamage(int blockX, int blockY, int blockZ, org.joml.Vector3d direction, BlockContactData collisionData, BlockData blockData) Test if the damage caused by block should stop processing and stop movement of collider.collisionDataandblockDataare only valid until this call returns. The actual damage should be processed usingonCollisionDamage(int, int, int, Vector3d, BlockContactData, BlockData).- Parameters:
blockX- X position of blockblockY- Y position of blockblockZ- Z position of blockdirection- Direction collider is movingcollisionData- Information about collision contactblockData- Information about block- Returns:
- Return
IBlockCollisionConsumer.Result.STOPorIBlockCollisionConsumer.Result.STOP_NOWto stop processing after this block orIBlockCollisionConsumer.Result.CONTINUEto continue
-
onCollisionDamage
void onCollisionDamage(int blockX, int blockY, int blockZ, org.joml.Vector3d direction, BlockContactData collisionData, BlockData blockData) Process damage caused by block.collisionDataandblockDataare only valid until this call returns.- Parameters:
blockX- X position of blockblockY- Y position of blockblockZ- Z position of blockdirection- Direction collider is movingcollisionData- Information about collision contactblockData- Information about block
-
onCollisionSliceFinished
IBlockCollisionConsumer.Result onCollisionSliceFinished()Called whenBoxBlockIteratorused for iteration ends a slice.- Returns:
- Return
IBlockCollisionConsumer.Result.STOPorIBlockCollisionConsumer.Result.STOP_NOWto stop processing after this block orIBlockCollisionConsumer.Result.CONTINUEto continue
-
onCollisionFinished
void onCollisionFinished()Called when all blocks are processed.
-