95 lines
2.0 KiB
Java
95 lines
2.0 KiB
Java
package com.yaohun.farmingwar.game;
|
|
|
|
import com.sk89q.worldedit.math.BlockVector3;
|
|
import org.bukkit.Location;
|
|
import org.bukkit.World;
|
|
import org.bukkit.configuration.ConfigurationSection;
|
|
|
|
import java.util.Objects;
|
|
|
|
public class Point {
|
|
|
|
private double x;
|
|
private double y;
|
|
private double z;
|
|
|
|
public Point(int x, int y, int z) {
|
|
this.x = x;
|
|
this.y = y;
|
|
this.z = z;
|
|
}
|
|
|
|
public Point(double x, double y, double z) {
|
|
this.x = x;
|
|
this.y = y;
|
|
this.z = z;
|
|
}
|
|
|
|
public double getX() {
|
|
return x;
|
|
}
|
|
|
|
public double getY() {
|
|
return y;
|
|
}
|
|
|
|
public double getZ() {
|
|
return z;
|
|
}
|
|
|
|
public void setX(double x) {
|
|
this.x = x;
|
|
}
|
|
|
|
public void setY(double y) {
|
|
this.y = y;
|
|
}
|
|
|
|
public void setZ(double z) {
|
|
this.z = z;
|
|
}
|
|
|
|
public Point clone() {
|
|
return new Point(x, y, z);
|
|
}
|
|
|
|
public Location toLocation(World world) {
|
|
return new Location(world, x, y, z, 0, 0);
|
|
}
|
|
|
|
public static Point of(Location location) {
|
|
return new Point(location.getX(), location.getY(), location.getZ());
|
|
}
|
|
|
|
public static Point deserialize(ConfigurationSection section) {
|
|
return new Point(section.getDouble("x"), section.getDouble("y"), section.getDouble("z"));
|
|
}
|
|
|
|
public BlockVector3 toBlockVector3() {
|
|
return BlockVector3.at(x, y, z);
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
return "Point{" +
|
|
"x=" + x +
|
|
", y=" + y +
|
|
", z=" + z +
|
|
'}';
|
|
}
|
|
|
|
@Override
|
|
public boolean equals(Object o) {
|
|
if (this == o) return true;
|
|
if (o == null || getClass() != o.getClass()) return false;
|
|
Point point = (Point) o;
|
|
return Double.compare(point.x, x) == 0 && Double.compare(point.y, y) == 0 && Double.compare(point.z, z) == 0;
|
|
}
|
|
|
|
@Override
|
|
public int hashCode() {
|
|
return Objects.hash(x, y, z);
|
|
}
|
|
|
|
}
|