Code/net/minecraft/world/level/block/piston/PistonMath.java

27 lines
1.4 KiB
Java
Raw Permalink Normal View History

2025-07-01 06:20:03 +00:00
package net.minecraft.world.level.block.piston;
import net.minecraft.core.Direction;
import net.minecraft.world.phys.AABB;
public class PistonMath {
public static AABB getMovementArea(AABB p_60329_, Direction p_60330_, double p_60331_) {
double d0 = p_60331_ * p_60330_.getAxisDirection().getStep();
double d1 = Math.min(d0, 0.0);
double d2 = Math.max(d0, 0.0);
switch (p_60330_) {
case WEST:
return new AABB(p_60329_.minX + d1, p_60329_.minY, p_60329_.minZ, p_60329_.minX + d2, p_60329_.maxY, p_60329_.maxZ);
case EAST:
return new AABB(p_60329_.maxX + d1, p_60329_.minY, p_60329_.minZ, p_60329_.maxX + d2, p_60329_.maxY, p_60329_.maxZ);
case DOWN:
return new AABB(p_60329_.minX, p_60329_.minY + d1, p_60329_.minZ, p_60329_.maxX, p_60329_.minY + d2, p_60329_.maxZ);
case UP:
default:
return new AABB(p_60329_.minX, p_60329_.maxY + d1, p_60329_.minZ, p_60329_.maxX, p_60329_.maxY + d2, p_60329_.maxZ);
case NORTH:
return new AABB(p_60329_.minX, p_60329_.minY, p_60329_.minZ + d1, p_60329_.maxX, p_60329_.maxY, p_60329_.minZ + d2);
case SOUTH:
return new AABB(p_60329_.minX, p_60329_.minY, p_60329_.maxZ + d1, p_60329_.maxX, p_60329_.maxY, p_60329_.maxZ + d2);
}
}
}