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


Java AxisDirection类代码示例

本文整理汇总了Java中net.minecraft.util.EnumFacing.AxisDirection的典型用法代码示例。如果您正苦于以下问题:Java AxisDirection类的具体用法?Java AxisDirection怎么用?Java AxisDirection使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


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

示例1: internalGetCoreOffset

import net.minecraft.util.EnumFacing.AxisDirection; //导入依赖的package包/类
private BlockPos internalGetCoreOffset(EnumFacing facing)
{
    BlockPos rtn = BlockPos.ORIGIN;

    if (this.getLength() % 2 == 0 || this.getWidth() % 2 == 0)
    {
        if (this.getWidth() % 2 == 0 && facing.getAxis() == Axis.Z
                && facing.getAxisDirection() == AxisDirection.NEGATIVE)
            rtn = rtn.add(-1, 0, 0);
        if (this.getWidth() % 2 == 0 && facing.getAxis() == Axis.X
                && facing.getAxisDirection() == AxisDirection.POSITIVE)
            rtn = rtn.add(0, 0, -1);
        if (this.getLength() % 2 == 0 && facing.getAxis() == Axis.Z
                && facing.getAxisDirection() == AxisDirection.NEGATIVE)
            rtn = rtn.add(0, 0, -1);
        if (this.getLength() % 2 == 0 && facing.getAxis() == Axis.X
                && facing.getAxisDirection() == AxisDirection.NEGATIVE)
            rtn = rtn.add(-1, 0, 0);
    }
    return rtn;
}
 
开发者ID:OPMCorp,项目名称:Qbar,代码行数:22,代码来源:MultiblockComponent.java

示例2: onRuneActivatedbyPlayer

import net.minecraft.util.EnumFacing.AxisDirection; //导入依赖的package包/类
@Override
public void onRuneActivatedbyPlayer(EntityPlayer player,ItemStack[] sacrifice, boolean negated) {
	World world = player.world;
	if(!world.isRemote){
		//take xp if not negated
		if(!negated){
			if(player.experienceLevel>=10){
				player.addExperienceLevel(-10);
			}else{
				//kill the rune
				this.onPatternBrokenByPlayer(player);
				return;
			}
		}
		double x,y,z,offset=0.25;
		x=y=z=0;
		int dir = face.getAxisDirection()==AxisDirection.NEGATIVE? -1:1;
		switch(face.getAxis()){
		case X:x=offset*dir;
			break;
		case Y:y=offset*dir;
			break;
		case Z:z=offset*dir;
			break;
		}
		entity.setupStar(0xFFFFFF, 0xFFFFFF,1,1,new Vec3d(x, y, z));
		entity.setDrawStar(true);
	}
}
 
开发者ID:Xilef11,项目名称:runesofwizardry-classics,代码行数:30,代码来源:RuneEntityRebirth.java

示例3: getPointsForFace

import net.minecraft.util.EnumFacing.AxisDirection; //导入依赖的package包/类
/**
 * A method for calculating the points of a face for an axis-aligned cuboid, with a given center and radius.
 */
public static Point3f[] getPointsForFace(EnumFacing face, Tuple3f center, Tuple3f radius) {
	Point3f centerOfFace = new Point3f(center);
	Point3f faceAdd = new Point3f(face.getFrontOffsetX() * radius.x, face.getFrontOffsetY() * radius.y, face.getFrontOffsetZ() * radius.z);
	centerOfFace.add(faceAdd);
	Vector3f faceRadius = new Vector3f(radius);
	if (face.getAxisDirection() == AxisDirection.POSITIVE) {
		faceRadius.sub(faceAdd);
	} else {
		faceRadius.add(faceAdd);
	}
	return getPoints(centerOfFace, faceRadius);
}
 
开发者ID:EnderiumSmith,项目名称:Nuclear-Foundation,代码行数:16,代码来源:ModelUtil.java

示例4: makeBox

