Skip to content

Commit

Permalink
Wrap those dammn enums to create compatibility with old configs
Browse files Browse the repository at this point in the history
Dorian Stoll committed May 30, 2017
1 parent 51dc720 commit e7a6210
Showing 12 changed files with 128 additions and 45 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
/**
* Kopernicus Planetary System Modifier
* ====================================
* Created by: BryceSchroeder and Teknoman117 (aka. Nathaniel R. Lewis)
* Maintained by: Thomas P., NathanKell and KillAshley
* Additional Content by: Gravitasi, aftokino, KCreator, Padishar, Kragrathea, OvenProofMars, zengei, MrHappyFace, Sigma88
* -------------------------------------------------------------
* This library 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; either
* version 3 of the License, or (at your option) any later version.
*
* This library 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 library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301 USA
*
* This library is intended to be used as a plugin for Kerbal Space Program
* which is copyright 2011-2015 Squad. Your usage of Kerbal Space Program
* itself is governed by the terms of its EULA, not the license above.
*
* https://kerbalspaceprogram.com
*/

namespace Kopernicus
{
// Custom enum to make the transition from QualityMode to NoiseQuality easier
public enum KopernicusNoiseQuality
{
Low = 0,
Standard = 1,
Medium = 1,
High = 2
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
/**
* Kopernicus Planetary System Modifier
* ====================================
* Created by: BryceSchroeder and Teknoman117 (aka. Nathaniel R. Lewis)
* Maintained by: Thomas P., NathanKell and KillAshley
* Additional Content by: Gravitasi, aftokino, KCreator, Padishar, Kragrathea, OvenProofMars, zengei, MrHappyFace, Sigma88
* -------------------------------------------------------------
* This library 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; either
* version 3 of the License, or (at your option) any later version.
*
* This library 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 library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301 USA
*
* This library is intended to be used as a plugin for Kerbal Space Program
* which is copyright 2011-2015 Squad. Your usage of Kerbal Space Program
* itself is governed by the terms of its EULA, not the license above.
*
* https://kerbalspaceprogram.com
*/

namespace Kopernicus
{
// Replacement Enum, to fix Ridged->Rigged conversion
public enum KopernicusNoiseType
{
Perlin = 0,
RiggedMultifractal = 1,
RidgedMultifractal = 1,
Billow = 2
}
}
Original file line number Diff line number Diff line change
@@ -66,18 +66,18 @@ public NumericParser<float> lacunarity

// Noise quality
[ParserTarget("mode")]
public EnumParser<NoiseQuality> mode
public EnumParser<KopernicusNoiseQuality> mode
{
get { return mod.mode; }
set { mod.mode = value; }
get { return (KopernicusNoiseQuality)(int)mod.mode; }
set { mod.mode = (NoiseQuality)(int)value.value; }
}

// Noise algorithm
[ParserTarget("noiseType")]
public EnumParser<PQSMod_VertexColorNoise.NoiseType> noiseType
public EnumParser<KopernicusNoiseType> noiseType
{
get { return mod.noiseType; }
set { mod.noiseType = value; }
get { return (KopernicusNoiseType)(int)mod.noiseType; }
set { mod.noiseType = (PQSMod_VertexColorNoise.NoiseType)(int)value.value; }
}

// Octaves of the noise
Original file line number Diff line number Diff line change
@@ -90,18 +90,18 @@ public NumericParser<float> lacunarity

// Noise quality
[ParserTarget("mode")]
public EnumParser<NoiseQuality> mode
public EnumParser<KopernicusNoiseQuality> mode
{
get { return mod.mode; }
set { mod.mode = value; }
get { return (KopernicusNoiseQuality) (int) mod.mode; }
set { mod.mode = (NoiseQuality) (int) value.value; }
}

// Noise algorithm
[ParserTarget("noiseType")]
public EnumParser<PQSMod_VertexColorNoiseRGB.NoiseType> noiseType
public EnumParser<KopernicusNoiseType> noiseType
{
get { return mod.noiseType; }
set { mod.noiseType = value; }
get { return (KopernicusNoiseType) (int) mod.noiseType; }
set { mod.noiseType = (PQSMod_VertexColorNoiseRGB.NoiseType) (int) value.value; }
}

// Octaves of the noise
Original file line number Diff line number Diff line change
@@ -82,18 +82,18 @@ public NumericParser<int> seed

// The type of the simplex height noise
[ParserTarget("noiseType")]
public EnumParser<PQSMod_VertexHeightNoise.NoiseType> noiseType
public EnumParser<KopernicusNoiseType> noiseType
{
get { return mod.noiseType; }
set { mod.noiseType = value; }
get { return (KopernicusNoiseType) (int) mod.noiseType; }
set { mod.noiseType = (PQSMod_VertexHeightNoise.NoiseType) (int) value.value; }
}

// The mode of the simplex height noise
[ParserTarget("mode")]
public EnumParser<NoiseQuality> mode
public EnumParser<KopernicusNoiseQuality> mode
{
get { return mod.mode; }
set { mod.mode = value; }
get { return (KopernicusNoiseQuality) (int) mod.mode; }
set { mod.mode = (NoiseQuality) (int) value.value; }
}

// The lacunarity of the simplex height noise
Original file line number Diff line number Diff line change
@@ -98,18 +98,18 @@ public NumericParser<int> seed

// Quality mode for the noise
[ParserTarget("mode")]
public EnumParser<NoiseQuality> mode
public EnumParser<KopernicusNoiseQuality> mode
{
get { return mod.mode; }
set { mod.mode = value; }
get { return (KopernicusNoiseQuality) (int) mod.mode; }
set { mod.mode = (NoiseQuality) (int) value.value; }
}

// Noise type
[ParserTarget("noiseType")]
public EnumParser<PQSMod_VertexHeightNoiseVertHeight.NoiseType> noiseType
public EnumParser<KopernicusNoiseType> noiseType
{
get { return mod.noiseType; }
set { mod.noiseType = value; }
get { return (KopernicusNoiseType) (int) mod.noiseType; }
set { mod.noiseType = (PQSMod_VertexHeightNoiseVertHeight.NoiseType) (int) value.value; }
}

// Lacunarity
Original file line number Diff line number Diff line change
@@ -114,18 +114,19 @@ public NumericParser<float> lacunarity

// mode
[ParserTarget("mode")]
public EnumParser<NoiseQuality> mode
public EnumParser<KopernicusNoiseQuality> mode
{
get { return mod.mode; }
set { mod.mode = value; }
get { return (KopernicusNoiseQuality) (int) mod.mode; }
set { mod.mode = (NoiseQuality) (int) value.value; }
}

// mode
[ParserTarget("noiseType")]
public EnumParser<PQSMod_VertexHeightNoiseVertHeightCurve.NoiseType> noiseType

public EnumParser<KopernicusNoiseType> noiseType
{
get { return mod.noiseType; }
set { mod.noiseType = value; }
get { return (KopernicusNoiseType) (int) mod.noiseType; }
set { mod.noiseType = (PQSMod_VertexHeightNoiseVertHeightCurve.NoiseType) (int) value.value; }
}
}
}
Original file line number Diff line number Diff line change
@@ -82,10 +82,10 @@ public NumericParser<int> ridgedAddSeed

