mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
Fix lava scaling
This commit is contained in:
parent
078fc2ce3b
commit
c4b5d615a6
@ -4,14 +4,15 @@ using NewHorizons.Utility;
|
|||||||
using NewHorizons.External.Modules.VariableSize;
|
using NewHorizons.External.Modules.VariableSize;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using UnityEngine.Assertions.Must;
|
using UnityEngine.Assertions.Must;
|
||||||
|
using NewHorizons.Components.SizeControllers;
|
||||||
|
|
||||||
namespace NewHorizons.Builder.Body
|
namespace NewHorizons.Builder.Body
|
||||||
{
|
{
|
||||||
public static class LavaBuilder
|
public static class LavaBuilder
|
||||||
{
|
{
|
||||||
private static readonly int HeightScale = Shader.PropertyToID("_HeightScale");
|
public static readonly int HeightScale = Shader.PropertyToID("_HeightScale");
|
||||||
private static readonly int EdgeFade = Shader.PropertyToID("_EdgeFade");
|
public static readonly int EdgeFade = Shader.PropertyToID("_EdgeFade");
|
||||||
private static readonly int TexHeight = Shader.PropertyToID("_TexHeight");
|
public static readonly int TexHeight = Shader.PropertyToID("_TexHeight");
|
||||||
private static readonly int EmissionColor = Shader.PropertyToID("_EmissionColor");
|
private static readonly int EmissionColor = Shader.PropertyToID("_EmissionColor");
|
||||||
|
|
||||||
private static GameObject _lavaSphere;
|
private static GameObject _lavaSphere;
|
||||||
@ -36,11 +37,6 @@ namespace NewHorizons.Builder.Body
|
|||||||
InitPrefabs();
|
InitPrefabs();
|
||||||
|
|
||||||
var multiplier = module.size / 100f;
|
var multiplier = module.size / 100f;
|
||||||
if (module.curve != null)
|
|
||||||
{
|
|
||||||
var modifier = module.curve.Max(pair => pair.value);
|
|
||||||
multiplier *= modifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
var moltenCore = new GameObject("MoltenCore");
|
var moltenCore = new GameObject("MoltenCore");
|
||||||
moltenCore.SetActive(false);
|
moltenCore.SetActive(false);
|
||||||
@ -83,13 +79,17 @@ namespace NewHorizons.Builder.Body
|
|||||||
|
|
||||||
if (module.curve != null)
|
if (module.curve != null)
|
||||||
{
|
{
|
||||||
var levelController = moltenCore.AddComponent<SandLevelController>();
|
var sizeController = moltenCore.AddComponent<LavaSizeController>();
|
||||||
var curve = new AnimationCurve();
|
sizeController.SetScaleCurve(module.curve);
|
||||||
foreach (var pair in module.curve)
|
sizeController.size = module.size;
|
||||||
{
|
sizeController.multiplier = multiplier;
|
||||||
curve.AddKey(new Keyframe(pair.time, module.size * pair.value));
|
sizeController.material = lavaSphere.GetComponent<MeshRenderer>().material;
|
||||||
}
|
|
||||||
levelController._scaleCurve = curve;
|
var proxySizeController = moltenCoreProxy.AddComponent<LavaSizeController>();
|
||||||
|
proxySizeController.SetScaleCurve(module.curve);
|
||||||
|
proxySizeController.size = module.size;
|
||||||
|
proxySizeController.multiplier = multiplier;
|
||||||
|
proxySizeController.material = lavaSphere.GetComponent<MeshRenderer>().material;
|
||||||
}
|
}
|
||||||
|
|
||||||
moltenCore.SetActive(true);
|
moltenCore.SetActive(true);
|
||||||
|
|||||||
25
NewHorizons/Components/SizeControllers/LavaSizeController.cs
Normal file
25
NewHorizons/Components/SizeControllers/LavaSizeController.cs
Normal file
@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user