如何获取和设置 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);
。
我正在使用 Minecraft Forge 编写 Minecraft 模块。
我可以使用
从世界中检索块对象Block b = world.getBlock(x,y,z);
但是,既然我有了块,我该如何找出元数据?如果方块是 StoneSteps 方块,那么我想知道它的方向,它保存在元数据中。
同样,如何设置这个值?我可以简单地创建一个新块:
Block b = Blocks.stone_stairs;
但同样,我现在如何将此块设置为特定方向?我知道您可以在创建 ItemStack 时执行此操作,但在这种情况下,我想要一个可以传递给 world.setBlock()
.
我似乎找不到任何方法来获取和设置该值。
您可以通过以下方式旋转方块:
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);
。