Entity Collision Tampering / Air Walking
Влияние на механику Minecraft
Внедряется в методы расчёта коллизий сущностей и подмешивает искусственные твердотельные VoxelShape, позволяя игроку ходить по воздуху или стоять на невидимых фантомных опорах.
Анализируемые функции и API
Entity.findCollisionsForMovement
Точка расчёта коллизий и столкновений сущностей при перемещении.
VoxelShapes.fullCube
Генерирует твердотельный куб 1x1x1 в пустом пространстве.
Реализация в моде (Исходный код)
// Developer Source (Fabric / Yarn mappings)
@Mixin(Entity.class)
public class CollisionMixin {
@Inject(method = "findCollisionsForMovement", at = @At("RETURN"), cancellable = true)
private static void addFakeCollisions(CallbackInfoReturnable<List<VoxelShape>> cir) {
cir.getReturnValue().add(VoxelShapes.fullCube());
}
}
Декомпилированный вид (Vineflower)
// Decompiled with Vineflower 1.12 (Intermediary mappings)
@Mixin({class_1297.class})
public class CollisionMixin {
@Inject(method = {"method_74656"}, at = {@At("RETURN")}, cancellable = true)
private static void addFakeCollisions(CallbackInfoReturnable<List<class_265>> cir) {
cir.getReturnValue().add(class_259.method_1077());
}
}
Сигнатура байткода и статический детект
Обнаруживает Mixin-инъекцию в расчёт коллизий Entity с вызовом VoxelShapes.fullCube (method_1077).