Merge branch 'master' into common-resources

This commit is contained in:
Nick J. Connors 2021-12-30 18:58:11 -05:00
commit 5999e62927
5 changed files with 32 additions and 17 deletions

View File

@ -49,10 +49,15 @@ namespace NewHorizons.Builder.General
if (config.Orbit.IsTidallyLocked)
{
var alignment = body.AddComponent<AlignWithTargetBody>();
alignment.SetTargetBody(primaryBody.GetAttachedOWRigidbody());
alignment.SetTargetBody(primaryBody?.GetAttachedOWRigidbody());
alignment.SetValue("_usePhysicsToRotate", true);
}
if(config.Base.CenterOfSolarSystem)
{
Main.Instance.ModHelper.Events.Unity.FireInNUpdates(() => Locator.GetCenterOfTheUniverse()._staticReferenceFrame = owRigidBody, 2);
}
return new Tuple<AstroObject, OWRigidbody>(astroObject, owRigidBody);
}
}

View File

@ -25,7 +25,7 @@ namespace NewHorizons.Builder.General
forceDetector.SetValue("_inheritElement0", inherit);
OWRB.RegisterAttachedForceDetector(forceDetector);
GravityVolume parentGravityVolume = primaryBody.GetAttachedOWRigidbody().GetAttachedGravityVolume();
GravityVolume parentGravityVolume = primaryBody?.GetAttachedOWRigidbody()?.GetAttachedGravityVolume();
if (parentGravityVolume != null)
{
forceDetector.SetValue("_detectableFields", new ForceVolume[] { parentGravityVolume });
@ -33,7 +33,7 @@ namespace NewHorizons.Builder.General
else if (astroObject != null)
{
// It's probably a focal point (or its just broken)
var binaryFocalPoint = primaryBody.gameObject.GetComponent<BinaryFocalPoint>();
var binaryFocalPoint = primaryBody?.gameObject?.GetComponent<BinaryFocalPoint>();
if(binaryFocalPoint != null)
{
if(astroObject.GetCustomName().Equals(binaryFocalPoint.PrimaryName)) {

View File

@ -20,5 +20,6 @@ namespace NewHorizons.External
public float LavaSize { get; set; }
public bool HasCometTail { get; set; }
public bool HasReferenceFrame { get; set; } = true;
public bool CenterOfSolarSystem { get; set; } = false;
}
}

View File

@ -12,5 +12,7 @@ namespace NewHorizons.External
public float Size { get; set; }
public MColor32 Tint { get; set; }
public MColor32 SolarFlareTint { get; set; }
public MColor32 LightTint { get; set; }
public float SolarLuminosity { get; set; }
}
}

View File

@ -218,23 +218,29 @@ namespace NewHorizons
public static GameObject GenerateBody(NewHorizonsBody body, bool defaultPrimaryToSun = false)
{
//body.Config.Orbit.LongitudeOfAscendingNode = 0;
//body.Config.Orbit.ArgumentOfPeriapsis = 0;
AstroObject primaryBody = AstroObjectLocator.GetAstroObject(body.Config.Orbit.PrimaryBody);
if (primaryBody == null)
AstroObject primaryBody;
if(body.Config.Orbit.PrimaryBody != null)
{
if(defaultPrimaryToSun)
primaryBody = AstroObjectLocator.GetAstroObject(body.Config.Orbit.PrimaryBody);
if (primaryBody == null)
{
Logger.Log($"Couldn't find {body.Config.Orbit.PrimaryBody}, defaulting to Sun");
primaryBody = AstroObjectLocator.GetAstroObject("Sun");
}
else
{
NextPassBodies.Add(body);
return null;
if (defaultPrimaryToSun)
{
Logger.Log($"Couldn't find {body.Config.Orbit.PrimaryBody}, defaulting to Sun");
primaryBody = AstroObjectLocator.GetAstroObject("Sun");
}
else
{
NextPassBodies.Add(body);
return null;
}
}
}
else
{
primaryBody = null;
}
Logger.Log($"Begin generation sequence of [{body.Config.Name}]");
@ -290,7 +296,8 @@ namespace NewHorizons
// Now that we're done move the planet into place
go.transform.parent = Locator.GetRootTransform();
go.transform.position = OrbitalHelper.GetCartesian(new OrbitalHelper.Gravity(1, 100), body.Config.Orbit).Item1 + primaryBody.transform.position;
go.transform.position = OrbitalHelper.GetCartesian(new OrbitalHelper.Gravity(1, 100), body.Config.Orbit).Item1 + (primaryBody == null ? Vector3.zero : primaryBody.transform.position);
if (go.transform.position.magnitude > FurthestOrbit)
{