rj-action-library/Runtime/Animation/Smoothing/FrameSmoothing.cs

33 lines
691 B
C#

using System.Collections;
using System.Collections.Generic;
using Godot;
namespace Rokojori
{
[Tool]
[GlobalClass]
public partial class FrameSmoothing: Smoothing
{
[Export( PropertyHint.Range, "0,600")]
public int frames = 10;
protected override float _ComputeInterpolationAmount( float delta )
{
frames = Mathf.Clamp( frames, 0, 600 );
if ( frames <= 0 )
{
return 1;
}
var coefficient = GetCoefficientForFrames( frames );
return 1f - Mathf.Exp( -coefficient * delta );
}
public static float GetCoefficientForFrames( int frames )
{
return FrameSmoothingTable.Get( frames );
}
}
}