Better Plan Skipping 2: Electric Boogaloo (#5659)

Fixing a problem that I created. Just allows for plan switching when items are low when the player isnt in range of the building they were previously building.
Before: ![](https://aethex.is-a.fail/55tN9oFIC.png)
After: ![](https://extremely.questionable.link/55tNBlX8h.png)
This commit is contained in:
buthed010203 2021-07-27 20:20:27 -04:00 committed by GitHub
parent 5ca5025fb1
commit d66bb3a539
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -20,7 +20,6 @@ import mindustry.type.*;
import mindustry.world.*;
import mindustry.world.blocks.*;
import mindustry.world.blocks.ConstructBlock.*;
import mindustry.world.blocks.storage.CoreBlock.*;
import java.util.*;
@ -177,7 +176,7 @@ abstract class BuilderComp implements Posc, Statusc, Teamc, Rotc{
/** @return whether this request should be skipped, in favor of the next one. */
boolean shouldSkip(BuildPlan request, @Nullable Building core){
//requests that you have at least *started* are considered
if(state.rules.infiniteResources || team.rules().infiniteResources || request.breaking || core == null || request.isRotation(team)) return false;
if(state.rules.infiniteResources || team.rules().infiniteResources || request.breaking || core == null || request.isRotation(team) || (isBuilding() && !within(plans.last(), buildingRange))) return false;
return (request.stuck && !core.items.has(request.block.requirements)) || (Structs.contains(request.block.requirements, i -> !core.items.has(i.item, Math.min(i.amount, 15)) && Mathf.round(i.amount * state.rules.buildCostMultiplier) > 0) && !request.initialized);
}