當前位置: 首頁>>代碼示例>>Java>>正文


Java Vec3i.getX方法代碼示例

本文整理匯總了Java中net.minecraft.util.math.Vec3i.getX方法的典型用法代碼示例。如果您正苦於以下問題:Java Vec3i.getX方法的具體用法?Java Vec3i.getX怎麽用?Java Vec3i.getX使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在net.minecraft.util.math.Vec3i的用法示例。


在下文中一共展示了Vec3i.getX方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: onWorldDraw

import net.minecraft.util.math.Vec3i; //導入方法依賴的package包/類
@Override
protected void onWorldDraw(float delta, float x, float y, float z) {
    float mx, my, mz;
    if (!safeShow) return;
    if (--safeUpdate < 0) {
        safeUpdate = 13;
        reCheckSafe(fix(x), fix(y), fix(z));
    }
    if (safeGhost) GL11.glDisable(GL11.GL_DEPTH_TEST);
    else           GL11.glEnable( GL11.GL_DEPTH_TEST);
    GL11.glDisable(GL11.GL_TEXTURE_2D);
    GL11.glDisable(GL11.GL_BLEND);
    GL11.glDisable(GL11.GL_FOG);
    GL11.glBegin(GL11.GL_LINES);
    for (int i = 0; i < safeCur; ++i) {
        Vec3i pos   = safePoses[i];
        Color color = safeMarks[i];
        GL11.glColor3ub(color.rb, color.gb, color.bb);
        mx = pos.getX() - x; my = pos.getY() - y; mz = pos.getZ() - z;
        GL11.glVertex3f(mx+0.9f,my+0.01f,mz+0.9f);
        GL11.glVertex3f(mx+0.1f,my+0.01f,mz+0.1f);
        GL11.glVertex3f(mx+0.9f,my+0.01f,mz+0.1f);
        GL11.glVertex3f(mx+0.1f,my+0.01f,mz+0.9f);
    }
    GL11.glEnd();
}
 
開發者ID:NSExceptional,項目名稱:Zombe-Modpack,代碼行數:27,代碼來源:Safe.java

示例2: rotateFacePerspective

import net.minecraft.util.math.Vec3i; //導入方法依賴的package包/類
/** 
 * Rotates given surface vector around the center of the texture by the given degree.
 * 
 */
protected static Vec3i rotateFacePerspective(Vec3i vec, Rotation rotation, TextureScale scale)
{
    switch(rotation)
    {
    case ROTATE_90:
        return new Vec3i(vec.getY(), scale.sliceCountMask - vec.getX(), vec.getZ());

    case ROTATE_180:
        return new Vec3i(scale.sliceCountMask - vec.getX(), scale.sliceCountMask - vec.getY(), vec.getZ());
        
    case ROTATE_270:
        return new Vec3i(scale.sliceCountMask - vec.getY(), vec.getX(), vec.getZ());

    case ROTATE_NONE:
    default:
        return vec;
    
    }
}
 
開發者ID:grondag,項目名稱:Hard-Science,代碼行數:24,代碼來源:CubicQuadPainter.java

示例3: rotate

import net.minecraft.util.math.Vec3i; //導入方法依賴的package包/類
public static EnumFacing rotate(Matrix4f matrix, EnumFacing facing)
{
    Vec3i dir = facing.getDirectionVec();
    Vector4f vec = new Vector4f(dir.getX(), dir.getY(), dir.getZ(), 0);
    matrix.transform(vec);
    return EnumFacing.getFacingFromVector(vec.x, vec.y, vec.z);
}
 
開發者ID:F1r3w477,項目名稱:CustomWorldGen,代碼行數:8,代碼來源:TRSRTransformation.java

示例4: getFacingFromVertexData

