ItemNBTHelper.setInt(stack, TAG_TARGET, -1); ItemNBTHelper.setDouble(stack, TAG_DIST, -1); Vector3 moveVector = new Vector3(player.getLookVec().normalize()); if(item instanceof EntityItem) { ((EntityItem) item).setPickupDelay(20);
@Override public Vec3d getPacketDirection() { return new Vec3d(motionX, motionY, motionZ).normalize(); }
public boolean teleportToEntity(Entity p_70816_1_) { Vec3d vec3 = new Vec3d(posX - p_70816_1_.posX, getEntityBoundingBox().minY + height / 2.0F - p_70816_1_.posY + p_70816_1_.getEyeHeight(), posZ - p_70816_1_.posZ); vec3 = vec3.normalize(); double d0 = 16.0D; double d1 = posX + (rand.nextDouble() - 0.5D) * 8.0D - vec3.x * d0; double d2 = posY + (rand.nextInt(16) - 8) - vec3.y * d0; double d3 = posZ + (rand.nextDouble() - 0.5D) * 8.0D - vec3.z * d0; return teleportTo(d1, d2, d3); }
public static void rotateTowards(Vec3d from, Vec3d to, Vec3d up) { double dot = from.dotProduct(to); if (Math.abs(dot - (-1.0)) < Double.MIN_VALUE) { GlStateManager.rotate(180, (float) up.x, (float) up.y, (float) up.z); } if (Math.abs(dot - (1.0)) < Double.MIN_VALUE) { return; } double rotAngle = Math.acos(dot); Vec3d rotAxis = from.crossProduct(to).normalize(); GlStateManager.rotate((float) (rotAngle * (180d / Math.PI)), (float) rotAxis.x, (float) rotAxis.y, (float) rotAxis.z); }
/** * Teleport the enderman to another entity */ boolean teleportToEntity(Entity entity) { Vec3d vec3d = new Vec3d(posX - entity.posX, getEntityBoundingBox().minY + height / 2.0D - entity.posY + entity.getEyeHeight(), posZ - entity.posZ); vec3d = vec3d.normalize(); double d1 = posX + (rand.nextDouble() - 0.5D) * 8.0D - vec3d.x * 16.0D; double d2 = posY + (rand.nextInt(16) - 8) - vec3d.y * 16.0D; double d3 = posZ + (rand.nextDouble() - 0.5D) * 8.0D - vec3d.z * 16.0D; return teleportTo(d1, d2, d3); }
/** * Teleport the enderman to another entity */ boolean teleportToEntity(Entity entity) { Vec3d vec3d = new Vec3d(posX - entity.posX, getEntityBoundingBox().minY + height / 2.0D - entity.posY + entity.getEyeHeight(), posZ - entity.posZ); vec3d = vec3d.normalize(); double d1 = posX + (rand.nextDouble() - 0.5D) * 8.0D - vec3d.x * 16.0D; double d2 = posY + (rand.nextInt(16) - 8) - vec3d.y * 16.0D; double d3 = posZ + (rand.nextDouble() - 0.5D) * 8.0D - vec3d.z * 16.0D; return teleportTo(d1, d2, d3); }
@Override public InfraredPacket sendPacket(final World world, final Vec3d position, final Vec3d direction, final short value) { final EntityInfraredPacket entity = new EntityInfraredPacket(world); entity.configure(position, direction.normalize(), value); world.spawnEntity(entity); return entity; } }
public Ray(Vec3d start, Vec3d end) { this.start = start; this.dir = end.subtract(start); length = this.dir.lengthVector(); this.dir = this.dir.normalize(); this.invDir = new Vec3d(1.0 / this.dir.x, 1.0 / this.dir.y, 1.0 / this.dir.z); }
public static boolean isEntityLookingAt(EntityLivingBase looker, EntityLivingBase seen, double degree) { Vec3d vec3d = looker.getLook(1.0F).normalize(); Vec3d vec3d1 = new Vec3d(seen.posX - looker.posX, seen.getEntityBoundingBox().minY + (double) seen.getEyeHeight() - (looker.posY + (double) looker.getEyeHeight()), seen.posZ - looker.posZ); double d0 = vec3d1.length(); vec3d1 = vec3d1.normalize(); double d1 = vec3d.dotProduct(vec3d1); return d1 > 1.0D - degree / d0; }
public void createObstructionsInAir() { if (currentInversion > 1000) { Vec3d vec = new Vec3d(getWorld().rand.nextDouble() * 2 - 1, getWorld().rand.nextDouble() * 2 - 1, getWorld().rand.nextDouble() * 2 - 1).normalize().scale(2 * currentInfectionRadius); BlockPos centralPos = pos.add(vec.x, vec.y, vec.z); getWorld().setBlockState(centralPos, RegistrarBloodMagicBlocks.DEMON_EXTRAS.getStateFromMeta(0)); currentInversion -= 1000; } }
@SideOnly(Side.CLIENT) private void dash(EntityPlayerSP playerSP) { Vec3d look = playerSP.getLookVec().addVector(0, 0.75, 0).normalize(); playerSP.addVelocity(look.x, look.y, look.z); for (int i = 0; i < 30; i++) { playerSP.world.spawnParticle(EnumParticleTypes.CLOUD, playerSP.posX + playerSP.getRNG().nextGaussian() * 0.5, playerSP.posY + playerSP.getRNG().nextFloat() * playerSP.getEyeHeight(), playerSP.posZ + playerSP.getRNG().nextGaussian() * 0.5, -look.x, -look.z, -look.z); } }
final Vec3d Vec3d1 = dir.getB(); final Vec3d direction = Vec3d1.subtract( Vec3d ); direction.normalize();
public static boolean isEntityLookingAt(EntityLivingBase looker, EntityLivingBase seen, double degree) { degree *= 1 + (looker.getDistance(seen) * 0.1); Vec3d vec3d = looker.getLook(1.0F).normalize(); Vec3d vec3d1 = new Vec3d(seen.posX - looker.posX, seen.getEntityBoundingBox().minY + (double) seen.getEyeHeight() - (looker.posY + (double) looker.getEyeHeight()), seen.posZ - looker.posZ); double d0 = vec3d1.length(); vec3d1 = vec3d1.normalize(); double d1 = vec3d.dotProduct(vec3d1); return d1 > 1.0D - degree / d0 ? looker.canEntityBeSeen(seen) && !isStoneMob(seen) : false; }
private void shootTwins(World world, EntityPlayer player, float velocityFactor, float damage) { Vec3d vecCrossRight = player.getLookVec().normalize().crossProduct(new Vec3d(0, 2, 0)); Vec3d vecCrossLeft = player.getLookVec().normalize().crossProduct(new Vec3d(0, -2, 0)); EntityThrowable projRight = createBullet(world, player, damage); projRight.posX += vecCrossRight.x; projRight.posZ += vecCrossRight.z; this.launchProjectile(world, player, projRight, velocityFactor); EntityThrowable projLeft = createBullet(world, player, damage); projLeft.posX += vecCrossLeft.x; projLeft.posZ += vecCrossLeft.z; this.launchProjectile(world, player, projLeft, velocityFactor); }
@Override @SideOnly(Side.CLIENT) public void renderSpell(ModuleInstanceEffect instance, @Nonnull SpellData spell, @Nonnull SpellRing spellRing) { Vec3d position = spell.getTarget(); Entity entityHit = spell.getVictim(); if (position == null) return; if (entityHit == null) return; if (!entityHit.hasNoGravity()) { Vec3d normal = new Vec3d(entityHit.motionX, entityHit.motionY, entityHit.motionZ).normalize().scale(1 / 2.0); LibParticles.AIR_THROTTLE(spell.world, position, normal, instance.getPrimaryColor(), instance.getSecondaryColor(), 0.5); } }
private void shootTwins(World world, EntityPlayer player, float velocityFactor, float damage) { Vec3d vecCrossRight = player.getLookVec().normalize().crossProduct(new Vec3d(0, 2, 0)); Vec3d vecCrossLeft = player.getLookVec().normalize().crossProduct(new Vec3d(0, -2, 0)); EntityThrowable projRight = createBullet(world, player, damage); projRight.posX += vecCrossRight.x; projRight.posZ += vecCrossRight.z; this.launchProjectile(world, player, projRight, velocityFactor * VELOCITY_MAX); EntityThrowable projLeft = createBullet(world, player, damage); projLeft.posX += vecCrossLeft.x; projLeft.posZ += vecCrossLeft.z; this.launchProjectile(world, player, projLeft, velocityFactor * VELOCITY_MAX); }
@Override public void onAndroidUpdate(AndroidPlayer android, int level) { if (this.equals(android.getActiveStat()) && !android.getPlayer().onGround && android.getPlayer().motionY < 0 && android.getPlayer().isSneaking()) { Vec3d motion = new Vec3d(android.getPlayer().motionX, android.getPlayer().motionY, android.getPlayer().motionZ).subtract(new Vec3d(0, 1, 0)).normalize(); android.getPlayer().addVelocity(motion.x * 0.2, motion.y * 0.2, motion.z * 0.2); } }
private BakedQuad createQuad(Vec3d v1, Vec3d v2, Vec3d v3, Vec3d v4, TextureAtlasSprite sprite) { Vec3d normal = v3.subtract(v2).crossProduct(v1.subtract(v2)).normalize(); UnpackedBakedQuad.Builder builder = new UnpackedBakedQuad.Builder(format); builder.setTexture(sprite); putVertex(builder, normal, v1.x, v1.y, v1.z, 0, 0); putVertex(builder, normal, v2.x, v2.y, v2.z, 0, 16); putVertex(builder, normal, v3.x, v3.y, v3.z, 16, 16); putVertex(builder, normal, v4.x, v4.y, v4.z, 16, 0); return builder.build(); }
private BakedQuad createQuad(Vec3d v1, Vec3d v2, Vec3d v3, Vec3d v4, TextureAtlasSprite sprite, float hilight) { Vec3d normal = v3.subtract(v2).crossProduct(v1.subtract(v2)).normalize(); UnpackedBakedQuad.Builder builder = new UnpackedBakedQuad.Builder(format); builder.setTexture(sprite); putVertex(builder, normal, v1.x, v1.y, v1.z, 0, 0, sprite, hilight); putVertex(builder, normal, v2.x, v2.y, v2.z, 0, 16, sprite, hilight); putVertex(builder, normal, v3.x, v3.y, v3.z, 16, 16, sprite, hilight); putVertex(builder, normal, v4.x, v4.y, v4.z, 16, 0, sprite, hilight); return builder.build(); }
protected BakedQuad createQuad(Vec3d v1, Vec3d v2, Vec3d v3, Vec3d v4, TextureAtlasSprite sprite, EnumFacing orientation, int rgbaColor) { Vec3d normal = v3.subtract(v2).crossProduct(v1.subtract(v2)).normalize(); if (sprite == null) { sprite = Minecraft.getMinecraft().getTextureMapBlocks().getMissingSprite(); } UnpackedBakedQuad.Builder builder = new UnpackedBakedQuad.Builder(format); builder.setTexture(sprite); putVertex(builder, normal, sprite, v1.x, v1.y, v1.z, 0, 0, rgbaColor); putVertex(builder, normal, sprite, v2.x, v2.y, v2.z, 0, 16, rgbaColor); putVertex(builder, normal, sprite, v3.x, v3.y, v3.z, 16, 16, rgbaColor); putVertex(builder, normal, sprite, v4.x, v4.y, v4.z, 16, 0, rgbaColor); builder.setQuadOrientation(orientation); return builder.build(); }