当前位置: 首页 > 知识库问答 >
问题:

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

谈渊
2023-03-14

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

我可以使用

Block b = world.getBlock(x,y,z);

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

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

Block b = Blocks.stone_stairs;

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

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

共有2个答案

都超英
2023-03-14

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

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

从文档中:

旋转块。对于vanilla块,它围绕传入的轴旋转(通常,它应该是被击中的“面”)。注意:对于mod块,这取决于块和modder。它不强制要求围绕人脸旋转,但可以是朝向该人脸的旋转,或访问可能的旋转。但是,如果旋转成功,该方法应返回true。

巫马刚洁
2023-03-14

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

 类似资料:
  • 下面是我已经拥有的代码:

  • 在recyclerView中获取已点击项目的位置,我在recyclerView中创建cardview和链接 我想获取位置,将开关盒设置为每个卡视图的意向活动 当我点击card view I时,他会打开另一个页面,当你点击card view 2时,他会打开另一个页面。 看看我的密码 在recyclerView中获取已点击项目的位置,我在recyclerView中创建cardview和链接 我想获取位

  • 我有一个多模块Spring引导梯度项目。我在每个模块yml文件中都有指向数据库的属性:user、pass、URL。 这是一个可行的解决方案,但很难改变项目数据库。每次我想切换数据库用户或url,我必须改变10+yml文件。 如何避免这一点?

  • 我想在我的项目中使用backpack来操作RESTAPI数据。 我总是使用背包来管理数据,使用雄辩的模型,而没有REST。 但现在我想从控制器中的api请求数据,并将其显示在背包crud表中。 我可以用guzzer请求数据,用

  • 我有一个多模块java项目,我想在其中创建jar(bin、source、javadoc),但我很难从子项目配置中的子项目中获取变量。 这是我在根项目中的build.gradle文件: 这就是建筑。gradle文件子项目之一: 当我想运行构建脚本时,我得到了以下异常: 无法获取类型为org的对象的未知属性“mainClassName”。格雷德尔。应用程序编程接口。JAVA档案内部的默认舱单。 在子流

  • 在为Minecraft制作插件的过程中,我发现了一个似乎无法克服的问题。所以问题是,我想得到放置的菱形块的位置,这样我就可以在该块周围检查其他块。我想做一个自动化农业插件 “到目前为止,我一直试图用 和 但是