103 ::ll::TypedStorage<8, 8, ::Player&> mPlayer;
104 ::ll::TypedStorage<4, 12, ::BlockPos> mDestroyBlockPos;
105 ::ll::TypedStorage<1, 1, uchar> mDestroyBlockFace;
106 ::ll::TypedStorage<4, 4, float> mOldDestroyProgress;
107 ::ll::TypedStorage<4, 4, float> mDestroyProgress;
108 ::ll::TypedStorage<8, 8, double> mLastDestroyTime;
109 ::ll::TypedStorage<4, 4, float> mDistanceTravelled;
110 ::ll::TypedStorage<4, 12, ::Vec3> mPlayerLastPosition;
111 ::ll::TypedStorage<4, 56, ::GameMode::BuildContext> mBuildContext;
112 ::ll::TypedStorage<4, 4, float> mMinPlayerSpeed;
113 ::ll::TypedStorage<4, 4, int> mContinueBreakBlockCount;
114 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mLastBuildTime;
115 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mNoDestroyUntil;
116 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mNoDestroySoundUntil;
117 ::ll::TypedStorage<8, 8, ::std::chrono::milliseconds> creativeDestructionTickDelay;
118 ::ll::TypedStorage<8, 8, ::std::chrono::milliseconds> buildingTickDelay;
119 ::ll::TypedStorage<8, 8, ::std::chrono::milliseconds> destroySoundDelay;
120 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::IGameModeTimer>> mTimer;
121 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::IGameModeMessenger>> mMessenger;
137 virtual bool startDestroyBlock(
::BlockPos const& pos, uchar face,
bool& hasDestroyedBlock);
140 virtual bool destroyBlock(
::BlockPos const& pos, uchar face);
144 continueDestroyBlock(
::BlockPos const& pos, uchar face,
::Vec3 const& playerPos,
bool& hasDestroyedBlock);
147 virtual void stopDestroyBlock(
::BlockPos const& pos);
150 virtual void startBuildBlock(
::BlockPos const& pos, uchar face);
153 virtual bool buildBlock(
::BlockPos const& pos, uchar face,
bool const isSimTick);
156 virtual void continueBuildBlock(
::BlockPos const& pos, uchar face);
159 virtual void stopBuildBlock();
165 virtual float getPickRange(::InputMode
const& currentInputMode,
bool isVR);
171 virtual ::InteractionResult useItemOn(
181 virtual bool interact(
::Actor& entity,
::Vec3 const& location);
184 virtual bool attack(
::Actor& entity);
187 virtual void releaseUsingItem();
190 virtual void setTrialMode(
bool isEnabled);
193 virtual bool isInTrialMode();
196 virtual void registerUpsellScreenCallback(::std::function<
void(
bool)> callback);
204 ::std::unique_ptr<::IGameModeTimer> timer,
205 ::std::unique_ptr<::IGameModeMessenger> messenger
208 MCAPI
bool _attack(
::Actor& entity,
bool playPredictiveSound);
210 MCAPI ::BlockPos _calculatePlacePos(
::ItemStack& heldStack,
::BlockPos const& pos, uchar& face)
const;
212 MCAPI
bool _canDestroy(
::BlockPos const& pos, uchar face);
214 MCAPI
bool _canUseBlock(
::Block const& block);
216 MCAPI
bool _creativeDestroyBlock(
::BlockPos const& pos, uchar face);
220 MCAPI
bool _enableBlockBreakDelay()
const;
222 MCAPI
void _sendPlayerInteractWithBlockAfterEvent(
232 MCAPI
void _sendPlayerInteractWithEntityAfterEvent(
239 MCAPI ::std::optional<::ItemStack>
242 MCAPI ::InteractionResult _sendUseItemOnEvents(
254 MCAPI
float getDestroyRate(
::Block const& block);
256 MCAPI
float getMaxPickRange();
262 MCAPI
static float const& MIN_MOVING_NON_CREATIVE_BUILD_DELAY();
270 ::std::unique_ptr<::IGameModeTimer> timer,
271 ::std::unique_ptr<::IGameModeMessenger> messenger
278 MCAPI
bool $startDestroyBlock(
::BlockPos const& pos, uchar face,
bool& hasDestroyedBlock);
280 MCAPI
bool $destroyBlock(
::BlockPos const& pos, uchar face);
283 $continueDestroyBlock(
::BlockPos const& pos, uchar face,
::Vec3 const& playerPos,
bool& hasDestroyedBlock);
285 MCAPI
void $stopDestroyBlock(
::BlockPos const& pos);
287 MCAPI
void $startBuildBlock(
::BlockPos const& pos, uchar face);
289 MCAPI
bool $buildBlock(
::BlockPos const& pos, uchar face,
bool const isSimTick);
291 MCAPI
void $continueBuildBlock(
::BlockPos const& pos, uchar face);
293 MCAPI
void $stopBuildBlock();
297 MCAPI
float $getPickRange(::InputMode
const& currentInputMode,
bool isVR);
301 MCAPI ::InteractionResult $useItemOn(
310 MCAPI
bool $interact(
::Actor& entity,
::Vec3 const& location);
312 MCAPI
bool $attack(
::Actor& entity);
314 MCAPI
void $releaseUsingItem();
316 MCFOLD
void $setTrialMode(
bool isEnabled);
318 MCFOLD
bool $isInTrialMode();
320 MCFOLD
void $registerUpsellScreenCallback(::std::function<
void(
bool)> callback);