Use SetScaleCurve everywhere

This commit is contained in:
Nick 2022-07-10 11:02:56 -04:00
parent 21ace3d11a
commit c4f0516d53
6 changed files with 7 additions and 31 deletions

View File

@ -170,12 +170,7 @@ namespace NewHorizons.Builder.Body
private static void AddSizeController(GameObject go, VariableSizeModule.TimeValuePair[] curve, float size) private static void AddSizeController(GameObject go, VariableSizeModule.TimeValuePair[] curve, float size)
{ {
var sizeController = go.AddComponent<SizeController>(); var sizeController = go.AddComponent<SizeController>();
var animCurve = new AnimationCurve(); sizeController.SetScaleCurve(curve);
foreach (var pair in curve)
{
animCurve.AddKey(new Keyframe(pair.time, pair.value));
}
sizeController.scaleCurve = animCurve;
sizeController.size = size; sizeController.size = size;
} }

View File

@ -126,12 +126,7 @@ namespace NewHorizons.Builder.Body
if (ring.curve != null) if (ring.curve != null)
{ {
var levelController = ringGO.AddComponent<SizeController>(); var levelController = ringGO.AddComponent<SizeController>();
var curve = new AnimationCurve(); levelController.SetScaleCurve(ring.curve);
foreach (var pair in ring.curve)
{
curve.AddKey(new Keyframe(pair.time, pair.value));
}
levelController.scaleCurve = curve;
} }
return ringGO; return ringGO;

View File

@ -132,7 +132,7 @@ namespace NewHorizons.Builder.Body
starGO.SetActive(false); starGO.SetActive(false);
var controller = starGO.AddComponent<StarEvolutionController>(); var controller = starGO.AddComponent<StarEvolutionController>();
if (starModule.curve != null) controller.scaleCurve = starModule.GetAnimationCurve(); if (starModule.curve != null) controller.SetScaleCurve(starModule.curve);
controller.size = starModule.size; controller.size = starModule.size;
controller.atmosphere = sunAtmosphere; controller.atmosphere = sunAtmosphere;
controller.supernova = supernova; controller.supernova = supernova;
@ -164,7 +164,7 @@ namespace NewHorizons.Builder.Body
starGO.SetActive(false); starGO.SetActive(false);
var controller = starGO.AddComponent<StarEvolutionController>(); var controller = starGO.AddComponent<StarEvolutionController>();
if (starModule.curve != null) controller.scaleCurve = starModule.GetAnimationCurve(); if (starModule.curve != null) controller.SetScaleCurve(starModule.curve);
controller.size = starModule.size; controller.size = starModule.size;
controller.supernova = supernova; controller.supernova = supernova;
controller.StartColour = starModule.tint; controller.StartColour = starModule.tint;

View File

@ -102,12 +102,7 @@ namespace NewHorizons.Builder.Body
if (module.curve != null) if (module.curve != null)
{ {
var sizeController = waterGO.AddComponent<WaterSizeController>(); var sizeController = waterGO.AddComponent<WaterSizeController>();
var curve = new AnimationCurve(); sizeController.SetScaleCurve(module.curve);
foreach (var pair in module.curve)
{
curve.AddKey(new Keyframe(pair.time, pair.value));
}
sizeController.scaleCurve = curve;
sizeController.oceanFogMaterial = fogGO.GetComponent<MeshRenderer>().material; sizeController.oceanFogMaterial = fogGO.GetComponent<MeshRenderer>().material;
sizeController.size = module.size; sizeController.size = module.size;
} }

View File

@ -4,7 +4,7 @@ namespace NewHorizons.Components.SizeControllers
{ {
public class SizeController : MonoBehaviour public class SizeController : MonoBehaviour
{ {
public AnimationCurve scaleCurve; public AnimationCurve scaleCurve { get; protected set; }
public float CurrentScale { get; protected set; } public float CurrentScale { get; protected set; }
public float size = 1f; public float size = 1f;

View File

@ -1,4 +1,4 @@
using Newtonsoft.Json; using Newtonsoft.Json;
using UnityEngine; using UnityEngine;
namespace NewHorizons.External.Modules.VariableSize namespace NewHorizons.External.Modules.VariableSize
@ -11,15 +11,6 @@ namespace NewHorizons.External.Modules.VariableSize
/// </summary> /// </summary>
public TimeValuePair[] curve; public TimeValuePair[] curve;
public AnimationCurve GetAnimationCurve(float size = 1f)
{
var curve = new AnimationCurve();
if (this.curve != null)
foreach (var pair in this.curve)
curve.AddKey(new Keyframe(pair.time, size * pair.value));
return curve;
}
[JsonObject] [JsonObject]
public class TimeValuePair public class TimeValuePair
{ {