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.*;
|
||||||
import arc.util.*;
|
import arc.util.*;
|
||||||
import arc.struct.*;
|
import arc.struct.*;
|
||||||
import mindustry.entities.type.base.*;
|
|
||||||
import mindustry.world.*;
|
import mindustry.world.*;
|
||||||
|
import mindustry.entities.type.base.*;
|
||||||
|
import mindustry.world.blocks.distribution.*;
|
||||||
|
import mindustry.world.blocks.distribution.PlastaniumConveyor.*;
|
||||||
|
|
||||||
import static mindustry.Vars.*;
|
import static mindustry.Vars.*;
|
||||||
|
|
||||||
@@ -21,23 +23,29 @@ public class Hivemind{
|
|||||||
|
|
||||||
on.clear();
|
on.clear();
|
||||||
|
|
||||||
ObjectSet<CraterUnit> craters = new ObjectSet<>();
|
Array<CraterUnit> craters = new Array<>();
|
||||||
unitGroup.all().each(e -> e instanceof CraterUnit, crater -> craters.add((CraterUnit)crater));
|
unitGroup.all().each(e -> e instanceof CraterUnit, crater -> craters.add((CraterUnit)crater));
|
||||||
|
|
||||||
|
craters.sort(Structs.comparingInt(crater -> sortPriority(crater.on())));
|
||||||
|
|
||||||
craters.each(crater -> {
|
craters.each(crater -> {
|
||||||
on.put(crater.on(), crater);
|
on.put(crater.on(), crater);
|
||||||
});
|
});
|
||||||
|
|
||||||
craters.each(i -> {
|
craters.each(crater -> {
|
||||||
craters.each(crater -> {
|
if(crater == null || crater.aspires() == null) return;
|
||||||
if(crater == null || crater.aspires() == null) return;
|
if(!on.containsKey(crater.aspires())){
|
||||||
if(!on.containsKey(crater.aspires())){
|
crater.purpose = crater.aspires();
|
||||||
crater.purpose = crater.aspires();
|
on.put(crater.aspires(), crater);
|
||||||
on.put(crater.aspires(), crater);
|
on.remove(crater.on());
|
||||||
on.remove(crater.on());
|
}
|
||||||
craters.remove(crater);
|
|
||||||
};
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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
|
@Override
|
||||||
public void drawLayer(Tile tile){
|
public void drawLayer(Tile tile){
|
||||||
|
if(true) return; // debug mode
|
||||||
PlastaniumConveyorEntity entity = tile.ent();
|
PlastaniumConveyorEntity entity = tile.ent();
|
||||||
|
|
||||||
Fonts.outline.draw(entity.tree + "",
|
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 int reload = 0;
|
||||||
public CraterUnit crater = null;
|
public CraterUnit crater = null;
|
||||||
public int tree = 0;
|
public int tree = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user