]> git.lizzy.rs Git - LightOverlay.git/commitdiff
1.16
authorshedaniel <daniel@shedaniel.me>
Wed, 15 Jul 2020 10:16:38 +0000 (18:16 +0800)
committershedaniel <daniel@shedaniel.me>
Wed, 15 Jul 2020 10:16:38 +0000 (18:16 +0800)
Signed-off-by: shedaniel <daniel@shedaniel.me>
fabric/build.gradle
fabric/src/main/java/me/shedaniel/lightoverlay/fabric/LOModMenuEntry.java
fabric/src/main/java/me/shedaniel/lightoverlay/fabric/LightOverlay.java
forge/build.gradle
forge/src/main/java/me/shedaniel/lightoverlay/forge/LightOverlay.java
forge/src/main/java/me/shedaniel/lightoverlay/forge/LightOverlayClient.java
forge/src/main/java/me/shedaniel/lightoverlay/forge/LightOverlayCloth.java
forge/src/main/resources/META-INF/mods.toml
gradle.properties

index dde613c9b1f1c7fe9236151c3e54f4173d26f317..c4e979dad728f2a3d99840cd7a2a56f77a709270 100755 (executable)
@@ -15,22 +15,23 @@ processResources {
 
 repositories {
     jcenter()
+    maven { url "https://dl.bintray.com/shedaniel/legacy-yarn-updated" }
 }
 
 dependencies {
     minecraft "com.mojang:minecraft:${rootProject.fabric_minecraft_version}"
-    mappings "net.fabricmc:yarn:${rootProject.fabric_minecraft_version}+build.${rootProject.yarn_build}:v2"
+    mappings "me.shedaniel:legacy-yarn:${rootProject.yarn_build}:v2"
     modCompile "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}"
 
     modCompile "net.fabricmc.fabric-api:fabric-api:${rootProject.fabric_api_version}"
-    modCompile("me.shedaniel.cloth:cloth-events:${rootProject.cloth_events_version}") {
+    modCompile("me.shedaniel.cloth.api:cloth-client-events-v0:${rootProject.cloth_version}") {
         transitive = false
     }
     modImplementation("me.shedaniel.cloth:config-2:${rootProject.cloth_config_version}")
     modImplementation("io.github.prospector:modmenu:${rootProject.modmenu_version}") {
         transitive = false
     }
-    include("me.shedaniel.cloth:cloth-events:${rootProject.cloth_events_version}") {
+    include("me.shedaniel.cloth.api:cloth-client-events-v0:${rootProject.cloth_version}") {
         transitive = false
     }
     include("me.shedaniel.cloth:config-2:${rootProject.cloth_config_version}") {
index e7d7200f944e3720206f3239a7b29f56a3680520..95cdcf870414e7bd60e6884daad08733b887e537 100644 (file)
@@ -8,43 +8,41 @@ import me.shedaniel.clothconfig2.api.ConfigEntryBuilder;
 import me.shedaniel.clothconfig2.gui.entries.IntegerSliderEntry;
 import net.minecraft.client.gui.screen.Screen;
 import net.minecraft.client.resource.language.I18n;
+import net.minecraft.text.LiteralText;
+import net.minecraft.text.Text;
+import net.minecraft.text.TranslatableText;
 import net.minecraft.util.math.MathHelper;
 
 import java.util.Optional;
 
 public class LOModMenuEntry implements ModMenuApi {
-    @Override
-    public String getModId() {
-        return "lightoverlay";
-    }
-    
     @Override
     public ConfigScreenFactory<?> getModConfigScreenFactory() {
         return this::getConfigScreenByCloth;
     }
     
     public Screen getConfigScreenByCloth(Screen parent) {
-        ConfigBuilder builder = ConfigBuilder.create().setParentScreen(parent).setTitle("key.lightoverlay.category");
+        ConfigBuilder builder = ConfigBuilder.create().setParentScreen(parent).setTitle(new TranslatableText("key.lightoverlay.category"));
         
         ConfigEntryBuilder eb = builder.entryBuilder();
-        ConfigCategory general = builder.getOrCreateCategory("config.lightoverlay.general");
-        general.addEntry(eb.startTextDescription("§7" + I18n.translate("description.lightoverlay.caching")).build());
-        general.addEntry(eb.startBooleanToggle("config.lightoverlay.caching", LightOverlay.caching).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.caching = bool).build());
-        general.addEntry(eb.startIntSlider("config.lightoverlay.reach", LightOverlay.reach, 1, 64).setDefaultValue(12).setTextGetter(integer -> "Reach: " + integer + " Blocks").setSaveConsumer(integer -> LightOverlay.reach = integer).build());
-        IntegerSliderEntry crossLevel = eb.startIntSlider("config.lightoverlay.crossLevel", LightOverlay.crossLevel, 0, 15).setDefaultValue(7).setTextGetter(integer -> "Cross Level: " + integer).setSaveConsumer(integer -> LightOverlay.crossLevel = integer).build();
+        ConfigCategory general = builder.getOrCreateCategory(new TranslatableText("config.lightoverlay.general"));
+        general.addEntry(eb.startTextDescription(Text.method_30163("§7" + I18n.translate("description.lightoverlay.caching"))).build());
+        general.addEntry(eb.startBooleanToggle(new TranslatableText("config.lightoverlay.caching"), LightOverlay.caching).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.caching = bool).build());
+        general.addEntry(eb.startIntSlider(new TranslatableText("config.lightoverlay.reach"), LightOverlay.reach, 1, 64).setDefaultValue(12).setTextGetter(integer -> Text.method_30163("Reach: " + integer + " Blocks")).setSaveConsumer(integer -> LightOverlay.reach = integer).build());
+        IntegerSliderEntry crossLevel = eb.startIntSlider(new TranslatableText("config.lightoverlay.crossLevel"), LightOverlay.crossLevel, 0, 15).setDefaultValue(7).setTextGetter(integer -> Text.method_30163("Cross Level: " + integer)).setSaveConsumer(integer -> LightOverlay.crossLevel = integer).build();
         general.addEntry(crossLevel);
-        general.addEntry(eb.startIntSlider("config.lightoverlay.secondaryLevel", LightOverlay.secondaryLevel, -1, 15)
+        general.addEntry(eb.startIntSlider(new TranslatableText("config.lightoverlay.secondaryLevel"), LightOverlay.secondaryLevel, -1, 15)
                 .setErrorSupplier(integer -> {
-                    if (integer >= 0 && integer >= crossLevel.getValue()) return Optional.of("Secondary Level cannot be higher than Cross Level!");
+                    if (integer >= 0 && integer >= crossLevel.getValue()) return Optional.of(new LiteralText("Secondary Level cannot be higher than Cross Level!"));
                     return Optional.empty();
-                }).setDefaultValue(-1).setTextGetter(integer -> integer < 0 ? "Off" : "Level: " + integer).setSaveConsumer(integer -> LightOverlay.secondaryLevel = integer).build());
-        general.addEntry(eb.startBooleanToggle("config.lightoverlay.showNumber", LightOverlay.showNumber).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.showNumber = bool).build());
-        general.addEntry(eb.startBooleanToggle("config.lightoverlay.smoothLines", LightOverlay.smoothLines).setDefaultValue(true).setSaveConsumer(bool -> LightOverlay.smoothLines = bool).build());
-        general.addEntry(eb.startBooleanToggle("config.lightoverlay.underwater", LightOverlay.underwater).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.underwater = bool).build());
-        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());
-        general.addEntry(eb.startColorField("config.lightoverlay.yellowColor", LightOverlay.yellowColor).setDefaultValue(0xFFFF00).setSaveConsumer(color -> LightOverlay.yellowColor = color).build());
-        general.addEntry(eb.startColorField("config.lightoverlay.redColor", LightOverlay.redColor).setDefaultValue(0xFF0000).setSaveConsumer(color -> LightOverlay.redColor = color).build());
-        general.addEntry(eb.startColorField("config.lightoverlay.secondaryColor", LightOverlay.secondaryColor).setDefaultValue(0x0000FF).setSaveConsumer(color -> LightOverlay.secondaryColor = color).build());
+                }).setDefaultValue(-1).setTextGetter(integer -> new LiteralText(integer < 0 ? "Off" : "Level: " + integer)).setSaveConsumer(integer -> LightOverlay.secondaryLevel = integer).build());
+        general.addEntry(eb.startBooleanToggle(new TranslatableText("config.lightoverlay.showNumber"), LightOverlay.showNumber).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.showNumber = bool).build());
+        general.addEntry(eb.startBooleanToggle(new TranslatableText("config.lightoverlay.smoothLines"), LightOverlay.smoothLines).setDefaultValue(true).setSaveConsumer(bool -> LightOverlay.smoothLines = bool).build());
+        general.addEntry(eb.startBooleanToggle(new TranslatableText("config.lightoverlay.underwater"), LightOverlay.underwater).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.underwater = bool).build());
+        general.addEntry(eb.startIntSlider(new TranslatableText("config.lightoverlay.lineWidth"), MathHelper.floor(LightOverlay.lineWidth * 100), 100, 700).setDefaultValue(100).setTextGetter(integer -> new LiteralText("Light Width: " + LightOverlay.FORMAT.format(integer / 100d))).setSaveConsumer(integer -> LightOverlay.lineWidth = integer / 100f).build());
+        general.addEntry(eb.startColorField(new TranslatableText("config.lightoverlay.yellowColor"), LightOverlay.yellowColor).setDefaultValue(0xFFFF00).setSaveConsumer(color -> LightOverlay.yellowColor = color).build());
+        general.addEntry(eb.startColorField(new TranslatableText("config.lightoverlay.redColor"), LightOverlay.redColor).setDefaultValue(0xFF0000).setSaveConsumer(color -> LightOverlay.redColor = color).build());
+        general.addEntry(eb.startColorField(new TranslatableText("config.lightoverlay.secondaryColor"), LightOverlay.secondaryColor).setDefaultValue(0x0000FF).setSaveConsumer(color -> LightOverlay.secondaryColor = color).build());
         
         return builder.setSavingRunnable(() -> {
             try {
index eafd14ac1dadb734ae73da18f3cd00d2b2909799..d3ea3441d707062c1e9fecd3b3ff234bf924dc76 100644 (file)
@@ -4,10 +4,10 @@ import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.mojang.blaze3d.platform.GlStateManager;
 import com.mojang.blaze3d.systems.RenderSystem;
-import me.shedaniel.cloth.hooks.ClothClientHooks;
+import me.shedaniel.cloth.api.client.events.v0.ClothClientHooks;
 import net.fabricmc.api.ClientModInitializer;
+import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
 import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper;
-import net.fabricmc.fabric.api.event.client.ClientTickCallback;
 import net.fabricmc.loader.api.FabricLoader;
 import net.minecraft.block.Block;
 import net.minecraft.block.BlockState;
@@ -81,7 +81,7 @@ public class LightOverlay implements ClientModInitializer {
     private static long ticks = 0;
     
     static {
-        ClientTickCallback.EVENT.register(client -> {
+        ClientTickEvents.END_CLIENT_TICK.register(client -> {
             try {
                 ticks++;
                 if (CLIENT.player == null || !enabled) {
@@ -93,7 +93,7 @@ public class LightOverlay implements ClientModInitializer {
                         CHUNK_MAP.clear();
                         ClientPlayerEntity player = CLIENT.player;
                         ClientWorld world = CLIENT.world;
-                        BlockPos playerPos = player.getBlockPos();
+                        BlockPos playerPos = player.getSenseCenterPos();
                         EntityContext entityContext = EntityContext.of(player);
                         ChunkLightingView block = world.getLightingProvider().get(LightType.BLOCK);
                         ChunkLightingView sky = showNumber ? null : world.getLightingProvider().get(LightType.SKY);
@@ -222,7 +222,7 @@ public class LightOverlay implements ClientModInitializer {
         // Check if the collision has a bump
         if (upperCollisionShape.getMaximum(Direction.Axis.Y) > 0)
             return CrossType.NONE;
-        if (blockUpperState.getBlock().matches(BlockTags.RAILS))
+        if (blockUpperState.getBlock().isIn(BlockTags.RAILS))
             return CrossType.NONE;
         // Check block state allow spawning (excludes bedrock and barriers automatically)
         if (!blockBelowState.allowsSpawning(world, down, testingEntityType))
@@ -415,7 +415,7 @@ public class LightOverlay implements ClientModInitializer {
         
         // Setup
         testingEntityType = EntityType.Builder.create(EntityCategory.MONSTER).setDimensions(0f, 0f).disableSaving().build(null);
-        ClientTickCallback.EVENT.register(minecraftClient -> {
+        ClientTickEvents.END_CLIENT_TICK.register(minecraftClient -> {
             while (ENABLE_OVERLAY.wasPressed())
                 enabled = !enabled;
         });
index e6c2c65f7a1a939253cf0b0247fe6d4d4d6470f2..829a4d1ed9022841ceef6fbf08e4b16cbd4c6072 100644 (file)
@@ -9,10 +9,6 @@ buildscript {
     }
 }
 
-plugins {
-    id("com.wynprice.cursemaven") version("2.1.1")
-}
-
 apply plugin: "net.minecraftforge.gradle"
 apply plugin: "eclipse"
 
@@ -40,9 +36,10 @@ minecraft {
 
 repositories {
     maven { url "https://files.minecraftforge.net/maven" }
+    maven { url "https://dl.bintray.com/shedaniel/cloth-config-2" }
 }
 
 dependencies {
-    minecraft("net.minecraftforge:forge:${rootProject.forge_minecraft_version}-31.1.39")
-    implementation(fg.deobf("curse.maven:cloth-config-forge:${rootProject.cloth_config_forge_commit}"))
+    minecraft("net.minecraftforge:forge:${rootProject.forge_minecraft_version}-${project.forge_version}")
+    implementation(fg.deobf("me.shedaniel.cloth:cloth-config-forge:${rootProject.cloth_config_forge}"))
 }
\ No newline at end of file
index 290017b38d75a545512a61bb292aa01763145062..33f9fcc6685cfa8485b34b9435dbc979fe006077 100644 (file)
@@ -8,11 +8,10 @@ import net.minecraftforge.fml.common.Mod;
 @Mod("lightoverlay-forge")
 public class LightOverlay {
     public LightOverlay() {
-        //noinspection Convert2MethodRef
-        DistExecutor.runWhenOn(Dist.CLIENT, () -> () -> LightOverlayClient.register());
+        DistExecutor.safeRunWhenOn(Dist.CLIENT, () -> LightOverlayClient::register);
     }
     
     public static void processPacket(IPacket<?> packet) {
-        DistExecutor.runWhenOn(Dist.CLIENT, () -> () -> LightOverlayClient.processPacket(packet));
+        DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> LightOverlayClient.processPacket(packet));
     }
 }
index 62d5d72e356d8b6057dd84ead91b3b5948e8bc24..dc65b188e97104f73f33e9cc05df9f7e62e495de 100644 (file)
@@ -12,7 +12,6 @@ import net.minecraft.client.gui.FontRenderer;
 import net.minecraft.client.renderer.ActiveRenderInfo;
 import net.minecraft.client.renderer.IRenderTypeBuffer;
 import net.minecraft.client.renderer.Tessellator;
-import net.minecraft.client.renderer.TransformationMatrix;
 import net.minecraft.client.settings.KeyBinding;
 import net.minecraft.client.util.InputMappings;
 import net.minecraft.client.world.ClientWorld;
@@ -30,9 +29,10 @@ import net.minecraft.util.ResourceLocation;
 import net.minecraft.util.math.BlockPos;
 import net.minecraft.util.math.ChunkPos;
 import net.minecraft.util.math.MathHelper;
-import net.minecraft.util.math.Vec3d;
 import net.minecraft.util.math.shapes.ISelectionContext;
 import net.minecraft.util.math.shapes.VoxelShape;
+import net.minecraft.util.math.vector.TransformationMatrix;
+import net.minecraft.util.math.vector.Vector3d;
 import net.minecraft.world.IBlockReader;
 import net.minecraft.world.LightType;
 import net.minecraft.world.World;
@@ -238,7 +238,7 @@ public class LightOverlayClient {
                         CHUNK_MAP.clear();
                         ClientPlayerEntity player = minecraft.player;
                         ClientWorld world = minecraft.world;
-                        BlockPos playerPos = player.getPosition();
+                        BlockPos playerPos = player.func_233580_cy_();
                         ISelectionContext entityContext = ISelectionContext.forEntity(player);
                         IWorldLightListener block = world.getLightManager().getLightEngine(LightType.BLOCK);
                         IWorldLightListener sky = showNumber ? null : world.getLightManager().getLightEngine(LightType.SKY);
@@ -265,7 +265,7 @@ public class LightOverlayClient {
                         ClientPlayerEntity player = minecraft.player;
                         ClientWorld world = minecraft.world;
                         ISelectionContext selectionContext = ISelectionContext.forEntity(player);
-                        Vec3d[] playerPos = {null};
+                        Vector3d[] playerPos = {null};
                         int playerPosX = ((int) player.getPosX()) >> 4;
                         int playerPosZ = ((int) player.getPosZ()) >> 4;
                         if (ticks % 20 == 0) {
@@ -343,7 +343,7 @@ public class LightOverlayClient {
             int playerPosZ = ((int) playerEntity.getPosZ()) >> 4;
             ISelectionContext selectionContext = ISelectionContext.forEntity(playerEntity);
             World world = client.world;
-            BlockPos playerPos = playerEntity.getPosition();
+            BlockPos playerPos = playerEntity.func_233580_cy_();
             ActiveRenderInfo info = client.gameRenderer.getActiveRenderInfo();
             if (showNumber) {
                 RenderSystem.enableTexture();
index cbfb1a472c18987462328c9578117eaa1f94cc49..2e0ed5c48ee9d55c1fc162f8860d76573d548cda 100644 (file)
@@ -1,11 +1,13 @@
 package me.shedaniel.lightoverlay.forge;
 
-import me.shedaniel.forge.clothconfig2.api.ConfigBuilder;
-import me.shedaniel.forge.clothconfig2.api.ConfigCategory;
-import me.shedaniel.forge.clothconfig2.api.ConfigEntryBuilder;
-import me.shedaniel.forge.clothconfig2.gui.entries.IntegerSliderEntry;
+import me.shedaniel.clothconfig2.forge.api.ConfigBuilder;
+import me.shedaniel.clothconfig2.forge.api.ConfigCategory;
+import me.shedaniel.clothconfig2.forge.api.ConfigEntryBuilder;
+import me.shedaniel.clothconfig2.forge.gui.entries.IntegerSliderEntry;
 import net.minecraft.client.resources.I18n;
 import net.minecraft.util.math.MathHelper;
+import net.minecraft.util.text.ITextComponent;
+import net.minecraft.util.text.TranslationTextComponent;
 import net.minecraftforge.fml.ExtensionPoint;
 import net.minecraftforge.fml.ModLoadingContext;
 
@@ -14,27 +16,27 @@ import java.util.Optional;
 public class LightOverlayCloth {
     public static void register() {
         ModLoadingContext.get().registerExtensionPoint(ExtensionPoint.CONFIGGUIFACTORY, () -> (client, parent) -> {
-            ConfigBuilder builder = ConfigBuilder.create().setParentScreen(parent).setTitle("key.lightoverlay.category");
+            ConfigBuilder builder = ConfigBuilder.create().setParentScreen(parent).setTitle(new TranslationTextComponent("key.lightoverlay.category"));
             
-            ConfigEntryBuilder eb = builder.getEntryBuilder();
-            ConfigCategory general = builder.getOrCreateCategory("config.lightoverlay.general");
-            general.addEntry(eb.startTextDescription("§7" + I18n.format("description.lightoverlay.caching")).build());
-            general.addEntry(eb.startBooleanToggle("config.lightoverlay.caching", LightOverlayClient.caching).setDefaultValue(false).setSaveConsumer(bool -> LightOverlayClient.caching = bool).build());
-            general.addEntry(eb.startIntSlider("config.lightoverlay.reach", LightOverlayClient.reach, 1, 64).setDefaultValue(12).setTextGetter(integer -> "Reach: " + integer + " Blocks").setSaveConsumer(integer -> LightOverlayClient.reach = integer).build());
-            IntegerSliderEntry crossLevel = eb.startIntSlider("config.lightoverlay.crossLevel", LightOverlayClient.crossLevel, 0, 15).setDefaultValue(7).setTextGetter(integer -> "Cross Level: " + integer).setSaveConsumer(integer -> LightOverlayClient.crossLevel = integer).build();
+            ConfigEntryBuilder eb = builder.entryBuilder();
+            ConfigCategory general = builder.getOrCreateCategory(new TranslationTextComponent("config.lightoverlay.general"));
+            general.addEntry(eb.startTextDescription(ITextComponent.func_241827_a_("§7" + I18n.format("description.lightoverlay.caching"))).build());
+            general.addEntry(eb.startBooleanToggle(new TranslationTextComponent("config.lightoverlay.caching"), LightOverlayClient.caching).setDefaultValue(false).setSaveConsumer(bool -> LightOverlayClient.caching = bool).build());
+            general.addEntry(eb.startIntSlider(new TranslationTextComponent("config.lightoverlay.reach"), LightOverlayClient.reach, 1, 64).setDefaultValue(12).setTextGetter(integer -> ITextComponent.func_241827_a_("Reach: " + integer + " Blocks")).setSaveConsumer(integer -> LightOverlayClient.reach = integer).build());
+            IntegerSliderEntry crossLevel = eb.startIntSlider(new TranslationTextComponent("config.lightoverlay.crossLevel"), LightOverlayClient.crossLevel, 0, 15).setDefaultValue(7).setTextGetter(integer -> ITextComponent.func_241827_a_("Cross Level: " + integer)).setSaveConsumer(integer -> LightOverlayClient.crossLevel = integer).build();
             general.addEntry(crossLevel);
-            general.addEntry(eb.startIntSlider("config.lightoverlay.secondaryLevel", LightOverlayClient.secondaryLevel, -1, 15)
+            general.addEntry(eb.startIntSlider(new TranslationTextComponent("config.lightoverlay.secondaryLevel"), LightOverlayClient.secondaryLevel, -1, 15)
                     .setErrorSupplier(integer -> {
-                        if (integer >= 0 && integer >= crossLevel.getValue()) return Optional.of("Secondary Level cannot be higher than Cross Level!");
+                        if (integer >= 0 && integer >= crossLevel.getValue()) return Optional.of(ITextComponent.func_241827_a_("Secondary Level cannot be higher than Cross Level!"));
                         return Optional.empty();
-                    }).setDefaultValue(-1).setTextGetter(integer -> integer < 0 ? "Off" : "Level: " + integer).setSaveConsumer(integer -> LightOverlayClient.secondaryLevel = integer).build());
-            general.addEntry(eb.startBooleanToggle("config.lightoverlay.showNumber", LightOverlayClient.showNumber).setDefaultValue(false).setSaveConsumer(bool -> LightOverlayClient.showNumber = bool).build());
-            general.addEntry(eb.startBooleanToggle("config.lightoverlay.smoothLines", LightOverlayClient.smoothLines).setDefaultValue(true).setSaveConsumer(bool -> LightOverlayClient.smoothLines = bool).build());
-            general.addEntry(eb.startBooleanToggle("config.lightoverlay.underwater", LightOverlayClient.underwater).setDefaultValue(false).setSaveConsumer(bool -> LightOverlayClient.underwater = bool).build());
-            general.addEntry(eb.startIntSlider("config.lightoverlay.lineWidth", MathHelper.floor(LightOverlayClient.lineWidth * 100), 100, 700).setDefaultValue(100).setTextGetter(integer -> "Light Width: " + LightOverlayClient.FORMAT.format(integer / 100d)).setSaveConsumer(integer -> LightOverlayClient.lineWidth = integer / 100f).build());
-            general.addEntry(eb.startColorField("config.lightoverlay.yellowColor", LightOverlayClient.yellowColor).setDefaultValue(0xFFFF00).setSaveConsumer(color -> LightOverlayClient.yellowColor = color).build());
-            general.addEntry(eb.startColorField("config.lightoverlay.redColor", LightOverlayClient.redColor).setDefaultValue(0xFF0000).setSaveConsumer(color -> LightOverlayClient.redColor = color).build());
-            general.addEntry(eb.startColorField("config.lightoverlay.secondaryColor", LightOverlayClient.secondaryColor).setDefaultValue(0x0000FF).setSaveConsumer(color -> LightOverlayClient.secondaryColor = color).build());
+                    }).setDefaultValue(-1).setTextGetter(integer -> ITextComponent.func_241827_a_(integer < 0 ? "Off" : "Level: " + integer)).setSaveConsumer(integer -> LightOverlayClient.secondaryLevel = integer).build());
+            general.addEntry(eb.startBooleanToggle(new TranslationTextComponent("config.lightoverlay.showNumber"), LightOverlayClient.showNumber).setDefaultValue(false).setSaveConsumer(bool -> LightOverlayClient.showNumber = bool).build());
+            general.addEntry(eb.startBooleanToggle(new TranslationTextComponent("config.lightoverlay.smoothLines"), LightOverlayClient.smoothLines).setDefaultValue(true).setSaveConsumer(bool -> LightOverlayClient.smoothLines = bool).build());
+            general.addEntry(eb.startBooleanToggle(new TranslationTextComponent("config.lightoverlay.underwater"), LightOverlayClient.underwater).setDefaultValue(false).setSaveConsumer(bool -> LightOverlayClient.underwater = bool).build());
+            general.addEntry(eb.startIntSlider(new TranslationTextComponent("config.lightoverlay.lineWidth"), MathHelper.floor(LightOverlayClient.lineWidth * 100), 100, 700).setDefaultValue(100).setTextGetter(integer -> ITextComponent.func_241827_a_("Light Width: " + LightOverlayClient.FORMAT.format(integer / 100d))).setSaveConsumer(integer -> LightOverlayClient.lineWidth = integer / 100f).build());
+            general.addEntry(eb.startColorField(new TranslationTextComponent("config.lightoverlay.yellowColor"), LightOverlayClient.yellowColor).setDefaultValue(0xFFFF00).setSaveConsumer(color -> LightOverlayClient.yellowColor = color).build());
+            general.addEntry(eb.startColorField(new TranslationTextComponent("config.lightoverlay.redColor"), LightOverlayClient.redColor).setDefaultValue(0xFF0000).setSaveConsumer(color -> LightOverlayClient.redColor = color).build());
+            general.addEntry(eb.startColorField(new TranslationTextComponent("config.lightoverlay.secondaryColor"), LightOverlayClient.secondaryColor).setDefaultValue(0x0000FF).setSaveConsumer(color -> LightOverlayClient.secondaryColor = color).build());
             
             return builder.setSavingRunnable(() -> {
                 try {
index 3fe4bd37a20ba5b26b4f2893da1b64d13a228cdb..de20c6f6d2b128525d36aad70d771fc828fdd175 100755 (executable)
@@ -12,8 +12,8 @@ To provide users with NEI-like light overlay.
 '''
 
 [[dependencies.lightoverlay-forge]]
-    modId="cloth-config2"
+    modId="cloth-config"
     mandatory=true
-    versionRange="[3.0,)"
+    versionRange="[4.0,)"
     ordering="NONE"
     side="CLIENT"
index fa35d95efeedaf3f9fdcfb3b4ac99def3a8d206a..9a15436c924796b1639221273e11257e53de361a 100755 (executable)
@@ -1,18 +1,19 @@
 org.gradle.jvmargs=-Xmx3G
 org.gradle.daemon=false
 
-mod_version=4.7.0
+mod_version=5.4.0
 
 # fabric
-fabric_minecraft_version=1.15.2
-yarn_build=15
+fabric_minecraft_version=1.16.1
+yarn_build=1.16.1+build.4+legacy.20w09a+build.8
 fabric_loader_version=0.8.8+build.202
-fabric_api_version=0.13.0+build.315-1.15
-cloth_events_version=1.2.0
-cloth_config_version=2.14.2
-modmenu_version=1.10.2+build.32
+fabric_api_version=0.14.0+build.371-1.16
+cloth_version=1.0.4
+cloth_config_version=4.5.5
+modmenu_version=1.12.2+build.17
 
 # forge
-mcp_snapshot=20200408-1.15.1
-forge_minecraft_version=1.15.2
-cloth_config_forge_commit=2938583
\ No newline at end of file
+mcp_snapshot=20200514-1.16
+forge_minecraft_version=1.16.1
+forge_version=32.0.7
+cloth_config_forge=4.0
\ No newline at end of file