prevent favoring from affecting movement cost thresholds
This commit is contained in:
		| @@ -132,7 +132,9 @@ class Path extends PathBase { | ||||
|             Movement move = moves.apply0(context, src); | ||||
|             if (move.getDest().equals(dest)) { | ||||
|                 // have to calculate the cost at calculation time so we can accurately judge whether a cost increase happened between cached calculation and real execution | ||||
|                 move.override(cost); | ||||
|                 // however, taking into account possible favoring that could skew the node cost, we really want the stricter limit of the two | ||||
|                 // so we take the minimum of the path node cost difference, and the calculated cost | ||||
|                 move.override(Math.min(move.calculateCost(context), cost)); | ||||
|                 return move; | ||||
|             } | ||||
|         } | ||||
|   | ||||
| @@ -84,7 +84,7 @@ public abstract class Movement implements IMovement, MovementHelper { | ||||
|         return cost; | ||||
|     } | ||||
|  | ||||
|     protected abstract double calculateCost(CalculationContext context); | ||||
|     public abstract double calculateCost(CalculationContext context); | ||||
|  | ||||
|     @Override | ||||
|     public double recalculateCost() { | ||||
|   | ||||
| @@ -52,7 +52,7 @@ public class MovementAscend extends Movement { | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected double calculateCost(CalculationContext context) { | ||||
|     public double calculateCost(CalculationContext context) { | ||||
|         return cost(context, src.x, src.y, src.z, dest.x, dest.z); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -52,7 +52,7 @@ public class MovementDescend extends Movement { | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected double calculateCost(CalculationContext context) { | ||||
|     public double calculateCost(CalculationContext context) { | ||||
|         MutableMoveResult result = new MutableMoveResult(); | ||||
|         cost(context, src.x, src.y, src.z, dest.x, dest.z, result); | ||||
|         if (result.y != dest.y) { | ||||
|   | ||||
| @@ -54,7 +54,7 @@ public class MovementDiagonal extends Movement { | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected double calculateCost(CalculationContext context) { | ||||
|     public double calculateCost(CalculationContext context) { | ||||
|         MutableMoveResult result = new MutableMoveResult(); | ||||
|         cost(context, src.x, src.y, src.z, dest.x, dest.z, result); | ||||
|         if (result.y != dest.y) { | ||||
|   | ||||
| @@ -43,7 +43,7 @@ public class MovementDownward extends Movement { | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected double calculateCost(CalculationContext context) { | ||||
|     public double calculateCost(CalculationContext context) { | ||||
|         return cost(context, src.x, src.y, src.z); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -54,7 +54,7 @@ public class MovementFall extends Movement { | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected double calculateCost(CalculationContext context) { | ||||
|     public double calculateCost(CalculationContext context) { | ||||
|         MutableMoveResult result = new MutableMoveResult(); | ||||
|         MovementDescend.cost(context, src.x, src.y, src.z, dest.x, dest.z, result); | ||||
|         if (result.y != dest.y) { | ||||
|   | ||||
| @@ -166,7 +166,7 @@ public class MovementParkour extends Movement { | ||||
|  | ||||
|  | ||||
|     @Override | ||||
|     protected double calculateCost(CalculationContext context) { | ||||
|     public double calculateCost(CalculationContext context) { | ||||
|         MutableMoveResult res = new MutableMoveResult(); | ||||
|         cost(context, src.x, src.y, src.z, direction, res); | ||||
|         if (res.x != dest.x || res.z != dest.z) { | ||||
|   | ||||
| @@ -42,7 +42,7 @@ public class MovementPillar extends Movement { | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected double calculateCost(CalculationContext context) { | ||||
|     public double calculateCost(CalculationContext context) { | ||||
|         return cost(context, src.x, src.y, src.z); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -60,7 +60,7 @@ public class MovementTraverse extends Movement { | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected double calculateCost(CalculationContext context) { | ||||
|     public double calculateCost(CalculationContext context) { | ||||
|         return cost(context, src.x, src.y, src.z, dest.x, dest.z); | ||||
|     } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user