Skip to content

Commit

Permalink
Release 34.
Browse files Browse the repository at this point in the history
  • Loading branch information
R-T-B committed Sep 30, 2020
1 parent 536374b commit d7aa039
Show file tree
Hide file tree
Showing 5 changed files with 113 additions and 26 deletions.
1 change: 1 addition & 0 deletions build/GameData/Kopernicus/Config/Kopernicus_Config.cfg
Expand Up @@ -3,5 +3,6 @@ Kopernicus_config
{
EnforceShaders = true
WarnShaders = true
EnforcedShaderLevel = 2
CometPercentage = 25
}
2 changes: 2 additions & 0 deletions src/Kopernicus/Configuration/ConfigReader.cs
Expand Up @@ -41,6 +41,8 @@ public class ConfigReader
public bool EnforceShaders = false;
[Persistent]
public bool WarnShaders = false;
[Persistent]
public int EnforcedShaderLevel = 2;
#if KSP_VERSION_1_10_1
[Persistent]
public int CometPercentage = 25;
Expand Down
128 changes: 106 additions & 22 deletions src/Kopernicus/Configuration/TemplateLoader.cs
Expand Up @@ -174,32 +174,76 @@ void IParserEventSubscriber.PostApply(ConfigNode node)
// We only support one surface material per body, so use the one with the highest quality available
if (GameSettings.TERRAIN_SHADER_QUALITY == 3)
{
Material surfaceMaterial = Body.pqsVersion.ultraQualitySurfaceMaterial;
Material surfaceMaterial = Body.pqsVersion.ultraQualitySurfaceMaterial;

if (!surfaceMaterial)
{
surfaceMaterial = Body.pqsVersion.highQualitySurfaceMaterial;
}
if (!surfaceMaterial)
{
surfaceMaterial = Body.pqsVersion.mediumQualitySurfaceMaterial;
}
if (!surfaceMaterial)
{
surfaceMaterial = Body.pqsVersion.lowQualitySurfaceMaterial;
}
if (!surfaceMaterial)
{
surfaceMaterial = Body.pqsVersion.surfaceMaterial;
}
if (!surfaceMaterial)
{
surfaceMaterial = Body.pqsVersion.highQualitySurfaceMaterial;
}
if (!surfaceMaterial)
{
surfaceMaterial = Body.pqsVersion.mediumQualitySurfaceMaterial;
}
if (!surfaceMaterial)
{
surfaceMaterial = Body.pqsVersion.lowQualitySurfaceMaterial;
}
if (!surfaceMaterial)
{
surfaceMaterial = Body.pqsVersion.surfaceMaterial;
}


Body.pqsVersion.ultraQualitySurfaceMaterial = surfaceMaterial;
Body.pqsVersion.highQualitySurfaceMaterial = surfaceMaterial;
Body.pqsVersion.mediumQualitySurfaceMaterial = surfaceMaterial;
Body.pqsVersion.lowQualitySurfaceMaterial = surfaceMaterial;
Body.pqsVersion.surfaceMaterial = surfaceMaterial;
Body.pqsVersion.ultraQualitySurfaceMaterial = surfaceMaterial;
Body.pqsVersion.highQualitySurfaceMaterial = surfaceMaterial;
Body.pqsVersion.mediumQualitySurfaceMaterial = surfaceMaterial;
Body.pqsVersion.lowQualitySurfaceMaterial = surfaceMaterial;
Body.pqsVersion.surfaceMaterial = surfaceMaterial;
}
else if (GameSettings.TERRAIN_SHADER_QUALITY == 2)
{
Material surfaceMaterial = Body.pqsVersion.highQualitySurfaceMaterial;

if (!surfaceMaterial)
{
surfaceMaterial = Body.pqsVersion.mediumQualitySurfaceMaterial;
}
if (!surfaceMaterial)
{
surfaceMaterial = Body.pqsVersion.lowQualitySurfaceMaterial;
}
if (!surfaceMaterial)
{
surfaceMaterial = Body.pqsVersion.surfaceMaterial;
}


Body.pqsVersion.ultraQualitySurfaceMaterial = surfaceMaterial;
Body.pqsVersion.highQualitySurfaceMaterial = surfaceMaterial;
Body.pqsVersion.mediumQualitySurfaceMaterial = surfaceMaterial;
Body.pqsVersion.lowQualitySurfaceMaterial = surfaceMaterial;
Body.pqsVersion.surfaceMaterial = surfaceMaterial;
}
else if (GameSettings.TERRAIN_SHADER_QUALITY == 1)
{
Material surfaceMaterial = Body.pqsVersion.mediumQualitySurfaceMaterial;

if (!surfaceMaterial)
{
surfaceMaterial = Body.pqsVersion.lowQualitySurfaceMaterial;
}
if (!surfaceMaterial)
{
surfaceMaterial = Body.pqsVersion.surfaceMaterial;
}


Body.pqsVersion.ultraQualitySurfaceMaterial = surfaceMaterial;
Body.pqsVersion.highQualitySurfaceMaterial = surfaceMaterial;
Body.pqsVersion.mediumQualitySurfaceMaterial = surfaceMaterial;
Body.pqsVersion.lowQualitySurfaceMaterial = surfaceMaterial;
Body.pqsVersion.surfaceMaterial = surfaceMaterial;
}

