Add FogColorMode

This commit is contained in:
James Seibel
2021-11-27 10:10:21 -06:00
parent a41a4fe77f
commit 818c4243e0
4 changed files with 41 additions and 6 deletions
+1 -1
Submodule core updated: 30cd7fd4e0...e840a23d01
@@ -40,18 +40,19 @@ import com.seibel.lod.core.enums.config.LodTemplate;
import com.seibel.lod.core.enums.config.VanillaOverdraw;
import com.seibel.lod.core.enums.config.VerticalQuality;
import com.seibel.lod.core.enums.rendering.DebugMode;
import com.seibel.lod.core.enums.rendering.FogColorMode;
import com.seibel.lod.core.enums.rendering.FogDistance;
import com.seibel.lod.core.enums.rendering.FogDrawMode;
import com.seibel.lod.core.objects.MinDefaultMax;
import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton.IClient.IAdvanced;
import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton.IClient.IGraphics;
import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton.IClient.IWorldGenerator;
import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton.IClient.IAdvanced.IBuffers;
import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton.IClient.IAdvanced.IDebugging;
import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton.IClient.IAdvanced.IThreading;
import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton.IClient.IGraphics;
import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton.IClient.IGraphics.IAdvancedGraphics;
import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton.IClient.IGraphics.IFogQuality;
import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton.IClient.IGraphics.IQuality;
import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton.IClient.IWorldGenerator;
import net.minecraftforge.common.ForgeConfigSpec;
import net.minecraftforge.eventbus.api.SubscribeEvent;
@@ -174,6 +175,7 @@ public class ForgeConfig
{
public final ForgeConfigSpec.EnumValue<FogDistance> fogDistance;
public final ForgeConfigSpec.EnumValue<FogDrawMode> fogDrawMode;
public final ForgeConfigSpec.EnumValue<FogColorMode> fogColorMode;
public final ForgeConfigSpec.BooleanValue disableVanillaFog;
FogQualityOption(ForgeConfigSpec.Builder builder)
@@ -188,7 +190,12 @@ public class ForgeConfig
fogDrawMode = builder
.comment("\n\n"
+ IFogQuality.FOG_DRAW_MODE_DESC)
.defineEnum("Fog Draw Override", IFogQuality.FOG_DRAW_MODE_DEFAULT);
.defineEnum("Fog Draw Mode", IFogQuality.FOG_DRAW_MODE_DEFAULT);
fogColorMode = builder
.comment("\n\n"
+ IFogQuality.FOG_COLOR_MODE_DESC)
.defineEnum("Fog Color Mode", IFogQuality.FOG_COLOR_MODE_DEFAULT);
disableVanillaFog = builder
.comment("\n\n"
@@ -31,6 +31,7 @@ import com.seibel.lod.core.enums.config.LodTemplate;
import com.seibel.lod.core.enums.config.VanillaOverdraw;
import com.seibel.lod.core.enums.config.VerticalQuality;
import com.seibel.lod.core.enums.rendering.DebugMode;
import com.seibel.lod.core.enums.rendering.FogColorMode;
import com.seibel.lod.core.enums.rendering.FogDistance;
import com.seibel.lod.core.enums.rendering.FogDrawMode;
import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton;
@@ -211,9 +212,21 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
return ForgeConfig.CLIENT.graphics.fogQuality.fogDrawMode.get();
}
@Override
public void setFogDrawMode(FogDrawMode newFogDrawOverride)
public void setFogDrawMode(FogDrawMode newFogDrawMode)
{
ForgeConfig.CLIENT.graphics.fogQuality.fogDrawMode.set(newFogDrawOverride);
ForgeConfig.CLIENT.graphics.fogQuality.fogDrawMode.set(newFogDrawMode);
}
@Override
public FogColorMode getFogColorMode()
{
return ForgeConfig.CLIENT.graphics.fogQuality.fogColorMode.get();
}
@Override
public void setFogColorMode(FogColorMode newFogColorMode)
{
ForgeConfig.CLIENT.graphics.fogQuality.fogColorMode.set(newFogColorMode);
}
@@ -92,6 +92,20 @@ public class MinecraftRenderWrapper implements IMinecraftRenderWrapper
return new Color(colorValues[0], colorValues[1], colorValues[2], colorValues[3]);
}
@Override
public Color getSkyColor()
{
if (mc.level.dimensionType().hasSkyLight())
{
Vector3d colorValues = mc.level.getSkyColor(mc.gameRenderer.getMainCamera().getBlockPosition(), mc.getFrameTime());
return new Color((float) colorValues.x, (float) colorValues.y, (float) colorValues.z);
}
else
{
return new Color(0, 0, 0);
}
}
@Override
public double getFov(float partialTicks)
{
@@ -147,4 +161,5 @@ public class MinecraftRenderWrapper implements IMinecraftRenderWrapper
return loadedPos;
}
}