Java 类net.minecraft.util.math.Vec3d 实例源码

项目:Backmemed    文件:EntityLivingBase.java   
/**
 * Renders broken item particles using the given ItemStack
 */
public void renderBrokenItemStack(ItemStack stack)
{
    this.playSound(SoundEvents.ENTITY_ITEM_BREAK, 0.8F, 0.8F + this.world.rand.nextFloat() * 0.4F);

    for (int i = 0; i < 5; ++i)
    {
        Vec3d vec3d = new Vec3d(((double)this.rand.nextFloat() - 0.5D) * 0.1D, Math.random() * 0.1D + 0.1D, 0.0D);
        vec3d = vec3d.rotatePitch(-this.rotationPitch * 0.017453292F);
        vec3d = vec3d.rotateYaw(-this.rotationYaw * 0.017453292F);
        double d0 = (double)(-this.rand.nextFloat()) * 0.6D - 0.3D;
        Vec3d vec3d1 = new Vec3d(((double)this.rand.nextFloat() - 0.5D) * 0.3D, d0, 0.6D);
        vec3d1 = vec3d1.rotatePitch(-this.rotationPitch * 0.017453292F);
        vec3d1 = vec3d1.rotateYaw(-this.rotationYaw * 0.017453292F);
        vec3d1 = vec3d1.addVector(this.posX, this.posY + (double)this.getEyeHeight(), this.posZ);
        this.world.spawnParticle(EnumParticleTypes.ITEM_CRACK, vec3d1.xCoord, vec3d1.yCoord, vec3d1.zCoord, vec3d.xCoord, vec3d.yCoord + 0.05D, vec3d.zCoord, new int[] {Item.getIdFromItem(stack.getItem())});
    }
}
项目:Genesis    文件:WorldGenTreeDryophyllum.java   
private void generateBranch(World world, Random rand, BlockPos trunkPos, Vec3d endPos) {
    Vec3d curr = new Vec3d(trunkPos);
    Vec3d next = next(world, curr, endPos.subtract(curr).normalize(), endPos, trunkPos);
    BlockPos prev;
    do {
        BlockPos currBlock = new BlockPos(curr);
        Vec3d dir = endPos.subtract(curr).normalize();
        prev = currBlock;
        curr = next;
        next = next(world, curr, dir, endPos, trunkPos);

        IBlockState state = (xzEqual(currBlock, trunkPos) ? LOG : LOG.withProperty(BlockLog.LOG_AXIS, getLogAxis(world, currBlock, dir)));
        setBlockInWorld(world, currBlock, state);

        // check to avoid long straight up branches
        BlockPos nextBlock = new BlockPos(next);
        if (endPos.squareDistanceTo(next) > Math.sqrt(3) && xzEqual(prev, currBlock) && xzEqual(currBlock, nextBlock)) {
            next = next.addVector(rand.nextBoolean() ? -1 : 1, 0, rand.nextBoolean() ? -1 : 1);
        }
    } while (endPos.squareDistanceTo(curr) > Math.sqrt(3));

    generateLeaves(world, rand, curr);
    generateLeaves(world, rand, new Vec3d(prev));
}
项目:ExPetrum    文件:ShieldSlam.java   
@Override
public void onExecutionStart(EntityPlayer player)
{
    if (player.getActiveItemStack().isEmpty())
    {
        return;
    }

    Vec3d look = player.getLookVec().scale(5);
    Vec3d pos = player.getPositionVector();
    List<EntityLivingBase> targets = Helpers.rayTraceEntities(player.world, pos.addVector(0, player.getEyeHeight(), 0), look, Optional.of(e -> e != player), EntityLivingBase.class);
    EntityLivingBase assumedToBeLookedAt = Helpers.getClosest(targets, player);
    if (assumedToBeLookedAt != null)
    {
        if (!player.world.isRemote)
        {
            assumedToBeLookedAt.addPotionEffect(new PotionEffect(ExPPotions.stunned, 40, 0, false, false));
        }

        player.world.playSound(player, player.getPosition(), SoundEvents.ENTITY_PLAYER_ATTACK_KNOCKBACK, SoundCategory.PLAYERS, 1, 0.1F);
        Vec3d targetPos = assumedToBeLookedAt.getPositionVector();
        assumedToBeLookedAt.knockBack(player, 2, pos.x - targetPos.x, pos.z - targetPos.z);
    }

    player.getActiveItemStack().damageItem(3, player);
}
项目:Backmemed    文件:PathNavigateSwimmer.java   
protected void pathFollow()
{
    Vec3d vec3d = this.getEntityPosition();
    float f = this.theEntity.width * this.theEntity.width;
    int i = 6;

    if (vec3d.squareDistanceTo(this.currentPath.getVectorFromIndex(this.theEntity, this.currentPath.getCurrentPathIndex())) < (double)f)
    {
        this.currentPath.incrementPathIndex();
    }

    for (int j = Math.min(this.currentPath.getCurrentPathIndex() + 6, this.currentPath.getCurrentPathLength() - 1); j > this.currentPath.getCurrentPathIndex(); --j)
    {
        Vec3d vec3d1 = this.currentPath.getVectorFromIndex(this.theEntity, j);

        if (vec3d1.squareDistanceTo(vec3d) <= 36.0D && this.isDirectPathBetweenPoints(vec3d, vec3d1, 0, 0, 0))
        {
            this.currentPath.setCurrentPathIndex(j);
            break;
        }
    }

    this.checkForStuck(vec3d);
}
项目:harshencastle    文件:PontusWorldProvider.java   
@Override
    @SideOnly(Side.CLIENT)
    public Vec3d getFogColor(float p_76562_1_, float p_76562_2_)
    {
//      generateLightBrightnessTable();
//        float f = MathHelper.cos(p_76562_1_ * ((float)Math.PI * 2F)) * 2.0F + 0.5F;
//        f = MathHelper.clamp(f, 0.0F, 1.0F);
//        int color = 0;
//        float f1 = ((color >> 16) & 0xFF) * 255;
//        float f2 = ((color >> 8) & 0xFF) * 255;
//        float f3 = ((color >> 0) & 0xFF) * 255;
//        f1 = f1 * (f * 0.0F + 0.15F);
//        f2 = f2 * (f * 0.0F + 0.15F);
//        f3 = f3 * (f * 0.0F + 0.15F);
//        return new Vec3d((double)f1, (double)f2, (double)f3);
        return Vec3d.ZERO;
    }
