当前位置: 首页>>代码示例>>Java>>正文


Java Vec3.addVector方法代码示例

本文整理汇总了Java中net.minecraft.util.Vec3.addVector方法的典型用法代码示例。如果您正苦于以下问题:Java Vec3.addVector方法的具体用法?Java Vec3.addVector怎么用?Java Vec3.addVector使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在net.minecraft.util.Vec3的用法示例。


在下文中一共展示了Vec3.addVector方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: renderBrokenItemStack

import net.minecraft.util.Vec3; //导入方法依赖的package包/类
/**
 * Renders broken item particles using the given ItemStack
 */
public void renderBrokenItemStack(ItemStack stack)
{
    this.playSound("random.break", 0.8F, 0.8F + this.worldObj.rand.nextFloat() * 0.4F);

    for (int i = 0; i < 5; ++i)
    {
        Vec3 vec3 = new Vec3(((double)this.rand.nextFloat() - 0.5D) * 0.1D, Math.random() * 0.1D + 0.1D, 0.0D);
        vec3 = vec3.rotatePitch(-this.rotationPitch * (float)Math.PI / 180.0F);
        vec3 = vec3.rotateYaw(-this.rotationYaw * (float)Math.PI / 180.0F);
        double d0 = (double)(-this.rand.nextFloat()) * 0.6D - 0.3D;
        Vec3 vec31 = new Vec3(((double)this.rand.nextFloat() - 0.5D) * 0.3D, d0, 0.6D);
        vec31 = vec31.rotatePitch(-this.rotationPitch * (float)Math.PI / 180.0F);
        vec31 = vec31.rotateYaw(-this.rotationYaw * (float)Math.PI / 180.0F);
        vec31 = vec31.addVector(this.posX, this.posY + (double)this.getEyeHeight(), this.posZ);
        this.worldObj.spawnParticle(EnumParticleTypes.ITEM_CRACK, vec31.xCoord, vec31.yCoord, vec31.zCoord, vec3.xCoord, vec3.yCoord + 0.05D, vec3.zCoord, new int[] {Item.getIdFromItem(stack.getItem())});
    }
}
 
开发者ID:Notoh,项目名称:DecompiledMinecraft,代码行数:21,代码来源:EntityLivingBase.java

示例2: getMovingObjectPositionFromPlayer

