Files
ReplayModCinematic/src/main/java/eu/crushedpixel/replaymod/holders/Position.java
CrushedPixel 3df1bdcfc8 Added PathPreviewRenderer to draw a Preview of the current Camera Path into the World
Added KeyframesModifyEvent to be dispatched whenever the ReplayHandler's Keyframe List is changed
Refactored Event package
Reworked Settings GUI
2015-06-15 14:41:20 +02:00

118 lines
2.6 KiB
Java
Executable File

package eu.crushedpixel.replaymod.holders;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.Entity;
import org.apache.commons.lang3.builder.HashCodeBuilder;
public class Position {
private double x, y, z;
private float pitch, yaw, roll;
public Position(int entityID) {
this(Minecraft.getMinecraft().theWorld.getEntityByID(entityID));
}
public Position(Entity e) {
this.x = e.posX;
this.y = e.posY;
this.z = e.posZ;
this.pitch = e.rotationPitch;
this.yaw = e.rotationYaw;
}
public Position(double x, double y, double z, float pitch, float yaw, float roll) {
this.x = x;
this.y = y;
this.z = z;
this.pitch = pitch;
this.yaw = yaw;
this.roll = roll;
}
public Position(double x, double y, double z, float pitch, float yaw) {
this.x = x;
this.y = y;
this.z = z;
this.pitch = pitch;
this.yaw = yaw;
}
public double getX() {
return x;
}
public void setX(double x) {
this.x = x;
}
public double getY() {
return y;
}
public void setY(double y) {
this.y = y;
}
public double getZ() {
return z;
}
public void setZ(double z) {
this.z = z;
}
public float getPitch() {
return pitch;
}
public void setPitch(float pitch) {
this.pitch = pitch;
}
public float getYaw() {
return yaw;
}
public void setYaw(float yaw) {
this.yaw = yaw;
}
public float getRoll() { return roll; }
public void setRoll(float roll) { this.roll = roll; }
public double distanceTo(double x, double y, double z) {
return distanceTo(new Position(x, y, z, 0, 0));
}
public double distanceTo(Position p2) {
return Math.sqrt(Math.pow((p2.getX() - getX()), 2) + Math.pow((p2.getY() - getY()), 2) + Math.pow((p2.getZ() - getZ()), 2));
}
@Override
public String toString() {
return "X=" + x + ", Y=" + y + ", Z=" + z + ", Yaw=" + yaw + ", Pitch=" + pitch + ", Roll="+roll;
}
@Override
public boolean equals(Object o2) {
if(o2 == null) return false;
if(!(o2 instanceof Position)) return false;
Position pos2 = (Position)o2;
return hashCode() == pos2.hashCode();
}
@Override
public int hashCode() {
return new HashCodeBuilder(17, 37)
.append(x)
.append(y)
.append(z)
.append(pitch)
.append(yaw)
.append(roll)
.toHashCode();
}
}