Hitbox Api

Hitbox Api

237 Downloads

Hitbox API

Adding more common collision boxes for Minecraft

  • Oriented Bounding Box (OBB)
  • Sphere
  • Capsule
  • Ray
  • Compound
    • Multiple collision boxes can be combined into one.
    • Composite collision boxes can be nested.

How to Use

In any place where collision detection is needed, create a collider object and use the methods in ColliderUtil to determine if a collider has occurred.

For entities (Entity), you can achieve collider caching by attaching HitboxDataAttachments#COLLISION. The cached collider can be rendered by pressing F3 + B. Note that this Data does not have a persistence implementation.

Performance

Testing Method

  • JMH Benchmark

Testing Environment

  • CPU: AMD R5 5600G
  • Memory: 32GB
  • JDK: Microsoft OpenJDK 21.0

Testing Settings

  • Warm-up Rounds: 5
  • Test Rounds: 5

Testing Items

  • Collision detection of the same type of collider
Collision Box Score Error Unit
Axis-Aligned Bounding Box 3561837865.930 157982649.213 ops/s
Capsule 22350681.198 238993.658 ops/s
Rotated Capsule 16842309.523 103959.918 ops/s
Oriented Bounding Box 5528493.224 64548.996 ops/s
Rotated Oriented Bounding Box 4648963.750 111369.535 ops/s
Sphere 119556589.705 1711146.560 ops/s

Note: Higher scores indicate better performance. Rotated means the collider is rotated and the relevant vectors are recalculated.

add collider for enttiy