Doesn’t really close the gap
This commit is contained in:
@@ -12,14 +12,16 @@ import static mindustry.Vars.*;
|
||||
public class Hivemind{
|
||||
private static long lastFrameUpdated = -1;
|
||||
private static Interval timer = new Interval(1);
|
||||
private static ObjectMap<Tile, CraterUnit> dibs = new ObjectMap<>();
|
||||
private static ObjectMap<Tile, CraterUnit> dibstc = new ObjectMap<>();
|
||||
private static ObjectMap<CraterUnit, Tile> dibsct = new ObjectMap<>();
|
||||
|
||||
public static void update(){
|
||||
if(Core.graphics.getFrameId() == lastFrameUpdated) return;
|
||||
lastFrameUpdated = Core.graphics.getFrameId();
|
||||
if(!timer.get(30)) return;
|
||||
|
||||
dibs.clear();
|
||||
dibstc.clear();
|
||||
dibsct.clear();
|
||||
ObjectSet<CraterUnit> craters = new ObjectSet<>();
|
||||
unitGroup.all().each(e -> e instanceof CraterUnit, crater -> craters.add((CraterUnit)crater));
|
||||
|
||||
@@ -29,7 +31,8 @@ public class Hivemind{
|
||||
}else{
|
||||
crater.purpose = crater.aspires();
|
||||
}
|
||||
dibs.put(crater.purpose, crater);
|
||||
dibstc.put(crater.purpose, crater);
|
||||
dibsct.put(crater, crater.purpose);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -37,10 +40,10 @@ public class Hivemind{
|
||||
final boolean[] result = {false};
|
||||
|
||||
Units.allEntities(tile, unit -> {
|
||||
if(unit != crater) result[0] = true;
|
||||
if(unit != crater && dibsct.get((CraterUnit)unit) != tile) result[0] = true;
|
||||
});
|
||||
|
||||
if(dibs.containsKey(tile) && dibs.get(tile) != crater) result[0] = true;
|
||||
if(dibstc.containsKey(tile) && dibstc.get(tile) != crater) result[0] = true;
|
||||
|
||||
return result[0];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user