make IOrbitalParameters lowercase

This commit is contained in:
JohnCorby 2022-05-22 16:29:02 -07:00
parent 5fad2dc1ee
commit 9668f68a63
11 changed files with 68 additions and 67 deletions

View File

@ -41,11 +41,11 @@ namespace NewHorizons.Builder.Body
config.Orbit = new OrbitModule() config.Orbit = new OrbitModule()
{ {
IsMoon = true, IsMoon = true,
Inclination = belt.inclination + Random.Range(-2f, 2f), inclination = belt.inclination + Random.Range(-2f, 2f),
LongitudeOfAscendingNode = belt.longitudeOfAscendingNode, longitudeOfAscendingNode = belt.longitudeOfAscendingNode,
TrueAnomaly = 360f * (i + Random.Range(-0.2f, 0.2f)) / (float)count, trueAnomaly = 360f * (i + Random.Range(-0.2f, 0.2f)) / (float)count,
PrimaryBody = bodyName, PrimaryBody = bodyName,
SemiMajorAxis = Random.Range(belt.innerRadius, belt.outerRadius), semiMajorAxis = Random.Range(belt.innerRadius, belt.outerRadius),
ShowOrbitLine = false ShowOrbitLine = false
}; };

View File

@ -28,8 +28,8 @@ namespace NewHorizons.Builder.General
if (primaryBody?.gameObject?.GetComponent<SphereCollider>() != null && !config.Orbit.IsStatic) if (primaryBody?.gameObject?.GetComponent<SphereCollider>() != null && !config.Orbit.IsStatic)
{ {
var primarySphereOfInfluence = primaryBody.GetGravityVolume().gameObject.GetComponent<SphereCollider>(); var primarySphereOfInfluence = primaryBody.GetGravityVolume().gameObject.GetComponent<SphereCollider>();
if (primarySphereOfInfluence.radius < config.Orbit.SemiMajorAxis) if (primarySphereOfInfluence.radius < config.Orbit.semiMajorAxis)
primarySphereOfInfluence.radius = config.Orbit.SemiMajorAxis * 1.5f; primarySphereOfInfluence.radius = config.Orbit.semiMajorAxis * 1.5f;
} }
if (config.Orbit.IsTidallyLocked) if (config.Orbit.IsTidallyLocked)

View File

@ -108,18 +108,18 @@ namespace NewHorizons.Builder.Orbital
} }
// Update the positions // Update the positions
var distance = secondaryBody.SemiMajorAxis + primaryBody.SemiMajorAxis; var distance = secondaryBody.semiMajorAxis + primaryBody.semiMajorAxis;
var m1 = primaryGravity.Mass; var m1 = primaryGravity.Mass;
var m2 = secondaryGravity.Mass; var m2 = secondaryGravity.Mass;
var r1 = distance * m2 / (m1 + m2); var r1 = distance * m2 / (m1 + m2);
var r2 = distance * m1 / (m1 + m2); var r2 = distance * m1 / (m1 + m2);
var ecc = secondaryBody.Eccentricity; var ecc = secondaryBody.eccentricity;
var inc = secondaryBody.Inclination; var inc = secondaryBody.inclination;
var arg = secondaryBody.ArgumentOfPeriapsis; var arg = secondaryBody.argumentOfPeriapsis;
var lon = secondaryBody.LongitudeOfAscendingNode; var lon = secondaryBody.longitudeOfAscendingNode;
var tru = secondaryBody.TrueAnomaly; var tru = secondaryBody.trueAnomaly;
// Update their astro objects // Update their astro objects
primaryBody.SetOrbitalParametersFromTrueAnomaly(ecc, r1, inc, arg, lon, tru - 180); primaryBody.SetOrbitalParametersFromTrueAnomaly(ecc, r1, inc, arg, lon, tru - 180);

View File