import net.minecraft.util.EnumFacing.AxisDirection; //导入依赖的package包/类
private List<RawQuad> makeBox(@Nonnull EnumFacing face, @Nonnull RawQuad template, boolean isBothEnds)
{
    AxisAlignedBB aabb;
    
    switch(face.getAxis())
    {
    case X:
        aabb = isBothEnds 
            ? new AxisAlignedBB(0.0, yLow, xzMin, 1.0, yHigh, xzMax)
            : face.getAxisDirection() == AxisDirection.POSITIVE
                ? new AxisAlignedBB(xzMin, yLow, xzMin, 1.0, yHigh, xzMax)
                : new AxisAlignedBB(0.0, yLow, xzMin, xzMax, yHigh, xzMax);  
        break;
        
    case Y:
        aabb = isBothEnds 
            ? new AxisAlignedBB(xzMin, 0.0, xzMin, xzMax, 1.0, xzMax)
            : face.getAxisDirection() == AxisDirection.POSITIVE
                ? new AxisAlignedBB(xzMin, yLow, xzMin, xzMax, 1.0, xzMax)
                : new AxisAlignedBB(xzMin, 0.0, xzMin, xzMax, yHigh, xzMax);  
        break;
        
    case Z:
    default:
        aabb = isBothEnds 
            ? new AxisAlignedBB(xzMin, yLow, 0.0, xzMax, yHigh, 1.0)
            : face.getAxisDirection() == AxisDirection.POSITIVE
                ? new AxisAlignedBB(xzMin, yLow, xzMin, xzMax, yHigh, 1.0)
                : new AxisAlignedBB(xzMin, yLow, 0.0, xzMax, yHigh, xzMax);  
        break;
    
    }
    return QuadHelper.makeBox(aabb, template);
}
 
开发者ID:grondag,项目名称:Hard-Science,代码行数:35,代码来源:CableMeshFactory.java

示例5: adjustArea

import net.minecraft.util.EnumFacing.AxisDirection; //导入依赖的package包/类
public Area3D adjustArea(EnumFacing facing, int amount)
{
    if (facing.getAxisDirection() == AxisDirection.POSITIVE)
    {
        this.pos.move(facing, amount);
        this.clampBounds(this.pos);
    }
    else
    {
        this.neg.move(facing, -amount);
        this.clampBounds(this.neg);
    }

    return this;
}
 
开发者ID:maruohon,项目名称:enderutilities,代码行数:16,代码来源:ItemBuildersWand.java

示例6: renderTileEntityAt

