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

View File

@@ -338,7 +338,7 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{
rotation - 90); rotation - 90);
} }
float backTrns = 4f; float backTrns = 5f;
if(item.amount > 0){ if(item.amount > 0){
ItemStack stack = item; ItemStack stack = item;
int stored = Mathf.clamp(stack.amount / 6, 1, 8); int stored = Mathf.clamp(stack.amount / 6, 1, 8);
@@ -351,6 +351,10 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{
y + Angles.trnsy(rotation + 180f + angT, backTrns + lenT), y + Angles.trnsy(rotation + 180f + angT, backTrns + lenT),
itemSize, itemSize, rotation); itemSize, itemSize, rotation);
} }
Lines.stroke(1f, Pal.accent);
Lines.circle(x + Angles.trnsx(rotation + 180f, backTrns),
y + Angles.trnsy(rotation + 180f, backTrns), 3f + Mathf.absin(Time.time(), 4f, 1f));
} }
Draw.reset(); Draw.reset();

View File

@@ -1,6 +1,7 @@
package io.anuke.mindustry.game; package io.anuke.mindustry.game;
import io.anuke.annotations.Annotations.*; import io.anuke.annotations.Annotations.*;
import io.anuke.arc.*;
import io.anuke.arc.audio.*; import io.anuke.arc.audio.*;
import io.anuke.arc.math.*; import io.anuke.arc.math.*;
import io.anuke.arc.util.*; import io.anuke.arc.util.*;
@@ -9,24 +10,29 @@ import io.anuke.arc.util.*;
public class MusicControl{ public class MusicControl{
private static final float finTime = 80f, foutTime = 80f; private static final float finTime = 80f, foutTime = 80f;
private @Nullable Music current; private @Nullable Music current;
private float fade;
public void play(@Nullable Music music){ public void play(@Nullable Music music){
if(current != null){
current.setVolume(fade * Core.settings.getInt("musicvol") / 100f);
}
if(current == null && music != null){ if(current == null && music != null){
current = music; current = music;
current.setLooping(true); current.setLooping(true);
current.setVolume(0f); current.setVolume(fade = 0f);
current.play(); current.play();
}else if(current == music && music != null){ }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){ }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.stop();
current = null; current = null;
if(music != null){ if(music != null){
current = music; current = music;
current.setVolume(0f); current.setVolume(fade = 0f);
current.setLooping(true); current.setLooping(true);
current.play(); current.play();
} }

View File

@@ -1,22 +1,22 @@
package io.anuke.mindustry.ui.dialogs; package io.anuke.mindustry.ui.dialogs;
import io.anuke.arc.Core; import io.anuke.arc.*;
import io.anuke.arc.collection.ObjectMap; import io.anuke.arc.collection.*;
import io.anuke.arc.files.FileHandle; import io.anuke.arc.files.*;
import io.anuke.arc.function.Consumer; import io.anuke.arc.function.*;
import io.anuke.arc.input.KeyCode; import io.anuke.arc.input.*;
import io.anuke.arc.scene.Element; import io.anuke.arc.scene.*;
import io.anuke.arc.scene.event.InputEvent; import io.anuke.arc.scene.event.*;
import io.anuke.arc.scene.event.InputListener;
import io.anuke.arc.scene.ui.*; import io.anuke.arc.scene.ui.*;
import io.anuke.arc.scene.ui.SettingsDialog.SettingsTable.Setting; import io.anuke.arc.scene.ui.SettingsDialog.SettingsTable.*;
import io.anuke.arc.scene.ui.layout.Table; import io.anuke.arc.scene.ui.layout.*;
import io.anuke.arc.util.*; import io.anuke.arc.util.*;
import io.anuke.mindustry.core.GameState.State; import io.anuke.mindustry.core.GameState.*;
import io.anuke.mindustry.core.Platform; import io.anuke.mindustry.core.*;
import io.anuke.mindustry.graphics.Pal; import io.anuke.mindustry.graphics.*;
import io.anuke.mindustry.net.Net; import io.anuke.mindustry.net.Net;
import static io.anuke.arc.Core.bundle;
import static io.anuke.mindustry.Vars.*; import static io.anuke.mindustry.Vars.*;
public class SettingsMenuDialog extends SettingsDialog{ public class SettingsMenuDialog extends SettingsDialog{
@@ -127,9 +127,8 @@ public class SettingsMenuDialog extends SettingsDialog{
} }
void addSettings(){ void addSettings(){
//TODO add when sound works again sound.sliderPref("musicvol", bundle.get("setting.musicvol.name", "Music Volume"), 100, 0, 100, 1, i -> i + "%");
//sound.volumePrefs(); sound.sliderPref("sfxvol", bundle.get("setting.sfxvol.name", "SFX Volume"), 100, 0, 100, 1, i -> i + "%");
sound.add("[LIGHT_GRAY]there is no sound implemented in v4 yet");
game.screenshakePref(); game.screenshakePref();
if(mobile){ if(mobile){