using Marshmallow.External; using OWML.ModHelper.Events; using UnityEngine; namespace Marshmallow.Body { static class MakeWater { public static void Make(GameObject body, Sector sector, IPlanetConfig config) { GameObject waterGO = new GameObject(); waterGO.SetActive(false); waterGO.layer = 15; waterGO.transform.parent = body.transform; waterGO.transform.localScale = new Vector3(config.WaterSize / 2, config.WaterSize / 2, config.WaterSize / 2); waterGO.DestroyAllComponents(); TessellatedSphereRenderer TSR = waterGO.AddComponent(); TSR.tessellationMeshGroup = GameObject.Find("Ocean_GD").GetComponent().tessellationMeshGroup; TSR.sharedMaterials = GameObject.Find("Ocean_GD").GetComponent().sharedMaterials; TSR.maxLOD = 7; TSR.LODBias = 2; TSR.LODRadius = 2f; TessSphereSectorToggle TSST = waterGO.AddComponent(); TSST.SetValue("_sector", sector); OceanEffectController OEC = waterGO.AddComponent(); OEC.SetValue("_sector", sector); OEC.SetValue("_ocean", TSR); // Because assetbundles were a bitch... /* GameObject fog1 = new GameObject(); fog1.transform.parent = waterBase.transform; fog1.transform.localScale = new Vector3(1, 1, 1); fog1.AddComponent().mesh = GameObject.Find("CloudsTopLayer_GD").GetComponent().mesh; fog1.AddComponent().material = new Material(Shader.Find("Sprites/Default")); fog1.GetComponent().material.color = new Color32(0, 75, 50, 5); GameObject fog2 = new GameObject(); fog2.transform.parent = waterBase.transform; fog2.transform.localScale = new Vector3(1.001f, 1.001f, 1.001f); fog2.AddComponent().mesh = GameObject.Find("CloudsTopLayer_GD").GetComponent().mesh; fog2.AddComponent().material = new Material(Shader.Find("Sprites/Default")); fog2.GetComponent().material.color = new Color32(0, 75, 50, 5); GameObject fog3 = new GameObject(); fog3.transform.parent = fog2.transform; fog3.transform.localScale = new Vector3(1.001f, 1.001f, 1.001f); fog3.AddComponent().mesh = GameObject.Find("CloudsTopLayer_GD").GetComponent().mesh; fog3.AddComponent().material = new Material(Shader.Find("Sprites/Default")); fog3.GetComponent().material.color = new Color32(0, 75, 50, 5); */ waterGO.SetActive(true); //Logger.Log("Water - waterScale : " + waterScale); } } }