From c08a87e7a89eaf862974303f1e52ded7e740e80f Mon Sep 17 00:00:00 2001 From: "Plamen K. Kosseff" Date: Tue, 16 Feb 2021 07:14:57 +0200 Subject: [PATCH] Merge pull request #82 * Adds option to not render the overlay in mushroom biomes. --- .../java/me/shedaniel/lightoverlay/common/ClothScreen.java | 1 + .../java/me/shedaniel/lightoverlay/common/LightOverlay.java | 6 ++++++ .../src/main/resources/assets/lightoverlay/lang/en_us.json | 3 ++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/me/shedaniel/lightoverlay/common/ClothScreen.java b/common/src/main/java/me/shedaniel/lightoverlay/common/ClothScreen.java index 42021c3..7175343 100644 --- a/common/src/main/java/me/shedaniel/lightoverlay/common/ClothScreen.java +++ b/common/src/main/java/me/shedaniel/lightoverlay/common/ClothScreen.java @@ -33,6 +33,7 @@ public class ClothScreen { general.addEntry(eb.startBooleanToggle(new TranslatableComponent("config.lightoverlay.showNumber"), LightOverlay.showNumber).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.showNumber = bool).build()); general.addEntry(eb.startBooleanToggle(new TranslatableComponent("config.lightoverlay.smoothLines"), LightOverlay.smoothLines).setDefaultValue(true).setSaveConsumer(bool -> LightOverlay.smoothLines = bool).build()); general.addEntry(eb.startBooleanToggle(new TranslatableComponent("config.lightoverlay.underwater"), LightOverlay.underwater).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.underwater = bool).build()); + general.addEntry(eb.startBooleanToggle(new TranslatableComponent("config.lightoverlay.mushroom"), LightOverlay.mushroom).setDefaultValue(false).setSaveConsumer(bool -> LightOverlay.mushroom = bool).build()); general.addEntry(eb.startIntSlider(new TranslatableComponent("config.lightoverlay.lineWidth"), Mth.floor(LightOverlay.lineWidth * 100), 100, 700).setDefaultValue(100).setTextGetter(integer -> new TextComponent("Light Width: " + LightOverlay.FORMAT.format(integer / 100d))).setSaveConsumer(integer -> LightOverlay.lineWidth = integer / 100f).build()); general.addEntry(eb.startColorField(new TranslatableComponent("config.lightoverlay.yellowColor"), LightOverlay.yellowColor).setDefaultValue(0xFFFF00).setSaveConsumer(color -> LightOverlay.yellowColor = color).build()); general.addEntry(eb.startColorField(new TranslatableComponent("config.lightoverlay.redColor"), LightOverlay.redColor).setDefaultValue(0xFF0000).setSaveConsumer(color -> LightOverlay.redColor = color).build()); diff --git a/common/src/main/java/me/shedaniel/lightoverlay/common/LightOverlay.java b/common/src/main/java/me/shedaniel/lightoverlay/common/LightOverlay.java index ec86af8..f6e3eb7 100644 --- a/common/src/main/java/me/shedaniel/lightoverlay/common/LightOverlay.java +++ b/common/src/main/java/me/shedaniel/lightoverlay/common/LightOverlay.java @@ -33,8 +33,10 @@ import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.Level; import net.minecraft.world.level.LightLayer; +import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.chunk.ChunkBiomeContainer; import net.minecraft.world.level.chunk.ChunkStatus; import net.minecraft.world.level.chunk.LevelChunk; import net.minecraft.world.level.lighting.LayerLightEventListener; @@ -68,9 +70,11 @@ public class LightOverlay { public static boolean showNumber = false; public static boolean smoothLines = true; public static boolean underwater = false; + public static boolean mushroom = false; public static float lineWidth = 1.0F; public static int yellowColor = 0xFFFF00, redColor = 0xFF0000, secondaryColor = 0x0000FF; public static File configFile; + private static KeyMapping enableOverlay; private static boolean enabled = false; private static final LazyLoadedValue> TESTING_ENTITY_TYPE = new LazyLoadedValue<>(() -> @@ -250,6 +254,8 @@ public class LightOverlay { // Check block state allow spawning (excludes bedrock and barriers automatically) if (!blockBelowState.isValidSpawn(world, down, TESTING_ENTITY_TYPE.get())) return CrossType.NONE; + if (!mushroom && CLIENT.level != null && Biome.BiomeCategory.MUSHROOM.equals(CLIENT.level.getBiome(pos).getBiomeCategory())) + return CrossType.NONE; int blockLightLevel = block.getLightValue(pos); int skyLightLevel = sky.getLightValue(pos); if (blockLightLevel > higherCrossLevel) diff --git a/common/src/main/resources/assets/lightoverlay/lang/en_us.json b/common/src/main/resources/assets/lightoverlay/lang/en_us.json index 5346550..201186b 100755 --- a/common/src/main/resources/assets/lightoverlay/lang/en_us.json +++ b/common/src/main/resources/assets/lightoverlay/lang/en_us.json @@ -14,5 +14,6 @@ "config.lightoverlay.yellowColor": "Yellow Color:", "config.lightoverlay.secondaryColor": "Secondary Color:", "config.lightoverlay.redColor": "Red Color:", - "config.lightoverlay.invalidColor": "Invalid Color" + "config.lightoverlay.invalidColor": "Invalid Color", + "config.lightoverlay.mushroom": "Display in Mushroom Biomes:" } \ No newline at end of file -- 2.44.0