add blockBreakAdditionalPenalty
This commit is contained in:
parent
1bd7c8455f
commit
239bb14e3a
@ -56,6 +56,13 @@ public class Settings {
|
|||||||
*/
|
*/
|
||||||
public Setting<Double> blockPlacementPenalty = new Setting<>(20D);
|
public Setting<Double> blockPlacementPenalty = new Setting<>(20D);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is just a tiebreaker to make it less likely to break blocks if it can avoid it.
|
||||||
|
* For example, fire has a break cost of 0, this makes it nonzero, so all else being equal
|
||||||
|
* it will take an otherwise equivalent route that doesn't require it to put out fire.
|
||||||
|
*/
|
||||||
|
public Setting<Double> blockBreakAdditionalPenalty = new Setting<>(2D);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allow Baritone to fall arbitrary distances and place a water bucket beneath it.
|
* Allow Baritone to fall arbitrary distances and place a water bucket beneath it.
|
||||||
* Reliability: questionable.
|
* Reliability: questionable.
|
||||||
|
@ -43,6 +43,7 @@ public class CalculationContext implements Helper {
|
|||||||
private final int maxFallHeightNoWater;
|
private final int maxFallHeightNoWater;
|
||||||
private final int maxFallHeightBucket;
|
private final int maxFallHeightBucket;
|
||||||
private final double waterWalkSpeed;
|
private final double waterWalkSpeed;
|
||||||
|
private final double breakBlockAdditionalCost;
|
||||||
|
|
||||||
public CalculationContext() {
|
public CalculationContext() {
|
||||||
this(new ToolSet());
|
this(new ToolSet());
|
||||||
@ -63,6 +64,7 @@ public class CalculationContext implements Helper {
|
|||||||
}
|
}
|
||||||
float mult = depth / 3.0F;
|
float mult = depth / 3.0F;
|
||||||
this.waterWalkSpeed = ActionCosts.WALK_ONE_IN_WATER_COST * (1 - mult) + ActionCosts.WALK_ONE_BLOCK_COST * mult;
|
this.waterWalkSpeed = ActionCosts.WALK_ONE_IN_WATER_COST * (1 - mult) + ActionCosts.WALK_ONE_BLOCK_COST * mult;
|
||||||
|
this.breakBlockAdditionalCost = Baritone.settings().blockBreakAdditionalPenalty.get();
|
||||||
// why cache these things here, why not let the movements just get directly from settings?
|
// why cache these things here, why not let the movements just get directly from settings?
|
||||||
// because if some movements are calculated one way and others are calculated another way,
|
// because if some movements are calculated one way and others are calculated another way,
|
||||||
// then you get a wildly inconsistent path that isn't optimal for either scenario.
|
// then you get a wildly inconsistent path that isn't optimal for either scenario.
|
||||||
@ -104,4 +106,7 @@ public class CalculationContext implements Helper {
|
|||||||
return waterWalkSpeed;
|
return waterWalkSpeed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public double breakBlockAdditionalCost() {
|
||||||
|
return breakBlockAdditionalCost;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -374,6 +374,7 @@ public interface MovementHelper extends ActionCosts, Helper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
double result = m / strVsBlock;
|
double result = m / strVsBlock;
|
||||||
|
result += context.breakBlockAdditionalCost();
|
||||||
if (includeFalling) {
|
if (includeFalling) {
|
||||||
IBlockState above = BlockStateInterface.get(x, y + 1, z);
|
IBlockState above = BlockStateInterface.get(x, y + 1, z);
|
||||||
if (above.getBlock() instanceof BlockFalling) {
|
if (above.getBlock() instanceof BlockFalling) {
|
||||||
|
Loading…
Reference in New Issue
Block a user