mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
Get Binaries working
This commit is contained in:
parent
7ec0fc1dc5
commit
deb0646bec
@ -33,7 +33,7 @@ namespace NewHorizons.Builder.General
|
|||||||
var orbit = OrbitalHelper.KeplerCoordinatesFromOrbitModule(config.Orbit);
|
var orbit = OrbitalHelper.KeplerCoordinatesFromOrbitModule(config.Orbit);
|
||||||
|
|
||||||
var hb = GetBody(config.Name);
|
var hb = GetBody(config.Name);
|
||||||
if (hb == null) hb = AddHeavenlyBody(config.Name);
|
if (hb == null) hb = AddHeavenlyBody(config.Name, config.FocalPoint != null);
|
||||||
|
|
||||||
Planet.Plantoid planetoid;
|
Planet.Plantoid planetoid;
|
||||||
|
|
||||||
@ -42,7 +42,6 @@ namespace NewHorizons.Builder.General
|
|||||||
|
|
||||||
var mapping = Planet.defaultMapping;
|
var mapping = Planet.defaultMapping;
|
||||||
mapping[hb] = planetoid;
|
mapping[hb] = planetoid;
|
||||||
Planet.defaultMapping = mapping;
|
|
||||||
|
|
||||||
// Fix for binary focal points
|
// Fix for binary focal points
|
||||||
if(parent != HeavenlyBody.None)
|
if(parent != HeavenlyBody.None)
|
||||||
@ -76,12 +75,6 @@ namespace NewHorizons.Builder.General
|
|||||||
|
|
||||||
if (primaryGravity != null && secondaryGravity != null)
|
if (primaryGravity != null && secondaryGravity != null)
|
||||||
{
|
{
|
||||||
Logger.Log($"Fixing BinaryFocalPoint HeavenlyBody gravity value for {parent}");
|
|
||||||
|
|
||||||
var exponent = (primaryGravity.exponent + secondaryGravity.exponent) / 2f;
|
|
||||||
var mass = (primaryGravity.mass + secondaryGravity.mass) / 4f;
|
|
||||||
|
|
||||||
mapping[parent] = new Planet.Plantoid(mapping[parent].size, Gravity.of(exponent, mass), mapping[parent].state);
|
|
||||||
|
|
||||||
// Also have to fix the children
|
// Also have to fix the children
|
||||||
var primaryHB = GetBody(focalPoint.PrimaryName);
|
var primaryHB = GetBody(focalPoint.PrimaryName);
|
||||||
@ -108,6 +101,7 @@ namespace NewHorizons.Builder.General
|
|||||||
|
|
||||||
var totalMass = m1 + m2;
|
var totalMass = m1 + m2;
|
||||||
|
|
||||||
|
var exponent = (primaryGravity.exponent + secondaryGravity.exponent) / 2f;
|
||||||
var primaryCartesianState = OrbitHelper.toCartesian(Gravity.of(exponent, totalMass), 0, primaryKeplerCoordinates);
|
var primaryCartesianState = OrbitHelper.toCartesian(Gravity.of(exponent, totalMass), 0, primaryKeplerCoordinates);
|
||||||
var secondaryCartesianState = OrbitHelper.toCartesian(Gravity.of(exponent, totalMass), 0, secondaryKeplerCoordinates);
|
var secondaryCartesianState = OrbitHelper.toCartesian(Gravity.of(exponent, totalMass), 0, secondaryKeplerCoordinates);
|
||||||
|
|
||||||
@ -152,8 +146,6 @@ namespace NewHorizons.Builder.General
|
|||||||
parent,
|
parent,
|
||||||
secondaryKeplerCoordinates);
|
secondaryKeplerCoordinates);
|
||||||
|
|
||||||
Planet.defaultMapping = mapping;
|
|
||||||
|
|
||||||
var period = 2 * Mathf.PI * Mathf.Sqrt(Mathf.Pow(r.magnitude, exponent + 1) / (GravityVolume.GRAVITATIONAL_CONSTANT * totalMass));
|
var period = 2 * Mathf.PI * Mathf.Sqrt(Mathf.Pow(r.magnitude, exponent + 1) / (GravityVolume.GRAVITATIONAL_CONSTANT * totalMass));
|
||||||
|
|
||||||
var trackingOrbitPrimary = primary.GetComponentInChildren<TrackingOrbitLine>();
|
var trackingOrbitPrimary = primary.GetComponentInChildren<TrackingOrbitLine>();
|
||||||
@ -167,9 +159,16 @@ namespace NewHorizons.Builder.General
|
|||||||
{
|
{
|
||||||
trackingOrbitSecondary.TrailTime = period;
|
trackingOrbitSecondary.TrailTime = period;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Helper.helper.Console.WriteLine($"{parent}: {mapping[parent]}");
|
||||||
|
Helper.helper.Console.WriteLine($"{primaryHB}: {mapping[primaryHB]}");
|
||||||
|
Helper.helper.Console.WriteLine($"{secondaryHB}: {mapping[secondaryHB]}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Planet.defaultMapping = mapping;
|
||||||
|
Planet.mapping = mapping;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Remove(AstroObject obj)
|
public static void Remove(AstroObject obj)
|
||||||
@ -179,6 +178,10 @@ namespace NewHorizons.Builder.General
|
|||||||
var mapping = Planet.defaultMapping;
|
var mapping = Planet.defaultMapping;
|
||||||
mapping.Remove(astro);
|
mapping.Remove(astro);
|
||||||
Planet.defaultMapping = mapping;
|
Planet.defaultMapping = mapping;
|
||||||
|
|
||||||
|
mapping = Planet.mapping;
|
||||||
|
mapping.Remove(astro);
|
||||||
|
Planet.mapping = mapping;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Gravity GetGravity(GravityVolume volume)
|
private static Gravity GetGravity(GravityVolume volume)
|
||||||
@ -194,9 +197,9 @@ namespace NewHorizons.Builder.General
|
|||||||
return Gravity.of(exponent, mass);
|
return Gravity.of(exponent, mass);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static HeavenlyBody AddHeavenlyBody(string name)
|
private static HeavenlyBody AddHeavenlyBody(string name, bool isFocalPoint)
|
||||||
{
|
{
|
||||||
var hb = new HeavenlyBody(name);
|
var hb = new HeavenlyBody(name, isFocalPoint);
|
||||||
_bodyMap.Add(name, hb);
|
_bodyMap.Add(name, hb);
|
||||||
|
|
||||||
var astroLookup = Position.AstroLookup;
|
var astroLookup = Position.AstroLookup;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user