如何在玩家左键方块时获得左键的表面

Billy_tang


版本信息
Forge版本: 14.23.5.2768
Minecraft版本: 1.12.2

问题
想要在玩家左键方块时获得所左键的表面。
但是onBlockClicked(左键)和onBlockActivated(右键)方法不一样,并不传递EnumFacing变量。

相关代码
Block.class

public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ)
{
    return false;
}
public void onBlockClicked(World worldIn, BlockPos pos, EntityPlayer playerIn) {}

注意到玩家左键时会传递EnumFacing
PlayerInteractionManager.class

public void onBlockClicked(BlockPos pos, EnumFacing side)
{
...
}

FledgeXu


帖子暂时锁定。
你的提问不符合规范,请按照提问区的模版修改你的提问。


FledgeXu



FledgeXu



FledgeXu


你可以通过BlockPos获取到BlockState然后从BlockState判断facing。


FledgeXu


不对,上面到答案有问题。
你看看有没有可以监听方块点击的事件,看看事件里面有没有传入EnumFacing
你看看是不是PlayerInteractEvent这个事件。


Billy_tang


只能监听事件吗
是可行的,PlayerInteractvent中的LeftClickBlock传递了face


FledgeXu


我目前只知道有这个方法。


Snownee


自己 ray trace,Forge 的事件也是这么做的。