mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
Submerge dark matter (#504)
## Improvements - Ghost matter from detail props and from HazardVolumes now should be deactivated when going underwater.
This commit is contained in:
commit
d6479df127
@ -39,7 +39,7 @@ namespace NewHorizons.Builder.Body
|
||||
if (_oceanAmbientLight == null) _oceanAmbientLight = SearchUtilities.Find("Ocean_GD").GetComponent<OceanLODController>()._ambientLight.gameObject.InstantiateInactive().Rename("OceanAmbientLight").DontDestroyOnLoad();
|
||||
}
|
||||
|
||||
public static void Make(GameObject planetGO, Sector sector, OWRigidbody rb, WaterModule module)
|
||||
public static RadialFluidVolume Make(GameObject planetGO, Sector sector, OWRigidbody rb, WaterModule module)
|
||||
{
|
||||
InitPrefabs();
|
||||
|
||||
@ -148,6 +148,8 @@ namespace NewHorizons.Builder.Body
|
||||
|
||||
waterGO.transform.position = planetGO.transform.position;
|
||||
waterGO.SetActive(true);
|
||||
|
||||
return fluidVolume;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -312,6 +312,12 @@ namespace NewHorizons.Builder.Props
|
||||
if (probeVisuals != null) probeVisuals.gameObject.SetActive(true);
|
||||
}
|
||||
|
||||
if (component is DarkMatterSubmergeController submergeController)
|
||||
{
|
||||
var water = planetGO.GetComponentsInChildren<RadialFluidVolume>().FirstOrDefault(x => x._fluidType == FluidVolume.Type.WATER);
|
||||
submergeController._fluidDetector?.SetDetectableFluid(water);
|
||||
}
|
||||
|
||||
// Fix anglerfish speed on orbiting planets
|
||||
if (component is AnglerfishController angler)
|
||||
{
|
||||
|
||||
@ -62,6 +62,24 @@ namespace NewHorizons.Builder.Volumes
|
||||
var visorFrostEffectVolume = go.AddComponent<VisorFrostEffectVolume>();
|
||||
visorFrostEffectVolume._frostRate = 0.5f;
|
||||
visorFrostEffectVolume._maxFrost = 0.91f;
|
||||
|
||||
var water = planetGO.GetComponentsInChildren<RadialFluidVolume>().FirstOrDefault(x => x._fluidType == FluidVolume.Type.WATER);
|
||||
if (water != null)
|
||||
{
|
||||
var submerge = go.AddComponent<DarkMatterSubmergeController>();
|
||||
submerge._activeWhenSubmerged = false;
|
||||
submerge._effectVolumes = new EffectVolume[] { hazardVolume, visorFrostEffectVolume };
|
||||
// THERE ARE NO RENDERERS??? RUH ROH!!!
|
||||
|
||||
var detectorGO = new GameObject("ConstantFluidDetector");
|
||||
detectorGO.transform.parent = go.transform;
|
||||
detectorGO.transform.localPosition = Vector3.zero;
|
||||
detectorGO.layer = LayerMask.NameToLayer("BasicDetector");
|
||||
var detector = detectorGO.AddComponent<ConstantFluidDetector>();
|
||||
detector.SetDetectableFluid(water);
|
||||
|
||||
submerge._fluidDetector = detector;
|
||||
}
|
||||
}
|
||||
else if (info.type == VolumesModule.HazardVolumeInfo.HazardType.ELECTRICITY)
|
||||
{
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user