diff --git a/src/main/java/electrosphere/entity/state/movement/GroundMovementTree.java b/src/main/java/electrosphere/entity/state/movement/GroundMovementTree.java index 985e6dec..3f8ad261 100644 --- a/src/main/java/electrosphere/entity/state/movement/GroundMovementTree.java +++ b/src/main/java/electrosphere/entity/state/movement/GroundMovementTree.java @@ -39,7 +39,9 @@ public class GroundMovementTree { IDLE, } - static final double STATE_DIFFERENCE_HARD_UPDATE_THRESHOLD = 0.1; + static final double STATE_DIFFERENCE_HARD_UPDATE_THRESHOLD = 1.0; + static final double STATE_DIFFERENCE_SOFT_UPDATE_THRESHOLD = 0.2; + static final double SOFT_UPDATE_MULTIPLIER = 0.1; MovementTreeState state; @@ -140,6 +142,8 @@ public class GroundMovementTree { // System.out.println(message.getpositionX() + " " + message.getpositionY() + " " + message.getpositionZ()); if(position.distance(message.getpositionX(),message.getpositionY(),message.getpositionZ()) > STATE_DIFFERENCE_HARD_UPDATE_THRESHOLD){ EntityUtils.getPosition(parent).set(message.getpositionX(),message.getpositionY(),message.getpositionZ()); + } else if(position.distance(message.getpositionX(),message.getpositionY(),message.getpositionZ()) > STATE_DIFFERENCE_SOFT_UPDATE_THRESHOLD){ + EntityUtils.getPosition(parent).add(new Vector3d(message.getpositionX(),message.getpositionY(),message.getpositionZ()).mul(SOFT_UPDATE_MULTIPLIER)); } CreatureUtils.setMovementVector(parent, new Vector3f(message.getrotationX(),message.getrotationY(),message.getrotationZ())); // EntityUtils.getEntityRotation(parent).set(message.getrotationX(), message.getrotationY(), message.getrotationZ(), message.getrotationW()).normalize();