33 lines
1.4 KiB
Java
33 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(final AABB cvc, final Direction fp, final double double3) {
|
|
final double double4 = double3 * fp.getAxisDirection().getStep();
|
|
final double double5 = Math.min(double4, 0.0);
|
|
final double double6 = Math.max(double4, 0.0);
|
|
switch (fp) {
|
|
case WEST: {
|
|
return new AABB(cvc.minX + double5, cvc.minY, cvc.minZ, cvc.minX + double6, cvc.maxY, cvc.maxZ);
|
|
}
|
|
case EAST: {
|
|
return new AABB(cvc.maxX + double5, cvc.minY, cvc.minZ, cvc.maxX + double6, cvc.maxY, cvc.maxZ);
|
|
}
|
|
case DOWN: {
|
|
return new AABB(cvc.minX, cvc.minY + double5, cvc.minZ, cvc.maxX, cvc.minY + double6, cvc.maxZ);
|
|
}
|
|
default: {
|
|
return new AABB(cvc.minX, cvc.maxY + double5, cvc.minZ, cvc.maxX, cvc.maxY + double6, cvc.maxZ);
|
|
}
|
|
case NORTH: {
|
|
return new AABB(cvc.minX, cvc.minY, cvc.minZ + double5, cvc.maxX, cvc.maxY, cvc.minZ + double6);
|
|
}
|
|
case SOUTH: {
|
|
return new AABB(cvc.minX, cvc.minY, cvc.maxZ + double5, cvc.maxX, cvc.maxY, cvc.maxZ + double6);
|
|
}
|
|
}
|
|
}
|
|
}
|