SadConsole.Consoles.Cursor.PrintGlyph C# (CSharp) Method

PrintGlyph() private method

private PrintGlyph ( ColoredGlyph glyph, ColoredString settings ) : void
glyph ColoredGlyph
settings ColoredString
return void
        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();
                    }
                }
            }
        }