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