Compare commits

...

5 commits

Author SHA1 Message Date
Anuken
5397d8426c Triggering another build in case the last one failed 2025-11-06 15:44:50 -05:00
Anuken
573db7d532 arc 2025-11-06 15:42:59 -05:00
Anuken
b393b053d0 Merge remote-tracking branch 'origin/master' 2025-11-06 15:37:22 -05:00
Anuken
28ba7f0bb3 Audio engine improvements (WIP) 2025-11-06 15:37:14 -05:00
Anuken
3ae1d9c273 iOS xcframework update 2025-11-06 15:35:17 -05:00
5 changed files with 59 additions and 2 deletions

View file

@ -10,6 +10,7 @@ import arc.graphics.g2d.*;
import arc.math.*;
import arc.util.*;
import mindustry.ai.*;
import mindustry.audio.*;
import mindustry.core.*;
import mindustry.ctype.*;
import mindustry.game.EventType.*;
@ -233,6 +234,7 @@ public abstract class ClientLauncher extends ApplicationCore implements Platform
if(assets.update(1000 / loadingFPS)){
loader.dispose();
loader = null;
SoundPriority.init();
for(ApplicationListener listener : modules){
listener.init();
}

View file

@ -59,6 +59,10 @@ public class SoundControl{
Events.on(ResetEvent.class, e -> {
lastPlayed = Time.millis();
//stop all in-game voices
Core.audio.soundBus.stop();
Core.audio.soundBus.play();
});
}

View file

@ -0,0 +1,51 @@
package mindustry.audio;
import arc.*;
import arc.audio.*;
import arc.struct.*;
import mindustry.gen.*;
import static mindustry.gen.Sounds.*;
/** Sets up priorities and groups for various sounds. */
public class SoundPriority{
public static void init(){
//priority 2: long weapon loops
set(
2f,
laserbig,
beam
);
//priority 1.5: big weapon sounds, not loops
set(1.5f,
railgun,
largeCannon
);
//priority 1: ambient noises
set(
1f,
conveyor,
smelter,
drill,
extractLoop,
flux,
hum,
respawning
);
//this is spammed a LOT
Sounds.shootBig.setMinConcurrentInterrupt(shootBig.getLength() * 0.9f);
for(var sound : Core.assets.getAll(Sound.class, new Seq<>())){
sound.setMinConcurrentInterrupt(Math.min(0.25f, sound.getLength() * 0.5f));
sound.setMaxConcurrent(7);
}
}
static void set(float value, Sound... sounds){
for(var s : sounds) s.setPriority(value);
}
}

View file

@ -26,4 +26,4 @@ org.gradle.caching=true
org.gradle.internal.http.socketTimeout=100000
org.gradle.internal.http.connectionTimeout=100000
android.enableR8.fullMode=false
archash=d677d2a72c
archash=9b4648505a

View file

@ -35,10 +35,10 @@
</forceLinkClasses>
<libs>
<lib>z</lib>
<lib>libs/libarc.a</lib>
<lib>libs/libarc-freetype.a</lib>
</libs>
<frameworks>
<framework>arc</framework>
<framework>UIKit</framework>
<framework>MetalANGLEKit</framework>