如何在Minecraft Forge中使用java在块上放置一个杠杆?

时间:2016-02-17 07:49:55

标签: java minecraft minecraft-forge

在我的我的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());

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

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

1 个答案:

答案 0 :(得分:2)

你有阻挡物体。您可以使用以下函数获取相对于此阻挡点的新阻挡点:

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

在这里,您可以在阻挡区的东边放置您的控制杆位置,放置您的鹅卵石块。

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

然后你为那个位置的杠杆做一个简单的setBlockState,东西应该自行排序: - )

来自评论:

 IBlockState leverState = Blocks
                         .lever
                         .getDefaultState()
                         .withProperty(BlockLever.FACING,                  
                                       BlockLever.EnumOrientation.SOUTH
                                       );
  world.setBlockState(startPosition.offset(EnumFacing.SOUTH), leverState);