Make map-mode/altimeter not work when its a satellite

This commit is contained in:
Nick J. Connors 2022-02-13 21:25:52 -05:00
parent 5033173b66
commit ec3d2ed1b9
2 changed files with 23 additions and 22 deletions

View File

@ -7,7 +7,7 @@ namespace NewHorizons.Atmosphere
{
static class VolumesBuilder
{
public static void Make(GameObject body, float innerRadius, float outerRadius)
public static void Make(GameObject body, float innerRadius, float outerRadius, IPlanetConfig config)
{
GameObject volumesGO = new GameObject("Volumes");
volumesGO.SetActive(false);
@ -24,17 +24,18 @@ namespace NewHorizons.Atmosphere
SS.pointChecksOnly = true;
SS.radius = outerRadius;
/*OWTriggerVolume trigvol = */
rulesetGO.AddComponent<OWTriggerVolume>();
PlanetoidRuleset PR = rulesetGO.AddComponent<PlanetoidRuleset>();
PR.SetValue("_altitudeFloor", innerRadius);
PR.SetValue("_altitudeCeiling", outerRadius);
PR._altitudeFloor = innerRadius;
PR._altitudeCeiling = outerRadius;
PR._useMinimap = !config.Base.IsSatellite;
PR._useAltimeter = !config.Base.IsSatellite;
EffectRuleset ER = rulesetGO.AddComponent<EffectRuleset>();
ER.SetValue("_type", EffectRuleset.BubbleType.Underwater);
ER.SetValue("_material", GameObject.Find("RulesetVolumes_GD").GetComponent<RulesetVolume>().GetValue<Material>("_material"));
ER.SetValue("_cloudMaterial", GameObject.Find("RulesetVolumes_GD").GetComponent<RulesetVolume>().GetValue<Material>("_cloudMaterial"));
ER._type = EffectRuleset.BubbleType.Underwater;
ER._material = GameObject.Find("RulesetVolumes_GD").GetComponent<RulesetVolume>().GetValue<Material>("_material");
ER._cloudMaterial = GameObject.Find("RulesetVolumes_GD").GetComponent<RulesetVolume>().GetValue<Material>("_cloudMaterial");
volumesGO.transform.localPosition = Vector3.zero;
rulesetGO.SetActive(true);

View File

@ -22,22 +22,22 @@ namespace NewHorizons.Builder.General
ReferenceFrameVolume RFV = rfGO.AddComponent<ReferenceFrameVolume>();
ReferenceFrame RV = new ReferenceFrame(rigidbody);
RV.SetValue("_minSuitTargetDistance", sphereOfInfluence);
RV.SetValue("_maxTargetDistance", 0);
RV.SetValue("_autopilotArrivalDistance", sphereOfInfluence * 2f);
RV.SetValue("_autoAlignmentDistance", sphereOfInfluence * 1.5f);
RV._minSuitTargetDistance = sphereOfInfluence;
RV._maxTargetDistance = 0;
RV._autopilotArrivalDistance = 2.0f * sphereOfInfluence;
RV._autoAlignmentDistance = sphereOfInfluence * 1.5f;
RV._hideLandingModePrompt = false;
RV._matchAngularVelocity = true;
RV._minMatchAngularVelocityDistance = 70;
RV._maxMatchAngularVelocityDistance = 400;
RV._bracketsRadius = sphereOfInfluence;
RV.SetValue("_hideLandingModePrompt", false);
RV.SetValue("_matchAngularVelocity", true);
RV.SetValue("_minMatchAngularVelocityDistance", 70);
RV.SetValue("_maxMatchAngularVelocityDistance", 400);
RV.SetValue("_bracketsRadius", sphereOfInfluence);
RFV.SetValue("_referenceFrame", RV);
RFV.SetValue("_minColliderRadius", sphereOfInfluence);
RFV.SetValue("_maxColliderRadius", sphereOfInfluence * 2f);
RFV.SetValue("_isPrimaryVolume", true);
RFV.SetValue("_isCloseRangeVolume", false);
RFV._referenceFrame = RV;
RFV._minColliderRadius = sphereOfInfluence;
RFV._maxColliderRadius = sphereOfInfluence * 2f;
RFV._isPrimaryVolume = true;
RFV._isCloseRangeVolume = false;
rfGO.SetActive(true);
}