我正在使用Minecraft Forge编写一个Minecraft模块。
我可以使用以下方法从世界中获取一个方块对象:
Block b = world.getBlock(x,y,z);
然而,现在我有了这个方块,如何找出元数据呢?如果这个方块是StoneSteps方块,那么我想知道它的方向,这个信息保存在元数据中。
同样地,我该如何设置这个值呢?我可以很容易地创建一个新的方块:
Block b = Blocks.stone_stairs;
但是,我现在该如何将这个方块设置为特定的方向呢?我知道在创建ItemStack时可以这样做,但在这种情况下,我想要一个可以传递给world.setBlock()
的Block对象。
我找不到任何获取和设置此值的方法。
world.getBlock(int.int,int)
和world.getBlockMetadata(int,int,int)
。然而,在1.8下,您只有world.getBlockState(BlockPos)
。'state'是一个新的MC1.8对象,它结合了块类型、数据值,甚至是相应瓦片实体的方面。然后,您可以从状态中提取DV;要设置,您需要从块类型和元数据创建一个新的块状态,然后使用setBlockState()
。 - Steve Shipway