From c67c73164730872f1eaacf48fcf591e1a2037fbd Mon Sep 17 00:00:00 2001 From: Chicken Bones Date: Wed, 4 Sep 2013 13:05:24 +1000 Subject: [PATCH] Extend MOP for RayTracer depth sorting. --- codechicken/lib/raytracer/ExtendedMOP.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/codechicken/lib/raytracer/ExtendedMOP.java b/codechicken/lib/raytracer/ExtendedMOP.java index 5d81e43..029e19e 100644 --- a/codechicken/lib/raytracer/ExtendedMOP.java +++ b/codechicken/lib/raytracer/ExtendedMOP.java @@ -4,9 +4,10 @@ import net.minecraft.entity.Entity; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; -public class ExtendedMOP extends MovingObjectPosition +public class ExtendedMOP extends MovingObjectPosition implements Comparable { public Object data; + public double dist; public ExtendedMOP(Entity entity, Object data) { @@ -20,7 +21,7 @@ public class ExtendedMOP extends MovingObjectPosition setData(data); } - public ExtendedMOP(MovingObjectPosition mop, Object data) + public ExtendedMOP(MovingObjectPosition mop, Object data, double dist) { super(0, 0, 0, 0, mop.hitVec); typeOfHit = mop.typeOfHit; @@ -30,6 +31,7 @@ public class ExtendedMOP extends MovingObjectPosition sideHit = mop.sideHit; subHit = mop.subHit; setData(data); + this.dist = dist; } public void setData(Object data) @@ -47,4 +49,10 @@ public class ExtendedMOP extends MovingObjectPosition return (T)Integer.valueOf(mop.subHit); } + + @Override + public int compareTo(ExtendedMOP o) + { + return dist == o.dist ? 0 : dist < o.dist ? -1 : 1; + } }