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>> battleMusicList;
|
||||||
public final ModConfigSpec.ConfigValue<List<? extends String>> sillyMusicList;
|
public final ModConfigSpec.ConfigValue<List<? extends String>> sillyMusicList;
|
||||||
public final ModConfigSpec.DoubleValue sillyMusicThreshold;
|
public final ModConfigSpec.DoubleValue sillyMusicThreshold;
|
||||||
|
public final ModConfigSpec.BooleanValue volumeAffectedByMasterVolume;
|
||||||
public final ModConfigSpec.BooleanValue volumeAffectedByMusicVolume;
|
public final ModConfigSpec.BooleanValue volumeAffectedByMusicVolume;
|
||||||
public final ModConfigSpec.DoubleValue musicVolume;
|
public final ModConfigSpec.DoubleValue musicVolume;
|
||||||
|
|
||||||
|
@ -55,6 +56,11 @@ public class ClientConfig {
|
||||||
.translation(TurnBasedMinecraftMod.MODID + ".clientconfig.silly_percentage")
|
.translation(TurnBasedMinecraftMod.MODID + ".clientconfig.silly_percentage")
|
||||||
.defineInRange("sillyMusicThreshold", 0.4, 0.0, 1.0);
|
.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(
|
this.volumeAffectedByMusicVolume = builder.comment(
|
||||||
"If \"true\", music volume will be affected by global Music volume setting")
|
"If \"true\", music volume will be affected by global Music volume setting")
|
||||||
.translation(TurnBasedMinecraftMod.MODID + ".clientconfig.volume_affected_by_volume")
|
.translation(TurnBasedMinecraftMod.MODID + ".clientconfig.volume_affected_by_volume")
|
||||||
|
@ -75,6 +81,7 @@ public class ClientConfig {
|
||||||
private EditBox battleListEditBox = null;
|
private EditBox battleListEditBox = null;
|
||||||
private EditBox sillyListEditBox = null;
|
private EditBox sillyListEditBox = null;
|
||||||
private SliderPercentage sillyMusicThresholdSlider = null;
|
private SliderPercentage sillyMusicThresholdSlider = null;
|
||||||
|
private Checkbox affectedByMasterVolCheckbox = null;
|
||||||
private Checkbox affectedByMusicVolCheckbox = null;
|
private Checkbox affectedByMusicVolCheckbox = null;
|
||||||
private SliderPercentage volumeSlider = null;
|
private SliderPercentage volumeSlider = null;
|
||||||
|
|
||||||
|
@ -167,6 +174,29 @@ public class ClientConfig {
|
||||||
|
|
||||||
top_offset += widget_height;
|
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(
|
addRenderableWidget(
|
||||||
new StringWidget(this.width / 2 - widget_width + widget_x_offset, top_offset,
|
new StringWidget(this.width / 2 - widget_width + widget_x_offset, top_offset,
|
||||||
widget_width, widget_height, Component.literal("Affected by Music Vol.")
|
widget_width, widget_height, Component.literal("Affected by Music Vol.")
|
||||||
|
@ -241,6 +271,8 @@ public class ClientConfig {
|
||||||
|
|
||||||
CLIENT.sillyMusicThreshold.set(sillyMusicThresholdSlider.percentage);
|
CLIENT.sillyMusicThreshold.set(sillyMusicThresholdSlider.percentage);
|
||||||
|
|
||||||
|
CLIENT.volumeAffectedByMasterVolume.set(affectedByMasterVolCheckbox.selected());
|
||||||
|
|
||||||
CLIENT.volumeAffectedByMusicVolume.set(affectedByMusicVolCheckbox.selected());
|
CLIENT.volumeAffectedByMusicVolume.set(affectedByMusicVolCheckbox.selected());
|
||||||
|
|
||||||
CLIENT.musicVolume.set(volumeSlider.percentage);
|
CLIENT.musicVolume.set(volumeSlider.percentage);
|
||||||
|
|
|
@ -94,21 +94,27 @@ public class ClientProxy extends CommonProxy {
|
||||||
@Override
|
@Override
|
||||||
public void playBattleMusic() {
|
public void playBattleMusic() {
|
||||||
Options gs = Minecraft.getInstance().options;
|
Options gs = Minecraft.getInstance().options;
|
||||||
if (ClientConfig.CLIENT.volumeAffectedByMusicVolume.get()) {
|
float volume = ClientConfig.CLIENT.musicVolume.get().floatValue();
|
||||||
battleMusic.playBattle(gs.getSoundSourceVolume(SoundSource.MUSIC) * gs.getSoundSourceVolume(SoundSource.MASTER) * ClientConfig.CLIENT.musicVolume.get().floatValue());
|
if (ClientConfig.CLIENT.volumeAffectedByMasterVolume.get()) {
|
||||||
} else {
|
volume *= gs.getSoundSourceVolume(SoundSource.MASTER);
|
||||||
battleMusic.playBattle(gs.getSoundSourceVolume(SoundSource.MASTER) * ClientConfig.CLIENT.musicVolume.get().floatValue());
|
|
||||||
}
|
}
|
||||||
|
if (ClientConfig.CLIENT.volumeAffectedByMusicVolume.get()) {
|
||||||
|
volume *= gs.getSoundSourceVolume(SoundSource.MUSIC);
|
||||||
|
}
|
||||||
|
battleMusic.playBattle(volume);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void playSillyMusic() {
|
public void playSillyMusic() {
|
||||||
Options gs = Minecraft.getInstance().options;
|
Options gs = Minecraft.getInstance().options;
|
||||||
if (ClientConfig.CLIENT.volumeAffectedByMusicVolume.get()) {
|
float volume = ClientConfig.CLIENT.musicVolume.get().floatValue();
|
||||||
battleMusic.playSilly(gs.getSoundSourceVolume(SoundSource.MUSIC) * gs.getSoundSourceVolume(SoundSource.MASTER) * ClientConfig.CLIENT.musicVolume.get().floatValue());
|
if (ClientConfig.CLIENT.volumeAffectedByMasterVolume.get()) {
|
||||||
} else {
|
volume *= gs.getSoundSourceVolume(SoundSource.MASTER);
|
||||||
battleMusic.playSilly(gs.getSoundSourceVolume(SoundSource.MASTER) * ClientConfig.CLIENT.musicVolume.get().floatValue());
|
|
||||||
}
|
}
|
||||||
|
if (ClientConfig.CLIENT.volumeAffectedByMusicVolume.get()) {
|
||||||
|
volume *= gs.getSoundSourceVolume(SoundSource.MUSIC);
|
||||||
|
}
|
||||||
|
battleMusic.playSilly(volume);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in a new issue