
机甲 - 多实体碰撞检测盒API
用于为单个实体实现多个碰撞体碰撞箱的 Fabric API
查看大图一个简单的 API,用于让自定义实体实现多个碰撞箱。
设置
将 Modrinth Maven 和正确版本的模组添加到你的 build.gradle 文件中:
repositories {
maven { url 'https://api.modrinth.com/maven' }
}
dependencies {
modImplementation "maven.modrinth:mecha-api:VERSION_GOES_HERE"
}
用法
在你的自定义实体类中实现 MultiCollidable,并重写 getColliders 来为实体添加额外的碰撞体。
示例
以下示例代码为一个实体添加了 2 个碰撞体,每个都是台阶大小:
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() { ... }
}
正在加载版本记录…

正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。