Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Simplify the names for surface materials #28

Merged
merged 1 commit into from Oct 1, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
35 changes: 25 additions & 10 deletions src/Kopernicus/Configuration/Enumerations/SurfaceMaterialType.cs
Expand Up @@ -28,14 +28,29 @@ namespace Kopernicus.Configuration.Enumerations
// PQS Material Type Enum
public enum SurfaceMaterialType
{
Vacuum,
AtmosphericBasic,
AtmosphericMain,
AtmosphericOptimized,
AtmosphericExtra,
AtmosphericMainFastBlend,
AtmosphericOptimizedFastBlend,
AtmosphericTriplanarZoomRotation,
AtmosphericTriplanarZoomRotationTextureArray,
// pre-1.8 Shaders
Vacuum = 0,
Basic = 1,
Main = 2,
Optimized = 4,
Extra = 8,

// 1.8 Shaders (Kerbin, Terrain Quality Low - High)
MainFastBlend = 16,
OptimizedFastBlend = 32,
Triplanar = 64,

// 1.9 Atlas Shader (Kerbin, Terrain Quality Ultra)
TriplanarAtlas = 128,

// Old names, kept around for compatibility
AtmosphericBasic = 1,
AtmosphericMain = 2,
AtmosphericOptimized = 4,
AtmosphericExtra = 8,
AtmosphericMainFastBlend = 16,
AtmosphericOptimizedFastBlend = 32,
AtmosphericTriplanarZoomRotation = 64,
AtmosphericTriplanarZoomRotationTextureArray = 128,
}
}
}
84 changes: 42 additions & 42 deletions src/Kopernicus/Configuration/PQSLoader.cs
Expand Up @@ -186,35 +186,35 @@ public EnumParser<SurfaceMaterialType> MaterialType
}
if (PQSProjectionAerialQuadRelative.UsesSameShader(BasicSurfaceMaterial))
{
return SurfaceMaterialType.AtmosphericBasic;
return SurfaceMaterialType.Basic;
}
if (PQSMainShader.UsesSameShader(BasicSurfaceMaterial))
{
return SurfaceMaterialType.AtmosphericMain;
return SurfaceMaterialType.Main;
}
if (PQSMainOptimised.UsesSameShader(BasicSurfaceMaterial))
{
return SurfaceMaterialType.AtmosphericOptimized;
return SurfaceMaterialType.Optimized;
}
if (PQSMainExtras.UsesSameShader(BasicSurfaceMaterial))
{
return SurfaceMaterialType.AtmosphericExtra;
return SurfaceMaterialType.Extra;
}
if (PQSMainFastBlend.UsesSameShader(BasicSurfaceMaterial))
{
return SurfaceMaterialType.AtmosphericMainFastBlend;
return SurfaceMaterialType.MainFastBlend;
}
if (PQSMainOptimisedFastBlend.UsesSameShader(BasicSurfaceMaterial))
{
return SurfaceMaterialType.AtmosphericOptimizedFastBlend;
return SurfaceMaterialType.OptimizedFastBlend;
}
if (PQSTriplanarZoomRotation.UsesSameShader(BasicSurfaceMaterial))
{
return SurfaceMaterialType.AtmosphericTriplanarZoomRotation;
return SurfaceMaterialType.Triplanar;
}
if (PQSTriplanarZoomRotationTextureArray.UsesSameShader(BasicSurfaceMaterial))
{
return SurfaceMaterialType.AtmosphericTriplanarZoomRotationTextureArray;
return SurfaceMaterialType.TriplanarAtlas;
}

throw new Exception("The shader '" + BasicSurfaceMaterial.shader.name + "' is not supported.");
Expand All @@ -226,38 +226,38 @@ public EnumParser<SurfaceMaterialType> MaterialType
Boolean isMain = PQSMainShader.UsesSameShader(BasicSurfaceMaterial);
Boolean isOptimised = PQSMainOptimised.UsesSameShader(BasicSurfaceMaterial);
Boolean isExtra = PQSMainExtras.UsesSameShader(BasicSurfaceMaterial);
Boolean isFastBlend = PQSMainFastBlend.UsesSameShader(BasicSurfaceMaterial);
Boolean isMainFastBlend = PQSMainFastBlend.UsesSameShader(BasicSurfaceMaterial);
Boolean isOptimisedFastBlend = PQSMainOptimisedFastBlend.UsesSameShader(BasicSurfaceMaterial);
Boolean isRotation = PQSTriplanarZoomRotation.UsesSameShader(BasicSurfaceMaterial);
Boolean isRotationArray = PQSTriplanarZoomRotationTextureArray.UsesSameShader(BasicSurfaceMaterial);
Boolean isTriplanar = PQSTriplanarZoomRotation.UsesSameShader(BasicSurfaceMaterial);
Boolean isTriplanarAtlas = PQSTriplanarZoomRotationTextureArray.UsesSameShader(BasicSurfaceMaterial);

switch (value.Value)
{
case SurfaceMaterialType.Vacuum when !isVaccum:
BasicSurfaceMaterial = new PQSProjectionSurfaceQuadLoader();
break;
case SurfaceMaterialType.AtmosphericBasic when !isBasic:
case SurfaceMaterialType.Basic when !isBasic:
BasicSurfaceMaterial = new PQSProjectionAerialQuadRelativeLoader();
break;
case SurfaceMaterialType.AtmosphericMain when !isMain:
case SurfaceMaterialType.Main when !isMain:
BasicSurfaceMaterial = new PQSMainShaderLoader();
break;
case SurfaceMaterialType.AtmosphericOptimized when !isOptimised:
case SurfaceMaterialType.Optimized when !isOptimised:
BasicSurfaceMaterial = new PQSMainOptimisedLoader();
break;
case SurfaceMaterialType.AtmosphericExtra when !isExtra:
case SurfaceMaterialType.Extra when !isExtra:
BasicSurfaceMaterial = new PQSMainExtrasLoader();
break;
case SurfaceMaterialType.AtmosphericMainFastBlend when !isFastBlend:
case SurfaceMaterialType.MainFastBlend when !isMainFastBlend:
BasicSurfaceMaterial = new PQSMainFastBlendLoader();
break;
case SurfaceMaterialType.AtmosphericOptimizedFastBlend when !isOptimisedFastBlend:
case SurfaceMaterialType.OptimizedFastBlend when !isOptimisedFastBlend:
BasicSurfaceMaterial = new PQSMainOptimisedFastBlendLoader();
break;
case SurfaceMaterialType.AtmosphericTriplanarZoomRotation when !isRotation:
case SurfaceMaterialType.Triplanar when !isTriplanar:
BasicSurfaceMaterial = new PQSTriplanarZoomRotationLoader();
break;
case SurfaceMaterialType.AtmosphericTriplanarZoomRotationTextureArray when !isRotationArray:
case SurfaceMaterialType.TriplanarAtlas when !isTriplanarAtlas:
BasicSurfaceMaterial = new PQSTriplanarZoomRotationTextureArrayLoader();
break;
default:
Expand All @@ -278,38 +278,38 @@ public Material SurfaceMaterial
Boolean isMain = BasicSurfaceMaterial is PQSMainShaderLoader;
Boolean isOptimised = BasicSurfaceMaterial is PQSMainOptimisedLoader;
Boolean isExtra = BasicSurfaceMaterial is PQSMainExtrasLoader;
Boolean isFastBlend = BasicSurfaceMaterial is PQSMainFastBlendLoader;
Boolean isMainFastBlend = BasicSurfaceMaterial is PQSMainFastBlendLoader;
Boolean isOptimisedFastBlend = BasicSurfaceMaterial is PQSMainOptimisedFastBlendLoader;
Boolean isRotation = BasicSurfaceMaterial is PQSTriplanarZoomRotationLoader;
Boolean isRotationArray = BasicSurfaceMaterial is PQSTriplanarZoomRotationTextureArrayLoader;
Boolean isTriplanar = BasicSurfaceMaterial is PQSTriplanarZoomRotationLoader;
Boolean isTriplanarAtlas = BasicSurfaceMaterial is PQSTriplanarZoomRotationTextureArrayLoader;

switch (MaterialType.Value)
{
case SurfaceMaterialType.Vacuum when !isVaccum:
BasicSurfaceMaterial = new PQSProjectionSurfaceQuadLoader(BasicSurfaceMaterial);
goto default;
case SurfaceMaterialType.AtmosphericBasic when !isBasic:
case SurfaceMaterialType.Basic when !isBasic:
BasicSurfaceMaterial = new PQSProjectionAerialQuadRelativeLoader(BasicSurfaceMaterial);
goto default;
case SurfaceMaterialType.AtmosphericMain when !isMain:
case SurfaceMaterialType.Main when !isMain:
BasicSurfaceMaterial = new PQSMainShaderLoader(BasicSurfaceMaterial);
goto default;
case SurfaceMaterialType.AtmosphericOptimized when !isOptimised:
case SurfaceMaterialType.Optimized when !isOptimised:
BasicSurfaceMaterial = new PQSMainOptimisedLoader(BasicSurfaceMaterial);
goto default;
case SurfaceMaterialType.AtmosphericExtra when !isExtra:
case SurfaceMaterialType.Extra when !isExtra:
BasicSurfaceMaterial = new PQSMainExtrasLoader(BasicSurfaceMaterial);
goto default;
case SurfaceMaterialType.AtmosphericMainFastBlend when !isFastBlend:
case SurfaceMaterialType.MainFastBlend when !isMainFastBlend:
BasicSurfaceMaterial = new PQSMainFastBlendLoader(BasicSurfaceMaterial);
goto default;
case SurfaceMaterialType.AtmosphericOptimizedFastBlend when !isOptimisedFastBlend:
case SurfaceMaterialType.OptimizedFastBlend when !isOptimisedFastBlend:
BasicSurfaceMaterial = new PQSMainOptimisedFastBlendLoader(BasicSurfaceMaterial);
goto default;
case SurfaceMaterialType.AtmosphericTriplanarZoomRotation when !isRotation:
case SurfaceMaterialType.Triplanar when !isTriplanar:
BasicSurfaceMaterial = new PQSTriplanarZoomRotationLoader(BasicSurfaceMaterial);
goto default;
case SurfaceMaterialType.AtmosphericTriplanarZoomRotationTextureArray when !isRotationArray:
case SurfaceMaterialType.TriplanarAtlas when !isTriplanarAtlas:
BasicSurfaceMaterial = new PQSTriplanarZoomRotationTextureArrayLoader(BasicSurfaceMaterial);
goto default;
default:
Expand All @@ -323,10 +323,10 @@ public Material SurfaceMaterial
Boolean isMain = value is PQSMainShaderLoader;
Boolean isOptimised = value is PQSMainOptimisedLoader;
Boolean isExtra = value is PQSMainExtrasLoader;
Boolean isFastBlend = value is PQSMainFastBlendLoader;
Boolean isMainFastBlend = value is PQSMainFastBlendLoader;
Boolean isOptimisedFastBlend = value is PQSMainOptimisedFastBlendLoader;
Boolean isRotation = value is PQSTriplanarZoomRotationLoader;
Boolean isRotationArray = value is PQSTriplanarZoomRotationTextureArrayLoader;
Boolean isTriplanar = value is PQSTriplanarZoomRotationLoader;
Boolean isTriplanarAtlas = value is PQSTriplanarZoomRotationTextureArrayLoader;

// We need to set the material before we check it, so we can reuse the code in MaterialType
BasicSurfaceMaterial = value;
Expand All @@ -336,28 +336,28 @@ public Material SurfaceMaterial
case SurfaceMaterialType.Vacuum when !isVaccum:
BasicSurfaceMaterial = new PQSProjectionSurfaceQuadLoader(value);
break;
case SurfaceMaterialType.AtmosphericBasic when !isBasic:
case SurfaceMaterialType.Basic when !isBasic:
BasicSurfaceMaterial = new PQSProjectionAerialQuadRelativeLoader(value);
break;
case SurfaceMaterialType.AtmosphericMain when !isMain:
case SurfaceMaterialType.Main when !isMain:
BasicSurfaceMaterial = new PQSMainShaderLoader(value);
break;
case SurfaceMaterialType.AtmosphericOptimized when !isOptimised:
case SurfaceMaterialType.Optimized when !isOptimised:
BasicSurfaceMaterial = new PQSMainOptimisedLoader(value);
break;
case SurfaceMaterialType.AtmosphericExtra when !isExtra:
case SurfaceMaterialType.Extra when !isExtra:
BasicSurfaceMaterial = new PQSMainExtrasLoader(value);
break;
case SurfaceMaterialType.AtmosphericMainFastBlend when !isFastBlend:
case SurfaceMaterialType.MainFastBlend when !isMainFastBlend:
BasicSurfaceMaterial = new PQSMainFastBlendLoader(value);
break;
case SurfaceMaterialType.AtmosphericOptimizedFastBlend when !isOptimisedFastBlend:
case SurfaceMaterialType.OptimizedFastBlend when !isOptimisedFastBlend:
BasicSurfaceMaterial = new PQSMainOptimisedFastBlendLoader(value);
break;
case SurfaceMaterialType.AtmosphericTriplanarZoomRotation when !isRotation:
case SurfaceMaterialType.Triplanar when !isTriplanar:
BasicSurfaceMaterial = new PQSTriplanarZoomRotationLoader(value);
break;
case SurfaceMaterialType.AtmosphericTriplanarZoomRotationTextureArray when !isRotationArray:
case SurfaceMaterialType.TriplanarAtlas when !isTriplanarAtlas:
BasicSurfaceMaterial = new PQSTriplanarZoomRotationTextureArrayLoader(value);
break;
default:
Expand Down Expand Up @@ -664,4 +664,4 @@ void IParserEventSubscriber.PostApply(ConfigNode node)
// -------------------------------
}
}
}
}