Files
Terminal.Gui/Terminal.Gui/TextEffects/BaseEffect.cs
2024-07-06 02:57:15 +01:00

55 lines
1.4 KiB
C#

namespace Terminal.Gui.TextEffects;
public abstract class BaseEffectIterator<T> where T : EffectConfig, new()
{
protected T Config { get; set; }
protected Terminal Terminal { get; set; }
protected List<EffectCharacter> ActiveCharacters { get; set; } = new List<EffectCharacter> ();
public BaseEffectIterator (BaseEffect<T> effect)
{
Config = effect.EffectConfig;
Terminal = new Terminal (effect.InputData, effect.TerminalConfig);
}
public void Update ()
{
foreach (var character in ActiveCharacters)
{
character.Tick ();
}
ActiveCharacters.RemoveAll (character => !character.IsActive);
}
}
public abstract class BaseEffect<T> where T : EffectConfig, new()
{
public string InputData { get; set; }
public T EffectConfig { get; set; }
public TerminalConfig TerminalConfig { get; set; }
protected BaseEffect (string inputData)
{
InputData = inputData;
EffectConfig = new T ();
TerminalConfig = new TerminalConfig ();
}
/*
public IDisposable TerminalOutput (string endSymbol = "\n")
{
var terminal = new Terminal (InputData, TerminalConfig);
terminal.PrepCanvas ();
try
{
return terminal;
}
finally
{
terminal.RestoreCursor (endSymbol);
}
}*/
}