22class JumpAroundTargetGoal :
public ::Goal {
31 enum class State :
int {
41 ::ll::TypedStorage<8, 64, ::ActorFilterGroup> mFilters;
42 ::ll::TypedStorage<4, 4, float> mCooldownSeconds;
43 ::ll::TypedStorage<4, 4, float> mCooldownWhenHurtSeconds;
44 ::ll::TypedStorage<4, 4, float> mLastHurtDurationSeconds;
45 ::ll::TypedStorage<4, 4, float> mPrepareJumpDurationSeconds;
46 ::ll::TypedStorage<4, 4, float> mMaxJumpVelocity;
47 ::ll::TypedStorage<1, 1, bool> mCheckCollision;
48 ::ll::TypedStorage<4, 4, float> mBoundingBoxScaleFactor;
49 ::ll::TypedStorage<4, 4, int> mLineOfSightCheckHeight;
50 ::ll::TypedStorage<4, 8, ::FloatRange> mDistanceToTargetRange;
51 ::ll::TypedStorage<4, 4, int> mLandingPositionSpreadDegrees;
52 ::ll::TypedStorage<4, 8, ::FloatRange> mLandingPositionRange;
53 ::ll::TypedStorage<4, 4, int> mRequiredAirBlocksAbove;
54 ::ll::TypedStorage<4, 4, int> mSnapToSurfaceBlockRange;
55 ::ll::TypedStorage<4, 4, float> mJumpingFromWaterTimeoutSeconds;
56 ::ll::TypedStorage<8, 24, ::std::vector<float>> mAllowedJumpAngles;
68 MCAPI
static void buildSchema(
69 ::std::string
const& name,
86 ::ll::TypedStorage<4, 12, ::Vec3> targetPosition;
87 ::ll::TypedStorage<4, 12, ::Vec3> velocityVector;
94 ::ll::TypedStorage<8, 64, ::ActorFilterGroup> mFilters;
95 ::ll::TypedStorage<4, 4, int> mCooldownTicks;
96 ::ll::TypedStorage<4, 4, int> mCooldownWhenHurtTicks;
97 ::ll::TypedStorage<4, 4, int> mLastHurtDurationTicks;
98 ::ll::TypedStorage<4, 4, float> mMaxJumpVelocity;
99 ::ll::TypedStorage<1, 1, bool> mCheckCollision;
100 ::ll::TypedStorage<4, 4, float> mBoundingBoxScaleFactor;
101 ::ll::TypedStorage<4, 4, int> mLineOfSightCheckHeight;
102 ::ll::TypedStorage<4, 8, ::FloatRange> mDistanceToTargetSqrRange;
103 ::ll::TypedStorage<4, 4, int> mLandingPositionSpreadDegrees;
104 ::ll::TypedStorage<4, 8, ::FloatRange> mDistanceFromTargetLandingPosition;
105 ::ll::TypedStorage<4, 4, int> mRequiredAirBlocksAbove;
106 ::ll::TypedStorage<4, 4, int> mSnapToSurfaceBlockRange;
107 ::ll::TypedStorage<8, 24, ::std::vector<float>> mAllowedJumpAngles;
108 ::ll::TypedStorage<4, 4, int> mJumpFromWaterTimeoutTicks;
109 ::ll::TypedStorage<8, 8, ::Mob&> mMob;
110 ::ll::TypedStorage<1, 1, bool> mDiscardFrictionDefault;
111 ::ll::TypedStorage<8, 8, ::Tick> mJumpedFromWaterEndTick;
112 ::ll::TypedStorage<4, 24, ::AABB const> mOriginalAabb;
113 ::ll::TypedStorage<4, 4, ::JumpAroundTargetGoal::State> mState;
114 ::ll::TypedStorage<4, 12, ::BlockPos> mStartingPos;
115 ::ll::TypedStorage<8, 8, ::Tick> mGoalStartTick;
116 ::ll::TypedStorage<8, 8, ::Tick> mCooldownEndTick;
117 ::ll::TypedStorage<4, 28, ::std::optional<::JumpAroundTargetGoal::Jump>> mJumpData;
118 ::ll::TypedStorage<8, 8, uint64> mPrepareJumpDurationTicks;
123 JumpAroundTargetGoal& operator=(JumpAroundTargetGoal
const&);
124 JumpAroundTargetGoal(JumpAroundTargetGoal
const&);
125 JumpAroundTargetGoal();
130 virtual bool canUse() ;
132 virtual bool canContinueToUse() ;
134 virtual void start() ;
136 virtual void stop() ;
138 virtual void tick() ;
140 virtual bool canBeInterrupted() ;
142 virtual void appendDebugInfo(::std::string& str)
const ;
144 virtual ~JumpAroundTargetGoal() =
default;
150 MCAPI
explicit JumpAroundTargetGoal(
::Mob& mob);
152 MCAPI ::std::optional<::JumpAroundTargetGoal::Jump> _calculateOptimalJumpVector(
::Vec3 const& targetPosition)
const;
154 MCAPI
bool _canJumpFromCurrentPosition()
const;
156 MCAPI
void _jump()
const;
158 MCAPI ::std::optional<::BlockPos> _snapToSurface(
::Vec3 const& targetPosition)
const;
164 MCAPI
void* $ctor(
::Mob& mob);
170 MCAPI
bool $canUse();
172 MCAPI
bool $canContinueToUse();
180 MCFOLD
bool $canBeInterrupted();
182 MCAPI
void $appendDebugInfo(::std::string& str)
const;