Minecraft Forge 1.7.10:如何在特定坐标上放置方块?
Minecraft Forge 1.7.10: How to place a block on certain coordinates?
我正在创建一个 Mod,我想在指定的坐标上放置一个方块,我该怎么做?我正在使用 Minecraft Forge 1.7.10。
我检查了 Block.class 和 World.class 但我没有找到这样做的东西..
如果有人可以提供帮助,我将不胜感激。
最好的,
设置方块的方法有多种World
。您需要确保的一件事是您需要在 mod 的服务器端调用它们,而不是在客户端。如果从服务器端调用(使用正确的方法),那么它会自动将方块变化发送给所有附近的玩家(并存储方块变化)。您可以从服务器端或客户端调用这些方法,但通常您只想从服务器端调用它们(您可以检查 World
的 isRemote
字段 - 如果为真,则为在客户端上;您只会在它为假时才想实际做事)。有时从客户端和服务器调用确实有意义(例如,一个总是改变方块的项目,这样玩家就不需要处理延迟),但你总是也想用服务器改变它.
现在,有几种类似 setBlock
的方法。您最感兴趣的是 setBlock
的 4 参数方法。此方法采用 x、y 和 z 坐标,然后设置 Block
。如果要添加元数据,则需要使用 6 参数方法,其中包含 x、y、z、Block
、元数据,然后是 flags
参数。这个 flags 参数做几件事,但您通常希望将它设置为 3,这样它会导致块更新,将更改发送到客户端,并且不会跳过渲染。 4参数方法只是调用6参数方法,metadata值为0,flags值为3。
所以:
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);
}
我正在创建一个 Mod,我想在指定的坐标上放置一个方块,我该怎么做?我正在使用 Minecraft Forge 1.7.10。 我检查了 Block.class 和 World.class 但我没有找到这样做的东西.. 如果有人可以提供帮助,我将不胜感激。 最好的,
设置方块的方法有多种World
。您需要确保的一件事是您需要在 mod 的服务器端调用它们,而不是在客户端。如果从服务器端调用(使用正确的方法),那么它会自动将方块变化发送给所有附近的玩家(并存储方块变化)。您可以从服务器端或客户端调用这些方法,但通常您只想从服务器端调用它们(您可以检查 World
的 isRemote
字段 - 如果为真,则为在客户端上;您只会在它为假时才想实际做事)。有时从客户端和服务器调用确实有意义(例如,一个总是改变方块的项目,这样玩家就不需要处理延迟),但你总是也想用服务器改变它.
现在,有几种类似 setBlock
的方法。您最感兴趣的是 setBlock
的 4 参数方法。此方法采用 x、y 和 z 坐标,然后设置 Block
。如果要添加元数据,则需要使用 6 参数方法,其中包含 x、y、z、Block
、元数据,然后是 flags
参数。这个 flags 参数做几件事,但您通常希望将它设置为 3,这样它会导致块更新,将更改发送到客户端,并且不会跳过渲染。 4参数方法只是调用6参数方法,metadata值为0,flags值为3。
所以:
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);
}