19class JumpAroundTargetGoal :
public ::BaseGoal {
27 enum class State :
int {
37 ::ll::TypedStorage<4, 12, ::Vec3> targetPosition;
38 ::ll::TypedStorage<4, 12, ::Vec3> velocityVector;
45 ::ll::TypedStorage<8, 64, ::ActorFilterGroup> mFilters;
46 ::ll::TypedStorage<4, 4, int> mCooldownTicks;
47 ::ll::TypedStorage<4, 4, int> mCooldownWhenHurtTicks;
48 ::ll::TypedStorage<4, 4, int> mLastHurtDurationTicks;
49 ::ll::TypedStorage<4, 4, float> mMaxJumpVelocity;
50 ::ll::TypedStorage<1, 1, bool> mCheckCollision;
51 ::ll::TypedStorage<4, 4, float> mBoundingBoxScaleFactor;
52 ::ll::TypedStorage<4, 4, int> mLineOfSightCheckHeight;
53 ::ll::TypedStorage<4, 8, ::SharedTypes::FloatRange> mDistanceToTargetSqrRange;
54 ::ll::TypedStorage<4, 4, int> mLandingPositionSpreadDegrees;
55 ::ll::TypedStorage<4, 8, ::SharedTypes::FloatRange> mDistanceFromTargetLandingPosition;
56 ::ll::TypedStorage<4, 4, int> mRequiredAirBlocksAbove;
57 ::ll::TypedStorage<4, 4, int> mSnapToSurfaceBlockRange;
58 ::ll::TypedStorage<8, 24, ::std::vector<float>> mAllowedJumpAngles;
59 ::ll::TypedStorage<4, 4, int> mJumpFromWaterTimeoutTicks;
60 ::ll::TypedStorage<8, 8, ::Mob&> mMob;
61 ::ll::TypedStorage<1, 1, bool> mDiscardFrictionDefault;
62 ::ll::TypedStorage<8, 8, ::Tick> mJumpedFromWaterEndTick;
63 ::ll::TypedStorage<4, 24, ::AABB const> mOriginalAabb;
64 ::ll::TypedStorage<4, 4, ::JumpAroundTargetGoal::State> mState;
65 ::ll::TypedStorage<4, 12, ::BlockPos> mStartingPos;
66 ::ll::TypedStorage<8, 8, ::Tick> mGoalStartTick;
67 ::ll::TypedStorage<8, 8, ::Tick> mCooldownEndTick;
68 ::ll::TypedStorage<4, 28, ::std::optional<::JumpAroundTargetGoal::Jump>> mJumpData;
69 ::ll::TypedStorage<8, 8, uint64> mPrepareJumpDurationTicks;
74 JumpAroundTargetGoal& operator=(JumpAroundTargetGoal
const&);
75 JumpAroundTargetGoal(JumpAroundTargetGoal
const&);
76 JumpAroundTargetGoal();
81 virtual bool canUse() ;
83 virtual bool canContinueToUse() ;
85 virtual void start() ;
91 virtual bool canBeInterrupted() ;
93 virtual void appendDebugInfo(::std::string& str)
const ;
99 MCAPI
explicit JumpAroundTargetGoal(
::Mob& mob);
101 MCAPI ::std::optional<::JumpAroundTargetGoal::Jump> _calculateOptimalJumpVector(
::Vec3 const& targetPosition)
const;
103 MCAPI
bool _canJumpFromCurrentPosition()
const;
105 MCAPI
void _jump()
const;
107 MCAPI ::std::optional<::BlockPos> _snapToSurface(
::Vec3 const& targetPosition)
const;
113 MCAPI
void* $ctor(
::Mob& mob);
119 MCAPI
bool $canUse();
121 MCAPI
bool $canContinueToUse();
129 MCFOLD
bool $canBeInterrupted();
131 MCAPI
void $appendDebugInfo(::std::string& str)
const;