diff --git a/src/main/java/com/seibel/lod/core/api/external/apiObjects/enums/EDhApiFogDistance.java b/src/main/java/com/seibel/lod/core/api/external/apiObjects/enums/EDhApiFogDistance.java
new file mode 100644
index 000000000..05be7c5ef
--- /dev/null
+++ b/src/main/java/com/seibel/lod/core/api/external/apiObjects/enums/EDhApiFogDistance.java
@@ -0,0 +1,39 @@
+/*
+ * This file is part of the Distant Horizons mod (formerly the LOD Mod),
+ * licensed under the GNU LGPL v3 License.
+ *
+ * Copyright (C) 2020-2022 James Seibel
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ */
+
+package com.seibel.lod.core.api.external.apiObjects.enums;
+
+/**
+ * NEAR,
+ * FAR,
+ * NEAR_AND_FAR
+ *
+ * @author James Seibel
+ * @version 2022-6-2
+ */
+public enum EDhApiFogDistance
+{
+ // Reminder:
+ // when adding items up the API minor version
+ // when removing items up the API major version
+
+ NEAR,
+ FAR,
+ NEAR_AND_FAR
+}
\ No newline at end of file
diff --git a/src/main/java/com/seibel/lod/core/api/external/apiObjects/enums/EDhApiFogDrawMode.java b/src/main/java/com/seibel/lod/core/api/external/apiObjects/enums/EDhApiFogDrawMode.java
new file mode 100644
index 000000000..c317f27bd
--- /dev/null
+++ b/src/main/java/com/seibel/lod/core/api/external/apiObjects/enums/EDhApiFogDrawMode.java
@@ -0,0 +1,46 @@
+/*
+ * This file is part of the Distant Horizons mod (formerly the LOD Mod),
+ * licensed under the GNU LGPL v3 License.
+ *
+ * Copyright (C) 2020-2022 James Seibel
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ */
+
+package com.seibel.lod.core.api.external.apiObjects.enums;
+
+/**
+ * USE_OPTIFINE_FOG_SETTING,
+ * FOG_ENABLED,
+ * FOG_DISABLED
+ *
+ * @author James Seibel
+ * @version 2022-6-2
+ */
+public enum EDhApiFogDrawMode
+{
+ // Reminder:
+ // when adding items up the API minor version
+ // when removing items up the API major version
+
+
+ /**
+ * Use whatever Fog setting optifine is using.
+ * If optifine isn't installed this defaults to FOG_ENABLED.
+ */
+ USE_OPTIFINE_SETTING,
+
+ FOG_ENABLED,
+ FOG_DISABLED;
+
+}
diff --git a/src/main/java/com/seibel/lod/core/api/external/apiObjects/enums/EDhApiFogFalloff.java b/src/main/java/com/seibel/lod/core/api/external/apiObjects/enums/EDhApiFogFalloff.java
new file mode 100644
index 000000000..ba7c7d696
--- /dev/null
+++ b/src/main/java/com/seibel/lod/core/api/external/apiObjects/enums/EDhApiFogFalloff.java
@@ -0,0 +1,21 @@
+package com.seibel.lod.core.api.external.apiObjects.enums;
+
+/**
+ * LINEAR,
+ * EXPONENTIAL,
+ * EXPONENTIAL_SQUARED
+ *
+ * @author Leetom
+ * @version 2022-6-30
+ */
+public enum EDhApiFogFalloff
+{
+ // Reminder:
+ // when adding items up the API minor version
+ // when removing items up the API major version
+
+
+ LINEAR,
+ EXPONENTIAL,
+ EXPONENTIAL_SQUARED,
+}
diff --git a/src/main/java/com/seibel/lod/core/api/external/apiObjects/enums/EDhApiHeightFogMixMode.java b/src/main/java/com/seibel/lod/core/api/external/apiObjects/enums/EDhApiHeightFogMixMode.java
new file mode 100644
index 000000000..ed0a2a36a
--- /dev/null
+++ b/src/main/java/com/seibel/lod/core/api/external/apiObjects/enums/EDhApiHeightFogMixMode.java
@@ -0,0 +1,49 @@
+/*
+ * This file is part of the Distant Horizons mod (formerly the LOD Mod),
+ * licensed under the GNU LGPL v3 License.
+ *
+ * Copyright (C) 2020-2022 James Seibel
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ */
+
+package com.seibel.lod.core.api.external.apiObjects.enums;
+
+/**
+ * BASIC
+ * IGNORE_HEIGHT
+ * ADDITION
+ * MAX
+ * MULTIPLY
+ * INVERSE_MULTIPLY
+ * LIMITED_ADDITION
+ * MULTIPLY_ADDITION
+ * INVERSE_MULTIPLY_ADDITION
+ * AVERAGE
+ *
+ * @author Leetom
+ * @version 2022-4-14
+ */
+public enum EDhApiHeightFogMixMode
+{
+ BASIC,
+ IGNORE_HEIGHT,
+ ADDITION,
+ MAX,
+ MULTIPLY,
+ INVERSE_MULTIPLY,
+ LIMITED_ADDITION,
+ MULTIPLY_ADDITION,
+ INVERSE_MULTIPLY_ADDITION,
+ AVERAGE,
+}
diff --git a/src/main/java/com/seibel/lod/core/api/external/apiObjects/enums/EDhApiHeightFogMode.java b/src/main/java/com/seibel/lod/core/api/external/apiObjects/enums/EDhApiHeightFogMode.java
new file mode 100644
index 000000000..6b7f5a25f
--- /dev/null
+++ b/src/main/java/com/seibel/lod/core/api/external/apiObjects/enums/EDhApiHeightFogMode.java
@@ -0,0 +1,57 @@
+/*
+ * This file is part of the Distant Horizons mod (formerly the LOD Mod),
+ * licensed under the GNU LGPL v3 License.
+ *
+ * Copyright (C) 2020-2022 James Seibel
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ */
+
+package com.seibel.lod.core.api.external.apiObjects.enums;
+
+/**
+ * ABOVE_CAMERA,
+ * BELOW_CAMERA,
+ * ABOVE_AND_BELOW_CAMERA,
+ * ABOVE_SET_HEIGHT,
+ * BELOW_SET_HEIGHT,
+ * ABOVE_AND_BELOW_SET_HEIGHT,
+ *
+ * @author Leetom
+ * @version 6-30-2022
+ */
+public enum EDhApiHeightFogMode
+{
+ // Reminder:
+ // when adding items up the API minor version
+ // when removing items up the API major version
+
+
+ ABOVE_CAMERA(true, true, false),
+ BELOW_CAMERA(true, false, true),
+ ABOVE_AND_BELOW_CAMERA(true, true, true),
+ ABOVE_SET_HEIGHT(false, true, false),
+ BELOW_SET_HEIGHT(false, false, true),
+ ABOVE_AND_BELOW_SET_HEIGHT(false, true, true);
+
+ public final boolean basedOnCamera;
+ public final boolean above;
+ public final boolean below;
+
+ EDhApiHeightFogMode(boolean basedOnCamera, boolean above, boolean below)
+ {
+ this.basedOnCamera = basedOnCamera;
+ this.above = above;
+ this.below = below;
+ }
+}
diff --git a/src/main/java/com/seibel/lod/core/api/external/apiObjects/enums/EDhApiVerticalQuality.java b/src/main/java/com/seibel/lod/core/api/external/apiObjects/enums/EDhApiVerticalQuality.java
index 880b8a65e..7bc00eda0 100644
--- a/src/main/java/com/seibel/lod/core/api/external/apiObjects/enums/EDhApiVerticalQuality.java
+++ b/src/main/java/com/seibel/lod/core/api/external/apiObjects/enums/EDhApiVerticalQuality.java
@@ -20,6 +20,10 @@
package com.seibel.lod.core.api.external.apiObjects.enums;
/**
+ * LOW,
+ * MEDIUM,
+ * HIGH,
+ * ULTRA
*
* @author Leonardo Amato
* @version 2022-6-9
diff --git a/src/main/java/com/seibel/lod/core/api/external/config/client/graphics/DhApiGraphicsFog.java b/src/main/java/com/seibel/lod/core/api/external/config/client/graphics/DhApiGraphicsFog.java
index 56fb73887..87ef08642 100644
--- a/src/main/java/com/seibel/lod/core/api/external/config/client/graphics/DhApiGraphicsFog.java
+++ b/src/main/java/com/seibel/lod/core/api/external/config/client/graphics/DhApiGraphicsFog.java
@@ -1,36 +1,140 @@
package com.seibel.lod.core.api.external.config.client.graphics;
+import com.seibel.lod.core.api.external.apiObjects.enums.*;
import com.seibel.lod.core.api.external.apiObjects.wrapperInterfaces.IDhApiConfig;
+import com.seibel.lod.core.api.implementation.objects.GenericEnumConverter;
import com.seibel.lod.core.api.implementation.wrappers.DhApiConfig;
-import com.seibel.lod.core.enums.rendering.EFogColorMode;
-import com.seibel.lod.core.enums.rendering.EFogDistance;
+import com.seibel.lod.core.enums.rendering.*;
import com.seibel.lod.core.config.Config.Client.Graphics.FogQuality;
-import com.seibel.lod.core.enums.rendering.EFogDrawMode;
/**
- * Any graphics settings related to fog.
+ * Any graphics settings related to fog.
*
* @author James Seibel
* @version 2022-6-13
*/
public class DhApiGraphicsFog
{
+ //====================//
+ // basic fog settings //
+ //====================//
/** Returns the config related to when fog is rendered. */
- public static IDhApiConfig getFogDistanceConfig()
- { return new DhApiConfig<>(FogQuality.fogDistance); }
+ public static IDhApiConfig getFogDistanceConfig()
+ { return new DhApiConfig<>(FogQuality.fogDistance, new GenericEnumConverter<>(EFogDistance.class, EDhApiFogDistance.class)); }
/** Returns the config related to when fog is rendered. */
- public static IDhApiConfig getFogRenderConfig()
- { return new DhApiConfig<>(FogQuality.fogDrawMode); }
+ public static IDhApiConfig getFogRenderConfig()
+ { return new DhApiConfig<>(FogQuality.fogDrawMode, new GenericEnumConverter<>(EFogDrawMode.class, EDhApiFogDrawMode.class)); }
/** Returns the config related to the fog draw type. */
- public static IDhApiConfig getFogColorConfig()
- { return new DhApiConfig<>(FogQuality.fogColorMode); }
+ public static IDhApiConfig getFogColorConfig()
+ { return new DhApiConfig<>(FogQuality.fogColorMode, new GenericEnumConverter<>(EFogColorMode.class, EDhApiFogColorMode.class)); }
/** Returns the config related to disabling vanilla fog. */
public static IDhApiConfig getDisableVanillaFogConfig()
{ return new DhApiConfig<>(FogQuality.disableVanillaFog); }
+ //=======================//
+ // advanced fog settings //
+ //=======================//
+
+ /** Returns the config related to the fog starting distance. */
+ public static IDhApiConfig getFogStartDistanceConfig()
+ { return new DhApiConfig<>(FogQuality.AdvancedFog.farFogStart); }
+
+ /** Returns the config related to the fog ending distance. */
+ public static IDhApiConfig getFogEndDistanceConfig()
+ { return new DhApiConfig<>(FogQuality.AdvancedFog.farFogEnd); }
+
+ /**
+ * Returns the config related to the fog minimum thickness
+ * (aka how opaque the fog's is at its thinnest point).
+ */
+ public static IDhApiConfig getFogMinThicknessConfig()
+ { return new DhApiConfig<>(FogQuality.AdvancedFog.farFogMin); }
+
+ /**
+ * Returns the config related to the fog maximum thickness
+ * (aka how opaque the fog's is at its thickest point).
+ */
+ public static IDhApiConfig getFogMaxThicknessConfig()
+ { return new DhApiConfig<>(FogQuality.AdvancedFog.farFogMax); }
+
+ /**
+ * Returns the config related to how the fog increases/decreases
+ * in thickness over the given start and end distance.
+ */
+ public static IDhApiConfig getFogFalloffConfig()
+ { return new DhApiConfig<>(FogQuality.AdvancedFog.farFogType, new GenericEnumConverter<>(EFogFalloff.class, EDhApiFogFalloff.class)); }
+
+ /** Returns the config related to the fog density. */
+ public static IDhApiConfig getFogDensityFunctionConfig()
+ { return new DhApiConfig<>(FogQuality.AdvancedFog.farFogDensity); }
+
+
+ //=====================//
+ // height fog settings //
+ //=====================//
+
+ /** Returns the config related to how the height fog mixes. */
+ public static IDhApiConfig getHeightFogMixModeConfig()
+ { return new DhApiConfig<>(FogQuality.AdvancedFog.HeightFog.heightFogMixMode, new GenericEnumConverter<>(EHeightFogMixMode.class, EDhApiHeightFogMixMode.class)); }
+
+ /**
+ * Returns the config related to how the height fog
+ * is drawn relative to the camera or world.
+ */
+ public static IDhApiConfig getHeightFogModeConfig()
+ { return new DhApiConfig<>(FogQuality.AdvancedFog.HeightFog.heightFogMode, new GenericEnumConverter<>(EHeightFogMode.class, EDhApiHeightFogMode.class)); }
+
+ /**
+ * Returns the config related to the height fog's base height.
+ * (This defines the height used by EDhApiHeightFogMode if
+ * it is set up to use a specific height)
+ */
+ public static IDhApiConfig getHeightFogBaseHeightConfig()
+ { return new DhApiConfig<>(FogQuality.AdvancedFog.HeightFog.heightFogHeight); }
+
+ /**
+ * Returns the config related to the height fog's
+ * starting height as a percent of the world height.
+ */
+ public static IDhApiConfig getHeightFogStartingHeightPercentConfig()
+ { return new DhApiConfig<>(FogQuality.AdvancedFog.HeightFog.heightFogStart); }
+
+ /**
+ * Returns the config related to the height fog's
+ * ending height as a percent of the world height.
+ */
+ public static IDhApiConfig getHeightFogEndingHeightPercentConfig()
+ { return new DhApiConfig<>(FogQuality.AdvancedFog.HeightFog.heightFogEnd); }
+
+ /**
+ * Returns the config related to the height fog's minimum thickness
+ * (aka how opaque the height fog is at its thinnest point).
+ */
+ public static IDhApiConfig getHeightFogMinThicknessConfig()
+ { return new DhApiConfig<>(FogQuality.AdvancedFog.HeightFog.heightFogMin); }
+
+ /**
+ * Returns the config related to the height fog's maximum thickness
+ * (aka how opaque the height fog is at its thickest point).
+ */
+ public static IDhApiConfig getHeightFogMaxThicknessConfig()
+ { return new DhApiConfig<>(FogQuality.AdvancedFog.HeightFog.heightFogMax); }
+
+ /**
+ * Returns the config related to how the height fog increases/decreases
+ * in thickness over the given start and end height.
+ */
+ public static IDhApiConfig getHeightFogFalloffConfig()
+ { return new DhApiConfig<>(FogQuality.AdvancedFog.HeightFog.heightFogType, new GenericEnumConverter<>(EFogFalloff.class, EDhApiFogFalloff.class)); }
+
+ /** Returns the config related to the height fog's density. */
+ public static IDhApiConfig getHeightFogDensityConfig()
+ { return new DhApiConfig<>(FogQuality.AdvancedFog.HeightFog.heightFogDensity); }
+
+
}
diff --git a/src/main/java/com/seibel/lod/core/config/Config.java b/src/main/java/com/seibel/lod/core/config/Config.java
index 40ca15d53..d70e11c71 100644
--- a/src/main/java/com/seibel/lod/core/config/Config.java
+++ b/src/main/java/com/seibel/lod/core/config/Config.java
@@ -257,14 +257,14 @@ public class Config
+ " '1.0': Fully fog color.")
.build();
- public static ConfigEntry farFogType = new ConfigEntry.Builder()
- .set(EFogSetting.FogType.EXPONENTIAL_SQUARED)
+ public static ConfigEntry farFogType = new ConfigEntry.Builder()
+ .set(EFogFalloff.EXPONENTIAL_SQUARED)
.comment(""
- + "How the fog thickness should be calculated from distance? \n"
+ + "How should the fog thickness should be calculated? \n"
+ "\n"
- + EFogSetting.FogType.LINEAR + ": Linear based on distance (will ignore 'density')\n"
- + EFogSetting.FogType.EXPONENTIAL + ": 1/(e^(distance*density)) \n"
- + EFogSetting.FogType.EXPONENTIAL_SQUARED + ": 1/(e^((distance*density)^2)")
+ + EFogFalloff.LINEAR + ": Linear based on distance (will ignore 'density')\n"
+ + EFogFalloff.EXPONENTIAL + ": 1/(e^(distance*density)) \n"
+ + EFogFalloff.EXPONENTIAL_SQUARED + ": 1/(e^((distance*density)^2)")
.build();
public static ConfigEntry farFogDensity = new ConfigEntry.Builder()
@@ -349,14 +349,14 @@ public class Config
+ " '1.0': Fully fog color.")
.build();
- public static ConfigEntry heightFogType = new ConfigEntry.Builder()
- .set(EFogSetting.FogType.EXPONENTIAL_SQUARED)
+ public static ConfigEntry heightFogType = new ConfigEntry.Builder()
+ .set(EFogFalloff.EXPONENTIAL_SQUARED)
.comment(""
+ "How the fog thickness should be calculated from height? \n"
+ "\n"
- + EFogSetting.FogType.LINEAR + ": Linear based on height (will ignore 'density')\n"
- + EFogSetting.FogType.EXPONENTIAL + ": 1/(e^(height*density)) \n"
- + EFogSetting.FogType.EXPONENTIAL_SQUARED + ": 1/(e^((height*density)^2)")
+ + EFogFalloff.LINEAR + ": Linear based on height (will ignore 'density')\n"
+ + EFogFalloff.EXPONENTIAL + ": 1/(e^(height*density)) \n"
+ + EFogFalloff.EXPONENTIAL_SQUARED + ": 1/(e^((height*density)^2)")
.build();
public static ConfigEntry heightFogDensity = new ConfigEntry.Builder()
diff --git a/src/main/java/com/seibel/lod/core/enums/rendering/EFogDrawMode.java b/src/main/java/com/seibel/lod/core/enums/rendering/EFogDrawMode.java
index 8d7c519a7..f9dfbd39b 100644
--- a/src/main/java/com/seibel/lod/core/enums/rendering/EFogDrawMode.java
+++ b/src/main/java/com/seibel/lod/core/enums/rendering/EFogDrawMode.java
@@ -35,7 +35,7 @@ public enum EFogDrawMode
/**
* Use whatever Fog setting optifine is using.
- * If optifine isn't installed this defaults to ALWAYS_DRAW_FOG.
+ * If optifine isn't installed this defaults to FOG_ENABLED.
*/
USE_OPTIFINE_SETTING,
diff --git a/src/main/java/com/seibel/lod/core/enums/rendering/EFogFalloff.java b/src/main/java/com/seibel/lod/core/enums/rendering/EFogFalloff.java
new file mode 100644
index 000000000..1f939fd14
--- /dev/null
+++ b/src/main/java/com/seibel/lod/core/enums/rendering/EFogFalloff.java
@@ -0,0 +1,22 @@
+package com.seibel.lod.core.enums.rendering;
+
+/**
+ * LINEAR,
+ * EXPONENTIAL,
+ * EXPONENTIAL_SQUARED
+ *
+ * @author Leetom
+ * @version 2022-6-30
+ */
+public enum EFogFalloff
+{
+ // Reminder:
+ // when adding items up the API minor version
+ // when removing items up the API major version
+
+
+ LINEAR,
+ EXPONENTIAL,
+ EXPONENTIAL_SQUARED,
+ // TEXTURE_BASED, // TODO: Impl this
+}
diff --git a/src/main/java/com/seibel/lod/core/enums/rendering/EFogSetting.java b/src/main/java/com/seibel/lod/core/enums/rendering/EFogSetting.java
index eba445caa..780aaa053 100644
--- a/src/main/java/com/seibel/lod/core/enums/rendering/EFogSetting.java
+++ b/src/main/java/com/seibel/lod/core/enums/rendering/EFogSetting.java
@@ -29,7 +29,7 @@ import java.util.Objects;
public class EFogSetting
{
/** a FogSetting object with 0 for every value */
- public static final EFogSetting EMPTY = new EFogSetting(0, 0, 0, 0,0, EFogSetting.FogType.LINEAR);
+ public static final EFogSetting EMPTY = new EFogSetting(0, 0, 0, 0,0, EFogFalloff.LINEAR);
public final double start;
@@ -37,9 +37,9 @@ public class EFogSetting
public final double min;
public final double max;
public final double density;
- public final FogType fogType;
+ public final EFogFalloff fogType;
- public EFogSetting(double start, double end, double min, double max, double density, FogType fogType)
+ public EFogSetting(double start, double end, double min, double max, double density, EFogFalloff fogType)
{
this.start = start;
this.end = end;
@@ -66,13 +66,5 @@ public class EFogSetting
return Objects.hash(start, end, min, max, density, fogType);
}
- public enum FogType
- {
- LINEAR,
- EXPONENTIAL,
- EXPONENTIAL_SQUARED,
- // TEXTURE_BASED, // TODO: Impl this
- }
-
}
diff --git a/src/main/java/com/seibel/lod/core/enums/rendering/EHeightFogMixMode.java b/src/main/java/com/seibel/lod/core/enums/rendering/EHeightFogMixMode.java
index 2b3d58ee0..ac13e6e91 100644
--- a/src/main/java/com/seibel/lod/core/enums/rendering/EHeightFogMixMode.java
+++ b/src/main/java/com/seibel/lod/core/enums/rendering/EHeightFogMixMode.java
@@ -20,16 +20,16 @@
package com.seibel.lod.core.enums.rendering;
/**
- * basic
- * Ignore_Height
- * Addition
- * Max
- * Multiply
- * Inverse_Multiply
- * Limited_Addition
- * Multiply_Addition
- * Inverse_Multiply_Addition
- * Average
+ * BASIC
+ * IGNORE_HEIGHT
+ * ADDITION
+ * MAX
+ * MULTIPLY
+ * INVERSE_MULTIPLY
+ * LIMITED_ADDITION
+ * MULTIPLY_ADDITION
+ * INVERSE_MULTIPLY_ADDITION
+ * AVERAGE
*
* @author Leetom
* @version 2022-4-14
diff --git a/src/main/java/com/seibel/lod/core/enums/rendering/EHeightFogMode.java b/src/main/java/com/seibel/lod/core/enums/rendering/EHeightFogMode.java
index 7f1bfea95..a5f3bd4d6 100644
--- a/src/main/java/com/seibel/lod/core/enums/rendering/EHeightFogMode.java
+++ b/src/main/java/com/seibel/lod/core/enums/rendering/EHeightFogMode.java
@@ -19,8 +19,24 @@
package com.seibel.lod.core.enums.rendering;
+/**
+ * ABOVE_CAMERA,
+ * BELOW_CAMERA,
+ * ABOVE_AND_BELOW_CAMERA,
+ * ABOVE_SET_HEIGHT,
+ * BELOW_SET_HEIGHT,
+ * ABOVE_AND_BELOW_SET_HEIGHT,
+ *
+ * @author Leetom
+ * @version 6-30-2022
+ */
public enum EHeightFogMode
{
+ // Reminder:
+ // when adding items up the API minor version
+ // when removing items up the API major version
+
+
ABOVE_CAMERA(true, true, false),
BELOW_CAMERA(true, false, true),
ABOVE_AND_BELOW_CAMERA(true, true, true),
diff --git a/src/main/java/com/seibel/lod/core/render/LodFogConfig.java b/src/main/java/com/seibel/lod/core/render/LodFogConfig.java
index 504a1b36e..8ecea6db8 100644
--- a/src/main/java/com/seibel/lod/core/render/LodFogConfig.java
+++ b/src/main/java/com/seibel/lod/core/render/LodFogConfig.java
@@ -260,7 +260,7 @@ public class LodFogConfig
return str;
}
- private static String getFarFogMethod(EFogSetting.FogType fogType)
+ private static String getFarFogMethod(EFogFalloff fogType)
{
switch (fogType)
{
@@ -308,7 +308,7 @@ public class LodFogConfig
* Example:
* " return linearFog(dist, heightFogStart, heightFogLength, heightFogMin, heightFogRange);"
*/
- private static String getHeightFogMethod(EFogSetting.FogType fogType)
+ private static String getHeightFogMethod(EFogFalloff fogType)
{
switch (fogType)
{
diff --git a/src/main/java/com/seibel/lod/core/wrapperInterfaces/config/ILodConfigWrapperSingleton.java b/src/main/java/com/seibel/lod/core/wrapperInterfaces/config/ILodConfigWrapperSingleton.java
index d8c9601aa..ada546a6b 100644
--- a/src/main/java/com/seibel/lod/core/wrapperInterfaces/config/ILodConfigWrapperSingleton.java
+++ b/src/main/java/com/seibel/lod/core/wrapperInterfaces/config/ILodConfigWrapperSingleton.java
@@ -20,7 +20,6 @@
package com.seibel.lod.core.wrapperInterfaces.config;
import com.seibel.lod.core.config.Config;
-import com.seibel.lod.core.config.types.ConfigCategory;
import com.seibel.lod.core.enums.rendering.EFogDrawMode;
import com.seibel.lod.core.enums.rendering.EFogColorMode;
import com.seibel.lod.core.enums.rendering.EFogDistance;
@@ -122,8 +121,8 @@ public interface ILodConfigWrapperSingleton extends IBindable
double getFarFogMax();
void setFarFogMax(double newFarFogMax);
- EFogSetting.FogType getFarFogType();
- void setFarFogType(EFogSetting.FogType newFarFogType);
+ EFogFalloff getFarFogType();
+ void setFarFogType(EFogFalloff newFarFogType);
double getFarFogDensity();
void setFarFogDensity(double newFarFogDensity);
@@ -152,8 +151,8 @@ public interface ILodConfigWrapperSingleton extends IBindable
double getHeightFogMax();
void setHeightFogMax(double newHeightFogMax);
- EFogSetting.FogType getHeightFogType();
- void setHeightFogType(EFogSetting.FogType newFarFogType);
+ EFogFalloff getHeightFogType();
+ void setHeightFogType(EFogFalloff newFarFogType);
double getHeightFogDensity();
void setHeightFogDensity(double newHeightFogDensity);
diff --git a/src/main/java/com/seibel/lod/core/wrapperInterfaces/config/LodConfigWrapperSingleton.java b/src/main/java/com/seibel/lod/core/wrapperInterfaces/config/LodConfigWrapperSingleton.java
index 9aff126e1..f3d1ecfe2 100644
--- a/src/main/java/com/seibel/lod/core/wrapperInterfaces/config/LodConfigWrapperSingleton.java
+++ b/src/main/java/com/seibel/lod/core/wrapperInterfaces/config/LodConfigWrapperSingleton.java
@@ -287,7 +287,7 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
return Config.Client.Graphics.FogQuality.AdvancedFog.farFogMax.get();
}
@Override
- public EFogSetting.FogType getFarFogType() {
+ public EFogFalloff getFarFogType() {
return Config.Client.Graphics.FogQuality.AdvancedFog.farFogType.get();
}
@Override
@@ -312,7 +312,7 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
Config.Client.Graphics.FogQuality.AdvancedFog.farFogMax.set(newFarFogMax);
}
@Override
- public void setFarFogType(EFogSetting.FogType newFarFogType) {
+ public void setFarFogType(EFogFalloff newFarFogType) {
Config.Client.Graphics.FogQuality.AdvancedFog.farFogType.set(newFarFogType);
}
@Override
@@ -356,7 +356,7 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
return Config.Client.Graphics.FogQuality.AdvancedFog.HeightFog.heightFogMax.get();
}
@Override
- public EFogSetting.FogType getHeightFogType() {
+ public EFogFalloff getHeightFogType() {
return Config.Client.Graphics.FogQuality.AdvancedFog.HeightFog.heightFogType.get();
}
@Override
@@ -393,7 +393,7 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
Config.Client.Graphics.FogQuality.AdvancedFog.HeightFog.heightFogMax.set(newHeightFogMax);
}
@Override
- public void setHeightFogType(EFogSetting.FogType newHeightFogType) {
+ public void setHeightFogType(EFogFalloff newHeightFogType) {
Config.Client.Graphics.FogQuality.AdvancedFog.HeightFog.heightFogType.set(newHeightFogType);
}
@Override