From f373898c91a286ed1975e9b8b826f9cf120ece60 Mon Sep 17 00:00:00 2001 From: Arthur Casals Date: Mon, 5 Aug 2019 16:19:32 -0300 Subject: [PATCH] Added a hard yaw reset when the minion reaches the target --- src/main/java/org/terasology/minion/move/MoveToAction.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/terasology/minion/move/MoveToAction.java b/src/main/java/org/terasology/minion/move/MoveToAction.java index 992947bb..b932c8fa 100644 --- a/src/main/java/org/terasology/minion/move/MoveToAction.java +++ b/src/main/java/org/terasology/minion/move/MoveToAction.java @@ -81,16 +81,18 @@ private boolean processDirect(Actor actor, MinionMoveComponent moveComponent) { Vector3f drive = new Vector3f(); float yaw = (float) Math.atan2(targetDirection.x, targetDirection.z); + float requestedYaw = 180f + yaw * TeraMath.RAD_TO_DEG; + + if((targetDirection.x < distance) && (targetDirection.y < distance) && (targetDirection.z < distance)) { drive.set(0, 0, 0); reachedTarget = true; + requestedYaw = 0f; } else { targetDirection.normalize(); drive.set(targetDirection); } - float requestedYaw = 180f + yaw * TeraMath.RAD_TO_DEG; - CharacterMoveInputEvent wantedInput = new CharacterMoveInputEvent(0, 0, requestedYaw, drive, false, false, moveComponent.jumpMode, (long) (actor.getDelta() * 1000)); actor.getEntity().send(wantedInput);