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);
}
float backTrns = 4f;
float backTrns = 5f;
if(item.amount > 0){
ItemStack stack = item;
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),
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();

View File

@@ -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();
}

View File

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