27 lines
1.4 KiB
Java
27 lines
1.4 KiB
Java
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);
|
|
}
|
|
}
|
|
} |