// ridgedMode
[ParserTarget("ridgedMode")]
public EnumParser<NoiseQuality> ridgedMode
public EnumParser<KopernicusNoiseQuality> ridgedMode
{
get { return mod.ridgedMode; }
set { mod.ridgedMode = value; }
get { return (KopernicusNoiseQuality) (int) mod.ridgedMode; }
set { mod.ridgedMode = (NoiseQuality) (int) value.value; }
}

// ridgedSubFrequency
Original file line number Diff line number Diff line change
@@ -170,10 +170,10 @@ public NumericParser<int> ridgedAddOctaves

// The quality of the additive noise
[ParserTarget("ridgedAddQuality")]
public EnumParser<NoiseQuality> ridgedAddQuality
public EnumParser<KopernicusNoiseQuality> ridgedAddQuality
{
get { return mod.ridgedAdd.quality; }
set { mod.ridgedAdd.quality = value; }
get { return (KopernicusNoiseQuality) (int) mod.ridgedAdd.quality; }
set { mod.ridgedAdd.quality = (NoiseQuality) (int) value.value; }
}

// The seed of the additive noise
@@ -210,10 +210,10 @@ public NumericParser<int> ridgedSubOctaves

// The quality of the subtractive noise
[ParserTarget("ridgedSubQuality")]
public EnumParser<NoiseQuality> ridgedSubQuality
public EnumParser<KopernicusNoiseQuality> ridgedSubQuality
{
get { return mod.ridgedSub.quality; }
set { mod.ridgedSub.quality = value; }
get { return (KopernicusNoiseQuality) (int) mod.ridgedSub.quality; }
set { mod.ridgedSub.quality = (NoiseQuality) (int) value.value; }
}

// The seed of the subtractive noise
6 changes: 3 additions & 3 deletions Kopernicus/Kopernicus/Configuration/ModLoader/VertexPlanet.cs
Original file line number Diff line number Diff line change
@@ -144,10 +144,10 @@ public NumericParser<int> octaveCount

// quality
[ParserTarget("quality")]
public EnumParser<NoiseQuality> quality
public EnumParser<KopernicusNoiseQuality> mode
{
get { return noise.NoiseQuality; }
set { noise.NoiseQuality = value; }
get { return (KopernicusNoiseQuality) (int) noise.NoiseQuality; }
set { noise.NoiseQuality = (NoiseQuality) (int) value.value; }
}

// seed
Original file line number Diff line number Diff line change
@@ -90,10 +90,10 @@ public NumericParser<float> ridgedMinimum

// ridgedMode
[ParserTarget("ridgedMode")]
public EnumParser<NoiseQuality> ridgedMode
public EnumParser<KopernicusNoiseQuality> ridgedMode
{
get { return mod.ridgedMode; }
set { mod.ridgedMode = value; }
get { return (KopernicusNoiseQuality) (int) mod.ridgedMode; }
set { mod.ridgedMode = (NoiseQuality) (int) value.value; }
}

// simplexCurve
2 changes: 2 additions & 0 deletions Kopernicus/Kopernicus/Kopernicus.csproj
Original file line number Diff line number Diff line change
@@ -56,6 +56,8 @@
<Compile Include="Configuration\Asteroids\Location.cs" />
<Compile Include="Configuration\AtmosphereFromGroundLoader.cs" />
<Compile Include="Configuration\DebugLoader.cs" />
<Compile Include="Configuration\Enumerations\KopernicusNoiseQuality.cs" />
<Compile Include="Configuration\Enumerations\KopernicusNoiseType.cs" />
<Compile Include="Configuration\MaterialLoader\AerialTransCutoutLoader.cs" />
<Compile Include="Configuration\MaterialLoader\AlphaTestDiffuseLoader.cs" />
<Compile Include="Configuration\MaterialLoader\DiffuseWrapLoader.cs" />

0 comments on commit e7a6210

Please sign in to comment.