Set `LifetimeEnd` once rather than computing on every access

This commit is contained in:
Dean Herbert 2022-10-05 18:52:01 +09:00
parent 71edd314b1
commit 91d877e893
1 changed files with 3 additions and 9 deletions

View File

@ -24,15 +24,6 @@ public abstract class SmokeSegment : Drawable, ITexturedShaderDrawable
public IShader? TextureShader { get; private set; }
public IShader? RoundedTextureShader { get; private set; }
public override double LifetimeEnd
{
get
{
double initialFadeOutDurationTrunc = Math.Min(initial_fade_out_duration, SmokeEndTime - SmokeStartTime);
return SmokeEndTime + final_fade_out_duration + initialFadeOutDurationTrunc / re_fade_in_speed + initialFadeOutDurationTrunc / final_fade_out_speed;
}
}
private float? radius;
protected float Radius
@ -153,6 +144,9 @@ public void AddPosition(Vector2 position, double time)
public void FinishDrawing(double time)
{
SmokeEndTime = time;
double initialFadeOutDurationTrunc = Math.Min(initial_fade_out_duration, SmokeEndTime - SmokeStartTime);
LifetimeEnd = SmokeEndTime + final_fade_out_duration + initialFadeOutDurationTrunc / re_fade_in_speed + initialFadeOutDurationTrunc / final_fade_out_speed;
}
protected override DrawNode CreateDrawNode() => new SmokeDrawNode(this);