@ -32,7 +32,7 @@ namespace NewHorizons.Builder.Orbital
var numVerts = config.Orbit.DottedOrbitLine ? 128 : 256; var numVerts = config.Orbit.DottedOrbitLine ? 128 : 256;
lineRenderer.positionCount = numVerts; lineRenderer.positionCount = numVerts;
var ecc = config.Orbit.Eccentricity; var ecc = config.Orbit.eccentricity;
var parentGravity = astroObject.GetPrimaryBody()?.GetGravityVolume(); var parentGravity = astroObject.GetPrimaryBody()?.GetGravityVolume();
@ -45,12 +45,12 @@ namespace NewHorizons.Builder.Orbital
{ {
orbitLine = orbitGO.AddComponent<NHOrbitLine>(); orbitLine = orbitGO.AddComponent<NHOrbitLine>();
var a = astroObject.SemiMajorAxis; var a = astroObject.semiMajorAxis;
var e = astroObject.Eccentricity; var e = astroObject.eccentricity;
var b = a * Mathf.Sqrt(1f - (e * e)); var b = a * Mathf.Sqrt(1f - (e * e));
var l = astroObject.LongitudeOfAscendingNode; var l = astroObject.longitudeOfAscendingNode;
var p = astroObject.ArgumentOfPeriapsis; var p = astroObject.argumentOfPeriapsis;
var i = astroObject.Inclination; var i = astroObject.inclination;
(orbitLine as NHOrbitLine).SemiMajorAxis = a * OrbitalParameters.Rotate(Vector3.left, l, i, p); (orbitLine as NHOrbitLine).SemiMajorAxis = a * OrbitalParameters.Rotate(Vector3.left, l, i, p);
(orbitLine as NHOrbitLine).SemiMinorAxis = b * OrbitalParameters.Rotate(Vector3.forward, l, i, p); (orbitLine as NHOrbitLine).SemiMinorAxis = b * OrbitalParameters.Rotate(Vector3.forward, l, i, p);
@ -84,7 +84,7 @@ namespace NewHorizons.Builder.Orbital
orbitLine._lineWidth = 0.2f; orbitLine._lineWidth = 0.2f;
orbitLine._numVerts = (int)Mathf.Clamp(config.Orbit.SemiMajorAxis / 1000f, numVerts, 4096); orbitLine._numVerts = (int)Mathf.Clamp(config.Orbit.semiMajorAxis / 1000f, numVerts, 4096);
Main.Instance.ModHelper.Events.Unity.FireOnNextUpdate(orbitLine.InitializeLineRenderer); Main.Instance.ModHelper.Events.Unity.FireOnNextUpdate(orbitLine.InitializeLineRenderer);

View File

@ -365,7 +365,7 @@ namespace NewHorizons.Builder.ShipLog
{ {
foreach (NewHorizonsBody body in bodies.Where(b => b.Config.Base.centerOfSolarSystem)) foreach (NewHorizonsBody body in bodies.Where(b => b.Config.Base.centerOfSolarSystem))
{ {
bodies.Sort((b, o) => b.Config.Orbit.SemiMajorAxis.CompareTo(o.Config.Orbit.SemiMajorAxis)); bodies.Sort((b, o) => b.Config.Orbit.semiMajorAxis.CompareTo(o.Config.Orbit.semiMajorAxis));
MapModeObject newNode = new MapModeObject MapModeObject newNode = new MapModeObject
{ {
mainBody = body, mainBody = body,

View File

@ -2,12 +2,13 @@
{ {
public interface IOrbitalParameters public interface IOrbitalParameters
{ {
float Inclination { get; set; } // lowercase cuz schema
float SemiMajorAxis { get; set; } float inclination { get; set; }
float LongitudeOfAscendingNode { get; set; } float semiMajorAxis { get; set; }
float Eccentricity { get; set; } float longitudeOfAscendingNode { get; set; }
float ArgumentOfPeriapsis { get; set; } float eccentricity { get; set; }
float TrueAnomaly { get; set; } float argumentOfPeriapsis { get; set; }
float trueAnomaly { get; set; }
OrbitalParameters GetOrbitalParameters(Gravity primaryGravity, Gravity secondaryGravity); OrbitalParameters GetOrbitalParameters(Gravity primaryGravity, Gravity secondaryGravity);
} }

View File

@ -3,38 +3,38 @@ namespace NewHorizons.Components.Orbital
{ {
public class NHAstroObject : AstroObject, IOrbitalParameters public class NHAstroObject : AstroObject, IOrbitalParameters
{ {
public float Inclination { get; set; } public float inclination { get; set; }
public float SemiMajorAxis { get; set; } public float semiMajorAxis { get; set; }
public float LongitudeOfAscendingNode { get; set; } public float longitudeOfAscendingNode { get; set; }
public float Eccentricity { get; set; } public float eccentricity { get; set; }
public float ArgumentOfPeriapsis { get; set; } public float argumentOfPeriapsis { get; set; }
public float TrueAnomaly { get; set; } public float trueAnomaly { get; set; }
public bool HideDisplayName { get; set; } public bool HideDisplayName { get; set; }
public void SetOrbitalParametersFromConfig(OrbitModule orbit) public void SetOrbitalParametersFromConfig(OrbitModule orbit)
{ {
SetOrbitalParametersFromTrueAnomaly(orbit.Eccentricity, orbit.SemiMajorAxis, orbit.Inclination, orbit.ArgumentOfPeriapsis, orbit.LongitudeOfAscendingNode, orbit.TrueAnomaly); SetOrbitalParametersFromTrueAnomaly(orbit.eccentricity, orbit.semiMajorAxis, orbit.inclination, orbit.argumentOfPeriapsis, orbit.longitudeOfAscendingNode, orbit.trueAnomaly);
} }
public void SetOrbitalParametersFromTrueAnomaly(float ecc, float a, float i, float p, float l, float trueAnomaly) public void SetOrbitalParametersFromTrueAnomaly(float ecc, float a, float i, float p, float l, float trueAnomaly)
{ {
Inclination = ecc; inclination = ecc;
SemiMajorAxis = a; semiMajorAxis = a;
LongitudeOfAscendingNode = l; longitudeOfAscendingNode = l;
Inclination = i; inclination = i;
Eccentricity = ecc; eccentricity = ecc;
ArgumentOfPeriapsis = p; argumentOfPeriapsis = p;
TrueAnomaly = trueAnomaly; this.trueAnomaly = trueAnomaly;
} }
public override string ToString() public override string ToString()
{ {
return $"ParameterizedAstroObject: Eccentricity {Eccentricity}, SemiMajorAxis {SemiMajorAxis}, Inclination {Inclination}, ArgumentOfPeriapsis {ArgumentOfPeriapsis}, LongitudeOfAscendingNode {LongitudeOfAscendingNode}, TrueAnomaly {TrueAnomaly}"; return $"ParameterizedAstroObject: Eccentricity {eccentricity}, SemiMajorAxis {semiMajorAxis}, Inclination {inclination}, ArgumentOfPeriapsis {argumentOfPeriapsis}, LongitudeOfAscendingNode {longitudeOfAscendingNode}, TrueAnomaly {trueAnomaly}";
} }
public OrbitalParameters GetOrbitalParameters(Gravity primaryGravity, Gravity secondaryGravity) public OrbitalParameters GetOrbitalParameters(Gravity primaryGravity, Gravity secondaryGravity)
{ {
return OrbitalParameters.FromTrueAnomaly(primaryGravity, secondaryGravity, Eccentricity, SemiMajorAxis, Inclination, ArgumentOfPeriapsis, LongitudeOfAscendingNode, TrueAnomaly); return OrbitalParameters.FromTrueAnomaly(primaryGravity, secondaryGravity, eccentricity, semiMajorAxis, inclination, argumentOfPeriapsis, longitudeOfAscendingNode, trueAnomaly);
} }
} }
} }

View File

@ -4,12 +4,12 @@ namespace NewHorizons.Components.Orbital
{ {
public class OrbitalParameters : IOrbitalParameters public class OrbitalParameters : IOrbitalParameters
{ {
public float Inclination { get; set; } public float inclination { get; set; }
public float SemiMajorAxis { get; set; } public float semiMajorAxis { get; set; }
public float LongitudeOfAscendingNode { get; set; } public float longitudeOfAscendingNode { get; set; }
public float Eccentricity { get; set; } public float eccentricity { get; set; }
public float ArgumentOfPeriapsis { get; set; } public float argumentOfPeriapsis { get; set; }
public float TrueAnomaly { get; set; } public float trueAnomaly { get; set; }
public float Period { get; set; } public float Period { get; set; }
public Vector3 InitialPosition { get; private set; } public Vector3 InitialPosition { get; private set; }
@ -19,11 +19,11 @@ namespace NewHorizons.Components.Orbital
public static OrbitalParameters FromTrueAnomaly(Gravity primaryGravity, Gravity secondaryGravity, float eccentricity, float semiMajorAxis, float inclination, float argumentOfPeriapsis, float longitudeOfAscendingNode, float trueAnomaly) public static OrbitalParameters FromTrueAnomaly(Gravity primaryGravity, Gravity secondaryGravity, float eccentricity, float semiMajorAxis, float inclination, float argumentOfPeriapsis, float longitudeOfAscendingNode, float trueAnomaly)
{ {
var orbitalParameters = new OrbitalParameters(); var orbitalParameters = new OrbitalParameters();
orbitalParameters.Inclination = inclination; orbitalParameters.inclination = inclination;
orbitalParameters.SemiMajorAxis = semiMajorAxis; orbitalParameters.semiMajorAxis = semiMajorAxis;
orbitalParameters.LongitudeOfAscendingNode = longitudeOfAscendingNode; orbitalParameters.longitudeOfAscendingNode = longitudeOfAscendingNode;
orbitalParameters.Eccentricity = eccentricity; orbitalParameters.eccentricity = eccentricity;
orbitalParameters.ArgumentOfPeriapsis = argumentOfPeriapsis; orbitalParameters.argumentOfPeriapsis = argumentOfPeriapsis;
// If primary gravity is linear and the orbit is eccentric its not even an ellipse so theres no true anomaly // If primary gravity is linear and the orbit is eccentric its not even an ellipse so theres no true anomaly
if (primaryGravity.Power == 1 && eccentricity != 0) if (primaryGravity.Power == 1 && eccentricity != 0)
@ -31,7 +31,7 @@ namespace NewHorizons.Components.Orbital
trueAnomaly = 0; trueAnomaly = 0;
} }
orbitalParameters.TrueAnomaly = trueAnomaly; orbitalParameters.trueAnomaly = trueAnomaly;
// Have to calculate the rest // Have to calculate the rest
@ -110,7 +110,7 @@ namespace NewHorizons.Components.Orbital
public OrbitalParameters GetOrbitalParameters(Gravity primaryGravity, Gravity secondaryGravity) public OrbitalParameters GetOrbitalParameters(Gravity primaryGravity, Gravity secondaryGravity)
{ {
return FromTrueAnomaly(primaryGravity, secondaryGravity, Eccentricity, SemiMajorAxis, Inclination, ArgumentOfPeriapsis, LongitudeOfAscendingNode, TrueAnomaly); return FromTrueAnomaly(primaryGravity, secondaryGravity, eccentricity, semiMajorAxis, inclination, argumentOfPeriapsis, longitudeOfAscendingNode, trueAnomaly);
} }
} }
} }

View File

@ -79,7 +79,7 @@ namespace NewHorizons.Components
// Figure out what the new orbit will be if we switch // Figure out what the new orbit will be if we switch
var newOrbit = newState.orbit ?? groundState.orbit; var newOrbit = newState.orbit ?? groundState.orbit;
newOrbit.TrueAnomaly = Random.Range(0f, 360f); newOrbit.trueAnomaly = Random.Range(0f, 360f);
primaryBody = AstroObjectLocator.GetAstroObject(newOrbit.PrimaryBody); primaryBody = AstroObjectLocator.GetAstroObject(newOrbit.PrimaryBody);
var primaryGravity = new Gravity(primaryBody.GetGravityVolume()); var primaryGravity = new Gravity(primaryBody.GetGravityVolume());
@ -131,7 +131,7 @@ namespace NewHorizons.Components
_detector._activeVolumes = new List<EffectVolume>() { primaryBody.GetGravityVolume() }; _detector._activeVolumes = new List<EffectVolume>() { primaryBody.GetGravityVolume() };
if (_alignment != null) _alignment.SetTargetBody(primaryBody.GetComponent<OWRigidbody>()); if (_alignment != null) _alignment.SetTargetBody(primaryBody.GetComponent<OWRigidbody>());
_astroObject.SetOrbitalParametersFromTrueAnomaly(orbitalParameters.Eccentricity, orbitalParameters.SemiMajorAxis, orbitalParameters.Inclination, orbitalParameters.ArgumentOfPeriapsis, orbitalParameters.LongitudeOfAscendingNode, orbitalParameters.TrueAnomaly); _astroObject.SetOrbitalParametersFromTrueAnomaly(orbitalParameters.eccentricity, orbitalParameters.semiMajorAxis, orbitalParameters.inclination, orbitalParameters.argumentOfPeriapsis, orbitalParameters.longitudeOfAscendingNode, orbitalParameters.trueAnomaly);
PlanetCreationHandler.UpdatePosition(gameObject, orbitalParameters, primaryBody, _astroObject); PlanetCreationHandler.UpdatePosition(gameObject, orbitalParameters, primaryBody, _astroObject);

View File

@ -66,40 +66,40 @@ namespace NewHorizons.External.Modules
/// <summary> /// <summary>
/// The semi-major axis of the ellipse that is the body's orbit. For a circular orbit this is the radius. /// The semi-major axis of the ellipse that is the body's orbit. For a circular orbit this is the radius.
/// </summary> /// </summary>
public float SemiMajorAxis { get; set; } public float semiMajorAxis { get; set; }
/// <summary> /// <summary>
/// The angle (in degrees) between the body's orbit and the plane of the star system /// The angle (in degrees) between the body's orbit and the plane of the star system
/// </summary> /// </summary>
public float Inclination { get; set; } public float inclination { get; set; }
/// <summary> /// <summary>
/// An angle (in degrees) defining the point where the orbit of the body rises above the orbital plane if it has /// An angle (in degrees) defining the point where the orbit of the body rises above the orbital plane if it has
/// nonzero inclination. /// nonzero inclination.
/// </summary> /// </summary>
public float LongitudeOfAscendingNode { get; set; } public float longitudeOfAscendingNode { get; set; }
/// <summary> /// <summary>
/// At 0 the orbit is a circle. The closer to 1 it is, the more oval-shaped the orbit is. /// At 0 the orbit is a circle. The closer to 1 it is, the more oval-shaped the orbit is.
/// </summary> /// </summary>
// FIXME: Needs Min & Max! // FIXME: Needs Min & Max!
public float Eccentricity { get; set; } public float eccentricity { get; set; }
/// <summary> /// <summary>
/// An angle (in degrees) defining the location of the periapsis (the closest distance to it's primary body) if it has /// An angle (in degrees) defining the location of the periapsis (the closest distance to it's primary body) if it has
/// nonzero eccentricity. /// nonzero eccentricity.
/// </summary> /// </summary>
public float ArgumentOfPeriapsis { get; set; } public float argumentOfPeriapsis { get; set; }
/// <summary> /// <summary>
/// Where the planet should start off in its orbit in terms of the central angle. /// Where the planet should start off in its orbit in terms of the central angle.
/// </summary> /// </summary>
public float TrueAnomaly { get; set; } public float trueAnomaly { get; set; }
public OrbitalParameters GetOrbitalParameters(Gravity primaryGravity, Gravity secondaryGravity) public OrbitalParameters GetOrbitalParameters(Gravity primaryGravity, Gravity secondaryGravity)
{ {
return OrbitalParameters.FromTrueAnomaly(primaryGravity, secondaryGravity, Eccentricity, SemiMajorAxis, return OrbitalParameters.FromTrueAnomaly(primaryGravity, secondaryGravity, eccentricity, semiMajorAxis,
Inclination, ArgumentOfPeriapsis, LongitudeOfAscendingNode, TrueAnomaly); inclination, argumentOfPeriapsis, longitudeOfAscendingNode, trueAnomaly);
} }
} }
} }

View File

@ -187,7 +187,7 @@ namespace NewHorizons.Handlers
if (sector.transform.childCount == 0) sector = quantumPlanet.groundState.sector; if (sector.transform.childCount == 0) sector = quantumPlanet.groundState.sector;
// If semimajor axis is 0 then forget the orbit // If semimajor axis is 0 then forget the orbit
var orbit = body.Config.Orbit.SemiMajorAxis == 0 ? quantumPlanet.groundState.orbit : body.Config.Orbit; var orbit = body.Config.Orbit.semiMajorAxis == 0 ? quantumPlanet.groundState.orbit : body.Config.Orbit;
quantumPlanet.states.Add(new QuantumPlanet.State(sector, orbit)); quantumPlanet.states.Add(new QuantumPlanet.State(sector, orbit));
} }
@ -243,7 +243,7 @@ namespace NewHorizons.Handlers
var rb = go.GetAttachedOWRigidbody(); var rb = go.GetAttachedOWRigidbody();
// Since orbits are always there just check if they set a semi major axis // Since orbits are always there just check if they set a semi major axis
if (body.Config.Orbit != null && body.Config.Orbit.SemiMajorAxis != 0f) if (body.Config.Orbit != null && body.Config.Orbit.semiMajorAxis != 0f)
{ {
UpdateBodyOrbit(body, go); UpdateBodyOrbit(body, go);
} }