import net.minecraft.util.math.Vec3i; //導入方法依賴的package包/類
public static EnumFacing getFacingFromVertexData(int[] faceData)
{
    Vector3f vector3f = new Vector3f(Float.intBitsToFloat(faceData[0]), Float.intBitsToFloat(faceData[1]), Float.intBitsToFloat(faceData[2]));
    Vector3f vector3f1 = new Vector3f(Float.intBitsToFloat(faceData[7]), Float.intBitsToFloat(faceData[8]), Float.intBitsToFloat(faceData[9]));
    Vector3f vector3f2 = new Vector3f(Float.intBitsToFloat(faceData[14]), Float.intBitsToFloat(faceData[15]), Float.intBitsToFloat(faceData[16]));
    Vector3f vector3f3 = new Vector3f();
    Vector3f vector3f4 = new Vector3f();
    Vector3f vector3f5 = new Vector3f();
    Vector3f.sub(vector3f, vector3f1, vector3f3);
    Vector3f.sub(vector3f2, vector3f1, vector3f4);
    Vector3f.cross(vector3f4, vector3f3, vector3f5);
    float f = (float)Math.sqrt((double)(vector3f5.x * vector3f5.x + vector3f5.y * vector3f5.y + vector3f5.z * vector3f5.z));
    vector3f5.x /= f;
    vector3f5.y /= f;
    vector3f5.z /= f;
    EnumFacing enumfacing = null;
    float f1 = 0.0F;

    for (EnumFacing enumfacing1 : EnumFacing.values())
    {
        Vec3i vec3i = enumfacing1.getDirectionVec();
        Vector3f vector3f6 = new Vector3f((float)vec3i.getX(), (float)vec3i.getY(), (float)vec3i.getZ());
        float f2 = Vector3f.dot(vector3f5, vector3f6);

        if (f2 >= 0.0F && f2 > f1)
        {
            f1 = f2;
            enumfacing = enumfacing1;
        }
    }

    if (enumfacing == null)
    {
        return EnumFacing.UP;
    }
    else
    {
        return enumfacing;
    }
}
 
開發者ID:F1r3w477,項目名稱:CustomWorldGen,代碼行數:41,代碼來源:FaceBakery.java

示例5: getFacingFromVertexData

import net.minecraft.util.math.Vec3i; //導入方法依賴的package包/類
public static EnumFacing getFacingFromVertexData(int[] faceData)
{
    Vector3f vector3f = new Vector3f(Float.intBitsToFloat(faceData[0]), Float.intBitsToFloat(faceData[1]), Float.intBitsToFloat(faceData[2]));
    Vector3f vector3f1 = new Vector3f(Float.intBitsToFloat(faceData[7]), Float.intBitsToFloat(faceData[8]), Float.intBitsToFloat(faceData[9]));
    Vector3f vector3f2 = new Vector3f(Float.intBitsToFloat(faceData[14]), Float.intBitsToFloat(faceData[15]), Float.intBitsToFloat(faceData[16]));
    Vector3f vector3f3 = new Vector3f();
    Vector3f vector3f4 = new Vector3f();
    Vector3f vector3f5 = new Vector3f();
    Vector3f.sub(vector3f, vector3f1, vector3f3);
    Vector3f.sub(vector3f2, vector3f1, vector3f4);
    Vector3f.cross(vector3f4, vector3f3, vector3f5);
    float f = (float)Math.sqrt(vector3f5.x * vector3f5.x + vector3f5.y * vector3f5.y + vector3f5.z * vector3f5.z);
    vector3f5.x /= f;
    vector3f5.y /= f;
    vector3f5.z /= f;
    EnumFacing enumfacing = null;
    float f1 = 0.0F;

    for (EnumFacing enumfacing1 : EnumFacing.values())
    {
        Vec3i vec3i = enumfacing1.getDirectionVec();
        Vector3f vector3f6 = new Vector3f(vec3i.getX(), vec3i.getY(), vec3i.getZ());
        float f2 = Vector3f.dot(vector3f5, vector3f6);

        if (f2 >= 0.0F && f2 > f1)
        {
            f1 = f2;
            enumfacing = enumfacing1;
        }
    }

    if (enumfacing == null)
    {
        return EnumFacing.UP;
    }
    else
    {
        return enumfacing;
    }
}
 
