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/Goal.h"
8#include "mc/world/level/Tick.h"
9
10// auto generated forward declare list
11// clang-format off
12class BlockPos;
13class Mob;
14class Vec3;
15// clang-format on
16
17class StalkAndPounceOnTargetGoal : public ::Goal {
18public:
19 // StalkAndPounceOnTargetGoal inner types define
20 enum class StalkAndPounceState : uchar {
21 Stalking = 0,
22 Interested = 1,
23 Pouncing = 2,
24 Stuck = 3,
25 Done = 4,
26 };
27
28public:
29 // member variables
30 // NOLINTBEGIN
31 ::ll::TypedStorage<4, 4, float> mStalkSpeed;
32 ::ll::TypedStorage<4, 4, float> mStalkingMaxDistanceSqr;
33 ::ll::TypedStorage<4, 4, float> mLeapHeight;
34 ::ll::TypedStorage<4, 4, float> mLeapDistance;
35 ::ll::TypedStorage<4, 4, float> mMaxPounceDistanceSqr;
36 ::ll::TypedStorage<4, 4, float> mStrikeDistanceSqr;
37 ::ll::TypedStorage<4, 4, int> mInterestedTicks;
38 ::ll::TypedStorage<4, 4, int> mStuckTicks;
39 ::ll::TypedStorage<8, 8, ::Tick> mEndTimestamp;
40 ::ll::TypedStorage<8, 64, ::ActorFilterGroup> mStuckBlockList;
41 ::ll::TypedStorage<1, 1, ::StalkAndPounceOnTargetGoal::StalkAndPounceState> mState;
42 ::ll::TypedStorage<8, 8, ::Mob&> mMob;
43 ::ll::TypedStorage<1, 1, bool> mSetPersistent;
44 // NOLINTEND
45
46public:
47 // prevent constructor by default
48 StalkAndPounceOnTargetGoal& operator=(StalkAndPounceOnTargetGoal const&);
49 StalkAndPounceOnTargetGoal(StalkAndPounceOnTargetGoal const&);
50 StalkAndPounceOnTargetGoal();
51
52public:
53 // virtual functions
54 // NOLINTBEGIN
55 virtual bool canUse() /*override*/;
56
57 virtual bool canContinueToUse() /*override*/;
58
59 virtual void start() /*override*/;
60
61 virtual void stop() /*override*/;
62
63 virtual void tick() /*override*/;
64
65 virtual bool canBeInterrupted() /*override*/;
66
67 virtual void appendDebugInfo(::std::string& str) const /*override*/;
68
69 virtual ~StalkAndPounceOnTargetGoal() /*override*/ = default;
70 // NOLINTEND
71
72public:
73 // member functions
74 // NOLINTBEGIN
75 MCAPI void _attemptToStrike(::Vec3 const& mobPos, ::Vec3 const& targetPos);
76
77 MCAPI bool _isPouncePathClear(::Vec3 const& mobPos, ::Vec3 const& targetPos) const;
78
79 MCAPI bool _isStuckBlock(::BlockPos blockPos) const;
80
81 MCAPI void _pounce(::Vec3 const& mobPos, ::Vec3 const& targetPos) const;
82
83 MCAPI void _preparePounce(::Vec3 const& mobPos, ::Vec3 const& targetPos);
84
85 MCAPI void _stalkPrey(::Vec3 const& mobPos, ::Vec3 const& targetPos);
86
87 MCAPI void _stuck();
88 // NOLINTEND
89
90public:
91 // virtual function thunks
92 // NOLINTBEGIN
93 MCAPI bool $canUse();
94
95 MCAPI bool $canContinueToUse();
96
97 MCAPI void $start();
98
99 MCAPI void $stop();
100
101 MCAPI void $tick();
102
103 MCAPI bool $canBeInterrupted();
104
105 MCAPI void $appendDebugInfo(::std::string& str) const;
106
107
108 // NOLINTEND
109
110public:
111 // vftables
112 // NOLINTBEGIN
113 MCNAPI static void** $vftable();
114 // NOLINTEND
115};
Definition BlockPos.h:19
Definition Goal.h:14
Definition Mob.h:50
static MCAPI void ** $vftable()
Definition Vec3.h:10