【问题标题】:Minecraft Forge 1.7.10: How to place a block on certain coordinates?Minecraft Forge 1.7.10:如何在特定坐标上放置方块?
【发布时间】:2016-04-01 22:33:52
【问题描述】:

我正在创建一个模组,我想在指定的坐标上放置一个方块,我该怎么做?我正在使用 Minecraft Forge 1.7.10。 我检查了 Block.class 和 World.class 但我没有找到这样做的东西.. 如果有人可以提供帮助,我将不胜感激。 最好的,

【问题讨论】:

    标签: coordinates block minecraft minecraft-forge


    【解决方案1】:

    有几个设置块的World 方法。您需要确保的一件事是您需要在 mod 的服务器端调用它们,而不是在客户端。如果从服务器端调用(使用正确的方法),那么它会自动将块更改发送给附近的所有玩家(并存储块更改)。您可以从服务器端或客户端调用这些方法,但通常您只想从服务器端调用它们(您可以检查WorldisRemote 字段 - 如果它是真的那么它在客户端上;当它是错误的时候,你只会想要真正做一些事情)。有时从客户端和服务器调用确实是有意义的(例如,一个总是改变块的项目,只是为了让玩家不需要处理延迟),但你总是想用服务器来改变它.

    现在,有几个类似setBlock 的方法。您最感兴趣的是setBlock 的4 参数方法。此方法采用 x、y 和 z 坐标,然后设置 Block。如果要添加元数据,则需要使用 6 参数方法,其中包含 x、y、z、Block、元数据,然后是 flags 参数。这个 flags 参数做了几件事,但您通常希望将其设置为 3,以便它导致块更新,将更改发送到客户端,并且不会跳过渲染。 4 参数方法简单地调用元数据值为 0 和标志值为 3 的 6 参数方法。

    所以:

    if (!world.isRemote) {
        // Sets the block at 9, 64, 20 to dirt
        world.setBlock(9, 64, 20, Blocks.dirt);
    
        // Sets the block at 9, 64, 21 to wool:15, IE black wool
        world.setBlock(9, 64, 21, Blocks.wool, 15, 3);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-25
      • 1970-01-01
      相关资源
      最近更新 更多