開發者ID:Alec-WAM,項目名稱:CrystalMod,代碼行數:41,代碼來源:CustomModelUtil.java

示例6: getRotationMatrix

import net.minecraft.util.math.Vec3i; //導入方法依賴的package包/類
/**
 * Create a matrix that rotates around the specified axis by the specified angle.
 *
 * @param axis    The axis
 * @param radians The angle in radians
 * @return The rotation matrix
 */
public static Matrix3d getRotationMatrix(EnumFacing.Axis axis, double radians) {
    final Vec3i axisDirectionVector = AXIS_DIRECTION_VECTORS.get(axis);
    final AxisAngle4d axisAngle = new AxisAngle4d(axisDirectionVector.getX(), axisDirectionVector.getY(), axisDirectionVector.getZ(), radians);

    final Matrix3d rotationMatrix = new Matrix3d();
    rotationMatrix.set(axisAngle);

    return rotationMatrix;
}
 
開發者ID:droidicus,項目名稱:AquaRegia,代碼行數:17,代碼來源:VectorUtils.java

示例7: shootPlayer

import net.minecraft.util.math.Vec3i; //導入方法依賴的package包/類
private void shootPlayer(World world, BlockPos pos, Entity ent) {
	if (!(ent instanceof EntityPlayer)) return;
	
	IBlockState state = world.getBlockState(pos);
	EnumFacing facing = state.getValue(PROPERTY_FACING);
	Vec3i vec = facing.getDirectionVec();
	//double scale = 1.2d;
	Vec3d motion = new Vec3d(vec.getX()*scale, vec.getY()*scale, vec.getZ()*scale);
	
	ent.motionX = adjustScalar(ent.motionX, motion.x);
	ent.motionY = adjustScalar(ent.motionY, motion.y);
	ent.motionZ = adjustScalar(ent.motionZ, motion.z);
}
 
開發者ID:elytra,項目名稱:Engination,代碼行數:14,代碼來源:BlockConveyor.java

示例8: isConnected

import net.minecraft.util.math.Vec3i; //導入方法依賴的package包/類
public boolean isConnected(World world, BlockPos from, BlockPos to){
    Vec3i diff = from.subtract(to);
    if(diff.getX() * diff.getZ() != 0)
        return false;

    return diff.getY() == 0 || !isBlockedDiagonal(world, from, to);
}
 
開發者ID:KodyJKing,項目名稱:RandomToolKit,代碼行數:8,代碼來源:BlockFourierTransformer.java

示例9: getNeighborACoordinate

import net.minecraft.util.math.Vec3i; //導入方法依賴的package包/類
@Override
public BlockPos getNeighborACoordinate(int index) {
    if (index > Facing.values().length) index = 0;
    Vec3i coord = Facing.values()[index].getDirectionVec();
    return new BlockPos(
            pos.getX() + coord.getX(),
            pos.getY() + coord.getY(),
            pos.getZ() + coord.getZ()
    );
}
 
開發者ID:Dark32,項目名稱:NordMod,代碼行數:11,代碼來源:TileAbstractEnergyCable.java

示例10: getSurfaceVector

import net.minecraft.util.math.Vec3i; //導入方法依賴的package包/類
/** 
 * Transform input vector so that x & y correspond with u / v on the given face, with u,v origin at upper left
 * and z is depth, where positive values represent distance into the face (away from viewer). <br><br>
 * 
 * Coordinates are start masked to the scale of the texture being used and when we reverse an orthogonalAxis, 
 * we use the texture's sliceMask as the basis so that we remain within the frame of the
 * texture scale we are using.  <br><br>
 * 
 * Note that the x, y components are for determining min/max UV values. 
 * They should NOT be used to set vertex UV coordinates directly.
 * All bigtex models should have lockUV = true, which means that 
 * uv coordinates will be derived at time of quad bake by projecting each
 * vertex onto the plane of the quad's nominal face. 
 * Setting UV coordinates on a quad with lockUV=true has no effect.
 */
