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;