22class NavigationComponent {
26 bool mAvoidDamageBlocks : 1;
27 bool mAvoidPortals : 1;
32 bool mCanPathOverLava : 1;
33 bool mCanWalkInLava : 1;
35 bool mCanOpenDoors : 1;
36 bool mCanOpenIronDoors : 1;
37 bool mCanPassDoors : 1;
39 bool mIsAmphibious : 1;
40 bool mIsFollowingRivers : 1;
41 bool mHasEndPathRadius : 1;
42 bool mHasDestination : 1;
43 ::ll::TypedStorage<4, 4, int> mTick;
44 ::ll::TypedStorage<4, 4, int> mTickTimeout;
45 ::ll::TypedStorage<4, 4, int> mLastStuckCheck;
46 ::ll::TypedStorage<4, 4, float> mEndPathRadiusSqr;
47 ::ll::TypedStorage<4, 4, float> mSpeed;
48 ::ll::TypedStorage<4, 4, float> mTerminationThreshold;
49 ::ll::TypedStorage<4, 12, ::Vec3> mLastStuckCheckPosition;
50 ::ll::TypedStorage<4, 12, ::Vec3> mTargetOffset;
51 ::ll::TypedStorage<8, 24, ::std::vector<::BlockDescriptor>> mBlocksToAvoid;
52 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::PathNavigation>> mNavigation;
53 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Path>> mPath;
58 NavigationComponent& operator=(NavigationComponent
const&);
63 MCAPI NavigationComponent();
65 MCAPI NavigationComponent(::NavigationComponent
const& other);
67 MCAPI ::std::unique_ptr<::Path> createPath(
::Mob& owner,
::Vec3 const& position);
69 MCAPI ::std::unique_ptr<::Path> createPath(
::Mob& owner,
::Actor const& target);
71 MCFOLD
bool getAvoidDamageBlocks()
const;
73 MCAPI
bool getAvoidPortals()
const;
75 MCAPI
bool getAvoidSun()
const;
77 MCAPI
bool getAvoidWater()
const;
79 MCFOLD ::std::vector<::BlockDescriptor>
const& getBlocksToAvoid()
const;
81 MCAPI
bool getCanBreach()
const;
83 MCAPI
bool getCanFloat()
const;
85 MCAPI
bool getCanJump()
const;
87 MCAPI
bool getCanOpenDoors()
const;
89 MCAPI
bool getCanOpenIronDoors()
const;
91 MCAPI
bool getCanPassDoors()
const;
93 MCAPI
bool getCanPathOverLava()
const;
95 MCAPI
bool getCanSink()
const;
97 MCAPI
bool getCanWalkInLava()
const;
99 MCFOLD
float getEndPathRadiusSqr()
const;
101 MCAPI
bool getHasDestination()
const;
103 MCAPI
bool getHasEndPathRadius()
const;
105 MCAPI
bool getIsAmphibious()
const;
107 MCAPI
bool getIsFollowingRivers()
const;
109 MCAPI ::Vec3 getLastStuckCheckPosition()
const;
111 MCAPI
float getMaxDistance(
::Actor const& owner)
const;
113 MCFOLD ::Path* getPath()
const;
115 MCFOLD
float getSpeed()
const;
117 MCFOLD ::Vec3
const& getTargetOffset()
const;
119 MCFOLD
float getTerminationThreshold()
const;
121 MCFOLD
int getTickTimeout()
const;
123 MCFOLD
void incrementTick();
129 MCAPI
bool isDone()
const;
131 MCAPI ::NodeType isFree(
136 ::CanJumpIntoNode jumpIntoNode
139 MCAPI
bool isStuck(
int stuckTimeThreshold)
const;
141 MCAPI
bool moveTo(
::Mob& owner, ::std::unique_ptr<::Path> newPath,
float speed);
143 MCAPI
bool moveTo(
::Mob& owner,
::Vec3 const& position,
float speed);
145 MCAPI
bool moveTo(
::Mob& owner,
::Actor const& target,
float speed);
147 MCAPI
bool moveTo(
::Mob& owner,
::Vec3 const& position,
float speed,
::Vec3 const& targetOffset);
149 MCAPI ::NavigationComponent& operator=(::NavigationComponent&&);
151 MCAPI
void resetPath();
153 MCAPI
void setAvoidDamageBlocks(
bool avoidDamageBlocks);
155 MCAPI
void setAvoidPortals(
bool avoidPortals);
157 MCAPI
void setAvoidSun(
bool avoidSun);
159 MCAPI
void setAvoidWater(
bool avoidWater);
161 MCAPI
void setCanFloat(
bool canFloat);
163 MCAPI
void setCanJump(
bool canJump);
165 MCAPI
void setCanOpenDoors(
bool canOpenDoors);
167 MCAPI
void setCanPassDoors(
bool canPass);
169 MCAPI
void setCanSink(
bool canSink);
171 MCAPI
void setEndPathRadius(
float radius);
173 MCAPI
void setHasDestination(
bool hasDestination);
175 MCAPI
void setHasEndPathRadius(
bool hasEndPathRadius);
177 MCFOLD
void setInternalType(::std::unique_ptr<::PathNavigation> type);
179 MCAPI
void setIsFollowingRivers(
bool isFollowingRivers);
181 MCAPI
void setPath(::std::unique_ptr<::Path> path);
183 MCFOLD
void setSpeed(
float speed);
185 MCFOLD
void setTargetOffset(
::Vec3 const& targetOffset);
187 MCFOLD
void setTerminationThreshold(
float threshold);
189 MCFOLD
void setTickTimeout(
int timeout);
191 MCAPI
void stop(
::Mob& owner);
193 MCAPI
bool travel(
::Mob& owner,
float& xa,
float& ya,
float& za);
195 MCAPI
void update(
::Mob& owner);
197 MCAPI
void updateLastStuckCheck(
::Mob const& owner);
199 MCAPI ~NavigationComponent();
207 MCAPI
void* $ctor(::NavigationComponent
const& other);