Release 0.65
							parent
							
								
									f99afa00c8
								
							
						
					
					
						commit
						71dce61c09
					
				| 
						 | 
				
			
			@ -17,6 +17,7 @@ namespace Internal
 | 
			
		|||
            Region(const Region& R);
 | 
			
		||||
            static Class GetClass();
 | 
			
		||||
 | 
			
		||||
            std::int32_t GetEntityCount() const;
 | 
			
		||||
            std::vector<GameObject> GetGameObjects() const;
 | 
			
		||||
            GameObject GetGameObjects(std::int32_t I) const;
 | 
			
		||||
            std::vector<std::vector<std::vector<SceneTile>>> GetSceneTiles() const;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,7 +14,6 @@ std::int32_t UniformRandom(std::int32_t Min, std::int32_t Max);
 | 
			
		|||
double UniformRandom();
 | 
			
		||||
std::int32_t NormalRandom(std::int32_t Mean, double StandardDeviation);
 | 
			
		||||
std::int32_t NormalRandom(std::int32_t Low, std::int32_t High, double PercentageDeviation);
 | 
			
		||||
std::vector<Point> Spiral(Point Start, Box Area);
 | 
			
		||||
std::vector<Point> ConvexHull(std::vector<Point> Points);
 | 
			
		||||
 | 
			
		||||
/** @} */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,6 +11,7 @@
 | 
			
		|||
#include "Tools/Worlds.hpp"
 | 
			
		||||
#include "Tools/RandomHandler.hpp"
 | 
			
		||||
#include "Tools/Camera.hpp"
 | 
			
		||||
#include "Tools/Pathfinding.hpp"
 | 
			
		||||
 | 
			
		||||
#include "Interfaces/Bank.hpp"
 | 
			
		||||
#include "Interfaces/Chat.hpp"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -31,6 +31,8 @@ namespace Interactable
 | 
			
		|||
 | 
			
		||||
            double GetVisibility() const;
 | 
			
		||||
            Tile GetTile() const;
 | 
			
		||||
            Tile GetReachableTile() const;
 | 
			
		||||
            bool IsReachable() const;
 | 
			
		||||
            bool RotateTo(std::int32_t Angle = 0) const;
 | 
			
		||||
            bool RotateTo(Camera::COMPASS_DIRECTION Direction) const;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -31,6 +31,10 @@ namespace Interactable
 | 
			
		|||
 | 
			
		||||
            double GetVisibility() const;
 | 
			
		||||
            Tile GetTile() const;
 | 
			
		||||
            Tile GetReachableTile() const;
 | 
			
		||||
            Tile GetMin() const;
 | 
			
		||||
            Tile GetMax() const;
 | 
			
		||||
            bool IsReachable() const;
 | 
			
		||||
            bool RotateTo(std::int32_t Angle = 0) const;
 | 
			
		||||
            bool RotateTo(Camera::COMPASS_DIRECTION Direction) const;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,6 +34,8 @@ namespace Interactable
 | 
			
		|||
            double GetVisibility() const;
 | 
			
		||||
            Tile GetTile() const;
 | 
			
		||||
            Tile GetLocalTile() const;
 | 
			
		||||
            Tile GetReachableTile() const;
 | 
			
		||||
            bool IsReachable() const;
 | 
			
		||||
            bool RotateTo(std::int32_t Angle = 0) const;
 | 
			
		||||
            bool RotateTo(Camera::COMPASS_DIRECTION Direction) const;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -31,6 +31,8 @@ namespace Interactable
 | 
			
		|||
 | 
			
		||||
            double GetVisibility() const;
 | 
			
		||||
            Tile GetTile() const;
 | 
			
		||||
            Tile GetReachableTile() const;
 | 
			
		||||
            bool IsReachable() const;
 | 
			
		||||
            bool RotateTo(std::int32_t Angle = 0) const;
 | 
			
		||||
            bool RotateTo(Camera::COMPASS_DIRECTION Direction) const;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -31,6 +31,8 @@ namespace Interactable
 | 
			
		|||
 | 
			
		||||
            double GetVisibility() const;
 | 
			
		||||
            Tile GetTile() const;
 | 
			
		||||
            Tile GetReachableTile() const;
 | 
			
		||||
            bool IsReachable() const;
 | 
			
		||||
            bool RotateTo(std::int32_t Angle = 0) const;
 | 
			
		||||
            bool RotateTo(Camera::COMPASS_DIRECTION Direction) const;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -30,6 +30,8 @@ namespace Interactable
 | 
			
		|||
 | 
			
		||||
            double GetVisibility() const;
 | 
			
		||||
            Tile GetTile() const;
 | 
			
		||||
            Tile GetReachableTile() const;
 | 
			
		||||
            bool IsReachable() const;
 | 
			
		||||
            bool RotateTo(std::int32_t Angle = 0) const;
 | 
			
		||||
            bool RotateTo(Camera::COMPASS_DIRECTION Direction) const;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -31,6 +31,8 @@ namespace Interactable
 | 
			
		|||
 | 
			
		||||
            double GetVisibility() const;
 | 
			
		||||
            Tile GetTile() const;
 | 
			
		||||
            Tile GetReachableTile() const;
 | 
			
		||||
            bool IsReachable() const;
 | 
			
		||||
            bool RotateTo(std::int32_t Angle = 0) const;
 | 
			
		||||
            bool RotateTo(Camera::COMPASS_DIRECTION Direction) const;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -65,6 +65,13 @@ class Minimap
 | 
			
		|||
         * @return true if the function succesfully clicked the orb
 | 
			
		||||
         */
 | 
			
		||||
        static bool ClickQuickPrayer();
 | 
			
		||||
 | 
			
		||||
        /**
 | 
			
		||||
         * @brief Clicks the toggle-run orb
 | 
			
		||||
         *
 | 
			
		||||
         * @return true if the function succesfully clicked the orb
 | 
			
		||||
         */
 | 
			
		||||
        static bool ClickToggleRun();
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/** @} */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,92 @@
 | 
			
		|||
