Bugfixes & cleanup
This commit is contained in:
@@ -314,25 +314,7 @@ public class BlockIndexer{
|
||||
|
||||
/** Find the closest ore block relative to a position. */
|
||||
public Tile findClosestOre(Unit unit, Item item){
|
||||
if(multimine) return findClosestOre(unit.x, unit.y, item);
|
||||
if(!(unit instanceof Minerc miner)) return null;
|
||||
|
||||
TileArray arr = getOrePositions(item);
|
||||
|
||||
arr.tiles.sort(t -> t.dst2(unit.x, unit.y));
|
||||
|
||||
for(Tile tile : arr.tiles){
|
||||
for(int x = Math.max(0, tile.x - quadrantSize / 2); x < tile.x + quadrantSize / 2 && x < world.width(); x++){
|
||||
for(int y = Math.max(0, tile.y - quadrantSize / 2); y < tile.y + quadrantSize / 2 && y < world.height(); y++){
|
||||
Tile res = world.tile(x, y);
|
||||
if(res.drop() == item && miner.validMine(res, false)){
|
||||
return res;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
return findClosestOre(unit.x, unit.y, item);
|
||||
}
|
||||
|
||||
/** @return extra unit cap of a team. This is added onto the base value. */
|
||||
|
||||
@@ -11,8 +11,6 @@ import mindustry.type.*;
|
||||
import mindustry.world.*;
|
||||
import mindustry.world.blocks.storage.CoreBlock.*;
|
||||
|
||||
import static mindustry.Vars.*;
|
||||
|
||||
public class FormationAI extends AIController implements FormationMember{
|
||||
private static Seq<Tile> tiles = new Seq<>();
|
||||
public Unit leader;
|
||||
@@ -67,22 +65,8 @@ public class FormationAI extends AIController implements FormationMember{
|
||||
}
|
||||
|
||||
if(unit instanceof Minerc mine && leader instanceof Minerc com){
|
||||
if(com.mineTile() != null){
|
||||
if(multimine){
|
||||
mine.mineTile(mine.validMine(com.mineTile()) ? com.mineTile() : null);
|
||||
}else{
|
||||
if(mine.mineTile() == null){
|
||||
tiles.clear();
|
||||
com.mineTile().circle(6, (cx, cy) -> {
|
||||
Tile tile = world.tile(cx, cy);
|
||||
if(mine.validMine(tile) && tile.drop() == com.mineTile().drop() && tile != com.mineTile()){
|
||||
tiles.add(tile);
|
||||
}
|
||||
});
|
||||
Tile min = tiles.min(t -> t.dst2(com.mineTile()));
|
||||
mine.mineTile(min);
|
||||
}
|
||||
}
|
||||
if(com.mineTile() != null && mine.validMine(com.mineTile())){
|
||||
mine.mineTile(com.mineTile());
|
||||
|
||||
CoreBuild core = unit.team.core();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user