public static float getEyeOffset( final EntityPlayer player ) { assert player.world.isRemote : "Valid only on client"; return (float) ( player.posY + player.getEyeHeight() - player.getDefaultEyeHeight() ); }
/** * Gets the view point of a player * * @param player player with head * * @return view point of player */ private Vec3d getCorrectedHeadVec( final EntityPlayer player ) { double x = player.posX; double y = player.posY; double z = player.posZ; if( player.world.isRemote ) { // compatibility with eye height changing mods y += player.getEyeHeight() - player.getDefaultEyeHeight(); } else { y += player.getEyeHeight(); if( player instanceof EntityPlayerMP && player.isSneaking() ) { y -= 0.08; } } return new Vec3d( x, y, z ); }
protected RayTraceResult raytraceFromEntity(World worldIn, EntityPlayer playerIn, boolean useLiquids) { float f = playerIn.rotationPitch; float f1 = playerIn.rotationYaw; double d0 = playerIn.posX; double d1 = playerIn.posY + (double) playerIn.getEyeHeight(); double d2 = playerIn.posZ; Vec3d vec3d = new Vec3d(d0, d1, d2); float f2 = MathHelper.cos(-f1 * 0.017453292F - (float) Math.PI); float f3 = MathHelper.sin(-f1 * 0.017453292F - (float) Math.PI); float f4 = -MathHelper.cos(-f * 0.017453292F); float f5 = MathHelper.sin(-f * 0.017453292F); float f6 = f3 * f4; float f7 = f2 * f4; double d3 = 5.0D; if(playerIn instanceof net.minecraft.entity.player.EntityPlayerMP) { d3 = ((net.minecraft.entity.player.EntityPlayerMP) playerIn).interactionManager.getBlockReachDistance(); } Vec3d vec3d1 = vec3d.add((double) f6 * d3, (double) f5 * d3, (double) f7 * d3); return worldIn.rayTraceBlocks(vec3d, vec3d1, useLiquids, !useLiquids, false); }
public static LookDirection getPlayerRay( final EntityPlayer playerIn, final float eyeOffset ) { double reachDistance = 5.0d; final double x = playerIn.prevPosX + ( playerIn.posX - playerIn.prevPosX ); final double y = playerIn.prevPosY + ( playerIn.posY - playerIn.prevPosY ) + playerIn.getEyeHeight(); final double z = playerIn.prevPosZ + ( playerIn.posZ - playerIn.prevPosZ ); final float playerPitch = playerIn.prevRotationPitch + ( playerIn.rotationPitch - playerIn.prevRotationPitch ); final float playerYaw = playerIn.prevRotationYaw + ( playerIn.rotationYaw - playerIn.prevRotationYaw ); final float yawRayX = MathHelper.sin( -playerYaw * 0.017453292f - (float) Math.PI ); final float yawRayZ = MathHelper.cos( -playerYaw * 0.017453292f - (float) Math.PI ); final float pitchMultiplier = -MathHelper.cos( -playerPitch * 0.017453292F ); final float eyeRayY = MathHelper.sin( -playerPitch * 0.017453292F ); final float eyeRayX = yawRayX * pitchMultiplier; final float eyeRayZ = yawRayZ * pitchMultiplier; if( playerIn instanceof EntityPlayerMP ) { reachDistance = ( (EntityPlayerMP) playerIn ).interactionManager.getBlockReachDistance(); } final Vec3d from = new Vec3d( x, y, z ); final Vec3d to = from.addVector( eyeRayX * reachDistance, eyeRayY * reachDistance, eyeRayZ * reachDistance ); return new LookDirection( from, to ); }
public EntityManaBurst(EntityPlayer player, EnumHand hand) { this(player.world); setBurstSourceCoords(new BlockPos(0, -1, 0)); setLocationAndAngles(player.posX, player.posY + player.getEyeHeight(), player.posZ, player.rotationYaw + 180, -player.rotationPitch); posX -= (hand == EnumHand.OFF_HAND ? -1 : 1) * MathHelper.cos((rotationYaw + 180) / 180.0F * (float) Math.PI) * 0.16F; posY -= 0.10000000149011612D; posZ -= (hand == EnumHand.OFF_HAND ? -1 : 1) * MathHelper.sin((rotationYaw + 180) / 180.0F * (float) Math.PI) * 0.16F; setPosition(posX, posY, posZ); float f = 0.4F; double mx = MathHelper.sin(rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(rotationPitch / 180.0F * (float) Math.PI) * f / 2D; double mz = -(MathHelper.cos(rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(rotationPitch / 180.0F * (float) Math.PI) * f) / 2D; double my = MathHelper.sin(rotationPitch / 180.0F * (float) Math.PI) * f / 2D; setMotion(mx, my, mz); }
public static @Nonnull Vector3d getEyePositionEio(@Nonnull EntityPlayer player) { Vector3d res = new Vector3d(player.posX, player.posY, player.posZ); res.y += player.getEyeHeight(); return res; }
public static @Nonnull Vec3d getEyePosition(@Nonnull EntityPlayer player) { double y = player.posY; y += player.getEyeHeight(); return new Vec3d(player.posX, y, player.posZ); }
public static Vec3d getPositionEyes(EntityPlayer player, float partialTicks) { if (partialTicks == 1.0F) { return new Vec3d(player.posX, player.posY + (double) player.getEyeHeight(), player.posZ); } else { double d0 = player.prevPosX + (player.posX - player.prevPosX) * (double) partialTicks; double d1 = player.prevPosY + (player.posY - player.prevPosY) * (double) partialTicks + (double) player.getEyeHeight(); double d2 = player.prevPosZ + (player.posZ - player.prevPosZ) * (double) partialTicks; return new Vec3d(d0, d1, d2); } }
public static Vec3d getStart(EntityPlayer player) { return new Vec3d(player.posX, player.posY + player.getEyeHeight(), player.posZ); }
public static RayTraceResult getLookingAt(EntityPlayer player) { World world = player.world; Vec3d look = player.getLookVec(); Vec3d start = new Vec3d(player.posX, player.posY + player.getEyeHeight(), player.posZ); Vec3d end = new Vec3d(player.posX + look.x * rayTraceRange, player.posY + player.getEyeHeight() + look.y * rayTraceRange, player.posZ + look.z * rayTraceRange); return world.rayTraceBlocks(start, end, false, false, false); }
/** * Returns a vec representing where the player is looking, capped at maxDistance away. */ public static Pair<Vec3d, Vec3d> getLookVec(EntityPlayer player, double maxDistance) { // Thank you ForgeEssentials Vec3d look = player.getLook(1.0F); Vec3d playerPos = new Vec3d(player.posX, player.posY + (player.getEyeHeight() - player.getDefaultEyeHeight()), player.posZ); Vec3d src = playerPos.add(0, player.getEyeHeight(), 0); Vec3d dest = src.add(look.x * maxDistance, look.y * maxDistance, look.z * maxDistance); return ImmutablePair.of(src, dest); }
public static RayTraceResult getPlayerTarget(EntityPlayer player, float range, float border) { HashSet<Entity> excluded = new HashSet<>(); excluded.add(player); if (player.getRidingEntity() != null) { excluded.add(player.getRidingEntity()); } float yOffset = player.getEyeHeight(); Vec3d look = player.getLookVec(); look = look.scale(range); look = look.addVector(player.posX, player.posY + yOffset, player.posZ); return tracePath(player.world, player.posX, player.posY + yOffset, player.posZ, look.x, look.y, look.z, border, excluded); }
public static RayTraceResult rayTraceBothSides(EntityPlayer player, double blockReachDistance, float partialTicks) { Vec3d vec3d = new Vec3d(player.posX, player.posY + player.getEyeHeight(), player.posZ); Vec3d vec3d1 = player.getLook(partialTicks); Vec3d vec3d2 = vec3d.addVector(vec3d1.x * blockReachDistance, vec3d1.y * blockReachDistance, vec3d1.z * blockReachDistance); return player.world.rayTraceBlocks(vec3d, vec3d2, false, false, true); }
final LookDirection dir = Platform.getPlayerRay( p, p.getEyeHeight() );
@SuppressWarnings("unchecked") public void renderOthers(RenderHandler renderHandler, float ticks) { Minecraft.getMinecraft().world.getLoadedEntityList().stream() .filter(o -> o instanceof EntityPlayer) .filter(player -> !player.equals(Minecraft.getMinecraft().player)) .forEach(o -> { EntityPlayer player = (EntityPlayer) o; if (shouldRenderBeam(player)) { renderRaycastedBeam(player.getPositionEyes(ticks).addVector(0, player.getEyeHeight(), 0), player.getLook(0), new Vec3d(-0.5, -0.3, 1), player); } else { stopWeaponSound(player); } }); }
@Override public void giveReward(QuestStack questStack, EntityPlayer entityPlayer) { if (!entityPlayer.inventory.addItemStackToInventory(itemStack.copy())) { entityPlayer.world.spawnEntity(new EntityItem(entityPlayer.world, entityPlayer.posX, entityPlayer.posY + entityPlayer.getEyeHeight(), entityPlayer.posZ, itemStack.copy())); } }
public InternalRayTraceResult doRayTrace(World world, BlockPos pos, EntityPlayer player) { double reachDistance = 5; if (player instanceof EntityPlayerMP) { reachDistance = player.getEntityAttribute(EntityPlayer.REACH_DISTANCE).getAttributeValue(); } double eyeHeight = player.getEyeHeight(); Vec3d lookVec = player.getLookVec(); Vec3d start = new Vec3d(player.posX, player.posY + eyeHeight, player.posZ); Vec3d end = start.addVector(lookVec.x * reachDistance, lookVec.y * reachDistance, lookVec.z * reachDistance); return doRayTrace(world, pos, start, end); }
@Override protected boolean activate(IVampirePlayer player) { EntityPlayer shooter = player.getRepresentingPlayer(); Vec3d vec3d = shooter.getLook(1.0F); EntityDarkBloodProjectile projectile = new EntityDarkBloodProjectile(shooter.getEntityWorld(), shooter.posX + vec3d.x * 1.0f, shooter.posY + shooter.getEyeHeight() * 0.9f, shooter.posZ + vec3d.z * 1.0f, vec3d.x, vec3d.y, vec3d.z); projectile.shootingEntity = shooter; projectile.setDamage((float) Balance.vpa.DARK_BLOOD_PROJECTILE_DAMAGE, (float) Balance.vpa.DARK_BLOOD_PROJECTILE_INDIRECT_DAMAGE); shooter.getEntityWorld().spawnEntity(projectile); return true; } }
private void displayOneView(IHeadUpDisplayRendererProvider renderer, IHUDConfig config, float partialTick, boolean shifted) { Minecraft mc = FMLClientHandler.instance().getClient(); EntityPlayer player = mc.player; double x = renderer.getX() + 0.5 - player.prevPosX - ((player.posX - player.prevPosX) * partialTick); double y = renderer.getY() + 0.5 - player.prevPosY - ((player.posY - player.prevPosY) * partialTick); double z = renderer.getZ() + 0.5 - player.prevPosZ - ((player.posZ - player.prevPosZ) * partialTick); GL11.glTranslatef((float) x, (float) y, (float) z); GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F); GL11.glRotatef(getAngle(z, x) + 90, 0.0F, 0.0F, 1.0F); GL11.glRotatef((-1) * getAngle(Math.hypot(x, z), y - player.getEyeHeight()) + 180, 1.0F, 0.0F, 0.0F); GL11.glTranslatef(0.0F, 0.0F, -0.4F); GL11.glScalef(0.01F, 0.01F, 1F); renderer.getRenderer().renderHeadUpDisplay(Math.hypot(x, Math.hypot(y, z)), false, shifted, mc, config); }
public static RayTraceResult rayTrace(EntityPlayer player, boolean useLiquids) { float pitch = player.rotationPitch; float yaw = player.rotationYaw; Vec3d eyePosition = new Vec3d(player.posX, player.posY + (double) player.getEyeHeight(), player.posZ); float f2 = MathHelper.cos(-yaw * 0.017453292F - (float) Math.PI); float f3 = MathHelper.sin(-yaw * 0.017453292F - (float) Math.PI); float f4 = -MathHelper.cos(-pitch * 0.017453292F); float f5 = MathHelper.sin(-pitch * 0.017453292F); float f6 = f3 * f4; float f7 = f2 * f4; double reachDistance = 5.0D; if (player instanceof EntityPlayerMP) reachDistance = ((EntityPlayerMP) player).interactionManager.getBlockReachDistance(); Vec3d reachPosition = eyePosition.addVector((double) f6 * reachDistance, (double) f5 * reachDistance, (double) f7 * reachDistance); return player.getEntityWorld().rayTraceBlocks(eyePosition, reachPosition, useLiquids, !useLiquids, false); } }