]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - src/main/java/com/irtimaled/bbor/client/gui/MaxYSettingSlider.java
Fully support keyboard nav in gui
[BoundingBoxOutlineReloaded.git] / src / main / java / com / irtimaled / bbor / client / gui / MaxYSettingSlider.java
1 package com.irtimaled.bbor.client.gui;
2
3 import com.irtimaled.bbor.client.config.Setting;
4 import net.minecraft.client.resources.I18n;
5
6 class MaxYSettingSlider extends IntSettingSlider {
7     private final int actualMinValue;
8
9     MaxYSettingSlider(int width, int minValue, Setting<Integer> setting) {
10         super(width, minValue - 2, 127, I18n.format("bbor.options.maxY", "%s"), setting);
11         this.actualMinValue = minValue;
12         this.setInitialPosition();
13         this.addDisplayValue(-1, I18n.format("bbor.options.maxY.activated"));
14         this.addDisplayValue(0, I18n.format("bbor.options.maxY.player"));
15         this.addDisplayValue(63, I18n.format("bbor.options.maxY.seaLevel"));
16     }
17
18     @Override
19     protected Integer getSettingValue() {
20         Integer value = super.getSettingValue();
21         if (value >= actualMinValue)
22             return value;
23         return (value + 1) - actualMinValue;
24     }
25
26     @Override
27     protected void setInitialPosition() {
28         if (actualMinValue != minValue + 2) return;
29
30         int value = setting.get();
31         if (value < actualMinValue)
32             value = (value - 1) + actualMinValue;
33
34         setPosition(value - minValue);
35     }
36 }