From c4b5d615a64c702a3fc2ff60cb83a978539fad67 Mon Sep 17 00:00:00 2001 From: TerrificTrifid <99054745+TerrificTrifid@users.noreply.github.com> Date: Wed, 23 Nov 2022 13:51:28 -0600 Subject: [PATCH 1/3] Fix lava scaling --- NewHorizons/Builder/Body/LavaBuilder.cs | 30 +++++++++---------- .../SizeControllers/LavaSizeController.cs | 25 ++++++++++++++++ 2 files changed, 40 insertions(+), 15 deletions(-) create mode 100644 NewHorizons/Components/SizeControllers/LavaSizeController.cs diff --git a/NewHorizons/Builder/Body/LavaBuilder.cs b/NewHorizons/Builder/Body/LavaBuilder.cs index 7eaab62f..742100ac 100644 --- a/NewHorizons/Builder/Body/LavaBuilder.cs +++ b/NewHorizons/Builder/Body/LavaBuilder.cs @@ -4,14 +4,15 @@ using NewHorizons.Utility; using NewHorizons.External.Modules.VariableSize; using System.Linq; using UnityEngine.Assertions.Must; +using NewHorizons.Components.SizeControllers; namespace NewHorizons.Builder.Body { public static class LavaBuilder { - private static readonly int HeightScale = Shader.PropertyToID("_HeightScale"); - private static readonly int EdgeFade = Shader.PropertyToID("_EdgeFade"); - private static readonly int TexHeight = Shader.PropertyToID("_TexHeight"); + public static readonly int HeightScale = Shader.PropertyToID("_HeightScale"); + public static readonly int EdgeFade = Shader.PropertyToID("_EdgeFade"); + public static readonly int TexHeight = Shader.PropertyToID("_TexHeight"); private static readonly int EmissionColor = Shader.PropertyToID("_EmissionColor"); private static GameObject _lavaSphere; @@ -36,11 +37,6 @@ namespace NewHorizons.Builder.Body InitPrefabs(); var multiplier = module.size / 100f; - if (module.curve != null) - { - var modifier = module.curve.Max(pair => pair.value); - multiplier *= modifier; - } var moltenCore = new GameObject("MoltenCore"); moltenCore.SetActive(false); @@ -83,13 +79,17 @@ namespace NewHorizons.Builder.Body if (module.curve != null) { - var levelController = moltenCore.AddComponent(); - var curve = new AnimationCurve(); - foreach (var pair in module.curve) - { - curve.AddKey(new Keyframe(pair.time, module.size * pair.value)); - } - levelController._scaleCurve = curve; + var sizeController = moltenCore.AddComponent(); + sizeController.SetScaleCurve(module.curve); + sizeController.size = module.size; + sizeController.multiplier = multiplier; + sizeController.material = lavaSphere.GetComponent().material; + + var proxySizeController = moltenCoreProxy.AddComponent(); + proxySizeController.SetScaleCurve(module.curve); + proxySizeController.size = module.size; + proxySizeController.multiplier = multiplier; + proxySizeController.material = lavaSphere.GetComponent().material; } moltenCore.SetActive(true); diff --git a/NewHorizons/Components/SizeControllers/LavaSizeController.cs b/NewHorizons/Components/SizeControllers/LavaSizeController.cs new file mode 100644 index 00000000..d13f2f59 --- /dev/null +++ b/NewHorizons/Components/SizeControllers/LavaSizeController.cs @@ -0,0 +1,25 @@ +using NewHorizons.Builder.Body; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using UnityEngine; + +namespace NewHorizons.Components.SizeControllers +{ + public class LavaSizeController : SizeController + { + public Material material; + public float multiplier; + + protected new void FixedUpdate() + { + base.FixedUpdate(); + + material.SetFloat(LavaBuilder.HeightScale, 150f * multiplier * CurrentScale); + material.SetFloat(LavaBuilder.EdgeFade, 15f * multiplier * CurrentScale); + material.SetFloat(LavaBuilder.TexHeight, 15f * multiplier * CurrentScale); + } + } +} From c0b294b289e90e051081003bee8b18533a068206 Mon Sep 17 00:00:00 2001 From: TerrificTrifid <99054745+TerrificTrifid@users.noreply.github.com> Date: Wed, 23 Nov 2022 14:36:26 -0600 Subject: [PATCH 2/3] Don't local scale proxy --- NewHorizons/Builder/Body/LavaBuilder.cs | 7 +------ .../Components/SizeControllers/LavaSizeController.cs | 5 +++++ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/NewHorizons/Builder/Body/LavaBuilder.cs b/NewHorizons/Builder/Body/LavaBuilder.cs index 742100ac..ea6296a2 100644 --- a/NewHorizons/Builder/Body/LavaBuilder.cs +++ b/NewHorizons/Builder/Body/LavaBuilder.cs @@ -84,12 +84,7 @@ namespace NewHorizons.Builder.Body sizeController.size = module.size; sizeController.multiplier = multiplier; sizeController.material = lavaSphere.GetComponent().material; - - var proxySizeController = moltenCoreProxy.AddComponent(); - proxySizeController.SetScaleCurve(module.curve); - proxySizeController.size = module.size; - proxySizeController.multiplier = multiplier; - proxySizeController.material = lavaSphere.GetComponent().material; + sizeController.proxyMaterial = proxyLavaSphere.GetComponent().material; } moltenCore.SetActive(true); diff --git a/NewHorizons/Components/SizeControllers/LavaSizeController.cs b/NewHorizons/Components/SizeControllers/LavaSizeController.cs index d13f2f59..08bf971a 100644 --- a/NewHorizons/Components/SizeControllers/LavaSizeController.cs +++ b/NewHorizons/Components/SizeControllers/LavaSizeController.cs @@ -11,6 +11,7 @@ namespace NewHorizons.Components.SizeControllers public class LavaSizeController : SizeController { public Material material; + public Material proxyMaterial; public float multiplier; protected new void FixedUpdate() @@ -20,6 +21,10 @@ namespace NewHorizons.Components.SizeControllers material.SetFloat(LavaBuilder.HeightScale, 150f * multiplier * CurrentScale); material.SetFloat(LavaBuilder.EdgeFade, 15f * multiplier * CurrentScale); material.SetFloat(LavaBuilder.TexHeight, 15f * multiplier * CurrentScale); + + proxyMaterial.SetFloat(LavaBuilder.HeightScale, 150f * multiplier * CurrentScale); + proxyMaterial.SetFloat(LavaBuilder.EdgeFade, 15f * multiplier * CurrentScale); + proxyMaterial.SetFloat(LavaBuilder.TexHeight, 15f * multiplier * CurrentScale); } } } From dc7a2df5df4b1386c13a3f9548ee8d7009659031 Mon Sep 17 00:00:00 2001 From: TerrificTrifid <99054745+TerrificTrifid@users.noreply.github.com> Date: Wed, 23 Nov 2022 14:54:57 -0600 Subject: [PATCH 3/3] Use CurrentScale correctly --- NewHorizons/Builder/Body/LavaBuilder.cs | 1 - NewHorizons/Builder/Body/SingularityBuilder.cs | 2 +- .../SizeControllers/LavaSizeController.cs | 13 ++++++------- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/NewHorizons/Builder/Body/LavaBuilder.cs b/NewHorizons/Builder/Body/LavaBuilder.cs index ea6296a2..dd21b635 100644 --- a/NewHorizons/Builder/Body/LavaBuilder.cs +++ b/NewHorizons/Builder/Body/LavaBuilder.cs @@ -82,7 +82,6 @@ namespace NewHorizons.Builder.Body var sizeController = moltenCore.AddComponent(); sizeController.SetScaleCurve(module.curve); sizeController.size = module.size; - sizeController.multiplier = multiplier; sizeController.material = lavaSphere.GetComponent().material; sizeController.proxyMaterial = proxyLavaSphere.GetComponent().material; } diff --git a/NewHorizons/Builder/Body/SingularityBuilder.cs b/NewHorizons/Builder/Body/SingularityBuilder.cs index 38b944f3..0c4d12f1 100644 --- a/NewHorizons/Builder/Body/SingularityBuilder.cs +++ b/NewHorizons/Builder/Body/SingularityBuilder.cs @@ -300,7 +300,7 @@ namespace NewHorizons.Builder.Body sizeController = singularityRenderer.gameObject.AddComponent(); sizeController.SetScaleCurve(curve); sizeController.size = distort; - sizeController.innerScale = horizon; + sizeController.innerScale = horizon / distort; sizeController.material = singularityRenderer.material; } diff --git a/NewHorizons/Components/SizeControllers/LavaSizeController.cs b/NewHorizons/Components/SizeControllers/LavaSizeController.cs index 08bf971a..50cca879 100644 --- a/NewHorizons/Components/SizeControllers/LavaSizeController.cs +++ b/NewHorizons/Components/SizeControllers/LavaSizeController.cs @@ -12,19 +12,18 @@ namespace NewHorizons.Components.SizeControllers { public Material material; public Material proxyMaterial; - public float multiplier; protected new void FixedUpdate() { base.FixedUpdate(); - material.SetFloat(LavaBuilder.HeightScale, 150f * multiplier * CurrentScale); - material.SetFloat(LavaBuilder.EdgeFade, 15f * multiplier * CurrentScale); - material.SetFloat(LavaBuilder.TexHeight, 15f * multiplier * CurrentScale); + material.SetFloat(LavaBuilder.HeightScale, 150f * CurrentScale / 100f); + material.SetFloat(LavaBuilder.EdgeFade, 15f * CurrentScale / 100f); + material.SetFloat(LavaBuilder.TexHeight, 15f * CurrentScale / 100f); - proxyMaterial.SetFloat(LavaBuilder.HeightScale, 150f * multiplier * CurrentScale); - proxyMaterial.SetFloat(LavaBuilder.EdgeFade, 15f * multiplier * CurrentScale); - proxyMaterial.SetFloat(LavaBuilder.TexHeight, 15f * multiplier * CurrentScale); + proxyMaterial.SetFloat(LavaBuilder.HeightScale, 150f * CurrentScale / 100f); + proxyMaterial.SetFloat(LavaBuilder.EdgeFade, 15f * CurrentScale / 100f); + proxyMaterial.SetFloat(LavaBuilder.TexHeight, 15f * CurrentScale / 100f); } } }