如何改变活塞方向?
How to change a piston direction?
我需要一些帮助来改变以编程方式放置活塞的方向。
我使用这种方法将我的块类型设置为活塞:
block.setType(Material.PISTON_BASE);
但是我找不到改变它的方向的方法,把它指向下方
您可以使用以下方法设置它:
block.setTypeIdAndData(33, (byte)direction, false);
如果您想放置粘性活塞,请使用 29
作为第一个参数。
方向值如下:
0: Down
1: Up
2: North
3: South
4: West
5: East
对于最后一个参数,false
表示禁用由块放置引起的不必要的块更新。
Bukkit 有使用 MaterialData api 改变活塞朝向的实用方法,这个 api 可以按如下方式使用:
Block block = ....;
BlockState state = block.getState();
PistonBaseMaterial piston = (PistonBaseMaterial)state.getData();
piston.setFacingDirection(BlockFace.NORTH);
piston.setFacingDirection(BlockFace.SOUTH);
piston.setFacingDirection(BlockFace.WEST);
piston.setFacingDirection(BlockFace.EAST);
piston.setFacingDirection(BlockFace.UP);
piston.setFacingDirection(BlockFace.DOWN);
state.setData(piston);
state.update();
在方向之外,我们也可以通过调用piston.setPowered(true/false);
来power/unpower活塞。我们还可以通过调用方法 piston.isSticky()
轻松检查活塞是否为粘性活塞,而无需依赖其他已弃用的方法,因为我们不再使用 "magic id's"。
我需要一些帮助来改变以编程方式放置活塞的方向。
我使用这种方法将我的块类型设置为活塞:
block.setType(Material.PISTON_BASE);
但是我找不到改变它的方向的方法,把它指向下方
您可以使用以下方法设置它:
block.setTypeIdAndData(33, (byte)direction, false);
如果您想放置粘性活塞,请使用 29
作为第一个参数。
方向值如下:
0: Down
1: Up
2: North
3: South
4: West
5: East
对于最后一个参数,false
表示禁用由块放置引起的不必要的块更新。
Bukkit 有使用 MaterialData api 改变活塞朝向的实用方法,这个 api 可以按如下方式使用:
Block block = ....;
BlockState state = block.getState();
PistonBaseMaterial piston = (PistonBaseMaterial)state.getData();
piston.setFacingDirection(BlockFace.NORTH);
piston.setFacingDirection(BlockFace.SOUTH);
piston.setFacingDirection(BlockFace.WEST);
piston.setFacingDirection(BlockFace.EAST);
piston.setFacingDirection(BlockFace.UP);
piston.setFacingDirection(BlockFace.DOWN);
state.setData(piston);
state.update();
在方向之外,我们也可以通过调用piston.setPowered(true/false);
来power/unpower活塞。我们还可以通过调用方法 piston.isSticky()
轻松检查活塞是否为粘性活塞,而无需依赖其他已弃用的方法,因为我们不再使用 "magic id's"。