项目:CustomWorldGen    文件:EntityAIPlay.java   
/**
 * Updates the task
 */
public void updateTask()
{
    --this.playTime;

    if (this.targetVillager != null)
    {
        if (this.villagerObj.getDistanceSqToEntity(this.targetVillager) > 4.0D)
        {
            this.villagerObj.getNavigator().tryMoveToEntityLiving(this.targetVillager, this.speed);
        }
    }
    else if (this.villagerObj.getNavigator().noPath())
    {
        Vec3d vec3d = RandomPositionGenerator.findRandomTarget(this.villagerObj, 16, 3);

        if (vec3d == null)
        {
            return;
        }

        this.villagerObj.getNavigator().tryMoveToXYZ(vec3d.xCoord, vec3d.yCoord, vec3d.zCoord, this.speed);
    }
}
项目:Backmemed    文件:PathNavigateGround.java   
/**
 * Returns true if an entity does not collide with any solid blocks at the position.
 */
private boolean isPositionClear(int p_179692_1_, int p_179692_2_, int p_179692_3_, int p_179692_4_, int p_179692_5_, int p_179692_6_, Vec3d p_179692_7_, double p_179692_8_, double p_179692_10_)
{
    for (BlockPos blockpos : BlockPos.getAllInBox(new BlockPos(p_179692_1_, p_179692_2_, p_179692_3_), new BlockPos(p_179692_1_ + p_179692_4_ - 1, p_179692_2_ + p_179692_5_ - 1, p_179692_3_ + p_179692_6_ - 1)))
    {
        double d0 = (double)blockpos.getX() + 0.5D - p_179692_7_.xCoord;
        double d1 = (double)blockpos.getZ() + 0.5D - p_179692_7_.zCoord;

        if (d0 * p_179692_8_ + d1 * p_179692_10_ >= 0.0D)
        {
            Block block = this.worldObj.getBlockState(blockpos).getBlock();

            if (!block.isPassable(this.worldObj, blockpos))
            {
                return false;
            }
        }
    }

    return true;
}
项目:CustomWorldGen    文件:Entity.java   
/**
 * Marks the entity as being inside a portal, activating teleportation logic in onEntityUpdate() in the following
 * tick(s).
 */
public void setPortal(BlockPos pos)
{
    if (this.timeUntilPortal > 0)
    {
        this.timeUntilPortal = this.getPortalCooldown();
    }
    else
    {
        if (!this.worldObj.isRemote && !pos.equals(this.lastPortalPos))
        {
            this.lastPortalPos = new BlockPos(pos);
            BlockPattern.PatternHelper blockpattern$patternhelper = Blocks.PORTAL.createPatternHelper(this.worldObj, this.lastPortalPos);
            double d0 = blockpattern$patternhelper.getForwards().getAxis() == EnumFacing.Axis.X ? (double)blockpattern$patternhelper.getFrontTopLeft().getZ() : (double)blockpattern$patternhelper.getFrontTopLeft().getX();
            double d1 = blockpattern$patternhelper.getForwards().getAxis() == EnumFacing.Axis.X ? this.posZ : this.posX;
            d1 = Math.abs(MathHelper.pct(d1 - (double)(blockpattern$patternhelper.getForwards().rotateY().getAxisDirection() == EnumFacing.AxisDirection.NEGATIVE ? 1 : 0), d0, d0 - (double)blockpattern$patternhelper.getWidth()));
            double d2 = MathHelper.pct(this.posY - 1.0D, (double)blockpattern$patternhelper.getFrontTopLeft().getY(), (double)(blockpattern$patternhelper.getFrontTopLeft().getY() - blockpattern$patternhelper.getHeight()));
            this.lastPortalVec = new Vec3d(d1, d2, 0.0D);
            this.teleportDirection = blockpattern$patternhelper.getForwards();
        }

        this.inPortal = true;
    }
}
项目:CustomWorldGen    文件:EntityAIRunAroundLikeCrazy.java   
/**
 * Returns whether the EntityAIBase should begin execution.
 */
public boolean shouldExecute()
{
    if (!this.horseHost.isTame() && this.horseHost.isBeingRidden())
    {
        Vec3d vec3d = RandomPositionGenerator.findRandomTarget(this.horseHost, 5, 4);

        if (vec3d == null)
        {
            return false;
        }
        else
        {
            this.targetX = vec3d.xCoord;
            this.targetY = vec3d.yCoord;
            this.targetZ = vec3d.zCoord;
            return true;
        }
    }
    else
    {
        return false;
    }
}
项目:CustomWorldGen    文件:EntityLivingBase.java   
/**
 * Renders broken item particles using the given ItemStack
 */
