Advertisement
Guest User

Untitled

a guest
Dec 11th, 2016
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.29 KB | None | 0 0
  1. RayTraceResult res = /*world.isRemote? Minecraft.getMinecraft().objectMouseOver :*/RayTracer.retrace(player,16);
  2. BlockPos to = res.getBlockPos();
  3. if(player.getDistanceSqToCenter(to)>16*16)return;
  4. if(world.isRemote){
  5. //FIXME to is the player position (client side) if using world.raytrace
  6. world.spawnParticle(EnumParticleTypes.SPELL, true, to.getX()+0.5, to.getY(), to.getZ()+0.5, 0d, 0d, 0d, 0);
  7. }else{
  8. ((WorldServer)world).spawnParticle(EnumParticleTypes.SPELL_MOB, to.getX()+0.5, to.getY(), to.getZ()+0.5, 10, 0d, 0d, 0d, 0);
  9.                     }
  10. public static RayTraceResult retrace(EntityPlayer player, double reach) {
  11.         Vec3d headVec = getCorrectedHeadVec(player);
  12.         Vec3d lookVec = player.getLook(1);
  13.         Vec3d endVec = headVec.addVector(lookVec.xCoord * reach, lookVec.yCoord * reach, lookVec.zCoord * reach);
  14.         return player.worldObj.rayTraceBlocks(headVec, endVec, true, false, true);
  15.     }
  16.  
  17. public static Vec3d getCorrectedHeadVec(EntityPlayer player) {
  18.         double y = player.posY;
  19.         if (player.worldObj.isRemote) {
  20.             //compatibility with eye height changing mods
  21.             y += player.getEyeHeight() - player.getDefaultEyeHeight();
  22.         } else {
  23.             y += player.getEyeHeight();
  24.             if (player instanceof EntityPlayerMP && player.isSneaking())
  25.                 y -= 0.08;
  26.         }
  27.         return new Vec3d(player.posX,y,player.posZ);
  28. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement