Faster power graph reload / Fixed iOS editor margin
This commit is contained in:
@@ -12,11 +12,22 @@ public class PowerGraph{
|
||||
private static final Seq<Building> outArray1 = new Seq<>();
|
||||
private static final Seq<Building> outArray2 = new Seq<>();
|
||||
private static final IntSet closedSet = new IntSet();
|
||||
private static final PowerGraph nullGraph = new PowerGraph(){
|
||||
@Override
|
||||
public void add(Building build){
|
||||
throw new RuntimeException("cannot add to null graph");
|
||||
}
|
||||
|
||||
private final ObjectSet<Building> producers = new ObjectSet<>();
|
||||
private final ObjectSet<Building> consumers = new ObjectSet<>();
|
||||
private final ObjectSet<Building> batteries = new ObjectSet<>();
|
||||
private final ObjectSet<Building> all = new ObjectSet<>();
|
||||
@Override
|
||||
public void addGraph(PowerGraph graph){
|
||||
throw new RuntimeException("cannot add to null graph");
|
||||
}
|
||||
};
|
||||
|
||||
private final Seq<Building> producers = new Seq<>(false);
|
||||
private final Seq<Building> consumers = new Seq<>(false);
|
||||
private final Seq<Building> batteries = new Seq<>(false);
|
||||
private final Seq<Building> all = new Seq<>(false);
|
||||
|
||||
private final WindowedMean powerBalance = new WindowedMean(60);
|
||||
private float lastPowerProduced, lastPowerNeeded, lastPowerStored;
|
||||
@@ -209,7 +220,6 @@ public class PowerGraph{
|
||||
|
||||
float powerNeeded = getPowerNeeded();
|
||||
float powerProduced = getPowerProduced();
|
||||
float rawProduced = powerProduced;
|
||||
|
||||
lastPowerNeeded = powerNeeded;
|
||||
lastPowerProduced = powerProduced;
|
||||
@@ -244,20 +254,24 @@ public class PowerGraph{
|
||||
}
|
||||
}
|
||||
|
||||
public void add(Building tile){
|
||||
if(tile == null || tile.power == null) return;
|
||||
tile.power.graph = this;
|
||||
all.add(tile);
|
||||
public void add(Building build){
|
||||
if(build == null || build.power == null) return;
|
||||
|
||||
if(tile.block.outputsPower && tile.block.consumesPower && !tile.block.consumes.getPower().buffered){
|
||||
producers.add(tile);
|
||||
consumers.add(tile);
|
||||
}else if(tile.block.outputsPower && tile.block.consumesPower){
|
||||
batteries.add(tile);
|
||||
}else if(tile.block.outputsPower){
|
||||
producers.add(tile);
|
||||
}else if(tile.block.consumesPower){
|
||||
consumers.add(tile);
|
||||
if(build.power.graph != this || !build.power.init){
|
||||
build.power.graph = this;
|
||||
build.power.init = true;
|
||||
all.add(build);
|
||||
|
||||
if(build.block.outputsPower && build.block.consumesPower && !build.block.consumes.getPower().buffered){
|
||||
producers.add(build);
|
||||
consumers.add(build);
|
||||
}else if(build.block.outputsPower && build.block.consumesPower){
|
||||
batteries.add(build);
|
||||
}else if(build.block.outputsPower){
|
||||
producers.add(build);
|
||||
}else if(build.block.consumesPower){
|
||||
consumers.add(build);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -278,10 +292,10 @@ public class PowerGraph{
|
||||
}
|
||||
|
||||
private void removeSingle(Building tile){
|
||||
all.remove(tile);
|
||||
producers.remove(tile);
|
||||
consumers.remove(tile);
|
||||
batteries.remove(tile);
|
||||
all.remove(tile, true);
|
||||
producers.remove(tile, true);
|
||||
consumers.remove(tile, true);
|
||||
batteries.remove(tile, true);
|
||||
}
|
||||
|
||||
public void remove(Building tile){
|
||||
|
||||
@@ -318,8 +318,7 @@ public class PowerNode extends PowerBlock{
|
||||
public void dropped(){
|
||||
power.links.clear();
|
||||
//create new power graph to manually unlink (this may be redundant)
|
||||
power.graph = new PowerGraph();
|
||||
power.graph.add(this);
|
||||
new PowerGraph().add(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user