import net.minecraft.util.EnumFacing.AxisDirection; //导入依赖的package包/类
@Override
public void renderTileEntityAt(TileEntityCreativeCell te, double x, double y, double z, float partialTicks, int destroyStage, IBlockState state) {
	GlStateManager.pushMatrix();// main
	GlStateManager.enableTexture2D();
	GlStateManager.enableBlend();
	GlStateManager.disableLighting();
	GlStateManager.pushMatrix();// side
	Tessellator tessellator = Tessellator.getInstance();
	VertexBuffer renderer = tessellator.getBuffer();
	double u1 = 0.0D, v1 = 1.0D, u2 = 1.0D, v2 = 0.0D;
	int w = 1;
	int h = 1;
	bindTexture(new ResourceLocation("tomsmodenergy:textures/blocks/energyCellOut.png"));
	try {
		for (EnumFacing f : EnumFacing.VALUES) {
			if (te.contains(f)) {
				boolean isPositive = f.getAxisDirection() == AxisDirection.POSITIVE;
				if (f.getAxis() == Axis.X) {
					if (isPositive) {
						renderer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX);
						renderer.pos(x + 1.001, y, z + w).tex(u2, v1).endVertex();
						renderer.pos(x + 1.001, y, z).tex(u1, v1).endVertex();
						renderer.pos(x + 1.001, y + h, z).tex(u1, v2).endVertex();
						renderer.pos(x + 1.001, y + h, z + w).tex(u2, v2).endVertex();
						tessellator.draw();
						continue;
					} else {
						renderer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX);
						renderer.pos(x - 0.001, y, z - w + 1).tex(u2, v1).endVertex();
						renderer.pos(x - 0.001, y, z + 1).tex(u1, v1).endVertex();
						renderer.pos(x - 0.001, y + h, z + 1).tex(u1, v2).endVertex();
						renderer.pos(x - 0.001, y + h, z - w + 1).tex(u2, v2).endVertex();
						tessellator.draw();
						continue;
					}
				} else if (f.getAxis() == Axis.Y) {
					if (isPositive) {
						renderer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX);
						renderer.pos(x + w, y + 1.001, z).tex(u2, v1).endVertex();
						renderer.pos(x, y + 1.001, z).tex(u1, v1).endVertex();
						renderer.pos(x, y + 1.001, z + h).tex(u1, v2).endVertex();
						renderer.pos(x + w, y + 1.001, z + h).tex(u2, v2).endVertex();
						tessellator.draw();
						continue;
					} else {
						renderer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX);
						renderer.pos(x - w + 1, y - 0.001, z).tex(u2, v1).endVertex();
						renderer.pos(x + 1, y - 0.001, z).tex(u1, v1).endVertex();
						renderer.pos(x + 1, y - 0.001, z + h).tex(u1, v2).endVertex();
						renderer.pos(x - w + 1, y - 0.001, z + h).tex(u2, v2).endVertex();
						tessellator.draw();
						continue;
					}
				} else {
					if (isPositive) {
						renderer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX);
						renderer.pos(x - w + 1, y, z + 1.001).tex(u2, v1).endVertex();
						renderer.pos(x + 1, y, z + 1.001).tex(u1, v1).endVertex();
						renderer.pos(x + 1, y + h, z + 1.001).tex(u1, v2).endVertex();
						renderer.pos(x - w + 1, y + h, z + 1.001).tex(u2, v2).endVertex();
						tessellator.draw();
						continue;
					}
				}
				renderer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX);
				renderer.pos(x + w, y, z - 0.001).tex(u2, v1).endVertex();
				renderer.pos(x, y, z - 0.001).tex(u1, v1).endVertex();
				renderer.pos(x, y + h, z - 0.001).tex(u1, v2).endVertex();
				renderer.pos(x + w, y + h, z - 0.001).tex(u2, v2).endVertex();
				tessellator.draw();
			}
		}
	} catch (Exception e) {
	}
	GlStateManager.disableBlend();
	GlStateManager.popMatrix();// side
	GlStateManager.enableLighting();
	GlStateManager.popMatrix();// main
}
 
开发者ID:tom5454,项目名称:Toms-Mod,代码行数:80,代码来源:TileEntityCreativeCellRenderer.java

示例7: getPlacementResults

