22class JumpToBlockGoal :
public ::BaseGoal {
30 enum class JumpState : uchar {
42 ::ll::TypedStorage<4, 12, ::BlockPos> targetPos;
43 ::ll::TypedStorage<4, 12, ::Vec3> velocityVector;
44 ::ll::TypedStorage<4, 4, int> mWeight;
51 ::ll::TypedStorage<8, 8, ::Mob&> mMob;
52 ::ll::TypedStorage<1, 1, bool> mDiscardFrictionDefault;
53 ::ll::TypedStorage<8, 8, ::Tick> mCooldownTimeout;
54 ::ll::TypedStorage<8, 8, ::Tick> mNextCandidateCheck;
55 ::ll::TypedStorage<4, 4, int> mCandidateAttemptCounter;
56 ::ll::TypedStorage<1, 1, ::JumpToBlockGoal::JumpState> mState;
57 ::ll::TypedStorage<8, 24, ::std::vector<::Vec3>> mJumpCurve;
58 ::ll::TypedStorage<4, 12, ::BlockPos> mTargetBlockPos;
59 ::ll::TypedStorage<8, 24, ::std::vector<::BlockPos>> mCandidateBlocksPositions;
60 ::ll::TypedStorage<4, 12, ::BlockPos> mStartingPos;
61 ::ll::TypedStorage<8, 24, ::std::vector<::JumpToBlockGoal::WeightedJumpToBlockPos>> mJumpableBlocksPositions;
62 ::ll::TypedStorage<4, 12, ::Vec3> mVelocityVector;
63 ::ll::TypedStorage<8, 8, ::Tick> mFaceJumpTimer;
64 ::ll::TypedStorage<4, 24, ::AABB const> mOriginalAabb;
65 ::ll::TypedStorage<4, 4, int> mSearchWidth;
66 ::ll::TypedStorage<4, 4, int> mSearchHeight;
67 ::ll::TypedStorage<4, 4, int> mMinPathLength;
68 ::ll::TypedStorage<4, 4, int> mMinDistance;
69 ::ll::TypedStorage<4, 8, ::SharedTypes::FloatRange> mCooldownTime;
70 ::ll::TypedStorage<4, 4, float> mScaleFactor;
71 ::ll::TypedStorage<4, 4, float> mMaxVelocity;
72 ::ll::TypedStorage<8, 24, ::std::vector<::ItemDescriptor>> mPreferredBlocks;
73 ::ll::TypedStorage<4, 4, float> mPreferredBlocksChance;
74 ::ll::TypedStorage<8, 24, ::std::vector<::ItemDescriptor>> mForbiddenBlocks;
79 JumpToBlockGoal& operator=(JumpToBlockGoal
const&);
80 JumpToBlockGoal(JumpToBlockGoal
const&);
86 virtual bool canUse() ;
88 virtual bool canContinueToUse() ;
90 virtual void start() ;
96 virtual bool canBeInterrupted() ;
98 virtual void appendDebugInfo(::std::string& str)
const ;
104 MCAPI
explicit JumpToBlockGoal(
::Mob& mob);
106 MCAPI
void _clearGoalState();
110 MCAPI
bool _findJumpableBlocks(
bool useOnlyPreferredBlocksIfAny);
112 MCAPI
bool _findTargetBlock();
114 MCAPI
bool _isValidTargetBlock(
122 MCAPI
void resetCooldown();
128 MCAPI
void* $ctor(
::Mob& mob);
134 MCAPI
bool $canUse();
136 MCAPI
bool $canContinueToUse();
144 MCFOLD
bool $canBeInterrupted();
146 MCAPI
void $appendDebugInfo(::std::string& str)
const;