Implemented sound volume

This commit is contained in:
Anuken
2019-08-01 16:54:36 -04:00
parent 26d26b5e7a
commit 636b92205b
3 changed files with 31 additions and 22 deletions
@@ -1,6 +1,7 @@
package io.anuke.mindustry.game;
import io.anuke.annotations.Annotations.*;
import io.anuke.arc.*;
import io.anuke.arc.audio.*;
import io.anuke.arc.math.*;
import io.anuke.arc.util.*;
@@ -9,24 +10,29 @@ import io.anuke.arc.util.*;
public class MusicControl{
private static final float finTime = 80f, foutTime = 80f;
private @Nullable Music current;
private float fade;
public void play(@Nullable Music music){
if(current != null){
current.setVolume(fade * Core.settings.getInt("musicvol") / 100f);
}
if(current == null && music != null){
current = music;
current.setLooping(true);
current.setVolume(0f);
current.setVolume(fade = 0f);
current.play();
}else if(current == music && music != null){
current.setVolume(Mathf.clamp(current.getVolume() + Time.delta()/finTime));
fade = Mathf.clamp(fade + Time.delta()/finTime);
}else if(current != null){
current.setVolume(Mathf.clamp(current.getVolume() - Time.delta()/foutTime));
fade = Mathf.clamp(fade - Time.delta()/foutTime);
if(current.getVolume() <= 0.01f){
if(fade <= 0.01f){
current.stop();
current = null;
if(music != null){
current = music;
current.setVolume(0f);
current.setVolume(fade = 0f);
current.setLooping(true);
current.play();
}