diff --git a/src/main/java/tenor/AquireCraftingItems.java b/src/main/java/tenor/AquireCraftingItems.java
new file mode 100644
index 000000000..f992fe332
--- /dev/null
+++ b/src/main/java/tenor/AquireCraftingItems.java
@@ -0,0 +1,22 @@
+/*
+ * 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 class AquireCraftingItems extends Task{
+
+}
diff --git a/src/main/java/tenor/AquireItemTask.java b/src/main/java/tenor/AquireItemTask.java
new file mode 100644
index 000000000..14f5dbb9b
--- /dev/null
+++ b/src/main/java/tenor/AquireItemTask.java
@@ -0,0 +1,29 @@
+/*
+ * 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;
+
+import java.util.HashMap;
+
+public class AquireItemTask extends Task implements ClaimProvider {
+ HashMap allocation;
+
+ @Override
+ public boolean provided(TaskRelationship parent, int quantity) {
+ return allocation.get(parent) >= quantity;
+ }
+}
diff --git a/src/main/java/tenor/ClaimProvider.java b/src/main/java/tenor/ClaimProvider.java
new file mode 100644
index 000000000..7641111d2
--- /dev/null
+++ b/src/main/java/tenor/ClaimProvider.java
@@ -0,0 +1,22 @@
+/*
+ * 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 ClaimProvider {
+ boolean provided(TaskRelationship parent, int quantity);
+}
diff --git a/src/main/java/tenor/CraftingTask.java b/src/main/java/tenor/CraftingTask.java
new file mode 100644
index 000000000..a14b2cbda
--- /dev/null
+++ b/src/main/java/tenor/CraftingTask.java
@@ -0,0 +1,23 @@
+/*
+ * 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 class CraftingTask {
+ int outputQuantity;
+
+}
diff --git a/src/main/java/tenor/DependencyType.java b/src/main/java/tenor/DependencyType.java
new file mode 100644
index 000000000..36b957d5a
--- /dev/null
+++ b/src/main/java/tenor/DependencyType.java
@@ -0,0 +1,22 @@
+/*
+ * 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 enum DependencyType {
+ SERIAL, PARALLEL_ALL, ANY_ONE_OF;
+}
diff --git a/src/main/java/tenor/IQuantizedChildTaskRelationship.java b/src/main/java/tenor/IQuantizedChildTaskRelationship.java
new file mode 100644
index 000000000..5894ebf02
--- /dev/null
+++ b/src/main/java/tenor/IQuantizedChildTaskRelationship.java
@@ -0,0 +1,26 @@
+/*
+ * 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 IQuantizedChildTaskRelationship extends ITaskRelationshipBase {
+ default QuantizedTask child() {
+ return (QuantizedTask) childTask();
+ }
+
+ double allocatedPriority(int quantity);
+}
diff --git a/src/main/java/tenor/IQuantizedParentTaskRelationship.java b/src/main/java/tenor/IQuantizedParentTaskRelationship.java
new file mode 100644
index 000000000..e6a36767e
--- /dev/null
+++ b/src/main/java/tenor/IQuantizedParentTaskRelationship.java
@@ -0,0 +1,24 @@
+/*
+ * 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 IQuantizedParentTaskRelationship extends ITaskRelationshipBase {
+ default QuantizedTaskNode parent() {
+ return (QuantizedTaskNode) parentTask();
+ }
+}
diff --git a/src/main/java/tenor/ISingularChildTaskRelationship.java b/src/main/java/tenor/ISingularChildTaskRelationship.java
new file mode 100644
index 000000000..4ff040dba
--- /dev/null
+++ b/src/main/java/tenor/ISingularChildTaskRelationship.java
@@ -0,0 +1,24 @@
+/*
+ * 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 ISingularChildTaskRelationship extends ITaskRelationshipBase {
+ default SingularTask child() {
+ return (SingularTask) childTask();
+ }
+}
diff --git a/src/main/java/tenor/ISingularParentTaskRelationship.java b/src/main/java/tenor/ISingularParentTaskRelationship.java
new file mode 100644
index 000000000..566da989f
--- /dev/null
+++ b/src/main/java/tenor/ISingularParentTaskRelationship.java
@@ -0,0 +1,24 @@
+/*
+ * 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 ISingularParentTaskRelationship extends ITaskRelationshipBase {
+ default SingularTask parent() {
+ return (SingularTask) parentTask();
+ }
+}
diff --git a/src/main/java/tenor/ITask.java b/src/main/java/tenor/ITask.java
new file mode 100644
index 000000000..1da466672
--- /dev/null
+++ b/src/main/java/tenor/ITask.java
@@ -0,0 +1,24 @@
+/*
+ * 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;
+
+import java.util.List;
+
+public interface ITask {
+ List parentTasks();
+}
diff --git a/src/main/java/tenor/ITaskRelationshipBase.java b/src/main/java/tenor/ITaskRelationshipBase.java
new file mode 100644
index 000000000..f9176e555
--- /dev/null
+++ b/src/main/java/tenor/ITaskRelationshipBase.java
@@ -0,0 +1,24 @@
+/*
+ * 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 ITaskRelationshipBase {
+ TaskNode parentTask();
+
+ Task childTask();
+}
diff --git a/src/main/java/tenor/MineTask.java b/src/main/java/tenor/MineTask.java
new file mode 100644
index 000000000..c1a3216c3
--- /dev/null
+++ b/src/main/java/tenor/MineTask.java
@@ -0,0 +1,25 @@
+/*
+ * 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 class MineTask extends TaskLeaf implements QuantizedTask {
+ @Override
+ public QuantityRelationship cost() {
+ return null;
+ }
+}
diff --git a/src/main/java/tenor/QuantityRelationship.java b/src/main/java/tenor/QuantityRelationship.java
new file mode 100644
index 000000000..48cef8df2
--- /dev/null
+++ b/src/main/java/tenor/QuantityRelationship.java
@@ -0,0 +1,22 @@
+/*
+ * 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 QuantityRelationship {
+ double value(int quantity);
+}
diff --git a/src/main/java/tenor/QuantizedTask.java b/src/main/java/tenor/QuantizedTask.java
new file mode 100644
index 000000000..86b46a3f4
--- /dev/null
+++ b/src/main/java/tenor/QuantizedTask.java
@@ -0,0 +1,39 @@
+/*
+ * 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;
+
+import java.util.List;
+
+public interface QuantizedTask extends ITask {
+
+ default List parents() {
+ return (List) (Object) parentTasks();
+ }
+
+ default QuantityRelationship priority() {
+ return q -> {
+ double sum = 0;
+ for (IQuantizedChildTaskRelationship parent : parents()) {
+ sum += parent.allocatedPriority(q);
+ }
+ return sum;
+ };
+ }
+
+ QuantityRelationship cost();
+}
diff --git a/src/main/java/tenor/QuantizedTaskNode.java b/src/main/java/tenor/QuantizedTaskNode.java
new file mode 100644
index 000000000..5f54f4d76
--- /dev/null
+++ b/src/main/java/tenor/QuantizedTaskNode.java
@@ -0,0 +1,22 @@
+/*
+ * 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 abstract class QuantizedTaskNode extends TaskNode implements QuantizedTask {
+ public abstract double allocatedPriority(int quantity, TaskRelationship child);
+}
diff --git a/src/main/java/tenor/QuantizedToQuantizedTaskRelationship.java b/src/main/java/tenor/QuantizedToQuantizedTaskRelationship.java
new file mode 100644
index 000000000..9fe571efd
--- /dev/null
+++ b/src/main/java/tenor/QuantizedToQuantizedTaskRelationship.java
@@ -0,0 +1,25 @@
+/*
+ * 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 class QuantizedToQuantizedTaskRelationship extends TaskRelationship implements IQuantizedChildTaskRelationship, IQuantizedParentTaskRelationship {
+ @Override
+ public double allocatedPriority(int quantity) {
+ return parent().allocatedPriority(quantity, this);
+ }
+}
diff --git a/src/main/java/tenor/QuantizedToSingularTaskRelationship.java b/src/main/java/tenor/QuantizedToSingularTaskRelationship.java
new file mode 100644
index 000000000..422a5a2a7
--- /dev/null
+++ b/src/main/java/tenor/QuantizedToSingularTaskRelationship.java
@@ -0,0 +1,21 @@
+/*
+ * 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 class QuantizedToSingularTaskRelationship extends TaskRelationship implements ISingularChildTaskRelationship, IQuantizedParentTaskRelationship {
+}
diff --git a/src/main/java/tenor/SingularTask.java b/src/main/java/tenor/SingularTask.java
new file mode 100644
index 000000000..47a1cf2eb
--- /dev/null
+++ b/src/main/java/tenor/SingularTask.java
@@ -0,0 +1,24 @@
+/*
+ * 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 SingularTask extends ITask {
+ double priority();
+
+ double cost();
+}
diff --git a/src/main/java/tenor/SingularToQuantizedTaskRelationship.java b/src/main/java/tenor/SingularToQuantizedTaskRelationship.java
new file mode 100644
index 000000000..275ff53c2
--- /dev/null
+++ b/src/main/java/tenor/SingularToQuantizedTaskRelationship.java
@@ -0,0 +1,27 @@
+/*
+ * 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 class SingularToQuantizedTaskRelationship extends TaskRelationship implements IQuantizedChildTaskRelationship, ISingularParentTaskRelationship {
+ int quantityRequired;
+
+ @Override
+ public double allocatedPriority(int quantity) {
+ return quantity >= quantityRequired ? parent().priority() : 0;
+ }
+}
diff --git a/src/main/java/tenor/SingularToSingularTaskRelationship.java b/src/main/java/tenor/SingularToSingularTaskRelationship.java
new file mode 100644
index 000000000..648bcc599
--- /dev/null
+++ b/src/main/java/tenor/SingularToSingularTaskRelationship.java
@@ -0,0 +1,21 @@
+/*
+ * 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 class SingularToSingularTaskRelationship extends TaskRelationship implements ISingularChildTaskRelationship, ISingularParentTaskRelationship {
+}
diff --git a/src/main/java/tenor/Task.java b/src/main/java/tenor/Task.java
new file mode 100644
index 000000000..c99a2b6d9
--- /dev/null
+++ b/src/main/java/tenor/Task.java
@@ -0,0 +1,29 @@
+/*
+ * 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;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public abstract class Task implements ITask {
+ ArrayList parentRelationships;
+
+ public List parentTasks() {
+ return parentRelationships;
+ }
+}
diff --git a/src/main/java/tenor/TaskLeaf.java b/src/main/java/tenor/TaskLeaf.java
new file mode 100644
index 000000000..ca1622884
--- /dev/null
+++ b/src/main/java/tenor/TaskLeaf.java
@@ -0,0 +1,21 @@
+/*
+ * 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 class TaskLeaf extends Task {
+}
diff --git a/src/main/java/tenor/TaskNode.java b/src/main/java/tenor/TaskNode.java
new file mode 100644
index 000000000..1d2694169
--- /dev/null
+++ b/src/main/java/tenor/TaskNode.java
@@ -0,0 +1,25 @@
+/*
+ * 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;
+
+import java.util.ArrayList;
+
+public abstract class TaskNode extends Task {
+ ArrayList childRelationships;
+ DependencyType type;
+}
diff --git a/src/main/java/tenor/TaskRelationship.java b/src/main/java/tenor/TaskRelationship.java
new file mode 100644
index 000000000..356536135
--- /dev/null
+++ b/src/main/java/tenor/TaskRelationship.java
@@ -0,0 +1,38 @@
+/*
+ * 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 class TaskRelationship implements ITaskRelationshipBase {
+ TaskNode parent;
+ Task child;
+ DependencyType type;
+
+ public boolean childProvidesClaimTo(int quantity) {
+ return ((ClaimProvider) child).provided(this, quantity);
+ }
+
+ @Override
+ public TaskNode parentTask() {
+ return parent;
+ }
+
+ @Override
+ public Task childTask() {
+ return child;
+ }
+}
diff --git a/src/main/java/tenor/TaskSerial.java b/src/main/java/tenor/TaskSerial.java
new file mode 100644
index 000000000..67b5d0756
--- /dev/null
+++ b/src/main/java/tenor/TaskSerial.java
@@ -0,0 +1,22 @@
+/*
+ * 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 class TaskSerial extends TaskNode {
+
+}