protected static Vec3i getSurfaceVector(Vec3i vec, EnumFacing face, TextureScale scale)
{
    int sliceCountMask = scale.sliceCountMask;
    int x = vec.getX() & sliceCountMask;
    int y = vec.getY() & sliceCountMask;
    int z = vec.getZ() & sliceCountMask;
    
    switch(face)
    {
    case EAST:
        return new Vec3i(sliceCountMask - z, sliceCountMask - y, -vec.getX());
    
    case WEST:
        return new Vec3i(z, sliceCountMask - y, vec.getX());
    
    case NORTH:
        return new Vec3i(sliceCountMask - x, sliceCountMask - y, vec.getZ());
    
    case SOUTH:
        return new Vec3i(x, sliceCountMask - y, -vec.getZ());
    
    case DOWN:
        return new Vec3i(x, sliceCountMask - z, vec.getY());

    case UP:
    default:
        return new Vec3i(x, z, -vec.getY());
    }
}
 
開發者ID:grondag,項目名稱:Hard-Science,代碼行數:45,代碼來源:CubicQuadPainterBigTex.java

示例11: transform

import net.minecraft.util.math.Vec3i; //導入方法依賴的package包/類
/** returns a copy of this quad with the given transformation applied */
public RawQuad transform(Matrix4d matrix)
{
    RawQuad result = this.clone();
    
    // transform vertices
    for(int i = 0; i < result.vertexCount; i++)
    {
        Vertex vertex = result.getVertex(i);
        Vector4d temp = new Vector4d(vertex.x, vertex.y, vertex.z, 1.0);
        matrix.transform(temp);
        if(Math.abs(temp.w - 1.0) > 1e-5) temp.scale(1.0 / temp.w);
        result.setVertex(i, vertex.withXYZ(temp.x, temp.y, temp.z));
    }
    
    // transform nominal face
    // our matrix transform has block center as its origin,
    // so need to translate face vectors to/from block center 
    // origin before/applying matrix.
    if(this.face != null)
    {
        Vec3i curNorm = this.face.getDirectionVec();
        Vector4d newFaceVec = new Vector4d(curNorm.getX() + 0.5, curNorm.getY() + 0.5, curNorm.getZ() + 0.5, 1.0);
        matrix.transform(newFaceVec);
        newFaceVec.x -= 0.5;
        newFaceVec.y -= 0.5;
        newFaceVec.z -= 0.5;
        result.setFace(QuadHelper.computeFaceForNormal(newFaceVec));
    }
    
    return result;
}
 
開發者ID:grondag,項目名稱:Hard-Science,代碼行數:33,代碼來源:RawQuad.java

示例12: canPlaceOn

import net.minecraft.util.math.Vec3i; //導入方法依賴的package包/類
private boolean canPlaceOn(World worldIn, BlockPos pos) {

        IBlockState state = worldIn.getBlockState(pos);
        boolean canPlaceAt = (state.getBlock().canSpawnInBlock()
                || state.getBlock().canPlaceTorchOnTop(state, worldIn, pos))
                && state.getBlock().isFullBlock(state);

        BlockPos adjustedPos = new BlockPos(pos.getX(), pos.getY() + 1, pos.getZ());

        // Can't place if there is already an offering box who has claimed this
        if (canPlaceAt) {
            // Check for adjacent totem
            for (EnumFacing direction : EnumFacing.HORIZONTALS) {
                Vec3i dirVec = direction.getDirectionVec();
                BlockPos posToCheck = new BlockPos(adjustedPos.getX() + dirVec.getX(), adjustedPos.getY(), adjustedPos.getZ() + dirVec.getZ());
                TileEntity te = worldIn.getTileEntity(posToCheck);

                if (te != null
                        && te instanceof TotemTileEntity
                        && ((TotemTileEntity) te).getMaster() != null) {

                    TileEntity master = (TileEntity) ((TotemTileEntity) te).getMaster();
                    //FMLLog.log(Level.ERROR, "masterPos: " + master.getPos() + " adjustedPos: " + adjustedPos);
                    if (!master.getPos().equals(adjustedPos)) {
                        canPlaceAt = false;
                        break;
                    }
                }
            }
        }
        return canPlaceAt;
    }
 