public void renderBrokenItemStack(ItemStack stack)
{
    this.playSound(SoundEvents.ENTITY_ITEM_BREAK, 0.8F, 0.8F + this.worldObj.rand.nextFloat() * 0.4F);

    for (int i = 0; i < 5; ++i)
    {
        Vec3d vec3d = new Vec3d(((double)this.rand.nextFloat() - 0.5D) * 0.1D, Math.random() * 0.1D + 0.1D, 0.0D);
        vec3d = vec3d.rotatePitch(-this.rotationPitch * 0.017453292F);
        vec3d = vec3d.rotateYaw(-this.rotationYaw * 0.017453292F);
        double d0 = (double)(-this.rand.nextFloat()) * 0.6D - 0.3D;
        Vec3d vec3d1 = new Vec3d(((double)this.rand.nextFloat() - 0.5D) * 0.3D, d0, 0.6D);
        vec3d1 = vec3d1.rotatePitch(-this.rotationPitch * 0.017453292F);
        vec3d1 = vec3d1.rotateYaw(-this.rotationYaw * 0.017453292F);
        vec3d1 = vec3d1.addVector(this.posX, this.posY + (double)this.getEyeHeight(), this.posZ);
        this.worldObj.spawnParticle(EnumParticleTypes.ITEM_CRACK, vec3d1.xCoord, vec3d1.yCoord, vec3d1.zCoord, vec3d.xCoord, vec3d.yCoord + 0.05D, vec3d.zCoord, new int[] {Item.getIdFromItem(stack.getItem())});
    }
}
项目:ObsidianSuite    文件:GuiEntityRenderer.java   
private void renderBase(int xPos, int yPos, float scale, float rotX, float rotY)
{
    GL11.glPushMatrix();

    GL11.glTranslatef(xPos, yPos, 200.0F);
    GL11.glScalef(-scale, scale, scale);

    GL11.glRotatef(-180.0F, 1.0F, 0.0F, 0.0F);
    GL11.glRotatef(-180.0F, 0.0F, 1.0F, 0.0F);

    GL11.glRotatef(-((float)Math.atan((double)(rotY / 40.0F))) * 20.0F + verticalRotation , 1.0F, 0.0F, 0.0F);
    GL11.glRotatef(((float)Math.atan((double)(rotX / 40.0F))) * 20.0F + horizontalRotation, 0.0F, -1.0F, 0.0F);

    GL11.glTranslatef(gridMinX + 0.5F, 0, gridMinZ + 0.5F);
    for(int z = gridMinZ; z < gridMaxZ; z++)
    {
        for(int x = gridMinX; x < gridMaxX; x++)
        {
            GL11.glPushMatrix();
            drawRect(new Vec3d(0.5, 0, -0.5), new Vec3d(-0.5, 0, -0.5), new Vec3d(0.5, 0, 0.5), new Vec3d(-0.5, 0, 0.5), 0xFF0000, 0.5f, 2.0f);
            GL11.glPopMatrix();
            GL11.glTranslatef(1.0F, 0.0F, 0.0F);
        }
        GL11.glTranslatef(gridMinX - gridMaxX, 0.0F, 1.0F);
    }

    GL11.glPopMatrix();
}
项目:harshencastle    文件:TileEntityPedestalSlab.java   
@Override
protected void tick() {
    if(!checkForCompleation(true) && isActive())
        deactivate();
    else if(isActive())
    {
        for(int x = -1; x < 2; x++)
            for(int z = -1; z < 2; z++)
                if(!(x == 0 && z == 0))
                    for(int i = 0; i < 8; i ++)
                    {
                        Vec3d pos = new Vec3d(this.pos.add(x, 0, z)).addVector(randPos(), -0.1, randPos());
                        HarshenCastle.proxy.spawnParticle(EnumHarshenParticle.BLOOD, pos, 
                                new Vec3d((this.pos.getX() + 0.5 - pos.x) / 20D, (this.pos.getY() + 0.5 - pos.y) / 20D, (this.pos.getZ() + 0.5 - pos.z) / 20D), 1f, false);

                    }

    }   
    else if(checkForCompleation(false))
        activateRecipe();           
}
项目:Backmemed    文件:Entity.java   
@Nullable
public RayTraceResult rayTrace(double blockReachDistance, float partialTicks)
{
    Vec3d vec3d = this.getPositionEyes(partialTicks);
    Vec3d vec3d1 = this.getLook(partialTicks);
    Vec3d vec3d2 = vec3d.addVector(vec3d1.xCoord * blockReachDistance, vec3d1.yCoord * blockReachDistance, vec3d1.zCoord * blockReachDistance);
    return this.world.rayTraceBlocks(vec3d, vec3d2, false, false, true);
}
项目:AdvancedCombat    文件:TrackingDispenserBehavior.java   
/** Can the entity be seen? */
private boolean canEntityBeSeen(Entity e, BlockPos pos) {
    if(!(e instanceof EntityPlayer && ((EntityPlayer)e).capabilities.disableDamage)) {
    Vec3d pos2 = new Vec3d(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5);
    return e.world.rayTraceBlocks(new Vec3d(pos2.x + 1, pos2.y, pos2.z + 0), new Vec3d(e.posX, e.posY + e.getEyeHeight(), e.posZ)) == null || 
            e.world.rayTraceBlocks(new Vec3d(pos2.x + 0, pos2.y, pos2.z + 1), new Vec3d(e.posX, e.posY + e.getEyeHeight(), e.posZ)) == null || 
            e.world.rayTraceBlocks(new Vec3d(pos2.x - 1, pos2.y, pos2.z + 0), new Vec3d(e.posX, e.posY + e.getEyeHeight(), e.posZ)) == null || 
            e.world.rayTraceBlocks(new Vec3d(pos2.x + 0, pos2.y, pos2.z - 1), new Vec3d(e.posX, e.posY + e.getEyeHeight(), e.posZ)) == null; 
    } else {
        return false;
    }
}
项目:Wurst-MC-1.12    文件:RotationUtils.java   
public static float getAngleToClientRotation(Vec3d vec)
{
    float[] needed = getNeededRotations(vec);

    float diffYaw =
        WMath.wrapDegrees(WMinecraft.getPlayer().rotationYaw) - needed[0];
    float diffPitch =
        WMath.wrapDegrees(WMinecraft.getPlayer().rotationPitch) - needed[1];

    float angle =
        (float)Math.sqrt(diffYaw * diffYaw + diffPitch * diffPitch);

    return angle;
}
项目:CustomWorldGen    文件:PlayerControllerMP.java   
/**
 * Handles right clicking an entity from the entities side, sends a packet to the server.
 */
