Перейти к содержимому
Mineforgian

MECHA - Multiple Entity Collision Hitboxes API

Fabric API for implementing multiple collider hitboxes for a single entity

Загрузки
2K
Подписчики
3
Обновлён
11 сентября 2024 г.
Лицензия
MIT

Опубликован 3 мая 2024 г.

Исходный код

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:

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:

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():

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() { ... }
}

Ченджлог

0.1.2Альфа1.20.6, 1.21, 1.21.1 · 11 сентября 2024 г.

Added DynamicBoundingBoxEntity used together with getColliders() to create an entity with a dynamically resizing bounding box

0.1.1+1.20Альфа1.20.4, 1.20.5, 1.20.6 · 6 мая 2024 г.

Fix collisions only working on singleplayer worlds.

0.1.1+1.19.4Альфа1.19.4 · 6 мая 2024 г.

Fix collisions only working in singleplayer worlds.

0.1.0+1.20Альфа1.20.4, 1.20.5, 1.20.6 · 6 мая 2024 г.

Initial 1.20.x version

0.1.0+1.19.4Альфа1.19.4 · 3 мая 2024 г.

Initial version. Expose interface MultiCollidable that entities can implement.

Комментарии

Загружаем…