import net.minecraft.util.Vec3; //导入方法依赖的package包/类
protected MovingObjectPosition getMovingObjectPositionFromPlayer(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;
    Vec3 vec3 = new Vec3(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;
    Vec3 vec31 = vec3.addVector((double)f6 * d3, (double)f5 * d3, (double)f7 * d3);
    return worldIn.rayTraceBlocks(vec3, vec31, useLiquids, !useLiquids, false);
}
 
开发者ID:Notoh,项目名称:DecompiledMinecraft,代码行数:19,代码来源:Item.java

示例3: getMovingObjectPositionFromPlayer

import net.minecraft.util.Vec3; //导入方法依赖的package包/类
public static MovingObjectPosition getMovingObjectPositionFromPlayer(World world, EntityPlayer player, double targetingDistance)
{
	float f = 1.0F;
	float f1 = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * f;
	float f2 = player.prevRotationYaw + (player.rotationYaw - player.prevRotationYaw) * f;
	
	double playerX = player.prevPosX + (player.posX - player.prevPosX) * f;
	double playerY = player.prevPosY + (player.posY - player.prevPosY) * f + (world.isRemote ? player.getEyeHeight() - player.getDefaultEyeHeight() : player.getEyeHeight()); // isRemote check to revert changes to ray trace position due to adding the eye height clientside and player yOffset differences
	double playerZ = player.prevPosZ + (player.posZ - player.prevPosZ) * f;
	
	Vec3 vecPlayer = Vec3.createVectorHelper(playerX, playerY, playerZ);
	
	float f3 = MathHelper.cos(-f2 * 0.017453292F - (float)Math.PI);
	float f4 = MathHelper.sin(-f2 * 0.017453292F - (float)Math.PI);
	float f5 = -MathHelper.cos(-f1 * 0.017453292F);
	float f6 = MathHelper.sin(-f1 * 0.017453292F);
	float f7 = f4 * f5;
	float f8 = f3 * f5;
	
	double maxDistance = targetingDistance;
	
	Vec3 vecTarget = vecPlayer.addVector(f7 * maxDistance, f6 * maxDistance, f8 * maxDistance);
	
	return world.func_147447_a(vecPlayer, vecTarget, false, false, true);	// false, true, false
}
 
开发者ID:Domochevsky,项目名称:minecraft-quiverbow,代码行数:26,代码来源:AI_Targeting.java

示例4: getObjectMouseOver

import net.minecraft.util.Vec3; //导入方法依赖的package包/类
private MovingObjectPosition getObjectMouseOver(DiscreteMovementCommand command)
{
    MovingObjectPosition mop = null;
    if (command.equals(DiscreteMovementCommand.USE))
        mop = Minecraft.getMinecraft().objectMouseOver;
    else if (command.equals(DiscreteMovementCommand.JUMPUSE))
    {
        long partialTicks = 0;  //Minecraft.timer.renderPartialTicks
        Entity viewer = Minecraft.getMinecraft().thePlayer;
        double blockReach = Minecraft.getMinecraft().playerController.getBlockReachDistance();
        Vec3 eyePos = viewer.getPositionEyes(partialTicks);
        Vec3 lookVec = viewer.getLook(partialTicks);
        int yOffset = 1;    // For the jump
        Vec3 searchVec = eyePos.addVector(lookVec.xCoord * blockReach, yOffset + lookVec.yCoord * blockReach, lookVec.zCoord * blockReach);
        mop = Minecraft.getMinecraft().theWorld.rayTraceBlocks(eyePos, searchVec, false, false, false);
    }
    return mop;
}
 
开发者ID:Yarichi,项目名称:Proyecto-DASI,代码行数:19,代码来源:DiscreteMovementCommandsImplementation.java

示例5: updateItemUse

import net.minecraft.util.Vec3; //导入方法依赖的package包/类
/**
 * Plays sounds and makes particles for item in use state
 */
protected void updateItemUse(ItemStack itemStackIn, int p_71010_2_)
{
    if (itemStackIn.getItemUseAction() == EnumAction.DRINK)
    {
        this.playSound("random.drink", 0.5F, this.worldObj.rand.nextFloat() * 0.1F + 0.9F);
    }

    if (itemStackIn.getItemUseAction() == EnumAction.EAT)
    {
        for (int i = 0; i < p_71010_2_; ++i)
        {
            Vec3 vec3 = new Vec3(((double)this.rand.nextFloat() - 0.5D) * 0.1D, Math.random() * 0.1D + 0.1D, 0.0D);
            vec3 = vec3.rotatePitch(-this.rotationPitch * (float)Math.PI / 180.0F);
            vec3 = vec3.rotateYaw(-this.rotationYaw * (float)Math.PI / 180.0F);
            double d0 = (double)(-this.rand.nextFloat()) * 0.6D - 0.3D;
            Vec3 vec31 = new Vec3(((double)this.rand.nextFloat() - 0.5D) * 0.3D, d0, 0.6D);
            vec31 = vec31.rotatePitch(-this.rotationPitch * (float)Math.PI / 180.0F);
            vec31 = vec31.rotateYaw(-this.rotationYaw * (float)Math.PI / 180.0F);
            vec31 = vec31.addVector(this.posX, this.posY + (double)this.getEyeHeight(), this.posZ);

            if (itemStackIn.getHasSubtypes())
            {
                this.worldObj.spawnParticle(EnumParticleTypes.ITEM_CRACK, vec31.xCoord, vec31.yCoord, vec31.zCoord, vec3.xCoord, vec3.yCoord + 0.05D, vec3.zCoord, new int[] {Item.getIdFromItem(itemStackIn.getItem()), itemStackIn.getMetadata()});
            }
            else
            {
                this.worldObj.spawnParticle(EnumParticleTypes.ITEM_CRACK, vec31.xCoord, vec31.yCoord, vec31.zCoord, vec3.xCoord, vec3.yCoord + 0.05D, vec3.zCoord, new int[] {Item.getIdFromItem(itemStackIn.getItem())});
            }
        }

        this.playSound("random.eat", 0.5F + 0.5F * (float)this.rand.nextInt(2), (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F);
    }
}
 
开发者ID:Notoh,项目名称:DecompiledMinecraft,代码行数:37,代码来源:EntityPlayer.java

示例6: rayTrace

import net.minecraft.util.Vec3; //导入方法依赖的package包/类
public MovingObjectPosition rayTrace(double blockReachDistance, float partialTicks)
{
    Vec3 vec3 = this.getPositionEyes(partialTicks);
    Vec3 vec31 = this.getLook(partialTicks);
    Vec3 vec32 = vec3.addVector(vec31.xCoord * blockReachDistance, vec31.yCoord * blockReachDistance, vec31.zCoord * blockReachDistance);
    return this.worldObj.rayTraceBlocks(vec3, vec32, false, false, true);
}
 
开发者ID:SkidJava,项目名称:BaseClient,代码行数:8,代码来源:Entity.java

示例7: getFlowVector

import net.minecraft.util.Vec3; //导入方法依赖的package包/类
protected Vec3 getFlowVector(IBlockAccess worldIn, BlockPos pos)
{
    Vec3 vec3 = new Vec3(0.0D, 0.0D, 0.0D);
    int i = this.getEffectiveFlowDecay(worldIn, pos);

    for (EnumFacing enumfacing : EnumFacing.Plane.HORIZONTAL)
    {
        BlockPos blockpos = pos.offset(enumfacing);
        int j = this.getEffectiveFlowDecay(worldIn, blockpos);

        if (j < 0)
        {
            if (!worldIn.getBlockState(blockpos).getBlock().getMaterial().blocksMovement())
            {
                j = this.getEffectiveFlowDecay(worldIn, blockpos.down());

                if (j >= 0)
                {
                    int k = j - (i - 8);
                    vec3 = vec3.addVector((double)((blockpos.getX() - pos.getX()) * k), (double)((blockpos.getY() - pos.getY()) * k), (double)((blockpos.getZ() - pos.getZ()) * k));
                }
            }
        }
        else if (j >= 0)
        {
            int l = j - i;
            vec3 = vec3.addVector((double)((blockpos.getX() - pos.getX()) * l), (double)((blockpos.getY() - pos.getY()) * l), (double)((blockpos.getZ() - pos.getZ()) * l));
        }
    }

    if (((Integer)worldIn.getBlockState(pos).getValue(LEVEL)).intValue() >= 8)
    {
        for (EnumFacing enumfacing1 : EnumFacing.Plane.HORIZONTAL)
        {
            BlockPos blockpos1 = pos.offset(enumfacing1);

            if (this.isBlockSolid(worldIn, blockpos1, enumfacing1) || this.isBlockSolid(worldIn, blockpos1.up(), enumfacing1))
            {
                vec3 = vec3.normalize().addVector(0.0D, -6.0D, 0.0D);
                break;
            }
        }
    }

    return vec3.normalize();
}
 
开发者ID:Notoh,项目名称:DecompiledMinecraft,代码行数:47,代码来源:BlockLiquid.java

示例8: getFlowVector

import net.minecraft.util.Vec3; //导入方法依赖的package包/类
protected Vec3 getFlowVector(IBlockAccess worldIn, BlockPos pos)
{
    Vec3 vec3 = new Vec3(0.0D, 0.0D, 0.0D);
    int i = this.getEffectiveFlowDecay(worldIn, pos);

    for (Object enumfacing0 : EnumFacing.Plane.HORIZONTAL)
    {
        EnumFacing enumfacing = (EnumFacing) enumfacing0;
        BlockPos blockpos = pos.offset(enumfacing);
        int j = this.getEffectiveFlowDecay(worldIn, blockpos);

        if (j < 0)
        {
            if (!worldIn.getBlockState(blockpos).getBlock().getMaterial().blocksMovement())
            {
                j = this.getEffectiveFlowDecay(worldIn, blockpos.down());

                if (j >= 0)
                {
                    int k = j - (i - 8);
                    vec3 = vec3.addVector((double)((blockpos.getX() - pos.getX()) * k), (double)((blockpos.getY() - pos.getY()) * k), (double)((blockpos.getZ() - pos.getZ()) * k));
                }
            }
        }
        else if (j >= 0)
        {
            int l = j - i;
            vec3 = vec3.addVector((double)((blockpos.getX() - pos.getX()) * l), (double)((blockpos.getY() - pos.getY()) * l), (double)((blockpos.getZ() - pos.getZ()) * l));
        }
    }

    if (((Integer)worldIn.getBlockState(pos).getValue(LEVEL)).intValue() >= 8)
    {
        for (Object enumfacing10 : EnumFacing.Plane.HORIZONTAL)
        {
            EnumFacing enumfacing1 = (EnumFacing) enumfacing10;
            BlockPos blockpos1 = pos.offset(enumfacing1);

            if (this.isBlockSolid(worldIn, blockpos1, enumfacing1) || this.isBlockSolid(worldIn, blockpos1.up(), enumfacing1))
            {
                vec3 = vec3.normalize().addVector(0.0D, -6.0D, 0.0D);
                break;
            }
        }
    }

    return vec3.normalize();
}
 
开发者ID:SkidJava,项目名称:BaseClient,代码行数:49,代码来源:BlockLiquid.java


注:本文中的net.minecraft.util.Vec3.addVector方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。