開發者ID:CorwinJV,項目名稱:MobTotems,代碼行數:33,代碼來源:OfferingBox.java

示例13: onBaubleActivated

import net.minecraft.util.math.Vec3i; //導入方法依賴的package包/類
@Override
public void onBaubleActivated(ItemStack stack, EntityPlayer player) {
    if (!player.world.isRemote) {
        if (!hasValidNbt(stack)) {
            return;
        }

        NBTTagCompound tagCompound = stack.getTagCompound();
        NBTTagCompound wolfTotemCompound = tagCompound.getCompoundTag(WOLF_TOTEM_COMPOUND);

        EntitySpiritWolf spiritWolf = getWolf(stack, player.world);
        if (spiritWolf == null
                && tagCompound.getInteger(CHARGE_LEVEL) > 0) {
            //FMLLog.log(Level.INFO, "spiritWolf is null and charge is greater than zero");
            Vec3i facingVec = player.getHorizontalFacing().getDirectionVec();
            double posX = player.posX + (facingVec.getX() * SPAWN_DISTANCE);
            double posY = player.posY;
            double posZ = player.posZ + (facingVec.getZ() * SPAWN_DISTANCE);

            // Check if spawn location is occupied by a solid block
            BlockPos blockPos = new BlockPos((int) posX, (int) posY, (int) posZ);
            if (!BlockUtils.isAreaSolid(player, blockPos)) {
                spiritWolf = spawnSpiritWolf(player.world, posX, posY, posZ);
                spiritWolf.tame(player);

                wolfTotemCompound.setString(WOLF_ID, spiritWolf.getPersistentID().toString());
            }
        } else if (spiritWolf != null) {
            //FMLLog.log(Level.INFO, "spiritWolf ain't dead. Killing and saving now.");
            spiritWolf.setDead();
            wolfTotemCompound.setString(WOLF_ID, "");
        }
        tagCompound.setTag(WOLF_TOTEM_COMPOUND, wolfTotemCompound);
    }
}
 
開發者ID:CorwinJV,項目名稱:MobTotems,代碼行數:36,代碼來源:WolfTotemBauble.java

示例14: placeRuneAtEntity

import net.minecraft.util.math.Vec3i; //導入方法依賴的package包/類
private void placeRuneAtEntity(IRune rune, ItemStack[][] pattern,World world, BlockPos lookPos, EnumFacing playerFacing,EntityPlayer player) {
	Vec3i pos = rune.getEntityPosition();
	int dX = pos.getX(),dY = pos.getY();
	EnumFacing left = playerFacing.rotateYCCW();
	BlockPos newTL = lookPos.offset(left, dX).offset(playerFacing, dY);
	PlacePatternTopLeft(pattern, world, newTL, playerFacing, player);
}
 
開發者ID:Xilef11,項目名稱:Runes-of-Wizardry,代碼行數:8,代碼來源:CommandImportPattern.java

示例15: makePlane

import net.minecraft.util.math.Vec3i; //導入方法依賴的package包/類
/**
 * Makes a flat plane along two directions
 */
public static void makePlane(int startX, int startY, int startZ, int width, int height, EnumFacing right, EnumFacing up, IShapeable shapeable) {
	if (width < 0 || height < 0) return;
	int lineOffsetX, lineOffsetY, lineOffsetZ;
	// We offset each line by up, and then apply it right

	final Vec3i v = up.getDirectionVec();
	for (int h = 0; h <= height; h++) {
		lineOffsetX = startX + (h * v.getX());
		lineOffsetY = startY + (h * v.getY());
		lineOffsetZ = startZ + (h * v.getZ());
		makeLine(lineOffsetX, lineOffsetY, lineOffsetZ, right, width, shapeable);
	}
}
 
開發者ID:OpenMods,項目名稱:OpenModsLib,代碼行數:17,代碼來源:GeometryUtils.java


注:本文中的net.minecraft.util.math.Vec3i.getX方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。