]> git.lizzy.rs Git - LightOverlay.git/blob - common/src/main/java/me/shedaniel/lightoverlay/common/ClothScreen.java
Now supports 1.19 (#146)
[LightOverlay.git] / common / src / main / java / me / shedaniel / lightoverlay / common / ClothScreen.java
1 package me.shedaniel.lightoverlay.common;
2
3 import me.shedaniel.clothconfig2.api.ConfigBuilder;
4 import me.shedaniel.clothconfig2.api.ConfigCategory;
5 import me.shedaniel.clothconfig2.api.ConfigEntryBuilder;
6 import me.shedaniel.clothconfig2.gui.entries.IntegerSliderEntry;
7 import net.minecraft.client.gui.screens.Screen;
8 import net.minecraft.client.resources.language.I18n;
9 import net.minecraft.network.chat.Component;
10 import net.minecraft.util.Mth;
11
12 public class ClothScreen {
13     public static Screen getConfigScreenByCloth(Screen parent) {
14         ConfigBuilder builder = ConfigBuilder.create().setParentScreen(parent).setTitle(Component.translatable("key.lightoverlay.category"));
15         
16         ConfigEntryBuilder eb = builder.entryBuilder();
17         ConfigCategory general = builder.getOrCreateCategory(Component.translatable("config.lightoverlay.general"));
18         general.addEntry(eb.startTextDescription(Component.nullToEmpty("ยง7" + I18n.get("description.lightoverlay.caching"))).build());
19         general.addEntry(eb.startBooleanToggle(Component.translatable("config.lightoverlay.caching"), LightOverlay.caching).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.caching = bool).build());
20         general.addEntry(eb.startIntSlider(Component.translatable("config.lightoverlay.reach"), LightOverlay.reach, 1, 64).setDefaultValue(12).setTextGetter(integer -> Component.nullToEmpty("Reach: " + integer + " Blocks")).setSaveConsumer(integer -> LightOverlay.reach = integer).build());
21         IntegerSliderEntry crossLevel = eb.startIntSlider(Component.translatable("config.lightoverlay.crossLevel"), LightOverlay.crossLevel, 0, 15).setDefaultValue(0).setTextGetter(integer -> Component.nullToEmpty("Cross Level: " + integer)).setSaveConsumer(integer -> LightOverlay.crossLevel = integer).build();
22         general.addEntry(crossLevel);
23         general.addEntry(eb.startIntSlider(Component.translatable("config.lightoverlay.secondaryLevel"), LightOverlay.secondaryLevel, -1, 15)
24               .setDefaultValue(7).setTextGetter(integer -> Component.literal(integer < 0 ? "Off" : "Level: " + integer)).setSaveConsumer(integer -> LightOverlay.secondaryLevel = integer).build());
25         general.addEntry(eb.startBooleanToggle(Component.translatable("config.lightoverlay.showNumber"), LightOverlay.showNumber).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.showNumber = bool).build());
26         general.addEntry(eb.startBooleanToggle(Component.translatable("config.lightoverlay.underwater"), LightOverlay.underwater).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.underwater = bool).build());
27         general.addEntry(eb.startBooleanToggle(Component.translatable("config.lightoverlay.mushroom"), LightOverlay.mushroom).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.mushroom = bool).build());
28         general.addEntry(eb.startIntSlider(Component.translatable("config.lightoverlay.lineWidth"), Mth.floor(LightOverlay.lineWidth * 100), 100, 700).setDefaultValue(100).setTextGetter(integer -> Component.literal("Light Width: " + LightOverlay.FORMAT.format(integer / 100d))).setSaveConsumer(integer -> LightOverlay.lineWidth = integer / 100f).build());
29         general.addEntry(eb.startColorField(Component.translatable("config.lightoverlay.yellowColor"), LightOverlay.yellowColor).setDefaultValue(0xFFFF00).setSaveConsumer(color -> LightOverlay.yellowColor = color).build());
30         general.addEntry(eb.startColorField(Component.translatable("config.lightoverlay.redColor"), LightOverlay.redColor).setDefaultValue(0xFF0000).setSaveConsumer(color -> LightOverlay.redColor = color).build());
31         general.addEntry(eb.startColorField(Component.translatable("config.lightoverlay.secondaryColor"), LightOverlay.secondaryColor).setDefaultValue(0x0000FF).setSaveConsumer(color -> LightOverlay.secondaryColor = color).build());
32         
33         return builder.setSavingRunnable(() -> {
34             try {
35                 LightOverlay.saveConfig(LightOverlay.configFile);
36             } catch (Exception e) {
37                 e.printStackTrace();
38             }
39             LightOverlay.loadConfig(LightOverlay.configFile);
40         }).build();
41     }
42 }