PlotSquared/src/main/java/com/intellectualcrafters/plot/object/BlockLoc.java

74 lines
1.8 KiB
Java
Raw Normal View History

2014-12-28 13:02:30 +01:00
package com.intellectualcrafters.plot.object;
public class BlockLoc {
public int x;
public int y;
public int z;
2015-02-23 02:32:27 +01:00
2015-05-24 03:15:30 +02:00
public float yaw, pitch;
public BlockLoc(final int x, final int y, final int z, final float yaw, final float pitch) {
2014-12-28 13:02:30 +01:00
this.x = x;
this.y = y;
this.z = z;
2015-05-24 03:15:30 +02:00
this.yaw = yaw;
this.pitch = pitch;
}
public BlockLoc(final int x, final int y, final int z) {
this(x, y, z, 0f, 0f);
2014-12-28 13:02:30 +01:00
}
2015-02-23 02:32:27 +01:00
2014-12-28 13:02:30 +01:00
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = (prime * result) + this.x;
result = (prime * result) + this.y;
result = (prime * result) + this.z;
return result;
}
2015-02-23 02:32:27 +01:00
2014-12-28 13:02:30 +01:00
@Override
2015-02-20 07:34:19 +01:00
public boolean equals(final Object obj) {
2014-12-28 13:02:30 +01:00
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
2015-02-20 07:34:19 +01:00
final BlockLoc other = (BlockLoc) obj;
2014-12-28 13:02:30 +01:00
return ((this.x == other.x) && (this.y == other.y) && (this.z == other.z));
}
2015-05-24 03:15:30 +02:00
@Override
public String toString() {
return
x + "," + y + "," + z + "," + yaw + "," + pitch;
}
public static BlockLoc fromString(final String string) {
String[] parts = string.split(",");
float yaw, pitch;
if (parts.length == 3) {
yaw = 0f;
pitch = 0f;
} if (parts.length == 5) {
yaw = Float.parseFloat(parts[3]);
pitch = Float.parseFloat(parts[4]);
} else {
return new BlockLoc(0, 0, 0);
}
int x = Integer.parseInt(parts[0]);
int y = Integer.parseInt(parts[1]);
int z = Integer.parseInt(parts[2]);
return new BlockLoc(x, y, z, yaw, pitch);
}
2014-12-28 13:02:30 +01:00
}