private void PrintGlyph(ColoredGlyph glyph, ColoredString settings)
{
var console = (SurfaceEditor)_console.Target;
var cell = console.TextSurface.Cells[_position.Y * console.TextSurface.Width + _position.X];
if (!PrintOnlyCharacterData)
{
if (!settings.IgnoreBackground)
cell.Background = glyph.Background;
if (!settings.IgnoreForeground)
cell.Foreground = glyph.Foreground;
if (!settings.IgnoreEffect)
cell.Effect = glyph.Effect;
if (!settings.IgnoreSpriteEffect)
cell.SpriteEffect = glyph.SpriteEffect;
}
if (!settings.IgnoreGlyph)
cell.GlyphIndex = glyph.Glyph;
_position.X += 1;
if (_position.X >= console.TextSurface.Width)
{
_position.X = 0;
_position.Y += 1;
if (_position.Y >= console.TextSurface.Height)
{
_position.Y -= 1;
if (AutomaticallyShiftRowsUp)
{
console.ShiftUp();
}
}
}
}