SboxSuperuser/Core/Effects/IGlyphEffect.cs

The IGlyphEffect interface for a glyph effect system. Declares an IsAnimated flag and a Render method that reads an EffectInput and appends EffectGlyph entries to a caller-supplied list.

namespace SboxSuperuser.Core.Effects;

/// <summary>Styles a part of a line letter by letter: a compiled script or a C# effect registered by game code.</summary>
internal interface IGlyphEffect
{
	/// <summary>False for effects that look the same every frame, so callers can skip redrawing them.</summary>
	bool IsAnimated { get; }

	/// <summary>Adds one glyph per visible letter; returns false (adding nothing) when the effect failed this frame.</summary>
	bool Render( in EffectInput input, List<EffectGlyph> output );
}