#ifndef PATHFINDING_HPP_INCLUDED
 | 
			
		||||
#define PATHFINDING_HPP_INCLUDED
 | 
			
		||||
 | 
			
		||||
#include "../../Core/Types/Tile.hpp"
 | 
			
		||||
#include <vector>
 | 
			
		||||
#include <functional>
 | 
			
		||||
 | 
			
		||||
class Pathfinding
 | 
			
		||||
{
 | 
			
		||||
    public:
 | 
			
		||||
 | 
			
		||||
        enum COLLISION_FLAG
 | 
			
		||||
        {
 | 
			
		||||
            OPEN            = 0,
 | 
			
		||||
            CLOSED          = 0xFFFFFF,
 | 
			
		||||
            UNINITIALIZED   = 0x1000000,
 | 
			
		||||
            OCCUPIED        = 0x100,
 | 
			
		||||
            SOLID           = 0x20000,
 | 
			
		||||
            BLOCKED         = 0x200000,
 | 
			
		||||
 | 
			
		||||
            NORTH           = 0x2,
 | 
			
		||||
            EAST            = 0x8,
 | 
			
		||||
            SOUTH           = 0x20,
 | 
			
		||||
            WEST            = 0x80,
 | 
			
		||||
 | 
			
		||||
            NORTHEAST       = 0x4,
 | 
			
		||||
            SOUTHEAST       = 0x10,
 | 
			
		||||
            SOUTHWEST       = 0x40,
 | 
			
		||||
            NORTHWEST       = 0x1,
 | 
			
		||||
 | 
			
		||||
            BLOCKED_NORTH       = 0x400,
 | 
			
		||||
            BLOCKED_EAST        = 0x1000,
 | 
			
		||||
            BLOCKED_SOUTH       = 0x4000,
 | 
			
		||||
            BLOCKED_WEST        = 0x10000,
 | 
			
		||||
 | 
			
		||||
            BLOCKED_NORTHEAST   = 0x800,
 | 
			
		||||
            BLOCKED_SOUTHEAST   = 0x2000,
 | 
			
		||||
            BLOCKED_NORTHWEST   = 0x200,
 | 
			
		||||
            BLOCKED_SOUTHWEST   = 0x8000,
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        typedef enum PATHFINDER
 | 
			
		||||
        {
 | 
			
		||||
            BREADTH_FIRST_SEARCH
 | 
			
		||||
        } PATHFINDER;
 | 
			
		||||
 | 
			
		||||
        class TileNode
 | 
			
		||||
        {
 | 
			
		||||
            public:
 | 
			
		||||
                std::int32_t X;
 | 
			
		||||
                std::int32_t Y;
 | 
			
		||||
                std::int32_t Flag;
 | 
			
		||||
                bool Inspected;
 | 
			
		||||
                std::int32_t Parent[2];
 | 
			
		||||
                TileNode();
 | 
			
		||||
                TileNode(std::int32_t X, std::int32_t Y, std::int32_t Flag);
 | 
			
		||||
                bool IsBlocked(bool AllowOccupied = true) const;
 | 
			
		||||
                Tile ToWorldTile() const;
 | 
			
		||||
                bool operator==(const TileNode& N) const;
 | 
			
		||||
                operator bool() const;
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        static void RegenerateNodes();
 | 
			
		||||
        static std::vector<std::vector<TileNode>> GetNodes();
 | 
			
		||||
 | 
			
		||||
        static Tile FindWalkableTile(const Tile& T);
 | 
			
		||||
        static Tile FindWalkableTile(const Tile& T, const Tile& Min, const Tile& Max);
 | 
			
		||||
        static std::vector<Tile> FindWalkableTiles(const Tile& T);
 | 
			
		||||
        static std::vector<Tile> FindWalkableTiles(const Tile& T, const Tile& Min, const Tile& Max);
 | 
			
		||||
 | 
			
		||||
        static std::vector<Tile> FindPathTo(const Tile& Goal, bool AllowOccupied = false, PATHFINDER Finder = BREADTH_FIRST_SEARCH);
 | 
			
		||||
        static std::vector<Tile> FindPathTo(const std::vector<Tile>& Goals, bool AllowOccupied = false, PATHFINDER Finder = BREADTH_FIRST_SEARCH);
 | 
			
		||||
        // Ignores collision
 | 
			
		||||
        static std::vector<Tile> FindDirectPathTo(const Tile& Goal, PATHFINDER Finder = BREADTH_FIRST_SEARCH);
 | 
			
		||||
        static std::vector<Tile> FindDirectPathTo(const std::vector<Tile>& Goals, PATHFINDER Finder = BREADTH_FIRST_SEARCH);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        static bool IsInside(std::uint32_t X, std::uint32_t Y);
 | 
			
		||||
        static std::vector<Pathfinding::TileNode*> GetNeighborsTo(std::uint32_t X, std::uint32_t Y, bool AllowOccupied = false, bool CheckCollision = true);
 | 
			
		||||
        static std::vector<Pathfinding::TileNode> Finder_BFS(   std::uint32_t StartX, std::uint32_t StartY,
 | 
			
		||||
                                                                std::uint32_t EndX, std::uint32_t EndY,
 | 
			
		||||
                                                                bool AllowOccupied = false, bool CheckCollision = true   );
 | 
			
		||||
 | 
			
		||||
        static std::vector<Pathfinding::TileNode> Finder_BFS(   std::uint32_t StartX, std::uint32_t StartY,
 | 
			
		||||
                                                                const std::vector<std::pair<std::uint32_t, std::uint32_t>>& Ends,
 | 
			
		||||
                                                                bool AllowOccupied = false, bool CheckCollision = true  );
 | 
			
		||||
    private:
 | 
			
		||||
        static std::vector<std::vector<TileNode>> Nodes;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif // PATHFINDING_HPP_INCLUDED
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							
		Loading…
	
		Reference in New Issue