public EnumActionResult interactWithEntity(EntityPlayer player, Entity target, RayTraceResult raytrace, @Nullable ItemStack heldItem, EnumHand hand)
{
    this.syncCurrentPlayItem();
    Vec3d vec3d = new Vec3d(raytrace.hitVec.xCoord - target.posX, raytrace.hitVec.yCoord - target.posY, raytrace.hitVec.zCoord - target.posZ);
    this.connection.sendPacket(new CPacketUseEntity(target, hand, vec3d));
    if(net.minecraftforge.common.ForgeHooks.onInteractEntityAt(player, target, raytrace, player.getHeldItem(hand), hand)) return EnumActionResult.PASS;
    return this.currentGameType == GameType.SPECTATOR ? EnumActionResult.PASS : target.applyPlayerInteraction(player, vec3d, heldItem, hand);
}
项目:pnc-repressurized    文件:EntityPathNavigateDrone.java   
@Override
public void onUpdateNavigation() {
    if (isGoingToTeleport()) {
        if (teleportCounter == 0 || teleportCounter == 60) {
            NetworkHandler.sendToAllAround(new PacketPlaySound(Sounds.HUD_INIT, SoundCategory.PLAYERS, pathfindingEntity.posX, pathfindingEntity.posY, pathfindingEntity.posZ, 0.1F, teleportCounter == 0 ? 0.7F : 1F, true), pathfindingEntity.world);
        }

        if (teleportCounter < TELEPORT_TICKS - 40) {
            Random rand = pathfindingEntity.getRNG();
            float f = (rand.nextFloat() - 0.5F) * 0.02F * teleportCounter;
            float f1 = (rand.nextFloat() - 0.5F) * 0.02F * teleportCounter;
            float f2 = (rand.nextFloat() - 0.5F) * 0.02F * teleportCounter;
            NetworkHandler.sendToAllAround(new PacketSpawnParticle(EnumParticleTypes.PORTAL, pathfindingEntity.posX, pathfindingEntity.posY, pathfindingEntity.posZ, f, f1, f2), pathfindingEntity.world);
        }

        if (++teleportCounter > TELEPORT_TICKS) {
            if (pathfindingEntity.isBlockValidPathfindBlock(telPos)) {
                teleport();
            }
            teleportCounter = -1;
            setPath(null, 0);
            pathfindingEntity.getMoveHelper().setMoveTo(telPos.getX(), telPos.getY(), telPos.getZ(), pathfindingEntity.getSpeed());
            pathfindingEntity.addAir(null, -10000);
        }
    } else {
        // super.onUpdateNavigation();
        if (!noPath()) {
            pathFollow();

            if (!noPath()) {
                Vec3d vec32 = currentPath.getPosition(entity);

                if (vec32 != null) {
                    entity.getMoveHelper().setMoveTo(vec32.x, vec32.y, vec32.z, speed);
                }
            }
        }
    }
}
项目:Backmemed    文件:RenderGuardian.java   
private Vec3d getPosition(EntityLivingBase entityLivingBaseIn, double p_177110_2_, float p_177110_4_)
{
    double d0 = entityLivingBaseIn.lastTickPosX + (entityLivingBaseIn.posX - entityLivingBaseIn.lastTickPosX) * (double)p_177110_4_;
    double d1 = p_177110_2_ + entityLivingBaseIn.lastTickPosY + (entityLivingBaseIn.posY - entityLivingBaseIn.lastTickPosY) * (double)p_177110_4_;
    double d2 = entityLivingBaseIn.lastTickPosZ + (entityLivingBaseIn.posZ - entityLivingBaseIn.lastTickPosZ) * (double)p_177110_4_;
    return new Vec3d(d0, d1, d2);
}
项目:CustomWorldGen    文件:TileEntityEndGateway.java   
private void findExitPortal()
{
    Vec3d vec3d = (new Vec3d((double)this.getPos().getX(), 0.0D, (double)this.getPos().getZ())).normalize();
    Vec3d vec3d1 = vec3d.scale(1024.0D);

    for (int i = 16; getChunk(this.worldObj, vec3d1).getTopFilledSegment() > 0 && i-- > 0; vec3d1 = vec3d1.add(vec3d.scale(-16.0D)))
    {
        LOG.debug("Skipping backwards past nonempty chunk at {}", new Object[] {vec3d1});
    }

    for (int j = 16; getChunk(this.worldObj, vec3d1).getTopFilledSegment() == 0 && j-- > 0; vec3d1 = vec3d1.add(vec3d.scale(16.0D)))
    {
        LOG.debug("Skipping forward past empty chunk at {}", new Object[] {vec3d1});
    }

    LOG.debug("Found chunk at {}", new Object[] {vec3d1});
    Chunk chunk = getChunk(this.worldObj, vec3d1);
    this.exitPortal = findSpawnpointInChunk(chunk);

    if (this.exitPortal == null)
    {
        this.exitPortal = new BlockPos(vec3d1.xCoord + 0.5D, 75.0D, vec3d1.zCoord + 0.5D);
        LOG.debug("Failed to find suitable block, settling on {}", new Object[] {this.exitPortal});
        (new WorldGenEndIsland()).generate(this.worldObj, new Random(this.exitPortal.toLong()), this.exitPortal);
    }
    else
    {
        LOG.debug("Found block at {}", new Object[] {this.exitPortal});
    }

    this.exitPortal = findHighestBlock(this.worldObj, this.exitPortal, 16, true);
    LOG.debug("Creating portal at {}", new Object[] {this.exitPortal});
    this.exitPortal = this.exitPortal.up(10);
    this.createExitPortal(this.exitPortal);
    this.markDirty();
}
项目:Wurst-MC-1.12    文件:RotationUtils.java   
public static boolean faceEntityClient(Entity entity)
{
    // get position & rotation
    Vec3d eyesPos = getEyesPos();
    Vec3d lookVec = getServerLookVec();

    // try to face center of boundingBox
    AxisAlignedBB bb = entity.boundingBox;
    if(faceVectorClient(bb.getCenter()))
        return true;

    // if not facing center, check if facing anything in boundingBox
    return bb.calculateIntercept(eyesPos,
        eyesPos.add(lookVec.scale(6))) != null;
}
项目:Backmemed    文件:World.java   
@Nullable

    /**
     * ray traces all blocks, including non-collideable ones
     */
    public RayTraceResult rayTraceBlocks(Vec3d start, Vec3d end)
    {
        return this.rayTraceBlocks(start, end, false, false, false);
    }