// Should we remove the ocean?
if (Body.celestialBody.ocean)
Expand Down Expand Up @@ -237,6 +281,46 @@ void IParserEventSubscriber.PostApply(ConfigNode node)
ocean.lowQualitySurfaceMaterial = surfaceMaterial;
ocean.surfaceMaterial = surfaceMaterial;
}
else if (GameSettings.TERRAIN_SHADER_QUALITY == 2)
{
Material surfaceMaterial = ocean.highQualitySurfaceMaterial;

if (!surfaceMaterial)
{
surfaceMaterial = ocean.mediumQualitySurfaceMaterial;
}
if (!surfaceMaterial)
{
surfaceMaterial = ocean.lowQualitySurfaceMaterial;
}
if (!surfaceMaterial)
{
surfaceMaterial = ocean.surfaceMaterial;
}
ocean.ultraQualitySurfaceMaterial = surfaceMaterial;
ocean.highQualitySurfaceMaterial = surfaceMaterial;
ocean.mediumQualitySurfaceMaterial = surfaceMaterial;
ocean.lowQualitySurfaceMaterial = surfaceMaterial;
ocean.surfaceMaterial = surfaceMaterial;
}
else if (GameSettings.TERRAIN_SHADER_QUALITY == 1)
{
Material surfaceMaterial = ocean.mediumQualitySurfaceMaterial;

if (!surfaceMaterial)
{
surfaceMaterial = ocean.lowQualitySurfaceMaterial;
}
if (!surfaceMaterial)
{
surfaceMaterial = ocean.surfaceMaterial;
}
ocean.ultraQualitySurfaceMaterial = surfaceMaterial;
ocean.highQualitySurfaceMaterial = surfaceMaterial;
ocean.mediumQualitySurfaceMaterial = surfaceMaterial;
ocean.lowQualitySurfaceMaterial = surfaceMaterial;
ocean.surfaceMaterial = surfaceMaterial;
}

if (RemoveOcean.Value)
{
Expand Down
2 changes: 1 addition & 1 deletion src/Kopernicus/Constants/CompatibilityChecker.cs
Expand Up @@ -51,7 +51,7 @@ public class CompatibilityChecker : MonoBehaviour
internal const Int32 VERSION_MAJOR = 1;
internal const Int32 VERSION_MINOR = 10;
internal const Int32 REVISION = 1;
internal const Int32 KOPERNICUS = 33;
internal const Int32 KOPERNICUS = 34;

public static Boolean IsCompatible()
{
Expand Down
6 changes: 3 additions & 3 deletions src/Kopernicus/RuntimeUtility/TerrainQualitySetter.cs
Expand Up @@ -44,17 +44,17 @@ private void Start()

private void Update()
{
if (GameSettings.TERRAIN_SHADER_QUALITY == 3)
if (GameSettings.TERRAIN_SHADER_QUALITY == RuntimeUtility.KopernicusConfig.EnforcedShaderLevel)
{
return;
}
if ((RuntimeUtility.KopernicusConfig.WarnShaders) && (!HighLogic.LoadedSceneIsGame))
{
ScreenMessages.PostScreenMessage("Kopernicus only supports terrain quality ultra!\nSome terrain packs may not work!.", 5f, ScreenMessageStyle.UPPER_LEFT);
ScreenMessages.PostScreenMessage("Terrain quality set improperly!.", 5f, ScreenMessageStyle.UPPER_LEFT);
}
if (RuntimeUtility.KopernicusConfig.EnforceShaders)
{
GameSettings.TERRAIN_SHADER_QUALITY = 3;
GameSettings.TERRAIN_SHADER_QUALITY = RuntimeUtility.KopernicusConfig.EnforcedShaderLevel;
GameSettings.SaveSettings();
}
}
Expand Down

0 comments on commit d7aa039

Please sign in to comment.