diff --git a/src/main/java/tenor/ActuallyCraftTask.java b/src/main/java/tenor/ActuallyCraftTask.java index 45f88a48c..5815f95ac 100644 --- a/src/main/java/tenor/ActuallyCraftTask.java +++ b/src/main/java/tenor/ActuallyCraftTask.java @@ -17,9 +17,7 @@ package tenor; -import java.util.List; - -public class ActuallyCraftTask extends TaskLeaf implements ISingularTask { +public class ActuallyCraftTask extends SingularTaskLeaf { public final CraftingTask parent; @@ -35,7 +33,6 @@ public class ActuallyCraftTask extends TaskLeaf implements ISingularTask { @Override public double priority() { - List parentTasks = (List) parentTasks(); // pog - return parentTasks.stream().mapToDouble(ISingularChildTaskRelationship::allocatedPriority).sum(); + return parentTasks().stream().mapToDouble(ISingularChildTaskRelationship::allocatedPriority).sum(); } } diff --git a/src/main/java/tenor/AquireCraftingItems.java b/src/main/java/tenor/AquireCraftingItems.java index 398949142..64918b047 100644 --- a/src/main/java/tenor/AquireCraftingItems.java +++ b/src/main/java/tenor/AquireCraftingItems.java @@ -29,8 +29,6 @@ public class AquireCraftingItems extends QuantizedTaskNode implements ClaimProvi this.parent = parent; this.parentRelationship = createRelationshipToParent(parent); addParent(parentRelationship); - - } @Override diff --git a/src/main/java/tenor/AquireItemTask.java b/src/main/java/tenor/AquireItemTask.java index 02e3d8141..3227f919d 100644 --- a/src/main/java/tenor/AquireItemTask.java +++ b/src/main/java/tenor/AquireItemTask.java @@ -21,7 +21,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -public class AquireItemTask extends QuantizedTaskNode implements ClaimProvider, IQuantizedDependentCostCalculator { +public class AquireItemTask extends QuantizedTaskNode implements ClaimProvider, IQuantizedDependentCostCalculator { HashMap allocation; // allocation of what tasks have claim over what items in our inventory i guess diff --git a/src/main/java/tenor/GetToCraftingTableTask.java b/src/main/java/tenor/GetToCraftingTableTask.java index 6ecc16835..204353f2c 100644 --- a/src/main/java/tenor/GetToCraftingTableTask.java +++ b/src/main/java/tenor/GetToCraftingTableTask.java @@ -17,9 +17,7 @@ package tenor; -import java.util.List; - -public class GetToCraftingTableTask extends TaskLeaf implements ISingularTask { +public class GetToCraftingTableTask extends SingularTaskLeaf { public static final GetToCraftingTableTask INSTANCE = new GetToCraftingTableTask(); // ? idk @Override @@ -29,7 +27,6 @@ public class GetToCraftingTableTask extends TaskLeaf implements ISingularTask { @Override public double priority() { - List parentTasks = (List) parentTasks(); // pog - return parentTasks.stream().mapToDouble(ISingularChildTaskRelationship::allocatedPriority).sum(); + return parentTasks().stream().mapToDouble(ISingularChildTaskRelationship::allocatedPriority).sum(); } } diff --git a/src/main/java/tenor/IQuantizedDependentCostCalculator.java b/src/main/java/tenor/IQuantizedDependentCostCalculator.java index 01690956c..6e0fccf97 100644 --- a/src/main/java/tenor/IQuantizedDependentCostCalculator.java +++ b/src/main/java/tenor/IQuantizedDependentCostCalculator.java @@ -17,7 +17,7 @@ package tenor; -public interface IQuantizedDependentCostCalculator extends ITaskNodeBase { +public interface IQuantizedDependentCostCalculator extends ITaskNodeBase { default IQuantityRelationship cost() { switch (type()) { case SERIAL: diff --git a/src/main/java/tenor/IQuantizedTask.java b/src/main/java/tenor/IQuantizedTask.java index 7c7675597..0b8e76ed2 100644 --- a/src/main/java/tenor/IQuantizedTask.java +++ b/src/main/java/tenor/IQuantizedTask.java @@ -17,7 +17,7 @@ package tenor; -public interface IQuantizedTask extends ITask { +public interface IQuantizedTask extends ITask { /*default QuantityRelationship priority() { return q -> { @@ -33,7 +33,7 @@ public interface IQuantizedTask extends ITask { IQuantityRelationship cost(); - default IQuantizedChildTaskRelationship createRelationshipToParent(ITaskNodeBase parent) { + default IQuantizedChildTaskRelationship createRelationshipToParent(ITaskNodeBase parent) { if (parent instanceof IQuantizedTask) { return new QuantizedToQuantizedTaskRelationship((QuantizedTaskNode) parent, this, parent.type()); } else { diff --git a/src/main/java/tenor/IQuantizedTaskNode.java b/src/main/java/tenor/IQuantizedTaskNode.java index d5ab095cd..79e099c58 100644 --- a/src/main/java/tenor/IQuantizedTaskNode.java +++ b/src/main/java/tenor/IQuantizedTaskNode.java @@ -21,6 +21,6 @@ package tenor; * @author Brady * @since 10/30/2018 */ -public interface IQuantizedTaskNode extends ITaskNodeBase, IQuantizedTask { +public interface IQuantizedTaskNode extends ITaskNodeBase, IQuantizedTask { } diff --git a/src/main/java/tenor/ISingularTask.java b/src/main/java/tenor/ISingularTask.java index 0686bc284..df00f58ed 100644 --- a/src/main/java/tenor/ISingularTask.java +++ b/src/main/java/tenor/ISingularTask.java @@ -17,7 +17,7 @@ package tenor; -public interface ISingularTask extends ITask { +public interface ISingularTask extends ITask { double cost(); double priority(); diff --git a/src/main/java/tenor/ISingularTaskNode.java b/src/main/java/tenor/ISingularTaskNode.java index 0b0fd03b7..eb2f41de5 100644 --- a/src/main/java/tenor/ISingularTaskNode.java +++ b/src/main/java/tenor/ISingularTaskNode.java @@ -21,6 +21,6 @@ package tenor; * @author Brady * @since 10/30/2018 */ -public interface ISingularTaskNode extends ITaskNodeBase, ISingularTask { +public interface ISingularTaskNode extends ITaskNodeBase, ISingularTask { double priorityAllocatedToChild(ISingularParentTaskRelationship relationship); } diff --git a/src/main/java/tenor/ITask.java b/src/main/java/tenor/ITask.java index 628f40d7a..eee9d1c85 100644 --- a/src/main/java/tenor/ITask.java +++ b/src/main/java/tenor/ITask.java @@ -19,13 +19,13 @@ package tenor; import java.util.List; -public interface ITask { +public interface ITask { - List parentTasks(); + List parentTasks(); - ITaskRelationshipBase createRelationshipToParent(ITaskNodeBase parent); + T createRelationshipToParent(ITaskNodeBase parent); - void addParent(ITaskRelationshipBase relationship); + void addParent(T relationship); default void addParent(ITaskNodeBase parent) { addParent(createRelationshipToParent(parent)); diff --git a/src/main/java/tenor/ITaskNodeBase.java b/src/main/java/tenor/ITaskNodeBase.java index 48ea4ad58..143e76f96 100644 --- a/src/main/java/tenor/ITaskNodeBase.java +++ b/src/main/java/tenor/ITaskNodeBase.java @@ -19,7 +19,7 @@ package tenor; import java.util.List; -public interface ITaskNodeBase extends ITask { +public interface ITaskNodeBase extends ITask { List childTasks(); diff --git a/src/main/java/tenor/MineTask.java b/src/main/java/tenor/MineTask.java index e33af6cfa..d8b9e2ba4 100644 --- a/src/main/java/tenor/MineTask.java +++ b/src/main/java/tenor/MineTask.java @@ -17,7 +17,7 @@ package tenor; -public class MineTask extends TaskLeaf implements IQuantizedTask { +public class MineTask extends QuantizedTaskLeaf { @Override public IQuantityRelationship priority() { return null; diff --git a/src/main/java/tenor/QuantizedTaskLeaf.java b/src/main/java/tenor/QuantizedTaskLeaf.java new file mode 100644 index 000000000..c053b9977 --- /dev/null +++ b/src/main/java/tenor/QuantizedTaskLeaf.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 abstract class QuantizedTaskLeaf extends TaskLeaf implements IQuantizedTask { +} diff --git a/src/main/java/tenor/QuantizedTaskNode.java b/src/main/java/tenor/QuantizedTaskNode.java index e7f5ac5f3..804ce2be9 100644 --- a/src/main/java/tenor/QuantizedTaskNode.java +++ b/src/main/java/tenor/QuantizedTaskNode.java @@ -17,7 +17,7 @@ package tenor; -public abstract class QuantizedTaskNode extends TaskNode implements IQuantizedTask { +public abstract class QuantizedTaskNode extends TaskNode implements IQuantizedTask { public QuantizedTaskNode(DependencyType type) { super(type); diff --git a/src/main/java/tenor/SingularTaskLeaf.java b/src/main/java/tenor/SingularTaskLeaf.java new file mode 100644 index 000000000..89104c8d4 --- /dev/null +++ b/src/main/java/tenor/SingularTaskLeaf.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 abstract class SingularTaskLeaf extends TaskLeaf implements ISingularTask { +} \ No newline at end of file diff --git a/src/main/java/tenor/SingularTaskNode.java b/src/main/java/tenor/SingularTaskNode.java index f8bee6a27..ead3dffbc 100644 --- a/src/main/java/tenor/SingularTaskNode.java +++ b/src/main/java/tenor/SingularTaskNode.java @@ -17,7 +17,7 @@ package tenor; -public abstract class SingularTaskNode extends TaskNode implements ISingularTaskNode { +public abstract class SingularTaskNode extends TaskNode implements ISingularTaskNode { public SingularTaskNode(DependencyType type) { super(type); diff --git a/src/main/java/tenor/Task.java b/src/main/java/tenor/Task.java index be3a301c3..372ce8890 100644 --- a/src/main/java/tenor/Task.java +++ b/src/main/java/tenor/Task.java @@ -19,17 +19,17 @@ package tenor; import java.util.List; -public abstract class Task implements ITask { +public abstract class Task implements ITask { - List parentRelationships; + List parentRelationships; @Override - public List parentTasks() { + public List parentTasks() { return parentRelationships; } @Override - public void addParent(ITaskRelationshipBase relationship) { + public void addParent(T relationship) { if (relationship.childTask() != this) { throw new IllegalArgumentException(); } diff --git a/src/main/java/tenor/TaskLeaf.java b/src/main/java/tenor/TaskLeaf.java index 6122531cb..7575124f3 100644 --- a/src/main/java/tenor/TaskLeaf.java +++ b/src/main/java/tenor/TaskLeaf.java @@ -17,5 +17,5 @@ package tenor; -public abstract class TaskLeaf extends Task { +public abstract class TaskLeaf extends Task { } diff --git a/src/main/java/tenor/TaskNode.java b/src/main/java/tenor/TaskNode.java index 8b2cf3b47..aabe5d0fc 100644 --- a/src/main/java/tenor/TaskNode.java +++ b/src/main/java/tenor/TaskNode.java @@ -19,7 +19,7 @@ package tenor; import java.util.List; -public abstract class TaskNode extends Task implements ITaskNodeBase { +public abstract class TaskNode extends Task implements ITaskNodeBase { List childRelationships; public final DependencyType type;