Merge pull request #306 from babbaj/master

fix garbage code
This commit is contained in:
Leijurv 2019-01-08 21:56:19 -08:00
commit f5478f6169
No known key found for this signature in database
GPG Key ID: 44A3EA646EADAC6A

View File

@ -26,10 +26,10 @@ import baritone.api.process.IBaritoneProcess;
import baritone.api.process.PathingCommand; import baritone.api.process.PathingCommand;
import baritone.behavior.PathingBehavior; import baritone.behavior.PathingBehavior;
import baritone.pathing.path.PathExecutor; import baritone.pathing.path.PathExecutor;
import java.util.stream.Stream;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
public class PathingControlManager implements IPathingControlManager { public class PathingControlManager implements IPathingControlManager {
private final Baritone baritone; private final Baritone baritone;
@ -170,30 +170,30 @@ public class PathingControlManager implements IPathingControlManager {
public PathingCommand doTheStuff() { public PathingCommand doTheStuff() {
List<IBaritoneProcess> inContention = processes.stream().filter(IBaritoneProcess::isActive).sorted(Comparator.comparingDouble(IBaritoneProcess::priority).reversed()).collect(Collectors.toList()); Stream<IBaritoneProcess> inContention = processes.stream()
boolean found = false; .filter(IBaritoneProcess::isActive)
boolean cancelOthers = false; .sorted(Comparator.comparingDouble(IBaritoneProcess::priority).reversed());
PathingCommand exec = null;
for (IBaritoneProcess proc : inContention) {
if (found) { Iterator<IBaritoneProcess> iterator = inContention.iterator();
if (cancelOthers) { while(iterator.hasNext()) {
proc.onLostControl(); IBaritoneProcess proc = iterator.next();
PathingCommand exec = proc.onTick(Objects.equals(proc, inControlLastTick) && baritone.getPathingBehavior().calcFailedLastTick(), baritone.getPathingBehavior().isSafeToCancel());
if (exec == null) {
if (proc.isActive()) {
throw new IllegalStateException(proc.displayName() + " returned null PathingCommand");
} }
proc.onLostControl();
} else { } else {
exec = proc.onTick(Objects.equals(proc, inControlLastTick) && baritone.getPathingBehavior().calcFailedLastTick(), baritone.getPathingBehavior().isSafeToCancel());
if (exec == null) {
if (proc.isActive()) {
throw new IllegalStateException(proc.displayName());
}
proc.onLostControl();
continue;
}
//System.out.println("Executing command " + exec.commandType + " " + exec.goal + " from " + proc.displayName());
inControlThisTick = proc; inControlThisTick = proc;
found = true; if (!proc.isTemporary()) {
cancelOthers = !proc.isTemporary(); iterator.forEachRemaining(IBaritoneProcess::onLostControl);
}
return exec;
} }
} }
return exec; return null;
} }
} }