Many new modding improvements
This commit is contained in:
79
core/src/mindustry/mod/ModLoadingMusic.java
Normal file
79
core/src/mindustry/mod/ModLoadingMusic.java
Normal file
@@ -0,0 +1,79 @@
|
||||
package mindustry.mod;
|
||||
|
||||
import arc.audio.*;
|
||||
import arc.mock.*;
|
||||
import arc.util.ArcAnnotate.*;
|
||||
|
||||
public class ModLoadingMusic implements Music{
|
||||
public @NonNull 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 boolean isDisposed(){
|
||||
return music.isDisposed();
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,10 @@
|
||||
package mindustry.mod;
|
||||
|
||||
import arc.*;
|
||||
import arc.assets.*;
|
||||
import arc.audio.*;
|
||||
import arc.files.*;
|
||||
import arc.mock.*;
|
||||
import arc.struct.*;
|
||||
import arc.util.*;
|
||||
import arc.util.Log.*;
|
||||
@@ -73,7 +76,7 @@ public class Scripts implements Disposable{
|
||||
Log.log(level, "[@]: @", source, message);
|
||||
}
|
||||
|
||||
//utility mod functions
|
||||
//region utility mod functions
|
||||
|
||||
public String readString(String path){
|
||||
return Vars.tree.get(path, true).readString();
|
||||
@@ -83,6 +86,38 @@ public class Scripts implements Disposable{
|
||||
return Vars.tree.get(path, true).readBytes();
|
||||
}
|
||||
|
||||
public Sound loadSound(String soundName){
|
||||
if(Vars.headless) return new MockSound();
|
||||
|
||||
String name = "sounds/" + soundName;
|
||||
String path = Vars.tree.get(name + ".ogg").exists() && !Vars.ios ? 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;
|
||||
desc.errored = Throwable::printStackTrace;
|
||||
|
||||
return sound;
|
||||
}
|
||||
|
||||
public Music loadMusic(String soundName){
|
||||
if(Vars.headless) return new MockMusic();
|
||||
|
||||
String name = "music/" + soundName;
|
||||
String path = Vars.tree.get(name + ".ogg").exists() && !Vars.ios ? 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;
|
||||
desc.errored = Throwable::printStackTrace;
|
||||
|
||||
return sound;
|
||||
}
|
||||
|
||||
//endregion
|
||||
|
||||
public void run(LoadedMod mod, Fi file){
|
||||
currentMod = mod;
|
||||
run(file.readString(), file.name(), true);
|
||||
|
||||
Reference in New Issue
Block a user