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;
131 virtual bool startDestroyBlock(
::BlockPos const& pos, uchar face,
bool& hasDestroyedBlock);
134 virtual bool destroyBlock(
::BlockPos const& pos, uchar face);
138 continueDestroyBlock(
::BlockPos const& pos, uchar face,
::Vec3 const& playerPos,
bool& hasDestroyedBlock);
141 virtual void stopDestroyBlock(
::BlockPos const& pos);
144 virtual void startBuildBlock(
::BlockPos const& pos, uchar face);
147 virtual bool buildBlock(
::BlockPos const& pos, uchar face,
bool const isSimTick);
150 virtual void continueBuildBlock(
::BlockPos const& pos, uchar face);
153 virtual void stopBuildBlock();
159 virtual float getPickRange(::InputMode
const& currentInputMode,
bool isVR);
165 virtual ::InteractionResult useItemOn(
175 virtual bool interact(
::Actor& entity,
::Vec3 const& location);
178 virtual bool attack(
::Actor& entity);
181 virtual void releaseUsingItem();
184 virtual void setTrialMode(
bool isEnabled);
187 virtual bool isInTrialMode();
190 virtual void registerUpsellScreenCallback(::std::function<
void(
bool)> callback);
198 ::std::unique_ptr<::IGameModeTimer> timer,
199 ::std::unique_ptr<::IGameModeMessenger> messenger
202 MCAPI
bool _attack(
::Actor& entity,
bool playPredictiveSound);
204 MCAPI ::BlockPos _calculatePlacePos(
::ItemStack& heldStack,
::BlockPos const& pos, uchar& face)
const;
206 MCAPI
bool _canDestroy(
::BlockPos const& pos, uchar face);
208 MCAPI
bool _canUseBlock(
::Block const& block);
210 MCAPI
bool _creativeDestroyBlock(
::BlockPos const& pos, uchar face);
214 MCAPI
bool _enableBlockBreakDelay()
const;
216 MCAPI
void _sendPlayerInteractWithBlockAfterEvent(
226 MCAPI
void _sendPlayerInteractWithEntityAfterEvent(
233 MCAPI ::std::optional<::ItemStack>
236 MCAPI ::InteractionResult
244 MCAPI
float getDestroyRate(
::Block const& block);
246 MCAPI
float getMaxPickRange();
252 MCAPI
static float const& MIN_MOVING_NON_CREATIVE_BUILD_DELAY();
260 ::std::unique_ptr<::IGameModeTimer> timer,
261 ::std::unique_ptr<::IGameModeMessenger> messenger
274 MCAPI
bool $startDestroyBlock(
::BlockPos const& pos, uchar face,
bool& hasDestroyedBlock);
276 MCAPI
bool $destroyBlock(
::BlockPos const& pos, uchar face);
279 $continueDestroyBlock(
::BlockPos const& pos, uchar face,
::Vec3 const& playerPos,
bool& hasDestroyedBlock);
281 MCAPI
void $stopDestroyBlock(
::BlockPos const& pos);
283 MCAPI
void $startBuildBlock(
::BlockPos const& pos, uchar face);
285 MCAPI
bool $buildBlock(
::BlockPos const& pos, uchar face,
bool const isSimTick);
287 MCAPI
void $continueBuildBlock(
::BlockPos const& pos, uchar face);
289 MCAPI
void $stopBuildBlock();
293 MCAPI
float $getPickRange(::InputMode
const& currentInputMode,
bool isVR);
297 MCAPI ::InteractionResult $useItemOn(
306 MCAPI
bool $interact(
::Actor& entity,
::Vec3 const& location);
308 MCAPI
bool $attack(
::Actor& entity);
310 MCAPI
void $releaseUsingItem();
312 MCFOLD
void $setTrialMode(
bool isEnabled);
314 MCFOLD
bool $isInTrialMode();
316 MCFOLD
void $registerUpsellScreenCallback(::std::function<
void(
bool)> callback);
322 MCAPI
static void** $vftable();