项目:Mods    文件:TF2Util.java   
public static boolean lookingAt(EntityLivingBase entity, double max, double targetX, double targetY, double targetZ) {
    /*double d0 = targetX - entity.posX;
    double d1 = targetY - (entity.posY + entity.getEyeHeight());
    double d2 = targetZ - entity.posZ;
    double d3 = MathHelper.sqrt(d0 * d0 + d2 * d2);
    float f = (float) (Math.atan2(d2, d0) * 180.0D / Math.PI) - 90.0F;
    float f1 = (float) (-(Math.atan2(d1, d3) * 180.0D / Math.PI));
    float compareyaw = Math.abs(180 - Math.abs(Math.abs(f - MathHelper.wrapDegrees(entity.rotationYawHead)) - 180));
    float comparepitch = Math.abs(180 - Math.abs(Math.abs(f1 - entity.rotationPitch) - 180));
    // System.out.println("Angl: "+compareyaw+" "+comparepitch);
    return compareyaw < max && comparepitch < max;*/
    return TF2Util.isLyingInCone(new Vec3d(targetX, targetY, targetZ),entity.getPositionEyes(1),entity.getPositionEyes(1).add(entity.getLook(1)),(float) Math.toRadians(max));
}
项目:CustomWorldGen    文件:WorldProviderEnd.java   
/**
 * Return Vec3D with biome specific fog color
 */
