

MECHA - Multiple Entity Collision Hitboxes API
Активный0.0
Установок
Последнее обновление
Версии
MECHA - Multiple Entity Collision Hitboxes API
Данный API предоставляет разработчикам возможность наделять пользовательские сущности несколькими областями столкновения вместо стандартной одной.
Начало работы
Для подключения библиотеки добавьте в файл build.gradle репозиторий Modrinth и укажите соответствующую версию мода:
repositories {
maven { url 'https://api.modrinth.com/maven' }
}
dependencies {
modImplementation "maven.modrinth:mecha-api:VERSION_GOES_HERE"
}
Применение
В классе вашей пользовательской сущности реализуйте интерфейс MultiCollidable
и переопределите метод getColliders
, чтобы добавить дополнительные области столкновения.
Пример реализации
В следующем примере кода к сущности добавляются две области столкновения, каждая размером с плиту:
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;
}
}
Начиная с версии 0.1.2, доступен специальный тип сущности DynamicBoundingBoxEntity
, который автоматически изменяет свои границы в соответствии со списком, возвращаемым методом getColliders()
:
public CustomEntity extends DynamicBoundingBoxEntity {
// Границы этой сущности будут динамически изменяться
// для соответствия областям столкновения, возвращаемым этой функцией
@Override
public List<VoxelShape> getColliders() { ... }
}