1 package com.irtimaled.bbor.client.gui;
3 import com.irtimaled.bbor.client.config.Setting;
4 import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder;
5 import net.minecraft.client.resource.language.I18n;
6 import net.minecraft.text.LiteralTextContent;
7 import net.minecraft.text.MutableText;
9 import java.util.HashMap;
12 class IntSettingSlider extends AbstractSlider {
13 private final String format;
14 private final Map<Integer, String> displayValues = new HashMap<>();
16 final Setting<Integer> setting;
19 IntSettingSlider(int width, int minValue, int maxValue, String format, Setting<Integer> setting) {
20 super(width, maxValue - minValue);
21 this.setting = setting;
22 this.minValue = minValue;
28 protected void setInitialPosition() {
29 this.setPosition(this.setting.get() - this.minValue);
32 IntSettingSlider addDisplayValue(int value, String displayValue) {
33 displayValues.put(value, displayValue);
34 if (setting.get() == value) {
40 protected Integer getSettingValue() {
41 return minValue + getPosition();
44 private void updateText() {
45 Integer value = setting.get();
46 this.setMessage(MutableText.of(new LiteralTextContent(I18n.translate(format, displayValues.getOrDefault(value, value.toString())))));
50 protected void onProgressChanged() {
51 this.setting.set(this.getSettingValue());
56 public void appendNarrations(NarrationMessageBuilder narrationMessageBuilder) {
57 this.appendDefaultNarrations(narrationMessageBuilder);