@SideOnly(Side.CLIENT)
public Vec3d getFogColor(float p_76562_1_, float p_76562_2_)
{
    int i = 10518688;
    float f = MathHelper.cos(p_76562_1_ * ((float)Math.PI * 2F)) * 2.0F + 0.5F;
    f = MathHelper.clamp_float(f, 0.0F, 1.0F);
    float f1 = 0.627451F;
    float f2 = 0.5019608F;
    float f3 = 0.627451F;
    f1 = f1 * (f * 0.0F + 0.15F);
    f2 = f2 * (f * 0.0F + 0.15F);
    f3 = f3 * (f * 0.0F + 0.15F);
    return new Vec3d((double)f1, (double)f2, (double)f3);
}
项目:Mods    文件:EntityProjectileBase.java   
public void attackDirect(Entity target, double pushForce) {
    if (!this.world.isRemote) {
        if (!this.hitEntities.contains(target)) {
            this.hitEntities.add(target);
            float distance = (float) TF2Util.getDistanceBox(this.shootingEntity, target.posX, target.posY, target.posZ, target.width+0.1, target.height+0.1);
            int critical = TF2Util.calculateCritPost(target, shootingEntity, this.getCritical(),
                    this.usedWeapon);
            float dmg = TF2Util.calculateDamage(target, world, this.shootingEntity, usedWeapon, critical,
                    distance);
            boolean proceed=((ItemProjectileWeapon)this.usedWeapon.getItem()).onHit(usedWeapon, this.shootingEntity, target, dmg, critical);
            if(!proceed || TF2Util.dealDamage(target, this.world, this.shootingEntity, this.usedWeapon, critical, dmg,
                    TF2Util.causeBulletDamage(this.usedWeapon, this.shootingEntity, critical, this))) {
                if (!((ItemWeapon) this.usedWeapon.getItem()).canPenetrate(this.usedWeapon,this.shootingEntity))
                    this.setDead();
                if(proceed) {
                    Vec3d pushvec=new Vec3d(this.motionX,this.motionY,this.motionZ).normalize();
                    pushvec=pushvec.scale(((ItemWeapon) this.usedWeapon.getItem()).getWeaponKnockback(this.usedWeapon, shootingEntity)
                            *  0.01625D*dmg);
                    if(target instanceof EntityLivingBase) {
                        pushvec=pushvec.scale(1-((EntityLivingBase) target).getAttributeMap().getAttributeInstance(SharedMonsterAttributes.KNOCKBACK_RESISTANCE)
                        .getAttributeValue());
                    }
                    target.addVelocity(pushvec.x, pushvec.y, pushvec.z);
                    target.isAirBorne = target.isAirBorne || -(pushvec.y) > 0.02D;
                    if(target instanceof EntityPlayerMP)
                        TF2weapons.network.sendTo(new TF2Message.VelocityAddMessage(pushvec,target.isAirBorne), (EntityPlayerMP) target);
                }
            }
        }
    }
}
项目:ArcaneMagic    文件:InfernalSmelterTESR.java   
@Override
public void render(TileEntityInfernalSmelter te, double x, double y, double z, float partialTicks, int destroyStage,
        float alpha)
{
    GlStateManager.pushMatrix();
    GlStateManager.translate(x, y, z);
    GlStateManager.disableRescaleNormal();
    te.frameAge++;

    IItemHandler cap = te.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null);
    Vec3d ore = new Vec3d(0,0.25,0);
    switch(te.getWorld().getBlockState(te.getPos()).getValue(BlockInfernalSmelter.FACING).getHorizontalIndex())
    {
    case 0:
        ore = ore.addVector(0.5,0,0.135);
        break;
    case 1:
        ore = ore.addVector(0.85, 0, 0.5);
        break;
    case 2:
        ore = ore.addVector(0.5,0,0.85);
        break;
    case 3:
        ore = ore.addVector(0.135, 0, 0.5);
        break;
    }
    GlStateManager.translate(ore.x,ore.y,ore.z);
    renderItem(te, cap.getStackInSlot(TileEntityInfernalSmelter.ORE), te.frameAge, false);

    GlStateManager.popMatrix();
}
项目:Backmemed    文件:PhaseLanding.java   
/**
 * Gives the phase a chance to update its status.
 * Called by dragon's onLivingUpdate. Only used when !worldObj.isRemote.
 */
public void doLocalUpdate()
{
    if (this.targetLocation == null)
    {
        this.targetLocation = new Vec3d(this.dragon.world.getTopSolidOrLiquidBlock(WorldGenEndPodium.END_PODIUM_LOCATION));
    }

    if (this.targetLocation.squareDistanceTo(this.dragon.posX, this.dragon.posY, this.dragon.posZ) < 1.0D)
    {
        ((PhaseSittingFlaming)this.dragon.getPhaseManager().getPhase(PhaseList.SITTING_FLAMING)).resetFlameCount();
        this.dragon.getPhaseManager().setPhase(PhaseList.SITTING_SCANNING);
    }
}
项目:Backmemed    文件:NetHandlerPlayServer.java   
public void setPlayerLocation(double x, double y, double z, float yaw, float pitch, Set<SPacketPlayerPosLook.EnumFlags> relativeSet)
{
    double d0 = relativeSet.contains(SPacketPlayerPosLook.EnumFlags.X) ? this.playerEntity.posX : 0.0D;
    double d1 = relativeSet.contains(SPacketPlayerPosLook.EnumFlags.Y) ? this.playerEntity.posY : 0.0D;
    double d2 = relativeSet.contains(SPacketPlayerPosLook.EnumFlags.Z) ? this.playerEntity.posZ : 0.0D;
    this.targetPos = new Vec3d(x + d0, y + d1, z + d2);
    float f = yaw;
    float f1 = pitch;

    if (relativeSet.contains(SPacketPlayerPosLook.EnumFlags.Y_ROT))
    {
        f = yaw + this.playerEntity.rotationYaw;
    }

    if (relativeSet.contains(SPacketPlayerPosLook.EnumFlags.X_ROT))
    {
        f1 = pitch + this.playerEntity.rotationPitch;
    }

    if (++this.teleportId == Integer.MAX_VALUE)
    {
        this.teleportId = 0;
    }

    this.lastPositionUpdate = this.networkTickCount;
    this.playerEntity.setPositionAndRotation(this.targetPos.xCoord, this.targetPos.yCoord, this.targetPos.zCoord, f, f1);
    this.playerEntity.connection.sendPacket(new SPacketPlayerPosLook(x, y, z, yaw, pitch, relativeSet, this.teleportId));
}
项目:CustomWorldGen    文件:SPacketExplosion.java   
public SPacketExplosion(double xIn, double yIn, double zIn, float strengthIn, List<BlockPos> affectedBlockPositionsIn, Vec3d motion)
{
    this.posX = xIn;
    this.posY = yIn;
    this.posZ = zIn;
    this.strength = strengthIn;
    this.affectedBlockPositions = Lists.newArrayList(affectedBlockPositionsIn);

    if (motion != null)
    {
        this.motionX = (float)motion.xCoord;
        this.motionY = (float)motion.yCoord;
        this.motionZ = (float)motion.zCoord;
    }
}
项目:CustomWorldGen    文件:Entity.java   
@Nullable
@SideOnly(Side.CLIENT)
public RayTraceResult rayTrace(double blockReachDistance, float partialTicks)
{
    Vec3d vec3d = this.getPositionEyes(partialTicks);
    Vec3d vec3d1 = this.getLook(partialTicks);
    Vec3d vec3d2 = vec3d.addVector(vec3d1.xCoord * blockReachDistance, vec3d1.yCoord * blockReachDistance, vec3d1.zCoord * blockReachDistance);
    return this.worldObj.rayTraceBlocks(vec3d, vec3d2, false, false, true);
}
项目:Zombe-Modpack    文件:WorldProvider.java   
/**
 * Return Vec3D with biome specific fog color
 */
