Sound framework improvements
This commit is contained in:
@@ -2,6 +2,8 @@ package mindustry.mod;
|
||||
|
||||
import arc.*;
|
||||
import arc.assets.*;
|
||||
import arc.assets.loaders.*;
|
||||
import arc.assets.loaders.SoundLoader.*;
|
||||
import arc.audio.*;
|
||||
import arc.files.*;
|
||||
import arc.func.*;
|
||||
@@ -89,15 +91,14 @@ public class ContentParser{
|
||||
});
|
||||
put(Sound.class, (type, data) -> {
|
||||
if(fieldOpt(Sounds.class, data) != null) return fieldOpt(Sounds.class, data);
|
||||
if(Vars.headless) return new MockSound();
|
||||
if(Vars.headless) return new Sound();
|
||||
|
||||
String name = "sounds/" + data.asString();
|
||||
String path = Vars.tree.get(name + ".ogg").exists() ? name + ".ogg" : name + ".mp3";
|
||||
|
||||
if(Core.assets.contains(path, Sound.class)) return Core.assets.get(path, Sound.class);
|
||||
ModLoadingSound sound = new ModLoadingSound();
|
||||
AssetDescriptor<?> desc = Core.assets.load(path, Sound.class);
|
||||
desc.loaded = result -> sound.sound = (Sound)result;
|
||||
var sound = new Sound();
|
||||
AssetDescriptor<?> desc = Core.assets.load(path, Sound.class, new SoundParameter(sound));
|
||||
desc.errored = Throwable::printStackTrace;
|
||||
return sound;
|
||||
});
|
||||
|
||||
@@ -1,84 +0,0 @@
|
||||
package mindustry.mod;
|
||||
|
||||
import arc.audio.*;
|
||||
import arc.mock.*;
|
||||
import arc.util.*;
|
||||
|
||||
public class ModLoadingMusic implements Music{
|
||||
public Music music = new MockMusic();
|
||||
|
||||
@Override
|
||||
public void play(){
|
||||
music.play();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void pause(){
|
||||
music.pause();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stop(){
|
||||
music.stop();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPlaying(){
|
||||
return music.isPlaying();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isLooping(){
|
||||
return music.isLooping();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setLooping(boolean isLooping){
|
||||
music.setLooping(isLooping);
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getVolume(){
|
||||
return music.getVolume();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setVolume(float volume){
|
||||
music.setVolume(volume);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setPan(float pan, float volume){
|
||||
music.setPan(pan, volume);
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getPosition(){
|
||||
return music.getPosition();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setPosition(float position){
|
||||
music.setPosition(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose(){
|
||||
music.dispose();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCompletionListener(OnCompletionListener listener){
|
||||
music.setCompletionListener(listener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFilter(int index, @Nullable AudioFilter filter){
|
||||
music.setFilter(index, filter);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isDisposed(){
|
||||
return music.isDisposed();
|
||||
}
|
||||
}
|
||||
@@ -1,140 +0,0 @@
|
||||
package mindustry.mod;
|
||||
|
||||
import arc.audio.*;
|
||||
import arc.math.geom.*;
|
||||
import arc.mock.*;
|
||||
import arc.util.*;
|
||||
|
||||
public class ModLoadingSound implements Sound{
|
||||
public Sound sound = new MockSound();
|
||||
|
||||
@Override
|
||||
public float calcPan(float x, float y){
|
||||
return sound.calcPan(x, y);
|
||||
}
|
||||
|
||||
@Override
|
||||
public float calcVolume(float x, float y){
|
||||
return sound.calcVolume(x, y);
|
||||
}
|
||||
|
||||
@Override
|
||||
public float calcFalloff(float x, float y){
|
||||
return sound.calcFalloff(x, y);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int at(float x, float y, float pitch){
|
||||
return sound.at(x, y, pitch);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int at(float x, float y){
|
||||
return sound.at(x, y);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int at(Position pos){
|
||||
return sound.at(pos);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int at(Position pos, float pitch){
|
||||
return sound.at(pos, pitch);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int play(){
|
||||
return sound.play();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int play(float volume){
|
||||
return sound.play(volume);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int play(float volume, float pitch, float pan){
|
||||
return sound.play(volume, pitch, pan);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int loop(){
|
||||
return sound.loop();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int loop(float volume){
|
||||
return sound.loop(volume);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int loop(float volume, float pitch, float pan){
|
||||
return sound.loop(volume, pitch, pan);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stop(){
|
||||
sound.stop();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose(){
|
||||
sound.dispose();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stop(int soundId){
|
||||
sound.stop(soundId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void pause(int soundId){
|
||||
sound.pause(soundId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void resume(int soundId){
|
||||
sound.resume(soundId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setLooping(int soundId, boolean looping){
|
||||
sound.setLooping(soundId, looping);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setPitch(int soundId, float pitch){
|
||||
sound.setPitch(soundId, pitch);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setVolume(int soundId, float volume){
|
||||
sound.setVolume(soundId, volume);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void set(int soundId, float pan, float volume){
|
||||
sound.set(soundId, pan, volume);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isDisposed(){
|
||||
return sound.isDisposed();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int play(float volume, float pitch, float pan, boolean loop){
|
||||
return sound.play(volume, pitch, pan, loop);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFilter(int index, @Nullable AudioFilter filter){
|
||||
sound.setFilter(index, filter);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPlaying(int soundId){
|
||||
return sound.isPlaying(soundId);
|
||||
}
|
||||
}
|
||||
@@ -2,9 +2,10 @@ package mindustry.mod;
|
||||
|
||||
import arc.*;
|
||||
import arc.assets.*;
|
||||
import arc.assets.loaders.MusicLoader.*;
|
||||
import arc.assets.loaders.SoundLoader.*;
|
||||
import arc.audio.*;
|
||||
import arc.files.*;
|
||||
import arc.mock.*;
|
||||
import arc.struct.*;
|
||||
import arc.util.*;
|
||||
import arc.util.Log.*;
|
||||
@@ -87,33 +88,31 @@ public class Scripts implements Disposable{
|
||||
}
|
||||
|
||||
public Sound loadSound(String soundName){
|
||||
if(Vars.headless) return new MockSound();
|
||||
if(Vars.headless) return new Sound();
|
||||
|
||||
String name = "sounds/" + soundName;
|
||||
String path = Vars.tree.get(name + ".ogg").exists() ? name + ".ogg" : name + ".mp3";
|
||||
|
||||
if(Core.assets.contains(path, Sound.class)) return Core.assets.get(path, Sound.class);
|
||||
ModLoadingSound sound = new ModLoadingSound();
|
||||
AssetDescriptor<?> desc = Core.assets.load(path, Sound.class);
|
||||
desc.loaded = result -> sound.sound = (Sound)result;
|
||||
var sound = new Sound();
|
||||
AssetDescriptor<?> desc = Core.assets.load(path, Sound.class, new SoundParameter(sound));
|
||||
desc.errored = Throwable::printStackTrace;
|
||||
|
||||
return sound;
|
||||
}
|
||||
|
||||
public Music loadMusic(String soundName){
|
||||
if(Vars.headless) return new MockMusic();
|
||||
if(Vars.headless) return new Music();
|
||||
|
||||
String name = "music/" + soundName;
|
||||
String path = Vars.tree.get(name + ".ogg").exists() ? name + ".ogg" : name + ".mp3";
|
||||
|
||||
if(Core.assets.contains(path, Music.class)) return Core.assets.get(path, Music.class);
|
||||
ModLoadingMusic sound = new ModLoadingMusic();
|
||||
AssetDescriptor<?> desc = Core.assets.load(path, Music.class);
|
||||
desc.loaded = result -> sound.music = (Music)result;
|
||||
var music = new Music();
|
||||
AssetDescriptor<?> desc = Core.assets.load(path, Music.class, new MusicParameter(music));
|
||||
desc.errored = Throwable::printStackTrace;
|
||||
|
||||
return sound;
|
||||
return music;
|
||||
}
|
||||
|
||||
//endregion
|
||||
|
||||
Reference in New Issue
Block a user