Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.rs.game.route;
- /**
- * Route finder, designed for single-threaded usage.
- *
- * @author Mangis
- */
- public class RouteFinder {
- /**
- * Standart walk route finder type.
- */
- public static final int WALK_ROUTEFINDER = 0;
- /**
- * Last routefinder that was used.
- */
- private static int lastUsed;
- /**
- * Find's route using given strategy. Returns amount of steps found. If
- * steps > 0, route exists. If steps = 0, route exists, but no need to move.
- * If steps < 0, route does not exist.
- */
- public static int findRoute(int type, int srcX, int srcY, int srcZ,
- int srcSizeXY, RouteStrategy strategy, boolean findAlternative) {
- switch (lastUsed = type) {
- case WALK_ROUTEFINDER:
- return WalkRouteFinder.findRoute(srcX, srcY, srcZ, srcSizeXY,
- strategy, findAlternative);
- default:
- throw new RuntimeException("Unknown routefinder type.");
- }
- }
- /**
- * Get's last path buffer x. Modifying the buffer in any way is prohibited.
- */
- public static int[] getLastPathBufferX() {
- switch (lastUsed) {
- case WALK_ROUTEFINDER:
- return WalkRouteFinder.getLastPathBufferX();
- default:
- throw new RuntimeException("Unknown routefinder type.");
- }
- }
- /**
- * Get's last path buffer y. Modifying the buffer in any way is prohibited.
- */
- public static int[] getLastPathBufferY() {
- switch (lastUsed) {
- case WALK_ROUTEFINDER:
- return WalkRouteFinder.getLastPathBufferY();
- default:
- throw new RuntimeException("Unknown routefinder type.");
- }
- }
- /**
- * Whether last path is only alternative path.
- */
- public static boolean lastIsAlternative() {
- switch (lastUsed) {
- case WALK_ROUTEFINDER:
- return WalkRouteFinder.lastIsAlternative();
- default:
- throw new RuntimeException("Unknown routefinder type.");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement