3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/world/level/CachedChunkBlockSource.h"
7#include "mc/world/level/block/BlockProperty.h"
8#include "mc/world/level/pathfinder/ActorPathingData.h"
9#include "mc/world/level/pathfinder/BinaryHeap.h"
10#include "mc/world/level/pathfinder/CanClimbIntoNode.h"
11#include "mc/world/level/pathfinder/CanJumpIntoNode.h"
12#include "mc/world/level/pathfinder/NodeType.h"
13#include "mc/world/level/pathfinder/PathCompletionType.h"
36 enum class ExtractionPurpose : uchar {
41 enum class NeighborDiagonalType :
int {
49 ::ll::TypedStorage<8, 48, ::CachedChunkBlockSource> mRegion;
50 ::ll::TypedStorage<8, 32, ::BinaryHeap> mOpenSet;
51 ::ll::TypedStorage<8, 64, ::std::unordered_map<::BlockPos, ::PathfinderNode>> mNodes;
52 ::ll::TypedStorage<8, 256, ::std::array<::PathfinderNode*, 32>> mNeighbors;
53 ::ll::TypedStorage<1, 1, bool> mCanPassDoors;
54 ::ll::TypedStorage<1, 1, bool> mCanOpenDoors;
55 ::ll::TypedStorage<1, 1, bool> mCanOpenIronDoors;
56 ::ll::TypedStorage<1, 1, bool> mAvoidWater;
57 ::ll::TypedStorage<1, 1, bool> mAvoidDamageBlocks;
58 ::ll::TypedStorage<1, 1, bool> mCanFloat;
59 ::ll::TypedStorage<1, 1, bool> mCanPathOverLava;
60 ::ll::TypedStorage<1, 1, bool> mCanWalkInLava;
61 ::ll::TypedStorage<1, 1, bool> mIsAmphibious;
62 ::ll::TypedStorage<1, 1, bool> mAvoidPortals;
63 ::ll::TypedStorage<1, 1, bool> mCanBreach;
64 ::ll::TypedStorage<1, 1, bool> mCanJump;
80 ::BlockProperty testProperty,
109 ::CanJumpIntoNode jumpIntoNode,
110 ::CanClimbIntoNode climbIntoNode
116 MCNAPI ::std::unique_ptr<::Path>
133 float maxReachableHeight,
137 MCNAPI ::ActorPathingData::MinMaxHeightCacheEntry
146 ::std::bitset<18>
const& validPositions
157 ::CanClimbIntoNode climbIntoNode
173 ::CanClimbIntoNode climbIntoNode
176 MCNAPI ::PathfinderNode*
196 MCNAPI ::std::unique_ptr<::Path>
204 ::CanJumpIntoNode jumpIntoNode,
205 ::CanClimbIntoNode climbIntoNode
225 bool canPathOverLava,
231 ::PathFinder::ExtractionPurpose purpose,
232 ::std::optional<::Vec3> targetPos
Definition BlockSource.h:67
Definition BreakBlocksComponent.h:12
Definition CachedChunkBlockSource.h:18
Definition IPathBlockSource.h:10
Definition NavigationComponent.h:22
Definition PathFinder.h:33
MCAPI::PathfinderNode * _getNode(::ActorPathingData const &data, ::BlockPos const &fromPos, ::BlockPos const &blockPos, ::PathfinderNode const &size, float jumpHeight, ::CanClimbIntoNode climbIntoNode)
MCAPI::PathfinderNode * _getWaterNode(::ActorPathingData const &data, ::BlockPos const &lastPos, ::BlockPos const &blockPos)
MCAPI bool _findNearestPathableNeighbor(::BlockPos &outPos, ::ActorPathingData const &data, ::BlockPos const &testPos)
static MCAPI ::PreferredPathDescription const & DEFAULT_DESC()
static MCAPI ::ActorPathingData extractPathingData(::Actor &mutableActor, ::PathFinder::ExtractionPurpose purpose, ::std::optional<::Vec3 > targetPos)
static MCAPI float _calculateMoveCost(::ActorPathingData const &data, ::PathfinderNode &start, ::BlockPos const &fromPos, ::CachedChunkBlockSource ®ion)
MCAPI::NodeType _isFreeStartNode(::ActorPathingData const &data, ::AABB const &entityAABB, ::BlockPos const &testPos, ::BlockPos const &size)
MCAPI::ActorPathingData::MinMaxHeightCacheEntry _getMinAndMaxHeightAroundBlock(::ActorPathingData const &data, ::BlockPos const &blockPos, float mobHeight) const
MCAPI bool _isNeighborPotentiallyValid(::PathfinderNode const &node, ::PathfinderNode const &target, ::BlockPos const &offset, uint maxDistSqr)
MCAPI::NodeType _classifyNode(::ActorPathingData const &data, ::BlockPos const &lastPathPos, ::Block const &testBlock, ::BlockPos const &testPos, ::CanJumpIntoNode jumpIntoNode, ::CanClimbIntoNode climbIntoNode)
MCAPI::NodeType _classifyDoorNode(::ActorPathingData const &data, ::Block const &testBlock, ::BlockPos const &testPos, ::BlockPos const &lastPathPos)
MCAPI ::std::optional<::NodeType > _getPartialBlockNodeType(::BlockPos const ¤tBlockPos, ::BlockPos const &lastBlockPos, ::ActorPathingData const &data)
MCAPI ::std::unique_ptr<::Path > _reconstructPath(::PathfinderNode *to, ::PathCompletionType completionType, ::ActorUniqueID actorId)
MCAPI::PathfinderNode * _getNode(::BlockPos const &pos, ::NodeType nodeType)
MCAPI ::std::optional<::BlockPos > _getHighestReachablePosByJumping(::BlockPos const &originalTargetPos, float maxReachableHeight, ::BlockPos const &actorSize) const
MCAPI float _getHeightAboveBlock(::BlockPos const &blockPos, float mobHeight) const
MCAPI ::std::unique_ptr<::Path > _findPath(::ActorPathingData const &data, ::PathfinderNode *from, ::PathfinderNode *to, ::PathfinderNode const &size, float maxDist)
static MCAPI ::BlockPos _getStartPositionFlyingActor(::IPathBlockSource const &pathBlockSource, ::BlockPos originalStartPos, bool canFloat, bool canPathOverLava, float yFeetPosition)
MCAPI::NodeType _isFreeWaterNode(::ActorPathingData const &data, ::BlockPos const &lastPos, ::BlockPos const &blockPos)
MCAPI bool _checkForDamagingBlock(::ActorPathingData const &data, ::BlockPos const &pos, ::Block const &block, int radius, ::BreakBlocksComponent const *breakBlocksComponent)
MCAPI float _getHeightBelowBlock(::BlockPos const &blockPos, float mobHeight) const
MCAPI::NodeType _classifyNode(::ActorPathingData const &data, ::BlockPos const &fromPos, ::BlockPos const &testPos)
MCAPI void * $ctor(::BlockSource ®ion, ::NavigationComponent const &navigation)
MCAPI bool _checkBlockAndNeighborsProperty(::ActorPathingData const &data, ::BlockPos const &pos, ::Block const &block, ::BlockProperty testProperty, int radius, ::BreakBlocksComponent const *breakBlocksComponent, ::std::function< bool(::Block const &, ::BlockPos const &)> extraCondition)
MCAPI PathFinder(::BlockSource ®ion, ::NavigationComponent const &navigation)
MCAPI::NodeType isFree(::ActorPathingData const &data, ::BlockPos const &lastPathPos, ::BlockPos const &testPos, ::BlockPos const &size, ::CanJumpIntoNode jumpIntoNode, ::CanClimbIntoNode climbIntoNode)
MCAPI int _getNeighbors(::ActorPathingData const &data, ::PathfinderNode &pos, ::PathfinderNode const &size, ::PathfinderNode const &target, uint maxDistSqr, ::std::bitset< 18 > const &validPositions)
MCAPI float _getPathfindingMalus(::ActorPathingData const &data, ::NodeType nodeType, ::BlockPos const &blockPos)
MCAPI::PathfinderNode * _getUnderneathSupportedNode(::PathfinderNode *node, ::ActorPathingData const &data, ::BlockPos const &fromPos, ::PathfinderNode const &size, ::CanClimbIntoNode climbIntoNode)
MCAPI ::std::unique_ptr<::Path > _findPath(::ActorPathingData const &actorData, float xt, float yt, float zt, float maxDist)
Definition PathfinderNode.h:5
Definition ActorPathingData.h:5
Definition ActorUniqueID.h:5
Definition PreferredPathDescription.h:13