Files
CodeChickenCore/codechicken/lib/raytracer/ExtendedMOP.java
T

58 lines
1.4 KiB
Java
Raw Normal View History

2013-07-16 17:58:02 +10:00
package codechicken.lib.raytracer;
import net.minecraft.entity.Entity;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.Vec3;
2013-09-04 13:05:24 +10:00
public class ExtendedMOP extends MovingObjectPosition implements Comparable<ExtendedMOP>
2013-07-16 17:58:02 +10:00
{
public Object data;
2013-09-04 13:05:24 +10:00
public double dist;
2013-07-16 17:58:02 +10:00
public ExtendedMOP(Entity entity, Object data)
{
super(entity);
setData(data);
}
public ExtendedMOP(int x, int y, int z, int side, Vec3 hit, Object data)
{
super(x, y, z, side, hit);
setData(data);
}
2013-09-04 13:05:24 +10:00
public ExtendedMOP(MovingObjectPosition mop, Object data, double dist)
2013-07-16 17:58:02 +10:00
{
super(0, 0, 0, 0, mop.hitVec);
typeOfHit = mop.typeOfHit;
blockX = mop.blockX;
blockY = mop.blockY;
blockZ = mop.blockZ;
sideHit = mop.sideHit;
subHit = mop.subHit;
setData(data);
2013-09-04 13:05:24 +10:00
this.dist = dist;
2013-07-16 17:58:02 +10:00
}
public void setData(Object data)
{
if(data instanceof Integer)
subHit = ((Integer) data).intValue();
this.data = data;
}
@SuppressWarnings("unchecked")
public static <T> T getData(MovingObjectPosition mop)
{
if(mop instanceof ExtendedMOP)
return (T)((ExtendedMOP)mop).data;
return (T)Integer.valueOf(mop.subHit);
}
2013-09-04 13:05:24 +10:00
@Override
public int compareTo(ExtendedMOP o)
{
return dist == o.dist ? 0 : dist < o.dist ? -1 : 1;
}
2013-07-16 17:58:02 +10:00
}