LeviLamina
Loading...
Searching...
No Matches
MoveToBlockGoal.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/math/Vec3.h"
7#include "mc/util/TargetSelectionMethod.h"
8#include "mc/world/actor/ActorFilterGroup.h"
9#include "mc/world/actor/ai/goal/Goal.h"
10#include "mc/world/level/BlockPos.h"
11
12// auto generated forward declare list
13// clang-format off
15class BlockSource;
16class ItemDescriptor;
17class Mob;
18// clang-format on
19
20class MoveToBlockGoal : public ::Goal {
21public:
22 // member variables
23 // NOLINTBEGIN
24 ::ll::TypedStorage<4, 4, int> mGiveUpTicks;
25 ::ll::TypedStorage<4, 4, int> mStayDurationTicks;
26 ::ll::TypedStorage<4, 4, float> mSpeedMod;
27 ::ll::TypedStorage<4, 4, float> mGoalRadiusSq;
28 ::ll::TypedStorage<4, 12, ::BlockPos> mTargetBlockPos;
29 ::ll::TypedStorage<4, 12, ::Vec3> mTargetPositionOffset;
30 ::ll::TypedStorage<4, 4, float> mChanceToStart;
31 ::ll::TypedStorage<4, 4, int> mInterval;
32 ::ll::TypedStorage<4, 4, int> mSearchRange;
33 ::ll::TypedStorage<4, 4, int> mSearchHeight;
34 ::ll::TypedStorage<1, 1, ::TargetSelectionMethod const> mMethod;
35 ::ll::TypedStorage<8, 24, ::std::vector<::ActorDefinitionTrigger> const> mOnReachTriggers;
36 ::ll::TypedStorage<8, 24, ::std::vector<::ActorDefinitionTrigger> const> mOnStayCompletedTriggers;
37 ::ll::TypedStorage<8, 24, ::std::vector<::ItemDescriptor> const> mTargetBlockDescriptors;
38 ::ll::TypedStorage<8, 8, uint64> mCooldownCounter;
39 ::ll::TypedStorage<8, 8, uint64 const> mCooldownTimeoutTime;
40 ::ll::TypedStorage<1, 1, bool> mReachedTarget;
41 ::ll::TypedStorage<4, 4, int> mNextStartTick;
42 ::ll::TypedStorage<4, 4, int> mStayTicks;
43 ::ll::TypedStorage<4, 4, int> mTravelTicks;
44 ::ll::TypedStorage<4, 12, ::BlockPos> mStartPos;
45 ::ll::TypedStorage<8, 8, ::Mob&> mMob;
46 ::ll::TypedStorage<1, 1, bool> mHasSentOnReachEvent;
47 ::ll::TypedStorage<8, 64, ::ActorFilterGroup> mTargetBlockFilter;
48 // NOLINTEND
49
50public:
51 // prevent constructor by default
52 MoveToBlockGoal& operator=(MoveToBlockGoal const&);
53 MoveToBlockGoal(MoveToBlockGoal const&);
54 MoveToBlockGoal();
55
56public:
57 // virtual functions
58 // NOLINTBEGIN
59 virtual bool canUse() /*override*/;
60
61 virtual bool canContinueToUse() /*override*/;
62
63 virtual void tick() /*override*/;
64
65 virtual void appendDebugInfo(::std::string& str) const /*override*/;
66
67 virtual void start() /*override*/;
68
69 virtual void stop() /*override*/;
70
71 virtual ~MoveToBlockGoal() /*override*/;
72 // NOLINTEND
73
74public:
75 // member functions
76 // NOLINTBEGIN
77 MCAPI MoveToBlockGoal(
78 ::Mob& mob,
79 float speedModifier,
80 int searchRange,
81 int searchHeight,
82 int tickInterval,
83 int stayDurationTicks,
84 float goalRadius,
85 ::Vec3 targetPositionOffset,
86 float chanceToStart,
87 ::TargetSelectionMethod targetSelectionMethod,
88 ::std::vector<::ActorDefinitionTrigger> onReachTriggers,
89 ::std::vector<::ActorDefinitionTrigger> onStayCompletedTriggers,
90 ::std::vector<::ItemDescriptor> targetBlocks,
91 ::ActorFilterGroup const& targetBlockFilter
92 );
93
94 MCAPI void _checkIfStuck();
95
96 MCAPI bool _findRandomTargetBlock(::BlockSource& region, ::BlockPos const& mobPos);
97
98 MCAPI bool _findTargetBlock();
99
100 MCAPI bool _isValidTarget(::BlockSource& region, ::BlockPos& pos) const;
101
102 MCAPI void _moveToBlock();
103 // NOLINTEND
104
105public:
106 // constructor thunks
107 // NOLINTBEGIN
108 MCAPI void* $ctor(
109 ::Mob& mob,
110 float speedModifier,
111 int searchRange,
112 int searchHeight,
113 int tickInterval,
114 int stayDurationTicks,
115 float goalRadius,
116 ::Vec3 targetPositionOffset,
117 float chanceToStart,
118 ::TargetSelectionMethod targetSelectionMethod,
119 ::std::vector<::ActorDefinitionTrigger> onReachTriggers,
120 ::std::vector<::ActorDefinitionTrigger> onStayCompletedTriggers,
121 ::std::vector<::ItemDescriptor> targetBlocks,
122 ::ActorFilterGroup const& targetBlockFilter
123 );
124 // NOLINTEND
125
126public:
127 // destructor thunk
128 // NOLINTBEGIN
129 MCAPI void $dtor();
130 // NOLINTEND
131
132public:
133 // virtual function thunks
134 // NOLINTBEGIN
135 MCAPI bool $canUse();
136
137 MCAPI bool $canContinueToUse();
138
139 MCAPI void $tick();
140
141 MCAPI void $appendDebugInfo(::std::string& str) const;
142
143 MCAPI void $start();
144
145 MCAPI void $stop();
146
147
148 // NOLINTEND
149
150public:
151 // vftables
152 // NOLINTBEGIN
153 MCAPI static void** $vftable();
154 // NOLINTEND
155};
Definition ActorDefinitionTrigger.h:14
Definition ActorFilterGroup.h:19
Definition BlockPos.h:19
Definition BlockSource.h:71
Definition Goal.h:14
Definition ItemDescriptor.h:24
Definition Mob.h:51
Definition Vec3.h:10