package tc.oc.pgm.utils;
import org.bukkit.Location;
import org.bukkit.util.Vector;
import tc.oc.commons.bukkit.util.Vectors;
public abstract class Locations {
public static Location cloneWith(Location original, Vector position) {
return new Location(original.getWorld(),
position.getX(),
position.getY(),
position.getZ(),
original.getYaw(),
original.getPitch());
}
public static Location cloneWith(Location original, float yaw, float pitch) {
return new Location(original.getWorld(),
original.getX(),
original.getY(),
original.getZ(),
yaw,
pitch);
}
public static Location cloneWith(Location original, Vector position, float yaw, float pitch) {
return new Location(original.getWorld(),
position.getX(),
position.getY(),
position.getZ(),
yaw,
pitch);
}
public static double horizontalDistance(Location a, Location b) {
if(a.getWorld() != b.getWorld()) throw new IllegalArgumentException("Locations are in different worlds");
double dx = b.getX() - a.getX();
double dz = b.getZ() - a.getZ();
return Math.sqrt(dx * dx + dz * dz);
}
public static String formatPosition(Location loc) {
return Vectors.format(loc.toVector());
}
}