diff --git a/src/main/java/tenor/ISingleParentPriorityAllocator.java b/src/main/java/tenor/ISingleParentQuantizedPriorityAllocator.java similarity index 91% rename from src/main/java/tenor/ISingleParentPriorityAllocator.java rename to src/main/java/tenor/ISingleParentQuantizedPriorityAllocator.java index cbc41b39..40686c56 100644 --- a/src/main/java/tenor/ISingleParentPriorityAllocator.java +++ b/src/main/java/tenor/ISingleParentQuantizedPriorityAllocator.java @@ -17,7 +17,7 @@ package tenor; -public interface ISingleParentPriorityAllocator extends IQuantizedTask { +public interface ISingleParentQuantizedPriorityAllocator extends IQuantizedTask { @Override default IQuantityRelationship priority() { if (parentTasks().size() != 1) { diff --git a/src/main/java/tenor/ISingleParentSingularPriorityAllocator.java b/src/main/java/tenor/ISingleParentSingularPriorityAllocator.java new file mode 100644 index 00000000..e28e2dd2 --- /dev/null +++ b/src/main/java/tenor/ISingleParentSingularPriorityAllocator.java @@ -0,0 +1,28 @@ +/* + * This file is part of Baritone. + * + * Baritone is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Baritone is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Baritone. If not, see . + */ + +package tenor; + +public interface ISingleParentSingularPriorityAllocator extends ISingularTask { + @Override + default double priority() { + if (parentTasks().size() != 1) { + throw new IllegalStateException(); + } + return parentTasks().get(0).allocatedPriority(); + } +} diff --git a/src/main/java/tenor/game/ActuallyCraftTask.java b/src/main/java/tenor/game/ActuallyCraftTask.java index e26799f8..cf5f38ce 100644 --- a/src/main/java/tenor/game/ActuallyCraftTask.java +++ b/src/main/java/tenor/game/ActuallyCraftTask.java @@ -17,10 +17,10 @@ package tenor.game; -import tenor.ISingularChildTaskRelationship; +import tenor.ISingleParentSingularPriorityAllocator; import tenor.SingularTaskLeaf; -public class ActuallyCraftTask extends SingularTaskLeaf { +public class ActuallyCraftTask extends SingularTaskLeaf implements ISingleParentSingularPriorityAllocator { public final CraftingTask parent; @@ -33,9 +33,4 @@ public class ActuallyCraftTask extends SingularTaskLeaf { public double cost() { return 420; } - - @Override - public double priority() { - return parentTasks().stream().mapToDouble(ISingularChildTaskRelationship::allocatedPriority).sum(); - } } diff --git a/src/main/java/tenor/game/AquireCraftingItems.java b/src/main/java/tenor/game/AquireCraftingItems.java index 46fed53b..5e64a3b2 100644 --- a/src/main/java/tenor/game/AquireCraftingItems.java +++ b/src/main/java/tenor/game/AquireCraftingItems.java @@ -19,7 +19,7 @@ package tenor.game; import tenor.*; -public class AquireCraftingItems extends QuantizedTaskNode implements IClaimProvider, ISingleParentPriorityAllocator { +public class AquireCraftingItems extends QuantizedTaskNode implements IClaimProvider, ISingleParentQuantizedPriorityAllocator { final CraftingTask parent; diff --git a/src/main/java/tenor/game/CraftingTask.java b/src/main/java/tenor/game/CraftingTask.java index d6a4226a..1afe6811 100644 --- a/src/main/java/tenor/game/CraftingTask.java +++ b/src/main/java/tenor/game/CraftingTask.java @@ -22,7 +22,7 @@ import tenor.*; import java.util.List; -public class CraftingTask extends QuantizedTaskNode implements ISingleParentPriorityAllocator { +public class CraftingTask extends QuantizedTaskNode implements ISingleParentQuantizedPriorityAllocator { int outputQuantity; List> recipe; diff --git a/src/main/java/tenor/game/MineTask.java b/src/main/java/tenor/game/MineTask.java index 595a3590..d57e90fd 100644 --- a/src/main/java/tenor/game/MineTask.java +++ b/src/main/java/tenor/game/MineTask.java @@ -18,10 +18,10 @@ package tenor.game; import tenor.IQuantityRelationship; -import tenor.ISingleParentPriorityAllocator; +import tenor.ISingleParentQuantizedPriorityAllocator; import tenor.QuantizedTaskLeaf; -public class MineTask extends QuantizedTaskLeaf implements ISingleParentPriorityAllocator { +public class MineTask extends QuantizedTaskLeaf implements ISingleParentQuantizedPriorityAllocator { final AquireItemTask parent;