mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
Fix water inside of cloaking fields
This commit is contained in:
parent
95af39497c
commit
13c2b8badc
@ -5,6 +5,9 @@ using NewHorizons.External.Modules.VariableSize;
|
|||||||
using Tessellation;
|
using Tessellation;
|
||||||
using NewHorizons.Utility.OWML;
|
using NewHorizons.Utility.OWML;
|
||||||
using NewHorizons.Utility.OuterWilds;
|
using NewHorizons.Utility.OuterWilds;
|
||||||
|
using NewHorizons.External.Configs;
|
||||||
|
using NewHorizons.Components.Volumes;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
namespace NewHorizons.Builder.Body
|
namespace NewHorizons.Builder.Body
|
||||||
{
|
{
|
||||||
@ -41,10 +44,12 @@ namespace NewHorizons.Builder.Body
|
|||||||
if (_oceanAmbientLight == null) _oceanAmbientLight = SearchUtilities.Find("Ocean_GD").GetComponent<OceanLODController>()._ambientLight.gameObject.InstantiateInactive().Rename("OceanAmbientLight").DontDestroyOnLoad();
|
if (_oceanAmbientLight == null) _oceanAmbientLight = SearchUtilities.Find("Ocean_GD").GetComponent<OceanLODController>()._ambientLight.gameObject.InstantiateInactive().Rename("OceanAmbientLight").DontDestroyOnLoad();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static RadialFluidVolume Make(GameObject planetGO, Sector sector, OWRigidbody rb, WaterModule module)
|
public static RadialFluidVolume Make(GameObject planetGO, Sector sector, OWRigidbody rb, PlanetConfig config)
|
||||||
{
|
{
|
||||||
InitPrefabs();
|
InitPrefabs();
|
||||||
|
|
||||||
|
var module = config.Water;
|
||||||
|
|
||||||
var waterSize = module.size;
|
var waterSize = module.size;
|
||||||
|
|
||||||
GameObject waterGO = new GameObject("Water");
|
GameObject waterGO = new GameObject("Water");
|
||||||
@ -154,6 +159,11 @@ namespace NewHorizons.Builder.Body
|
|||||||
fogGO.GetComponent<MeshRenderer>().material.SetFloat("_Radius2", 0);
|
fogGO.GetComponent<MeshRenderer>().material.SetFloat("_Radius2", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (config.Cloak != null)
|
||||||
|
{
|
||||||
|
fluidVolume.gameObject.AddComponent<WaterCloakFixerVolume>().material = TSR.sharedMaterials.First(x => x.name == "Ocean_GD_Surface_mat");
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: fix ruleset making the sand bubble pop up
|
// TODO: fix ruleset making the sand bubble pop up
|
||||||
|
|
||||||
waterGO.transform.position = planetGO.transform.position;
|
waterGO.transform.position = planetGO.transform.position;
|
||||||
|
|||||||
42
NewHorizons/Components/Volumes/WaterCloakFixerVolume.cs
Normal file
42
NewHorizons/Components/Volumes/WaterCloakFixerVolume.cs
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace NewHorizons.Components.Volumes
|
||||||
|
{
|
||||||
|
internal class WaterCloakFixerVolume : MonoBehaviour
|
||||||
|
{
|
||||||
|
public Material material;
|
||||||
|
private OWTriggerVolume _volume;
|
||||||
|
|
||||||
|
public void Start()
|
||||||
|
{
|
||||||
|
_volume = GetComponent<RadialFluidVolume>().GetOWTriggerVolume();
|
||||||
|
|
||||||
|
_volume.OnEntry += WaterCloakFixerVolume_OnEntry;
|
||||||
|
_volume.OnExit += WaterCloakFixerVolume_OnExit;
|
||||||
|
|
||||||
|
material.renderQueue = 3000;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnDestroy()
|
||||||
|
{
|
||||||
|
_volume.OnEntry -= WaterCloakFixerVolume_OnEntry;
|
||||||
|
_volume.OnExit -= WaterCloakFixerVolume_OnExit;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void WaterCloakFixerVolume_OnEntry(GameObject hitObj)
|
||||||
|
{
|
||||||
|
if (hitObj.CompareTag("PlayerDetector"))
|
||||||
|
{
|
||||||
|
material.renderQueue = 2990;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void WaterCloakFixerVolume_OnExit(GameObject hitObj)
|
||||||
|
{
|
||||||
|
if (hitObj.CompareTag("PlayerDetector"))
|
||||||
|
{
|
||||||
|
material.renderQueue = 3000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -627,7 +627,7 @@ namespace NewHorizons.Handlers
|
|||||||
|
|
||||||
if (body.Config.Water != null)
|
if (body.Config.Water != null)
|
||||||
{
|
{
|
||||||
WaterBuilder.Make(go, sector, rb, body.Config.Water);
|
WaterBuilder.Make(go, sector, rb, body.Config);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (body.Config.Sand != null)
|
if (body.Config.Sand != null)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user