package sourcecoded.quantum.util;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.Vec3;
public class RayTracing {
/**
* Ray trace a block with the given Entity's look Vector
* and reach distance.
*/
public static MovingObjectPosition rayTrace(EntityLivingBase tracer, double reach, float par1) {
Vec3 positionVector = tracer.getPosition(par1);
if (tracer.getEyeHeight() != 0.12F)
positionVector.yCoord += tracer.getEyeHeight();
Vec3 lookVector = tracer.getLook(par1);
Vec3 traceVector = positionVector.addVector(lookVector.xCoord * reach, lookVector.yCoord * reach, lookVector.zCoord * reach);
return tracer.worldObj.rayTraceBlocks(positionVector, traceVector, true);
}
public static MovingObjectPosition rayTrace(EntityLivingBase player) {
return rayTrace(player, getPlayerReach(player), 0);
}
public static double getPlayerReach(EntityLivingBase player) {
return ((EntityPlayerMP) player).theItemInWorldManager.getBlockReachDistance();
}
}