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

How do I get and set the Metadata Value for a block item in Minecraft?

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

我可以使用

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

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

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

Block b = Blocks.stone_stairs;

但同样,我现在如何将此块设置为特定方向?我知道您可以在创建 ItemStack 时执行此操作,但在这种情况下,我想要一个可以传递给 world.setBlock().

的 Block 对象

我似乎找不到任何方法来获取和设置该值。

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

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

来自文档:

Rotate the block. For vanilla blocks this rotates around the axis passed in (generally, it should be the "face" that was hit). Note: for mod blocks, this is up to the block and modder to decide. It is not mandated that it be a rotation around the face, but could be a rotation to orient to that face, or a visiting of possible rotations. The method should return true if the rotation was successful though.

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