]> git.lizzy.rs Git - LightOverlay.git/blob - forge/src/main/java/me/shedaniel/lightoverlay/forge/LightOverlayCloth.java
1.16.2 Forge + frustum calculations
[LightOverlay.git] / forge / src / main / java / me / shedaniel / lightoverlay / forge / LightOverlayCloth.java
1 package me.shedaniel.lightoverlay.forge;
2
3 import me.shedaniel.clothconfig2.forge.api.ConfigBuilder;
4 import me.shedaniel.clothconfig2.forge.api.ConfigCategory;
5 import me.shedaniel.clothconfig2.forge.api.ConfigEntryBuilder;
6 import me.shedaniel.clothconfig2.forge.gui.entries.IntegerSliderEntry;
7 import net.minecraft.client.resources.I18n;
8 import net.minecraft.util.math.MathHelper;
9 import net.minecraft.util.text.ITextComponent;
10 import net.minecraft.util.text.TranslationTextComponent;
11 import net.minecraftforge.fml.ExtensionPoint;
12 import net.minecraftforge.fml.ModLoadingContext;
13
14 import java.util.Optional;
15
16 public class LightOverlayCloth {
17     public static void register() {
18         ModLoadingContext.get().registerExtensionPoint(ExtensionPoint.CONFIGGUIFACTORY, () -> (client, parent) -> {
19             ConfigBuilder builder = ConfigBuilder.create().setParentScreen(parent).setTitle(new TranslationTextComponent("key.lightoverlay.category"));
20             
21             ConfigEntryBuilder eb = builder.entryBuilder();
22             ConfigCategory general = builder.getOrCreateCategory(new TranslationTextComponent("config.lightoverlay.general"));
23             general.addEntry(eb.startTextDescription(ITextComponent.func_244388_a("ยง7" + I18n.format("description.lightoverlay.caching"))).build());
24             general.addEntry(eb.startBooleanToggle(new TranslationTextComponent("config.lightoverlay.caching"), LightOverlayClient.caching).setDefaultValue(false).setSaveConsumer(bool -> LightOverlayClient.caching = bool).build());
25             general.addEntry(eb.startIntSlider(new TranslationTextComponent("config.lightoverlay.reach"), LightOverlayClient.reach, 1, 64).setDefaultValue(12).setTextGetter(integer -> ITextComponent.func_244388_a("Reach: " + integer + " Blocks")).setSaveConsumer(integer -> LightOverlayClient.reach = integer).build());
26             IntegerSliderEntry crossLevel = eb.startIntSlider(new TranslationTextComponent("config.lightoverlay.crossLevel"), LightOverlayClient.crossLevel, 0, 15).setDefaultValue(7).setTextGetter(integer -> ITextComponent.func_244388_a("Cross Level: " + integer)).setSaveConsumer(integer -> LightOverlayClient.crossLevel = integer).build();
27             general.addEntry(crossLevel);
28             general.addEntry(eb.startIntSlider(new TranslationTextComponent("config.lightoverlay.secondaryLevel"), LightOverlayClient.secondaryLevel, -1, 15)
29                     .setErrorSupplier(integer -> {
30                         if (integer >= 0 && integer >= crossLevel.getValue()) return Optional.of(ITextComponent.func_244388_a("Secondary Level cannot be higher than Cross Level!"));
31                         return Optional.empty();
32                     }).setDefaultValue(-1).setTextGetter(integer -> ITextComponent.func_244388_a(integer < 0 ? "Off" : "Level: " + integer)).setSaveConsumer(integer -> LightOverlayClient.secondaryLevel = integer).build());
33             general.addEntry(eb.startBooleanToggle(new TranslationTextComponent("config.lightoverlay.showNumber"), LightOverlayClient.showNumber).setDefaultValue(false).setSaveConsumer(bool -> LightOverlayClient.showNumber = bool).build());
34             general.addEntry(eb.startBooleanToggle(new TranslationTextComponent("config.lightoverlay.smoothLines"), LightOverlayClient.smoothLines).setDefaultValue(true).setSaveConsumer(bool -> LightOverlayClient.smoothLines = bool).build());
35             general.addEntry(eb.startBooleanToggle(new TranslationTextComponent("config.lightoverlay.underwater"), LightOverlayClient.underwater).setDefaultValue(false).setSaveConsumer(bool -> LightOverlayClient.underwater = bool).build());
36             general.addEntry(eb.startIntSlider(new TranslationTextComponent("config.lightoverlay.lineWidth"), MathHelper.floor(LightOverlayClient.lineWidth * 100), 100, 700).setDefaultValue(100).setTextGetter(integer -> ITextComponent.func_244388_a("Light Width: " + LightOverlayClient.FORMAT.format(integer / 100d))).setSaveConsumer(integer -> LightOverlayClient.lineWidth = integer / 100f).build());
37             general.addEntry(eb.startColorField(new TranslationTextComponent("config.lightoverlay.yellowColor"), LightOverlayClient.yellowColor).setDefaultValue(0xFFFF00).setSaveConsumer(color -> LightOverlayClient.yellowColor = color).build());
38             general.addEntry(eb.startColorField(new TranslationTextComponent("config.lightoverlay.redColor"), LightOverlayClient.redColor).setDefaultValue(0xFF0000).setSaveConsumer(color -> LightOverlayClient.redColor = color).build());
39             general.addEntry(eb.startColorField(new TranslationTextComponent("config.lightoverlay.secondaryColor"), LightOverlayClient.secondaryColor).setDefaultValue(0x0000FF).setSaveConsumer(color -> LightOverlayClient.secondaryColor = color).build());
40             
41             return builder.setSavingRunnable(() -> {
42                 try {
43                     LightOverlayClient.saveConfig(LightOverlayClient.configFile);
44                 } catch (Exception e) {
45                     e.printStackTrace();
46                 }
47                 LightOverlayClient.loadConfig(LightOverlayClient.configFile);
48             }).build();
49         });
50     }
51 }