Skip to content

Commit 7515853

Browse files
committed
Teleport to Owner during Journey if they get too far away
Closes #7
1 parent 0caaa63 commit 7515853

2 files changed

Lines changed: 8 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# 1.0.1
2+
- Teleport to Owner during Journey if they get too far away
23

34
# 1.0.0
45
- First non-beta release

Common/src/main/java/net/potionstudios/wayfinder/world/entity/ai/behavior/TravelToJourneyTarget.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
public class TravelToJourneyTarget extends Behavior<WayfinderEntity> {
2121
private int timeToRecalc;
22+
private int teleportTimer;
2223

2324
public TravelToJourneyTarget() {
2425
super(ImmutableMap.of(
@@ -31,6 +32,7 @@ public TravelToJourneyTarget() {
3132
@Override
3233
protected void start(@NotNull ServerLevel level, @NotNull WayfinderEntity entity, long gameTime) {
3334
timeToRecalc = 0;
35+
teleportTimer = 0;
3436
entity.getBrain().eraseMemory(MemoryModuleType.CANT_REACH_WALK_TARGET_SINCE);
3537
}
3638

@@ -60,8 +62,12 @@ protected void tick(@NotNull ServerLevel level, @NotNull WayfinderEntity entity,
6062
entity.setStartBlockPos(Optional.empty());
6163
brain.eraseMemory(WayfinderMemoryModuleType.JOURNEY_TARGET_POS.get());
6264
stop(level, entity, gameTime);
63-
} else if (entity.distanceToSqr(entity.getOwner()) > 100) {
65+
} else if (entity.distanceToSqr(entity.getOwner()) > 200) {
6466
brain.eraseMemory(MemoryModuleType.WALK_TARGET);
67+
if (++teleportTimer > 4) {
68+
entity.tryToTeleportToOwner();
69+
teleportTimer = 0;
70+
}
6571
} else {
6672
Vec3 step = entity.position().add(to.normalize().scale(Math.min(24, dist)));
6773
BlockPos stepPos = BlockPos.containing(step);

0 commit comments

Comments
 (0)