17 using BlockBreakCaptureToken = ::gsl::final_action<::std::function<void()>>;
24 virtual ::gsl::final_action<::std::function<void()>> createBlockBreakCaptureScope(
28 virtual void sendDenyDestroyBlock(
::BlockPos const& pos,
int face) = 0;
30 virtual void sendStartDestroyBlock(
::BlockPos const& pos,
int face) = 0;
32 virtual bool sendTryDestroyBlock(
35 ::std::function<
bool(::std::optional<::ItemStack>&)>
const& tryDestroy
38 virtual void sendDestroyBlock(
::Block const& oldBlock,
::BlockPos const& pos,
int variantData) = 0;
40 virtual void sendChangeContinueDestroyBlock(
::BlockPos const& pos,
int face) = 0;
42 virtual void sendContinueDestroyAboutToDestroyBlock(
::BlockPos const& pos,
int face) = 0;
44 virtual void sendStopDestroyBlock(
::BlockPos const&,
float) = 0;
46 virtual void sendStartItemUseOn(
::BlockPos const& pos,
::BlockPos const& buildPos,
int face) = 0;
48 virtual void sendStopItemUseOn(
::BlockPos const& pos) = 0;
50 virtual void tryRotateTowardsAimAssist() = 0;