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) if (config.Orbit.IsTidallyLocked)
{ {
var alignment = body.AddComponent<AlignWithTargetBody>(); var alignment = body.AddComponent<AlignWithTargetBody>();
alignment.SetTargetBody(primaryBody.GetAttachedOWRigidbody()); alignment.SetTargetBody(primaryBody?.GetAttachedOWRigidbody());
alignment.SetValue("_usePhysicsToRotate", true); 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); return new Tuple<AstroObject, OWRigidbody>(astroObject, owRigidBody);
} }
} }

View File

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

View File

@ -20,5 +20,6 @@ namespace NewHorizons.External
public float LavaSize { get; set; } public float LavaSize { get; set; }
public bool HasCometTail { get; set; } public bool HasCometTail { get; set; }
public bool HasReferenceFrame { get; set; } = true; 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 float Size { get; set; }
public MColor32 Tint { get; set; } public MColor32 Tint { get; set; }
public MColor32 SolarFlareTint { get; set; } public MColor32 SolarFlareTint { get; set; }
public MColor32 LightTint { get; set; }
public float SolarLuminosity { get; set; }
} }
} }

View File

@ -218,13 +218,13 @@ namespace NewHorizons
public static GameObject GenerateBody(NewHorizonsBody body, bool defaultPrimaryToSun = false) public static GameObject GenerateBody(NewHorizonsBody body, bool defaultPrimaryToSun = false)
{ {
//body.Config.Orbit.LongitudeOfAscendingNode = 0; AstroObject primaryBody;
//body.Config.Orbit.ArgumentOfPeriapsis = 0; if(body.Config.Orbit.PrimaryBody != null)
{
AstroObject primaryBody = AstroObjectLocator.GetAstroObject(body.Config.Orbit.PrimaryBody); primaryBody = AstroObjectLocator.GetAstroObject(body.Config.Orbit.PrimaryBody);
if (primaryBody == null) if (primaryBody == null)
{ {
if(defaultPrimaryToSun) if (defaultPrimaryToSun)
{ {
Logger.Log($"Couldn't find {body.Config.Orbit.PrimaryBody}, defaulting to Sun"); Logger.Log($"Couldn't find {body.Config.Orbit.PrimaryBody}, defaulting to Sun");
primaryBody = AstroObjectLocator.GetAstroObject("Sun"); primaryBody = AstroObjectLocator.GetAstroObject("Sun");
@ -235,6 +235,12 @@ namespace NewHorizons
return null; return null;
} }
} }
}
else
{
primaryBody = null;
}
Logger.Log($"Begin generation sequence of [{body.Config.Name}]"); 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 // Now that we're done move the planet into place
go.transform.parent = Locator.GetRootTransform(); 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) if (go.transform.position.magnitude > FurthestOrbit)
{ {