public Vec3d getFogColor(float p_76562_1_, float p_76562_2_)
{
    float f = MathHelper.cos(p_76562_1_ * ((float)Math.PI * 2F)) * 2.0F + 0.5F;
    f = MathHelper.clamp(f, 0.0F, 1.0F);
    float f1 = 0.7529412F;
    float f2 = 0.84705883F;
    float f3 = 1.0F;
    f1 = f1 * (f * 0.94F + 0.06F);
    f2 = f2 * (f * 0.94F + 0.06F);
    f3 = f3 * (f * 0.91F + 0.09F);
    return new Vec3d((double)f1, (double)f2, (double)f3);
}
项目:Backmemed    文件:PhaseLandingApproach.java   
private void findNewTarget()
{
    if (this.currentPath == null || this.currentPath.isFinished())
    {
        int i = this.dragon.initPathPoints();
        BlockPos blockpos = this.dragon.world.getTopSolidOrLiquidBlock(WorldGenEndPodium.END_PODIUM_LOCATION);
        EntityPlayer entityplayer = this.dragon.world.getNearestAttackablePlayer(blockpos, 128.0D, 128.0D);
        int j;

        if (entityplayer != null)
        {
            Vec3d vec3d = (new Vec3d(entityplayer.posX, 0.0D, entityplayer.posZ)).normalize();
            j = this.dragon.getNearestPpIdx(-vec3d.xCoord * 40.0D, 105.0D, -vec3d.zCoord * 40.0D);
        }
        else
        {
            j = this.dragon.getNearestPpIdx(40.0D, (double)blockpos.getY(), 0.0D);
        }

        PathPoint pathpoint = new PathPoint(blockpos.getX(), blockpos.getY(), blockpos.getZ());
        this.currentPath = this.dragon.findPath(i, j, pathpoint);

        if (this.currentPath != null)
        {
            this.currentPath.incrementPathIndex();
        }
    }

    this.navigateToNextPathNode();

    if (this.currentPath != null && this.currentPath.isFinished())
    {
        this.dragon.getPhaseManager().setPhase(PhaseList.LANDING);
    }
}
项目:CustomWorldGen    文件:PhaseLanding.java   
/**
 * Gives the phase a chance to update its status.
 * Called by dragon's onLivingUpdate. Only used when !worldObj.isRemote.
 */
