package net.scapeemulator.game.model.pathfinding; import net.scapeemulator.game.model.Position; import net.scapeemulator.game.model.mob.Mob; public abstract class PathFinder { public Path find(Mob mob, Position dest) { return find(mob, dest.getX(), dest.getY()); } public Path find(Mob mob, int destX, int destY) { /* Get the current position of the player */ Position position = mob.getPosition(); /* Get the scene base x and y coordinates */ int baseLocalX = position.getBaseLocalX(), baseLocalY = position.getBaseLocalY(); /* Calculate the local x and y coordinates */ int destLocalX = destX - baseLocalX, destLocalY = destY - baseLocalY; return find(new Position(baseLocalX, baseLocalY, position.getHeight()), 104, 104, position.getLocalX(), position.getLocalY(), destLocalX, destLocalY, mob.getSize()); } public Path find(Position position, int width, int length, int srcX, int srcY, int destX, int destY) { return find(position, width, length, srcX, srcY, destX, destY, 1); } public abstract Path find(Position position, int width, int length, int srcX, int srcY, int destX, int destY, int size); }