]> git.lizzy.rs Git - LightOverlay.git/blob - fabric/src/main/java/me/shedaniel/lightoverlay/fabric/LOModMenuEntry.java
b38175716a3743167f5c167ea4c788175e8f4974
[LightOverlay.git] / fabric / src / main / java / me / shedaniel / lightoverlay / fabric / LOModMenuEntry.java
1 package me.shedaniel.lightoverlay.fabric;
2
3 import io.github.prospector.modmenu.api.ModMenuApi;
4 import me.shedaniel.clothconfig2.api.ConfigBuilder;
5 import me.shedaniel.clothconfig2.api.ConfigCategory;
6 import me.shedaniel.clothconfig2.api.ConfigEntryBuilder;
7 import net.minecraft.client.gui.screen.Screen;
8 import net.minecraft.util.math.MathHelper;
9
10 import java.util.function.Function;
11
12 public class LOModMenuEntry implements ModMenuApi {
13     @Override
14     public String getModId() {
15         return "lightoverlay";
16     }
17     
18     @Override
19     public Function<Screen, ? extends Screen> getConfigScreenFactory() {
20         return this::getConfigScreenByCloth;
21     }
22     
23     public Screen getConfigScreenByCloth(Screen parent) {
24         ConfigBuilder builder = ConfigBuilder.create().setParentScreen(parent).setTitle("key.lightoverlay.category");
25         
26         ConfigEntryBuilder eb = builder.entryBuilder();
27         ConfigCategory general = builder.getOrCreateCategory("config.lightoverlay.general");
28         general.addEntry(eb.startIntSlider("config.lightoverlay.reach", LightOverlay.reach, 1, 64).setDefaultValue(12).setTextGetter(integer -> "Reach: " + integer + " Blocks").setSaveConsumer(integer -> LightOverlay.reach = integer).build());
29         general.addEntry(eb.startIntSlider("config.lightoverlay.crossLevel", LightOverlay.crossLevel, 0, 15).setDefaultValue(7).setTextGetter(integer -> "Cross Level: " + integer).setSaveConsumer(integer -> LightOverlay.crossLevel = integer).build());
30         general.addEntry(eb.startBooleanToggle("config.lightoverlay.showNumber", LightOverlay.showNumber).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.showNumber = bool).build());
31         general.addEntry(eb.startBooleanToggle("config.lightoverlay.smoothLines", LightOverlay.smoothLines).setDefaultValue(true).setSaveConsumer(bool -> LightOverlay.smoothLines = bool).build());
32         general.addEntry(eb.startBooleanToggle("config.lightoverlay.underwater", LightOverlay.underwater).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.underwater = bool).build());
33         general.addEntry(eb.startIntSlider("config.lightoverlay.lineWidth", MathHelper.floor(LightOverlay.lineWidth * 100), 100, 700).setDefaultValue(100).setTextGetter(integer -> "Light Width: " + LightOverlay.FORMAT.format(integer / 100d)).setSaveConsumer(integer -> LightOverlay.lineWidth = integer / 100f).build());
34         general.addEntry(eb.startColorField("config.lightoverlay.yellowColor", LightOverlay.yellowColor).setDefaultValue(0xFFFF00).setSaveConsumer(color -> LightOverlay.yellowColor = color).build());
35         general.addEntry(eb.startColorField("config.lightoverlay.redColor", LightOverlay.redColor).setDefaultValue(0xFF0000).setSaveConsumer(color -> LightOverlay.redColor = color).build());
36         
37         return builder.setSavingRunnable(() -> {
38             try {
39                 LightOverlay.saveConfig(LightOverlay.configFile);
40             } catch (Exception e) {
41                 e.printStackTrace();
42             }
43             LightOverlay.loadConfig(LightOverlay.configFile);
44         }).build();
45     }
46 }