1 package com.irtimaled.bbor.client.gui;
3 import com.irtimaled.bbor.client.config.Setting;
4 import net.minecraft.client.resource.language.I18n;
5 import net.minecraft.text.LiteralText;
7 import java.util.HashMap;
10 class IntSettingSlider extends AbstractSlider {
11 private final String format;
12 private final Map<Integer, String> displayValues = new HashMap<>();
14 final Setting<Integer> setting;
17 IntSettingSlider(int width, int minValue, int maxValue, String format, Setting<Integer> setting) {
18 super(width, maxValue - minValue);
19 this.setting = setting;
20 this.minValue = minValue;
26 protected void setInitialPosition() {
27 this.setPosition(this.setting.get() - this.minValue);
30 IntSettingSlider addDisplayValue(int value, String displayValue) {
31 displayValues.put(value, displayValue);
32 if (setting.get() == value) {
38 protected Integer getSettingValue() {
39 return minValue + getPosition();
42 private void updateText() {
43 Integer value = setting.get();
44 this.setMessage(new LiteralText(I18n.translate(format, displayValues.getOrDefault(value, value.toString()))));
48 protected void onProgressChanged() {
49 this.setting.set(this.getSettingValue());