RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
PathFinder.java
1package com.osroyale.game.world.pathfinding.path;
2
3import com.osroyale.game.world.Interactable;
4import com.osroyale.game.world.entity.mob.Direction;
5import com.osroyale.game.world.entity.mob.Mob;
6import com.osroyale.game.world.pathfinding.TraversalMap;
7import com.osroyale.game.world.position.Position;
8
46
47public abstract class PathFinder {
48
57 public abstract Path find(Mob source, Position target, int targetWidth, int targetLength);
58
59 public final Path find(Mob origin, Interactable target) {
60 return find(origin, target.getPosition(), target.width(), target.length());
61 }
62
63 public final Path find(Mob origin, Position target) {
64 return find(origin, target, 0, 0);
65 }
66
77 protected boolean traversable(Position current, int size, Direction... directions) {
78 for (Direction direction : directions) {
79 if (!TraversalMap.isTraversable(current, direction, size)) {
80 return false;
81 }
82 }
83 return true;
84 }
85
95 boolean traversable(Position current, Position going, int size) {
96 Direction first = Direction.getDirection(going, current);
97 Direction second = Direction.getDirection(current, going);
98 return TraversalMap.isTraversable(current, second, size) && TraversalMap.isTraversable(going, first, size);
99 }
100
110 protected boolean projectileCheck(Position current, Position going) {
111 Direction first = Direction.getDirection(going, current);
112 Direction second = Direction.getDirection(current, going);
113 return TraversalMap.isTraversable(current, second, true) && TraversalMap.isTraversable(going, first, true);
114 }
115
116}
static boolean isTraversable(Position from, Direction direction, int size)
boolean projectileCheck(Position current, Position going)
boolean traversable(Position current, int size, Direction... directions)
abstract Path find(Mob source, Position target, int targetWidth, int targetLength)
static Direction getDirection(int deltaX, int deltaY)