import net.minecraft.util.EnumFacing.AxisDirection; //导入依赖的package包/类
public List<Pair<BlockPos, ItemStack>> getPlacementResults(EntityPlayer playerIn, World worldIn, BlockPos posOn, EnumHand hand, EnumFacing facing, float hitX,
        float hitY, float hitZ, ItemStack stack)
{

    if(!(stack.getItem() instanceof SuperItemBlock)) return Collections.emptyList();
    
    PlacementItem item = (PlacementItem)stack.getItem();
    
    if(item.isBlockOrientationFixed(stack)) 
        return CubicPlacementHandler.INSTANCE.getPlacementResults(playerIn, worldIn, posOn, hand, facing, hitX, hitY, hitZ, stack);

    final SuperBlock stackBlock = (SuperBlock) ((SuperItemBlock)stack.getItem()).getBlock();
    final ModelState stackModelState = PlacementItem.getStackModelState(stack);

    final IBlockState onBlockState = worldIn.getBlockState(posOn);

    if(onBlockState.getBlock() instanceof SuperBlock)
    {
        final SuperBlock onBlock = (SuperBlock) onBlockState.getBlock();
        final ModelState onModelState = onBlock.getModelStateAssumeStateIsCurrent(onBlockState, worldIn, posOn, true);

        if(onBlock == stackBlock 
                && onModelState != null
                && onModelState.getShape() == stackModelState.getShape()
                && onModelState.doesAppearanceMatch(stackModelState)) 
        {
            // target is this additive block

            if(!onModelState.hasAxis() 
                    || (onModelState.getAxis() == facing.getAxis()
                    && (!onModelState.hasAxisOrientation() || onModelState.isAxisInverted() == (facing.getAxisDirection() == AxisDirection.NEGATIVE))))
            {
                // we clicked on an additive face
                
                // confirm have space to add - the ItemStack handler will allow us to get 
                // here if the adjacent position contains another additive block
                if(onModelState.getMetaData() < 0xF || WorldHelper.isBlockReplaceable(worldIn, posOn.offset(facing), !VirtualBlock.isVirtualBlock(stackBlock)))
                {
                    return addToBlockAtPosition(worldIn, stack, stackModelState, onModelState, posOn);
                }
            }
        }
    }
    
    // is there an additive block against the face we clicked?
    final BlockPos facePos = posOn.offset(facing);
    final IBlockState faceBlockState = worldIn.getBlockState(facePos);
    if(faceBlockState.getBlock() instanceof SuperBlock)
    {
        final SuperBlock faceBlock = (SuperBlock) faceBlockState.getBlock();
        final ModelState faceModelState = faceBlock.getModelStateAssumeStateIsCurrent(faceBlockState, worldIn, facePos, true);

        if((    faceBlock == stackBlock 
                && faceModelState.getShape() == stackModelState.getShape())
                && faceModelState.doesAppearanceMatch(stackModelState)) 
         {
            // add to the adjacent block 
            return addToBlockAtPosition(worldIn, stack, stackModelState, faceModelState, facePos);
         }
    }

    // fall back to standard placement logic
    return CubicPlacementHandler.INSTANCE.getPlacementResults(playerIn, worldIn, posOn, hand, facing, hitX, hitY, hitZ, stack);

}
 
开发者ID:grondag,项目名称:Hard-Science,代码行数:66,代码来源:AdditivePlacementHandler.java

示例8: applyDynamicOrientation

import net.minecraft.util.EnumFacing.AxisDirection; //导入依赖的package包/类
/** handle hit-sensitive placement for stairs, wedges */
public static void applyDynamicOrientation(ItemStack stack, EntityPlayer player, PlacementPosition pPos)
{
    ModelState outputModelState = PlacementItem.getStackModelState(stack);

    boolean isRotationDone = false;

    if(outputModelState.isAxisOrthogonalToPlacementFace())
    {
        EnumFacing adjacentFace = WorldHelper.closestAdjacentFace(
                pPos.onFace, 
                (float)pPos.hitX, 
                (float)pPos.hitY, 
                (float)pPos.hitZ);

        BlockCorner corner = BlockCorner.find(pPos.onFace.getOpposite(), adjacentFace);

        if(corner == null)
        {
            Log.warn("Unable to find block corner from placement. This is very strange but probably harmless.");
        }
        else
        {
            outputModelState.setAxis(corner.orthogonalAxis);

            if(outputModelState.hasAxisRotation())
            {
                outputModelState.setAxisRotation(corner.modelRotation);
                isRotationDone = true;
            }
        }
    }
    else
    {
        outputModelState.setAxis(pPos.onFace.getAxis());
        if(outputModelState.hasAxisOrientation())
        {
            outputModelState.setAxisInverted(pPos.onFace.getAxisDirection() == AxisDirection.NEGATIVE);
        }
    }

    if(!isRotationDone && outputModelState.hasAxisRotation())
    {
        outputModelState.setAxisRotation(
                Rotation.fromHorizontalFacing(player.getHorizontalFacing().getOpposite()));
    }
    
    PlacementItem.setStackModelState(stack, outputModelState);
}
 
开发者ID:grondag,项目名称:Hard-Science,代码行数:50,代码来源:BlockOrientationHandler.java


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