From 102f80c62ee7b31a25f4bfb512b1702b0329c223 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Mon, 25 Oct 2021 17:37:36 +0300 Subject: [PATCH] Fog rendering fixes --- .../render/CustomBackgroundRenderer.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/java/ru/bclib/client/render/CustomBackgroundRenderer.java b/src/main/java/ru/bclib/client/render/CustomBackgroundRenderer.java index fe92ef7c..5a37032b 100644 --- a/src/main/java/ru/bclib/client/render/CustomBackgroundRenderer.java +++ b/src/main/java/ru/bclib/client/render/CustomBackgroundRenderer.java @@ -12,6 +12,7 @@ import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.level.Level; import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.dimension.DimensionType; import net.minecraft.world.level.material.FogType; import ru.bclib.api.BiomeAPI; import ru.bclib.util.BackgroundInfo; @@ -36,7 +37,7 @@ public class CustomBackgroundRenderer { Entity entity = camera.getEntity(); - if (shouldIgnore(entity.level, (int) entity.getX(), (int) entity.getEyeY(), (int) entity.getZ())) { + if (!isForcedDimension(entity.level) && shouldIgnoreArea(entity.level, (int) entity.getX(), (int) entity.getEyeY(), (int) entity.getZ())) { BackgroundInfo.fogDensity = 1; return false; } @@ -81,6 +82,21 @@ public class CustomBackgroundRenderer { return true; } + private static boolean isForcedDimension(Level level) { + return level.dimension() == Level.END || level.dimension() == Level.NETHER; + } + + private static boolean shouldIgnoreArea(Level level, int x, int y, int z) { + for (int i = -8; i <= 8; i += 8) { + for (int j = -8; j <= 8; j += 8) { + if (!shouldIgnore(level, x + i, y, z + j)) { + return false; + } + } + } + return true; + } + private static boolean shouldIgnore(Level level, int x, int y, int z) { Biome biome = level.getBiome(MUT_POS.set(x, y, z)); return BiomeAPI.getRenderBiome(biome) == BiomeAPI.EMPTY_BIOME;