From f2c2c5dd92864ea1257870a7c63ea77bd54157ac Mon Sep 17 00:00:00 2001 From: James Seibel Date: Tue, 1 Aug 2023 20:11:30 -0500 Subject: [PATCH] Add config for Lod Shading so Old Lighting can be enabled for shaders --- .../block/TintGetterOverrideFast.java | 4 +- .../block/TintGetterOverrideSmooth.java | 4 +- .../minecraft/MinecraftClientWrapper.java | 49 +++++++++++++++---- coreSubProjects | 2 +- 4 files changed, 43 insertions(+), 16 deletions(-) diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TintGetterOverrideFast.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TintGetterOverrideFast.java index 397a698e5..8242a139a 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TintGetterOverrideFast.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TintGetterOverrideFast.java @@ -65,9 +65,7 @@ public class TintGetterOverrideFast implements BlockAndTintGetter { } @Override - public float getShade(Direction direction, boolean bl) { - return parent.getShade(direction, bl); - } + public float getShade(Direction direction, boolean bl) { return this.parent.getShade(direction, bl); } @Override public LevelLightEngine getLightEngine() { diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TintGetterOverrideSmooth.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TintGetterOverrideSmooth.java index db55adb21..a1e7e9e03 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TintGetterOverrideSmooth.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TintGetterOverrideSmooth.java @@ -92,9 +92,7 @@ public class TintGetterOverrideSmooth implements BlockAndTintGetter { } @Override - public float getShade(Direction direction, boolean bl) { - return parent.getShade(direction, bl); - } + public float getShade(Direction direction, boolean bl) { return this.parent.getShade(direction, bl); } @Override public LevelLightEngine getLightEngine() { diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/minecraft/MinecraftClientWrapper.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/minecraft/MinecraftClientWrapper.java index 532204046..d6e21be3f 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/minecraft/MinecraftClientWrapper.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/minecraft/MinecraftClientWrapper.java @@ -25,9 +25,11 @@ import java.util.ArrayList; import java.util.UUID; import com.mojang.blaze3d.platform.NativeImage; +import com.seibel.distanthorizons.api.enums.config.ELodShading; import com.seibel.distanthorizons.common.wrappers.McObjectConverter; import com.seibel.distanthorizons.common.wrappers.world.ClientLevelWrapper; import com.seibel.distanthorizons.common.wrappers.world.ServerLevelWrapper; +import com.seibel.distanthorizons.core.config.Config; import com.seibel.distanthorizons.core.enums.EDhDirection; import com.seibel.distanthorizons.coreapi.ModInfo; import com.seibel.distanthorizons.core.logging.DhLoggerBuilder; @@ -106,17 +108,46 @@ public class MinecraftClientWrapper implements IMinecraftClientWrapper, IMinecra //=================// // method wrappers // //=================// - + @Override - public float getShade(EDhDirection lodDirection) { - if (mc.level != null) - { - Direction mcDir = McObjectConverter.Convert(lodDirection); - return mc.level.getShade(mcDir, true); - } - else return 0.0f; + public float getShade(EDhDirection lodDirection) + { + ELodShading lodShading = Config.Client.Advanced.Graphics.AdvancedGraphics.lodShading.get(); + switch (lodShading) + { + default: + case MINECRAFT: + if (this.mc.level != null) + { + Direction mcDir = McObjectConverter.Convert(lodDirection); + return this.mc.level.getShade(mcDir, true); + } + else + { + return 0.0f; + } + + case OLD_LIGHTING: + switch (lodDirection) + { + case DOWN: + return 0.5F; + default: + case UP: + return 1.0F; + case NORTH: + case SOUTH: + return 0.8F; + case WEST: + case EAST: + return 0.6F; + } + + case NONE: + return 1.0F; + } } - + @Override public boolean hasSinglePlayerServer() { return mc.hasSingleplayerServer(); } @Override diff --git a/coreSubProjects b/coreSubProjects index 5f6812233..622a1633f 160000 --- a/coreSubProjects +++ b/coreSubProjects @@ -1 +1 @@ -Subproject commit 5f681223364c49f3be8900ede0cc8c677aa7dd1b +Subproject commit 622a1633fa38289284faaad93bf2893899cf2dae