public void doLocalUpdate()
{
    if (this.targetLocation == null)
    {
        this.targetLocation = new Vec3d(this.dragon.worldObj.getTopSolidOrLiquidBlock(WorldGenEndPodium.END_PODIUM_LOCATION));
    }

    if (this.targetLocation.squareDistanceTo(this.dragon.posX, this.dragon.posY, this.dragon.posZ) < 1.0D)
    {
        ((PhaseSittingFlaming)this.dragon.getPhaseManager().getPhase(PhaseList.SITTING_FLAMING)).resetFlameCount();
        this.dragon.getPhaseManager().setPhase(PhaseList.SITTING_SCANNING);
    }
}
项目:UniversalRemote    文件:WorldServerProxy.java   
@Override
public Vec3d getSkyColor(Entity entityIn, float partialTicks) {
    if (m_proxyWorld != null && Util.isPrefixInCallStack(m_modPrefix)) {
        return m_proxyWorld.getSkyColor(entityIn, partialTicks);
    } else if (m_realWorld != null) {
        return m_realWorld.getSkyColor(entityIn, partialTicks);
    } else {
        return super.getSkyColor(entityIn, partialTicks);
    }
}
项目:harshencastle    文件:AIEntityWanderNoWater.java   
@Nullable
protected Vec3d getPosition()
{
    if (this.entity.isInWater())
    {
        Vec3d vec3d = RandomPositionGenerator.getLandPos(this.entity, 15, 7);
        return vec3d == null ? super.getPosition() : vec3d;
    }
    else
    {
        return this.entity.getRNG().nextFloat() >= this.probability ? RandomPositionGenerator.getLandPos(this.entity, 10, 7) : super.getPosition();
    }
}
项目:CustomWorldGen    文件:EntitySelector.java   
private static List<Predicate<Entity>> getRadiusPredicates(Map<String, String> params, final Vec3d pos)
{
    double d0 = (double)parseIntWithDefault(params, "rm", -1);
    double d1 = (double)parseIntWithDefault(params, "r", -1);
    final boolean flag = d0 < -0.5D;
    final boolean flag1 = d1 < -0.5D;

    if (flag && flag1)
    {
        return Collections.<Predicate<Entity>>emptyList();
    }
    else
    {
        double d2 = Math.max(d0, 1.0E-4D);
        final double d3 = d2 * d2;
        double d4 = Math.max(d1, 1.0E-4D);
        final double d5 = d4 * d4;
        return Lists.<Predicate<Entity>>newArrayList(new Predicate[] {new Predicate<Entity>()
        {
            public boolean apply(@Nullable Entity p_apply_1_)
            {
                if (p_apply_1_ == null)
                {
                    return false;
                }
                else
                {
                    double d6 = pos.squareDistanceTo(p_apply_1_.posX, p_apply_1_.posY, p_apply_1_.posZ);
                    return (flag || d6 >= d3) && (flag1 || d6 <= d5);
                }
            }
        }
                                                                     });
    }
}
项目:UniversalRemote    文件:WorldServerProxy.java   
@Override
public RayTraceResult rayTraceBlocks(Vec3d vec31, Vec3d vec32, boolean stopOnLiquid,
        boolean ignoreBlockWithoutBoundingBox, boolean returnLastUncollidableBlock) {
    if (m_proxyWorld != null && Util.isPrefixInCallStack(m_modPrefix)) {
        return m_proxyWorld.rayTraceBlocks(vec31, vec32, stopOnLiquid, ignoreBlockWithoutBoundingBox, returnLastUncollidableBlock);
    } else if (m_realWorld != null) {
        return m_realWorld.rayTraceBlocks(vec31, vec32, stopOnLiquid, ignoreBlockWithoutBoundingBox, returnLastUncollidableBlock);
    } else {
        return super.rayTraceBlocks(vec31, vec32, stopOnLiquid, ignoreBlockWithoutBoundingBox, returnLastUncollidableBlock);
    }
}
项目:Infernum    文件:SpellWitheringBolt.java   
@Override
public void onCastTick(World world, EntityPlayer player, ItemStack stack) {
    if (!world.isRemote && world instanceof WorldServer) {
        Vec3d lookVec = player.getLookVec();
        double x = player.posX + lookVec.xCoord;
        double y = player.posY + lookVec.yCoord + player.eyeHeight;
        double z = player.posZ + lookVec.zCoord;
        ((WorldServer) world).spawnParticle(EnumParticleTypes.SMOKE_NORMAL, true, x, y, z, world.rand.nextInt(2), 0.01, 0.01, 0.01, 0);
    }
}
项目:Backmemed    文件:BlockPistonMoving.java   
@Nullable

    /**
     * Ray traces through the blocks collision from start vector to end vector returning a ray trace hit.
     */
    public RayTraceResult collisionRayTrace(IBlockState blockState, World worldIn, BlockPos pos, Vec3d start, Vec3d end)
    {
        return null;
    }
项目:harshencastle    文件:HarshenTemplate.java   
private void addEntitiesToWorld(World worldIn, BlockPos pos, Mirror mirrorIn, Rotation rotationIn, @Nullable StructureBoundingBox aabb)
{
    for (Template.EntityInfo template$entityinfo : this.entities)
    {
        BlockPos blockpos = transformedBlockPos(template$entityinfo.blockPos, mirrorIn, rotationIn).add(pos);

        if (aabb == null || aabb.isVecInside(blockpos))
        {
            NBTTagCompound nbttagcompound = template$entityinfo.entityData;
            Vec3d vec3d = transformedVec3d(template$entityinfo.pos, mirrorIn, rotationIn);
            Vec3d vec3d1 = vec3d.addVector((double)pos.getX(), (double)pos.getY(), (double)pos.getZ());
            NBTTagList nbttaglist = new NBTTagList();
            nbttaglist.appendTag(new NBTTagDouble(vec3d1.x));
            nbttaglist.appendTag(new NBTTagDouble(vec3d1.y));
            nbttaglist.appendTag(new NBTTagDouble(vec3d1.z));
            nbttagcompound.setTag("Pos", nbttaglist);
            nbttagcompound.setUniqueId("UUID", UUID.randomUUID());
            Entity entity;

            try
            {
                entity = EntityList.createEntityFromNBT(nbttagcompound, worldIn);
            }
            catch (Exception var15)
            {
                entity = null;
            }

            if (entity != null)
            {
                float f = entity.getMirroredYaw(mirrorIn);
                f = f + (entity.rotationYaw - entity.getRotatedYaw(rotationIn));
                entity.setLocationAndAngles(vec3d1.x, vec3d1.y, vec3d1.z, f, entity.rotationPitch);
                worldIn.spawnEntity(entity);
            }
        }
    }
}
项目:harshencastle    文件:HarshenTemplate.java   
private static Vec3d transformedVec3d(Vec3d vec, Mirror mirrorIn, Rotation rotationIn)
{
    double d0 = vec.x;
    double d1 = vec.y;
    double d2 = vec.z;
    boolean flag = true;

    switch (mirrorIn)
    {
        case LEFT_RIGHT:
            d2 = 1.0D - d2;
            break;
        case FRONT_BACK:
            d0 = 1.0D - d0;
            break;
        default:
            flag = false;
    }

    switch (rotationIn)
    {
        case COUNTERCLOCKWISE_90:
            return new Vec3d(d2, d1, 1.0D - d0);
        case CLOCKWISE_90:
            return new Vec3d(1.0D - d2, d1, d0);
        case CLOCKWISE_180:
            return new Vec3d(1.0D - d0, d1, 1.0D - d2);
        default:
            return flag ? new Vec3d(d0, d1, d2) : vec;
    }
}