-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);

そしてここで、丸石ブロックを置いたブロックポスの東にレバーの位置があります。

どんなコードを使用しても、プレーヤーが向いている方向を識別できます

次に、その場所のレバーに対して単純な 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 に答える