MECHA - Multiple Entity Collision Hitboxes API

Fabric API for implementing multiple collider hitboxes for a single entity

1,91k

MECHA - Multiple Entity Collision Hitboxes API

A simple API for enabling custom entities to implement more than one collision box.

Setup

Add the Modrinth Maven and the right version of the mod to your build.gradle file:

```gradle repositories { maven { url 'https://api.modrinth.com/maven' } }

dependencies { modImplementation "maven.modrinth:mecha-api:VERSION_GOES_HERE" } ```

Usage

Implement `MultiCollidable` in your custom entity class, and override `getColliders` to add extra colliders to the entity.

Example

The following example code adds 2 colliders to an entity, each the size of a slab:

```java public CustomEntity extends Entity implements MultiCollidable { public List<VoxelShape> getColliders() { List<VoxelShape> colliders = new ArrayList<>(); BlockPos pos = this.blockPos(); double x = pos.getX(); double y = pos.getY(); double z = pos.getZ(); colliders.add(VoxelShapes.cuboid(x, y, z, x+1, y+0.5, z+1)); colliders.add(VoxelShapes.cuboid(x, y+0.5, z, x+1, y+1, z+1)); return colliders; } } ```

For 0.1.2 and newer, there is now also a custom entity type, `DynamicBoundingBoxEntity`, which has a dynamic bounding box based on the list returned by `getColliders()`:

```java public CustomEntity extends DynamicBoundingBoxEntity { // The bounding box of this entity will dynamically resize // to fit the colliders returned by this function @Override public List<VoxelShape> getColliders() { ... } } ```

ADS