如何在Minecraft中获取和设置块项目的元数据值?

时间:2015-01-02 13:54:36

标签: java minecraft minecraft-forge

我正在使用Minecraft Forge编写Minecraft模块。

我可以使用

从世界中检索一个Block对象
Block b = world.getBlock(x,y,z);

然而,现在我有了块,我如何找到元数据?如果块是StoneSteps块,那么我想知道它的方向,它在元数据中保存。

同样,我该如何设置此值?我可以简单地创建一个新块:

Block b = Blocks.stone_stairs;

但同样,我现在如何将此块设置为特定方向?我知道你可以在创建ItemStack时这样做,但在这种情况下,我想要一个可以传递给world.setBlock()的Block对象。

似乎没有任何方法可以找到并设置此值。

2 个答案:

答案 0 :(得分:1)

您可以通过以下方式旋转块:

yourBlock.rotateBlock(World someWorld, int x, int y, int z, ForgeDirection axis);

来自文档:

  

旋转块。对于香草块,它围绕传入的轴旋转(通常,它应该是"面部"被击中)。   注意:对于mod块,这取决于块和modder来决定。它不是强制要求围绕面部旋转,而是可以是旋转以将定向到面部,或访问可能的旋转。   如果旋转成功,该方法应该返回true。

答案 1 :(得分:1)

您可以将world.getBlockState(BlockPos);用于Minecraft 1.8或getBlockMetadata(int x, int y, int z);用于Minecraft 1.7.10。