diff --git a/core/src/mindustry/maps/SectorDamage.java b/core/src/mindustry/maps/SectorDamage.java index f992c03630..5e1c36b539 100644 --- a/core/src/mindustry/maps/SectorDamage.java +++ b/core/src/mindustry/maps/SectorDamage.java @@ -27,8 +27,12 @@ public class SectorDamage{ /** @return calculated capture progress of the enemy */ public static float getDamage(SectorInfo info){ + return getDamage(info, info.wavesPassed); + } + + /** @return calculated capture progress of the enemy */ + public static float getDamage(SectorInfo info, int wavesPassed){ float health = info.sumHealth; - int wavesPassed = info.wavesPassed; int wave = info.wave; float waveSpace = info.waveSpacing; diff --git a/core/src/mindustry/world/meta/Stats.java b/core/src/mindustry/world/meta/Stats.java index 68f96ff260..0b1bf192da 100644 --- a/core/src/mindustry/world/meta/Stats.java +++ b/core/src/mindustry/world/meta/Stats.java @@ -5,7 +5,7 @@ import arc.struct.*; import arc.util.*; import mindustry.*; import mindustry.type.*; -import mindustry.world.*; +import mindustry.world.blocks.environment.*; import mindustry.world.meta.values.*; /** Hold and organizes a list of block stats. */ @@ -67,9 +67,10 @@ public class Stats{ } public void add(Stat stat, Attribute attr, boolean floating, float scale){ - for(Block block : Vars.content.blocks()){ - if(!block.isFloor() || block.asFloor().attributes.get(attr) == 0 || (block.asFloor().isLiquid && !floating)) continue; - add(stat, new FloorEfficiencyValue(block.asFloor(), block.asFloor().attributes.get(attr) * scale)); + for(var block : Vars.content.blocks() + .select(block -> block instanceof Floor f && f.attributes.get(attr) != 0 && !(f.isLiquid && !floating)) + .as().with(s -> s.sort(f -> f.attributes.get(attr)))){ + add(stat, new FloorEfficiencyValue(block, block.attributes.get(attr) * scale)); } }