Add support for underlined text in term

This commit is contained in:
Alessandro Proto 2023-02-18 23:49:21 +01:00
parent 3f9f036b49
commit 65cb15f6c8

View file

@ -30,6 +30,7 @@ internal class Term : IComponent
public char Character; public char Character;
public Color Foreground; public Color Foreground;
public Color Background; public Color Background;
public bool Underline;
} }
public const int CharWidth = 6; public const int CharWidth = 6;
@ -190,7 +191,7 @@ internal class Term : IComponent
return new(termPos.X * CharWidth, termPos.Y * CharHeight); return new(termPos.X * CharWidth, termPos.Y * CharHeight);
} }
public static void PlotChar(Vector2 pos, char ch, Color? fgc = null, Color? bgc = null, bool save = true) public static void PlotChar(Vector2 pos, char ch, Color? fgc = null, Color? bgc = null, bool underline = false, bool save = true)
{ {
if (pos.X < 0 || pos.Y < 0 || pos.X >= Width || pos.Y >= Height) if (pos.X < 0 || pos.Y < 0 || pos.X >= Width || pos.Y >= Height)
return; return;
@ -213,6 +214,11 @@ internal class Term : IComponent
_game.Drawing.DrawString(charpos, "\xFFFD", fg); _game.Drawing.DrawString(charpos, "\xFFFD", fg);
} }
if(underline)
{
_game.Drawing.DrawLine(charpos + new Vector2(0, CharHeight), charpos + new Vector2(CharWidth, CharHeight), fg);
}
if (!save) if (!save)
return; return;
@ -221,6 +227,7 @@ internal class Term : IComponent
Character = ch, Character = ch,
Foreground = ForegroundColor, Foreground = ForegroundColor,
Background = BackgroundColor, Background = BackgroundColor,
Underline = underline,
}; };
} }
@ -237,7 +244,7 @@ internal class Term : IComponent
Background = BackgroundColor, Background = BackgroundColor,
}; };
PlotChar(pos, ch.Character, ch.Foreground, ch.Background, false); PlotChar(pos, ch.Character, ch.Foreground, ch.Background, ch.Underline, false);
} }
public static void RedrawAll() public static void RedrawAll()