Effects/Shrinker.cs
using Sandbox.Utility;
namespace PlanetMeat;
[Group( "Planet Meat - Effects" ), Title( "Shrinker" ), Icon( "compress" )]
public sealed class Shrinker : Component
{
IEnumerable<ModelRenderer> models;
[Property] public Vector3 StartingScale = Vector3.One;
[Property] public Vector3 EndingScale = Vector3.Zero;
[RequireComponent] public DelayedStages Stages { get; set; }
protected override void OnStart()
{
base.OnStart();
models = GetComponents<ModelRenderer>();
}
protected override void OnUpdate()
{
base.OnUpdate();
if ( !Stages.IsEnding )
{
var f = Easing.QuadraticIn( Stages.Fraction );
foreach ( var m in models )
m.WorldScale = StartingScale.LerpTo( EndingScale, f );
}
}
}