Add cli opt for music vol affected by master vol
This commit is contained in:
parent
03ea6d3bc9
commit
3f7c922c5d
2 changed files with 46 additions and 8 deletions
|
@ -29,6 +29,7 @@ public class ClientConfig {
|
|||
public final ModConfigSpec.ConfigValue<List<? extends String>> battleMusicList;
|
||||
public final ModConfigSpec.ConfigValue<List<? extends String>> sillyMusicList;
|
||||
public final ModConfigSpec.DoubleValue sillyMusicThreshold;
|
||||
public final ModConfigSpec.BooleanValue volumeAffectedByMasterVolume;
|
||||
public final ModConfigSpec.BooleanValue volumeAffectedByMusicVolume;
|
||||
public final ModConfigSpec.DoubleValue musicVolume;
|
||||
|
||||
|
@ -55,6 +56,11 @@ public class ClientConfig {
|
|||
.translation(TurnBasedMinecraftMod.MODID + ".clientconfig.silly_percentage")
|
||||
.defineInRange("sillyMusicThreshold", 0.4, 0.0, 1.0);
|
||||
|
||||
this.volumeAffectedByMasterVolume = builder.comment(
|
||||
"If \"true\", music volume will be affected by global Master volume setting")
|
||||
.translation(TurnBasedMinecraftMod.MODID + ".clientconfig.volume_affected_by_master")
|
||||
.define("volumeAffectedByMasterVolume", true);
|
||||
|
||||
this.volumeAffectedByMusicVolume = builder.comment(
|
||||
"If \"true\", music volume will be affected by global Music volume setting")
|
||||
.translation(TurnBasedMinecraftMod.MODID + ".clientconfig.volume_affected_by_volume")
|
||||
|
@ -75,6 +81,7 @@ public class ClientConfig {
|
|||
private EditBox battleListEditBox = null;
|
||||
private EditBox sillyListEditBox = null;
|
||||
private SliderPercentage sillyMusicThresholdSlider = null;
|
||||
private Checkbox affectedByMasterVolCheckbox = null;
|
||||
private Checkbox affectedByMusicVolCheckbox = null;
|
||||
private SliderPercentage volumeSlider = null;
|
||||
|
||||
|
@ -167,6 +174,29 @@ public class ClientConfig {
|
|||
|
||||
top_offset += widget_height;
|
||||
|
||||
addRenderableWidget(
|
||||
new StringWidget(this.width / 2 - widget_width + widget_x_offset, top_offset,
|
||||
widget_width, widget_height, Component.literal("Affected by Master Vol.")
|
||||
.setStyle(Style.EMPTY.withColor(TextColor.fromRgb(0XFFFFFFFF)).withHoverEvent(
|
||||
new HoverEvent(HoverEvent.Action.SHOW_TEXT, Component.literal(
|
||||
"If enabled, volume is affected by global master volume.")))), font));
|
||||
if (affectedByMasterVolCheckbox == null) {
|
||||
affectedByMasterVolCheckbox = Checkbox.builder(Component.literal(""), font)
|
||||
.pos(this.width / 2 + widget_x_offset, top_offset).build();
|
||||
} else {
|
||||
affectedByMasterVolCheckbox.setPosition(this.width / 2 + widget_x_offset,
|
||||
top_offset);
|
||||
}
|
||||
if ((CLIENT.volumeAffectedByMasterVolume.get() &&
|
||||
!affectedByMasterVolCheckbox.selected()) ||
|
||||
(!CLIENT.volumeAffectedByMasterVolume.get() &&
|
||||
affectedByMasterVolCheckbox.selected())) {
|
||||
affectedByMasterVolCheckbox.onPress();
|
||||
}
|
||||
addRenderableWidget(affectedByMasterVolCheckbox);
|
||||
|
||||
top_offset += widget_height;
|
||||
|
||||
addRenderableWidget(
|
||||
new StringWidget(this.width / 2 - widget_width + widget_x_offset, top_offset,
|
||||
widget_width, widget_height, Component.literal("Affected by Music Vol.")
|
||||
|
@ -241,6 +271,8 @@ public class ClientConfig {
|
|||
|
||||
CLIENT.sillyMusicThreshold.set(sillyMusicThresholdSlider.percentage);
|
||||
|
||||
CLIENT.volumeAffectedByMasterVolume.set(affectedByMasterVolCheckbox.selected());
|
||||
|
||||
CLIENT.volumeAffectedByMusicVolume.set(affectedByMusicVolCheckbox.selected());
|
||||
|
||||
CLIENT.musicVolume.set(volumeSlider.percentage);
|
||||
|
|
|
@ -94,21 +94,27 @@ public class ClientProxy extends CommonProxy {
|
|||
@Override
|
||||
public void playBattleMusic() {
|
||||
Options gs = Minecraft.getInstance().options;
|
||||
if (ClientConfig.CLIENT.volumeAffectedByMusicVolume.get()) {
|
||||
battleMusic.playBattle(gs.getSoundSourceVolume(SoundSource.MUSIC) * gs.getSoundSourceVolume(SoundSource.MASTER) * ClientConfig.CLIENT.musicVolume.get().floatValue());
|
||||
} else {
|
||||
battleMusic.playBattle(gs.getSoundSourceVolume(SoundSource.MASTER) * ClientConfig.CLIENT.musicVolume.get().floatValue());
|
||||
float volume = ClientConfig.CLIENT.musicVolume.get().floatValue();
|
||||
if (ClientConfig.CLIENT.volumeAffectedByMasterVolume.get()) {
|
||||
volume *= gs.getSoundSourceVolume(SoundSource.MASTER);
|
||||
}
|
||||
if (ClientConfig.CLIENT.volumeAffectedByMusicVolume.get()) {
|
||||
volume *= gs.getSoundSourceVolume(SoundSource.MUSIC);
|
||||
}
|
||||
battleMusic.playBattle(volume);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void playSillyMusic() {
|
||||
Options gs = Minecraft.getInstance().options;
|
||||
if (ClientConfig.CLIENT.volumeAffectedByMusicVolume.get()) {
|
||||
battleMusic.playSilly(gs.getSoundSourceVolume(SoundSource.MUSIC) * gs.getSoundSourceVolume(SoundSource.MASTER) * ClientConfig.CLIENT.musicVolume.get().floatValue());
|
||||
} else {
|
||||
battleMusic.playSilly(gs.getSoundSourceVolume(SoundSource.MASTER) * ClientConfig.CLIENT.musicVolume.get().floatValue());
|
||||
float volume = ClientConfig.CLIENT.musicVolume.get().floatValue();
|
||||
if (ClientConfig.CLIENT.volumeAffectedByMasterVolume.get()) {
|
||||
volume *= gs.getSoundSourceVolume(SoundSource.MASTER);
|
||||
}
|
||||
if (ClientConfig.CLIENT.volumeAffectedByMusicVolume.get()) {
|
||||
volume *= gs.getSoundSourceVolume(SoundSource.MUSIC);
|
||||
}
|
||||
battleMusic.playSilly(volume);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in a new issue