Use tree score instead of looping each crater twice
This commit is contained in:
@@ -3,8 +3,10 @@ package mindustry.entities.units;
|
||||
import arc.*;
|
||||
import arc.util.*;
|
||||
import arc.struct.*;
|
||||
import mindustry.entities.type.base.*;
|
||||
import mindustry.world.*;
|
||||
import mindustry.entities.type.base.*;
|
||||
import mindustry.world.blocks.distribution.*;
|
||||
import mindustry.world.blocks.distribution.PlastaniumConveyor.*;
|
||||
|
||||
import static mindustry.Vars.*;
|
||||
|
||||
@@ -21,23 +23,29 @@ public class Hivemind{
|
||||
|
||||
on.clear();
|
||||
|
||||
ObjectSet<CraterUnit> craters = new ObjectSet<>();
|
||||
Array<CraterUnit> craters = new Array<>();
|
||||
unitGroup.all().each(e -> e instanceof CraterUnit, crater -> craters.add((CraterUnit)crater));
|
||||
|
||||
craters.sort(Structs.comparingInt(crater -> sortPriority(crater.on())));
|
||||
|
||||
craters.each(crater -> {
|
||||
on.put(crater.on(), crater);
|
||||
});
|
||||
|
||||
craters.each(i -> {
|
||||
craters.each(crater -> {
|
||||
if(crater == null || crater.aspires() == null) return;
|
||||
if(!on.containsKey(crater.aspires())){
|
||||
crater.purpose = crater.aspires();
|
||||
on.put(crater.aspires(), crater);
|
||||
on.remove(crater.on());
|
||||
craters.remove(crater);
|
||||
};
|
||||
});
|
||||
craters.each(crater -> {
|
||||
if(crater == null || crater.aspires() == null) return;
|
||||
if(!on.containsKey(crater.aspires())){
|
||||
crater.purpose = crater.aspires();
|
||||
on.put(crater.aspires(), crater);
|
||||
on.remove(crater.on());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private static int sortPriority(Tile tile){
|
||||
if(tile == null) return 0;
|
||||
if(!(tile.block() instanceof PlastaniumConveyor)) return 0;
|
||||
PlastaniumConveyorEntity entity = tile.ent();
|
||||
return entity.tree;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,6 +61,7 @@ public class PlastaniumConveyor extends ArmoredConveyor{
|
||||
|
||||
@Override
|
||||
public void drawLayer(Tile tile){
|
||||
if(true) return; // debug mode
|
||||
PlastaniumConveyorEntity entity = tile.ent();
|
||||
|
||||
Fonts.outline.draw(entity.tree + "",
|
||||
@@ -91,7 +92,7 @@ public class PlastaniumConveyor extends ArmoredConveyor{
|
||||
}
|
||||
}
|
||||
|
||||
class PlastaniumConveyorEntity extends ConveyorEntity{
|
||||
public class PlastaniumConveyorEntity extends ConveyorEntity{
|
||||
public int reload = 0;
|
||||
public CraterUnit crater = null;
|
||||
public int tree = 0;
|
||||
|
||||
Reference in New Issue
Block a user