Configured to work with Common

This commit is contained in:
JoJo 2021-12-29 12:57:52 -08:00
parent 232b476b77
commit 2ac52a449b
6 changed files with 46 additions and 11 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -15,22 +15,57 @@ namespace NewHorizons.Builder.General
{
public static class HeavenlyBodyBuilder
{
private static Dictionary<string, HeavenlyBody> bodyName = new Dictionary<string, HeavenlyBody>();
public static void Make(GameObject body, IPlanetConfig config, float SOI, GravityVolume bodyGravity, InitialMotion initialMotion, AstroObject ao)
{
var size = new Position.Size(config.Base.SurfaceSize, SOI);
var G = GravityVolume.GRAVITATIONAL_CONSTANT;
var gravity = new Gravity(G, bodyGravity == null ? 0 : bodyGravity.GetFalloffExponent(), bodyGravity == null ? 0 : bodyGravity.GetStandardGravitationalParameter() / G);
var parent = HeavenlyBody.FromString(config.Orbit.PrimaryBody);
var gravity = Gravity.of(bodyGravity == null ? 2f : bodyGravity.GetFalloffExponent(), bodyGravity == null ? 0 : bodyGravity.GetStandardGravitationalParameter() / G);
var parent = getBody(config.Orbit.PrimaryBody);
var orbit = OrbitalHelper.KeplerCoordinatesFromOrbitModule(config.Orbit);
var hb = new HeavenlyBody(config.Name);
var hb = getBody(config.Name);
if (hb == null)
{
hb = addHeavenlyBody(config.Name);
}
var planetoid = new Planet.Plantoid(size, gravity, body.transform.rotation, initialMotion._initAngularSpeed, parent, orbit);
Planet.mapping.Add(hb, planetoid);
Planet.defaultMapping.Add(hb, planetoid);
var mapping = Planet.defaultMapping;
mapping[hb] = planetoid;
Planet.defaultMapping = mapping;
}
Position.AstroLookup.Add(hb, () => ao);
Position.BodyLookup.Add(hb, () => ao?.GetAttachedOWRigidbody());
private static HeavenlyBody addHeavenlyBody(string name)
{
var hb = new HeavenlyBody(name);
bodyName.Add(name, hb);
var astroLookup = Position.AstroLookup;
astroLookup.Add(hb, () => AstroObjectLocator.GetAstroObject(name));
Position.AstroLookup = astroLookup;
var bodyLookup = Position.BodyLookup;
bodyLookup.Add(hb, () => AstroObjectLocator.GetAstroObject(name)?.GetAttachedOWRigidbody());
Position.BodyLookup = bodyLookup;
return hb;
}
private static HeavenlyBody getBody(string name)
{
if (bodyName.ContainsKey(name))
{
return bodyName[name];
}
var hb = Position.find(AstroObjectLocator.GetAstroObject(name));
if (hb != null)
{
bodyName.Add(name, hb);
}
return hb;
}
}
}

View File

@ -24,8 +24,8 @@ namespace NewHorizons.Builder.Orbital
var ecc = config.Orbit.Eccentricity;
OrbitLine orbitLine;
if (ecc == 0) orbitLine = orbitGO.AddComponent<TrackingOrbitLine>();
else if (ecc > 0 && ecc < 1) orbitLine = orbitGO.AddComponent<TrackingOrbitLine>();
if (ecc == 0) orbitLine = orbitGO.AddComponent<OrbitLine>();
else if (ecc > 0 && ecc < 1) orbitLine = orbitGO.AddComponent<EllipticOrbitLine>();
else orbitLine = orbitGO.AddComponent<TrackingOrbitLine>();
var color = Color.white;