diff --git a/core/assets/shaders/mud.frag b/core/assets/shaders/mud.frag index 30ddd1b0e1..3858cdec63 100644 --- a/core/assets/shaders/mud.frag +++ b/core/assets/shaders/mud.frag @@ -15,7 +15,7 @@ void main(){ vec2 c = v_texCoords.xy; vec2 coords = vec2(c.x * u_resolution.x + u_campos.x, c.y * u_resolution.y + u_campos.y); - float btime = u_time / 700000.0; + float btime = u_time / 70000.0; float noise = sin((texture2D(u_noise, (coords) / NSCALE + vec2(btime) * vec2(-0.9, 0.8)).r + texture2D(u_noise, (coords) / NSCALE + vec2(abs(sin(btime)) * 1.1) * vec2(-0.8, -1.0)).r) / 2.0); vec4 color = texture2D(u_texture, c); diff --git a/core/src/mindustry/async/TeamIndexProcess.java b/core/src/mindustry/async/TeamIndexProcess.java index c4dbede3a7..cb1edfa242 100644 --- a/core/src/mindustry/async/TeamIndexProcess.java +++ b/core/src/mindustry/async/TeamIndexProcess.java @@ -5,6 +5,7 @@ import mindustry.*; import mindustry.game.*; import mindustry.gen.*; import mindustry.type.*; +import mindustry.world.blocks.payloads.*; import java.util.*; @@ -48,6 +49,19 @@ public class TeamIndexProcess implements AsyncProcess{ activeCounts[team.id][type.id] += amount; } + private void count(Unit unit){ + updateCount(unit.team, unit.type(), 1); + if(!unit.deactivated) updateActiveCount(unit.team, unit.type(), 1); + + if(unit instanceof Payloadc){ + ((Payloadc)unit).payloads().each(p -> { + if(p instanceof UnitPayload){ + count(((UnitPayload)p).unit); + } + }); + } + } + @Override public void reset(){ counts = new int[Team.all.length]; @@ -71,8 +85,7 @@ public class TeamIndexProcess implements AsyncProcess{ for(Unit unit : Groups.unit){ tree(unit.team).insert(unit); - updateCount(unit.team, unit.type(), 1); - if(!unit.deactivated) updateActiveCount(unit.team, unit.type(), 1); + count(unit); } } diff --git a/core/src/mindustry/entities/comp/UnitComp.java b/core/src/mindustry/entities/comp/UnitComp.java index b13f13cac8..79df336be4 100644 --- a/core/src/mindustry/entities/comp/UnitComp.java +++ b/core/src/mindustry/entities/comp/UnitComp.java @@ -37,7 +37,7 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I private UnitController controller; private UnitType type; - boolean spawnedByCore, deactivated; + boolean spawnedByCore, deactivated; //TODO remove deactivation boolean transient Seq abilities = new Seq<>(0); @@ -204,7 +204,6 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I @Override public void add(){ - teamIndex.updateCount(team, type, 1); //check if over unit cap if(count() > cap() && !spawnedByCore){ @@ -213,8 +212,6 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I if(!dead){ Call.unitCapDeath(self()); } - }else{ - teamIndex.updateActiveCount(team, type, 1); } }