LeviLamina
Loading...
Searching...
No Matches
StalkAndPounceOnTargetGoal.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/world/actor/ActorFilterGroup.h"
7#include "mc/world/actor/ai/goal/BaseGoal.h"
8#include "mc/world/level/Tick.h"
9
10// auto generated forward declare list
11// clang-format off
12class Mob;
13class Vec3;
14// clang-format on
15
16class StalkAndPounceOnTargetGoal : public ::BaseGoal {
17public:
18 // StalkAndPounceOnTargetGoal inner types define
19 enum class StalkAndPounceState : uchar {
20 Stalking = 0,
21 Interested = 1,
22 Pouncing = 2,
23 Stuck = 3,
24 Done = 4,
25 };
26
27public:
28 // member variables
29 // NOLINTBEGIN
30 ::ll::TypedStorage<4, 4, float> mStalkSpeed;
31 ::ll::TypedStorage<4, 4, float> mStalkingMaxDistanceSqr;
32 ::ll::TypedStorage<4, 4, float> mLeapHeight;
33 ::ll::TypedStorage<4, 4, float> mLeapDistance;
34 ::ll::TypedStorage<4, 4, float> mMaxPounceDistanceSqr;
35 ::ll::TypedStorage<4, 4, float> mStrikeDistanceSqr;
36 ::ll::TypedStorage<4, 4, int> mInterestedTicks;
37 ::ll::TypedStorage<4, 4, int> mStuckTicks;
38 ::ll::TypedStorage<8, 8, ::Tick> mEndTimestamp;
39 ::ll::TypedStorage<8, 64, ::ActorFilterGroup> mStuckBlockList;
40 ::ll::TypedStorage<1, 1, ::StalkAndPounceOnTargetGoal::StalkAndPounceState> mState;
41 ::ll::TypedStorage<8, 8, ::Mob&> mMob;
42 ::ll::TypedStorage<1, 1, bool> mSetPersistent;
43 // NOLINTEND
44
45public:
46 // prevent constructor by default
47 StalkAndPounceOnTargetGoal& operator=(StalkAndPounceOnTargetGoal const&);
48 StalkAndPounceOnTargetGoal(StalkAndPounceOnTargetGoal const&);
49 StalkAndPounceOnTargetGoal();
50
51public:
52 // virtual functions
53 // NOLINTBEGIN
54 virtual bool canUse() /*override*/;
55
56 virtual bool canContinueToUse() /*override*/;
57
58 virtual void start() /*override*/;
59
60 virtual void stop() /*override*/;
61
62 virtual void tick() /*override*/;
63
64 virtual bool canBeInterrupted() /*override*/;
65
66 virtual void appendDebugInfo(::std::string& str) const /*override*/;
67 // NOLINTEND
68
69public:
70 // member functions
71 // NOLINTBEGIN
72 MCAPI StalkAndPounceOnTargetGoal(
73 ::Mob& mob,
74 ::ActorFilterGroup const& stuckBlocks,
75 float stalkSpeed,
76 float stalkGiveUpDist,
77 float leapHeight,
78 float leapDist,
79 float maxPounceDist,
80 float strikeDistance,
81 float interestedTime,
82 float stuckTime,
83 bool setPersistent
84 );
85
86 MCAPI void _attemptToStrike(::Vec3 const& mobPos, ::Vec3 const& targetPos);
87
88 MCAPI bool _isPouncePathClear(::Vec3 const& mobPos, ::Vec3 const& targetPos) const;
89
90 MCAPI void _pounce(::Vec3 const& mobPos, ::Vec3 const& targetPos) const;
91
92 MCAPI void _preparePounce(::Vec3 const& mobPos, ::Vec3 const& targetPos);
93
94 MCAPI void _stalkPrey(::Vec3 const& mobPos, ::Vec3 const& targetPos);
95
96 MCAPI void _stuck();
97 // NOLINTEND
98
99public:
100 // constructor thunks
101 // NOLINTBEGIN
102 MCAPI void* $ctor(
103 ::Mob& mob,
104 ::ActorFilterGroup const& stuckBlocks,
105 float stalkSpeed,
106 float stalkGiveUpDist,
107 float leapHeight,
108 float leapDist,
109 float maxPounceDist,
110 float strikeDistance,
111 float interestedTime,
112 float stuckTime,
113 bool setPersistent
114 );
115 // NOLINTEND
116
117public:
118 // virtual function thunks
119 // NOLINTBEGIN
120 MCAPI bool $canUse();
121
122 MCAPI bool $canContinueToUse();
123
124 MCAPI void $start();
125
126 MCAPI void $stop();
127
128 MCAPI void $tick();
129
130 MCAPI bool $canBeInterrupted();
131
132 MCAPI void $appendDebugInfo(::std::string& str) const;
133
134
135 // NOLINTEND
136
137public:
138 // vftables
139 // NOLINTBEGIN
140 MCNAPI static void** $vftable();
141 // NOLINTEND
142};
Definition ActorFilterGroup.h:19
Definition Mob.h:57
static MCAPI void ** $vftable()
Definition Vec3.h:10