-1

在我的 minecraft mod 中,我正在尝试编写一段代码,将块放置在给定位置,并在放置块后在该块上放置一个杠杆。

我怎样才能做到这一点?

这是我放置必须放置杠杆的块的代码。

BlockPos blockpos = new BlockPos(player.posX  + x*2 + xOffset,  
                                 player.posY /*+  player.getEyeHeight() + y*2 */+ counter, 
                                 player.posZ + z* 2);

world.setBlockState(blockpos, 
                    Blocks.cobblestone.getDefaultState());

所以基本上,我想知道在放置后将杠杆放置在这个块上的功能。

或者,如果有一些特殊类型的块默认带有杠杆,我想使用它。当你点击控制杆时,我想让一个事件发生。

4

1 回答 1

2

你有 blockpos 对象。您可以使用以下函数获取相对于此 blockpos 的新 blockpos:

//Assuming we are using your blockpos object
BlockPos leverPosition = blockpos.offset(EnumFacing.EAST);

在这里,您的杠杆位置位于放置鹅卵石块的 blockpos 的东边。

使用任何你想要的代码都可以辨别玩家面对的方向

然后你为那个位置的控制杆做一个简单的 setBlockState ,东西应该会自己整理出来:-)

从评论:

 IBlockState leverState = Blocks
                         .lever
                         .getDefaultState()
                         .withProperty(BlockLever.FACING,                  
                                       BlockLever.EnumOrientation.SOUTH
                                       );
  world.setBlockState(startPosition.offset(EnumFacing.SOUTH), leverState);
于 2016-02-18T07:28:14.857 回答