diff --git a/api/src/main/java/com/bartlomiejpluta/base/api/game/ai/FollowEntityAI.java b/api/src/main/java/com/bartlomiejpluta/base/api/game/ai/FollowEntityAI.java index dff764b6..da9fb34a 100644 --- a/api/src/main/java/com/bartlomiejpluta/base/api/game/ai/FollowEntityAI.java +++ b/api/src/main/java/com/bartlomiejpluta/base/api/game/ai/FollowEntityAI.java @@ -3,21 +3,21 @@ package com.bartlomiejpluta.base.api.game.ai; import com.bartlomiejpluta.base.api.game.entity.Direction; import com.bartlomiejpluta.base.api.game.entity.Entity; import com.bartlomiejpluta.base.api.game.map.layer.object.ObjectLayer; -import com.bartlomiejpluta.base.api.util.pathfinding.AstarPathFinder; -import com.bartlomiejpluta.base.api.util.pathfinding.PathFinder; +import com.bartlomiejpluta.base.api.util.pathfinder.PathFinder; import org.joml.Vector2i; public class FollowEntityAI implements AI { - private static final float recalculateInterval = 0.5f; - private final NPC npc; private final Entity target; - private final PathFinder pathFinder = new AstarPathFinder(100); - + private final PathFinder pathFinder; private final int range; + + private final float recalculateInterval; private float accumulator = 0.0f; - public FollowEntityAI(NPC npc, Entity target, int range) { + public FollowEntityAI(PathFinder pathFinder, float recalculateInterval, NPC npc, Entity target, int range) { + this.pathFinder = pathFinder; + this.recalculateInterval = recalculateInterval; this.npc = npc; this.range = range; this.target = target; @@ -27,7 +27,7 @@ public class FollowEntityAI implements AI { public void nextActivity(ObjectLayer layer, float dt) { var distance = npc.manhattanDistance(target); - if (!npc.isMoving() && distance > 1 && distance < range && accumulator >= recalculateInterval) { + if (!npc.isMoving() && 1 < distance && distance < range && accumulator >= recalculateInterval) { var path = pathFinder.findPath(layer, npc.getCoordinates(), target.getCoordinates()); if (!path.isEmpty()) { @@ -46,4 +46,3 @@ public class FollowEntityAI implements AI { accumulator += dt; } } - diff --git a/api/src/main/java/com/bartlomiejpluta/base/api/util/pathfinding/AstarPathFinder.java b/api/src/main/java/com/bartlomiejpluta/base/api/util/pathfinder/AstarPathFinder.java similarity index 99% rename from api/src/main/java/com/bartlomiejpluta/base/api/util/pathfinding/AstarPathFinder.java rename to api/src/main/java/com/bartlomiejpluta/base/api/util/pathfinder/AstarPathFinder.java index e8f11dba..9360cbe4 100644 --- a/api/src/main/java/com/bartlomiejpluta/base/api/util/pathfinding/AstarPathFinder.java +++ b/api/src/main/java/com/bartlomiejpluta/base/api/util/pathfinder/AstarPathFinder.java @@ -1,4 +1,4 @@ -package com.bartlomiejpluta.base.api.util.pathfinding; +package com.bartlomiejpluta.base.api.util.pathfinder; import com.bartlomiejpluta.base.api.game.map.layer.object.ObjectLayer; import org.joml.Vector2i; diff --git a/api/src/main/java/com/bartlomiejpluta/base/api/util/pathfinding/PathFinder.java b/api/src/main/java/com/bartlomiejpluta/base/api/util/pathfinder/PathFinder.java similarity index 81% rename from api/src/main/java/com/bartlomiejpluta/base/api/util/pathfinding/PathFinder.java rename to api/src/main/java/com/bartlomiejpluta/base/api/util/pathfinder/PathFinder.java index 4568aedd..4b296b81 100644 --- a/api/src/main/java/com/bartlomiejpluta/base/api/util/pathfinding/PathFinder.java +++ b/api/src/main/java/com/bartlomiejpluta/base/api/util/pathfinder/PathFinder.java @@ -1,4 +1,4 @@ -package com.bartlomiejpluta.base.api.util.pathfinding; +package com.bartlomiejpluta.base.api.util.pathfinder; import com.bartlomiejpluta.base.api.game.map.layer.object.ObjectLayer; import org.joml.Vector2i;