如何在 Minecraft Forge 中使用 java 在方块上放置杠杆?
How to place a lever on a block using java in 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());
基本上,我想知道在放置杠杆后将其放置在该块上的功能。
或者如果有一些特殊类型的块默认带有杠杆,我想使用它。当你点击控制杆时,我想让一个事件发生。
您有 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);
在我的 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());
基本上,我想知道在放置杠杆后将其放置在该块上的功能。
或者如果有一些特殊类型的块默认带有杠杆,我想使用它。当你点击控制杆时,我想让一个事件发生。
您有 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);