Struct TextModeTerminalSettings
Configuration settings for a TextModeTerminal. Describes text rendering, cursor, scrollback, CLI, and selection options. Use CreateDefault() for sensible defaults.
Inherited Members
Namespace: Scylla.TextMode
Assembly: ScyllaTextMode.dll
Syntax
[Serializable]
public struct TextModeTerminalSettings
Fields
AutoScroll
Whether new content automatically scrolls to the bottom.
Declaration
[Tooltip("Whether the terminal scrolls to the newest line when one is added.")]
public bool AutoScroll
Field Value
| Type | Description |
|---|---|
| bool |
CLIEnabled
Whether the CLI input row is enabled.
Declaration
[Tooltip("Whether the terminal has a command line at the bottom that the player can type into.")]
public bool CLIEnabled
Field Value
| Type | Description |
|---|---|
| bool |
CLITextColor
Foreground color for CLI prompt and input text.
Declaration
[Tooltip("Color of the prompt and the typed text on the command line. A color theme replaces it.")]
public Color32 CLITextColor
Field Value
| Type | Description |
|---|---|
| Color32 |
CellBorder
Frame of whole cells around the terminal's content, per side. The border cells are part of the view's grid and always show DefaultBackground, but the terminal never writes into them: its columns, rows, line wrapping, scrolling and cursor stay inside the frame. See CellBorder.
Declaration
[Tooltip("A frame of whole cells around the text, per side. The border cells show the grid's background color, but text, line wrapping, scrolling and the cursor stay inside the frame.")]
public TextModeCellBorder CellBorder
Field Value
| Type | Description |
|---|---|
| TextModeCellBorder |
CharSpacing
Character spacing multiplier for column width.
Declaration
[Tooltip("Character width multiplier. 1 is the font's natural character width, lower values pack characters tighter and higher values spread them out.")]
[Range(0.5, 3)]
public float CharSpacing
Field Value
| Type | Description |
|---|---|
| float |
ClearAfterSubmit
Whether to clear the input field after submitting a command.
Declaration
[Tooltip("Whether the command line empties after the player presses Enter.")]
public bool ClearAfterSubmit
Field Value
| Type | Description |
|---|---|
| bool |
CommandPrompt
The command prompt string displayed before input text.
Declaration
[Tooltip("Text shown in front of the command line, such as \"> \".")]
public string CommandPrompt
Field Value
| Type | Description |
|---|---|
| string |
CursorBlinkRate
Cursor blink rate in full cycles per second.
Declaration
[Tooltip("How many times per second the cursor blinks.")]
[Range(0.5, 3)]
public float CursorBlinkRate
Field Value
| Type | Description |
|---|---|
| float |
CursorBlinking
Whether the cursor blinks.
Declaration
[Tooltip("Whether the cursor blinks.")]
public bool CursorBlinking
Field Value
| Type | Description |
|---|---|
| bool |
CursorColor
Color of the cursor.
Declaration
[Tooltip("Color of the cursor. A color theme replaces it.")]
public Color CursorColor
Field Value
| Type | Description |
|---|---|
| Color |
CursorStyle
Visual style of the CLI cursor.
Declaration
[Tooltip("Shape of the cursor, such as a block, a vertical bar or an underscore.")]
public CursorStyle CursorStyle
Field Value
| Type | Description |
|---|---|
| CursorStyle |
DefaultBackground
Default background color for cells. Use transparent (0,0,0,0) to let the parent background show through.
Declaration
[Tooltip("Background color of the cells. A fully transparent color lets whatever is behind the terminal show through.")]
public Color32 DefaultBackground
Field Value
| Type | Description |
|---|---|
| Color32 |
DefaultForeground
Default foreground color for text.
Declaration
[Tooltip("Color of text that has no color of its own. A color theme replaces it.")]
public Color32 DefaultForeground
Field Value
| Type | Description |
|---|---|
| Color32 |
EnableDragScroll
Whether drag-to-scroll is enabled.
Declaration
[Tooltip("Whether the player can scroll the log by dragging it with the mouse.")]
public bool EnableDragScroll
Field Value
| Type | Description |
|---|---|
| bool |
FillPadding
Whether the Padding around the grid shows the grid's background color. When false the padding is transparent. CreateDefault() turns it on.
Declaration
[Tooltip("Whether the padding around the grid shows the grid's background color. Turn it off for transparent padding, so whatever lies behind the terminal shows through.")]
[FormerlySerializedAs("CellBorderFollowsTheme")]
public bool FillPadding
Field Value
| Type | Description |
|---|---|
| bool |
Remarks
The terminal itself draws nothing in the padding; whoever places the terminal fills it. TextModeTerminalHost follows this setting. Code that builds a TextModeTerminal directly reads it to decide whether to put a background behind the terminal.
FilteredCharacters
Characters that are filtered from CLI input. Any character in this string will be rejected by the input handler.
Declaration
[Tooltip("Characters the command line does not accept. Typing one of them does nothing.")]
public string FilteredCharacters
Field Value
| Type | Description |
|---|---|
| string |
FontSize
Font size in pixels.
Declaration
[Tooltip("Font size in pixels. It sets the height of a row, and the number of columns and rows follows from the size of the terminal's area.")]
[Range(6, 256)]
public float FontSize
Field Value
| Type | Description |
|---|---|
| float |
LineSpacing
Line spacing multiplier for row height.
Declaration
[Tooltip("Line height multiplier. 1 is the font's natural line height, higher values add space between rows.")]
[Range(0.5, 3)]
public float LineSpacing
Field Value
| Type | Description |
|---|---|
| float |
MAX_FONT_SIZE
Largest terminal font size in pixels that Validate() allows, the same limit the views have.
Declaration
public const float MAX_FONT_SIZE = 256
Field Value
| Type | Description |
|---|---|
| float |
MIN_FONT_SIZE
Smallest terminal font size in pixels that Validate() allows.
Declaration
public const float MIN_FONT_SIZE = 6
Field Value
| Type | Description |
|---|---|
| float |
OpenHyperlinksOnCtrlClick
Whether Ctrl+click on a hyperlink in full-screen mode opens it in the system browser.
Declaration
[Tooltip("Whether Ctrl+click on a link in full-screen mode opens it in the system browser. Only http, https and mailto links are opened.")]
public bool OpenHyperlinksOnCtrlClick
Field Value
| Type | Description |
|---|---|
| bool |
Remarks
Only http, https and mailto links are opened, since the link
comes from whatever a program printed. OnHyperlinkClicked
is raised for every Ctrl+clicked link either way, so turn this off when the host
handles links itself.
Padding
Padding in pixels applied as inset around the grid view. The space it leaves is outside the grid, so nothing the view draws, including a CRT, covers it. Use CellBorder for a frame that belongs to the grid.
Declaration
[Tooltip("Empty space in pixels between the edge of the terminal's area and the text. The terminal draws nothing there, not even a CRT; use Cell Border for a frame that belongs to the grid.")]
[Range(0, 40)]
public float Padding
Field Value
| Type | Description |
|---|---|
| float |
ScrollbackCapacity
Maximum number of lines retained in the scrollback buffer.
Declaration
[Tooltip("How many lines the terminal keeps, so the player can scroll back to them.")]
[Range(100, 10000)]
public int ScrollbackCapacity
Field Value
| Type | Description |
|---|---|
| int |
SelectionColor
Fill color drawn behind selected text.
Declaration
[Tooltip("Background color of selected text. A color theme replaces it.")]
public Color SelectionColor
Field Value
| Type | Description |
|---|---|
| Color |
SelectionEnabled
Whether text selection is enabled.
Declaration
[Tooltip("Whether the player can select text with the mouse.")]
public bool SelectionEnabled
Field Value
| Type | Description |
|---|---|
| bool |
SelectionTextColor
Color of selected text, drawn on SelectionColor.
Declaration
[Tooltip("Color of selected text. A color theme replaces it.")]
public Color SelectionTextColor
Field Value
| Type | Description |
|---|---|
| Color |
TextBlinkRate
Text blink rate in full cycles per second (for the Blink cell attribute).
Declaration
[Tooltip("How many times per second blinking text blinks.")]
[Range(0.1, 10)]
public float TextBlinkRate
Field Value
| Type | Description |
|---|---|
| float |
ThemeName
Name of the color theme the terminal takes its colors from, or empty to use the explicit color fields.
Declaration
[Tooltip("Name of the color theme the terminal takes its colors from. Leave it empty to use the colors set here.")]
public string ThemeName
Field Value
| Type | Description |
|---|---|
| string |
Remarks
When this names a theme, the terminal resolves it and overwrites DefaultForeground, CursorColor, CLITextColor, SelectionColor and SelectionTextColor from it.
DefaultBackground is deliberately left alone. A host that set it transparent so its own backdrop shows through, which is what the debug console does, would otherwise lose that backdrop the moment a theme was applied.
By default the named theme is only where the terminal starts: it follows every later change of the project theme, including the one the TextMode module makes when it starts. Turn on UseOwnTheme to keep the named theme.
UseBuiltInClipboardShortcuts
Whether the terminal handles the clipboard shortcuts itself: Ctrl+C (Cmd+C on macOS) copies the selection, and Ctrl+V, Cmd+V or Shift+Insert pastes into the command line.
Declaration
[Tooltip("Whether the terminal handles the clipboard keys itself. Ctrl+C (Cmd+C on macOS) copies the selection, and Ctrl+V, Cmd+V or Shift+Insert pastes into the command line. Turn it off when the game maps these keys through its own input.")]
public bool UseBuiltInClipboardShortcuts
Field Value
| Type | Description |
|---|---|
| bool |
Remarks
Turn this off when the host maps those keys through its own input, and call CopySelectionToClipboard() and PasteIntoCommandLine(string) from there. Otherwise both would act on the same key press.
UseOwnTheme
Whether the terminal keeps the theme named in ThemeName instead of following the project theme.
Declaration
[Tooltip("Whether the terminal keeps the theme named in Theme Name, instead of following the project theme when it changes.")]
public bool UseOwnTheme
Field Value
| Type | Description |
|---|---|
| bool |
Remarks
A terminal with its own theme ignores project theme changes, and the standard ANSI colors that programs ask for with escape sequences come from its own theme as well. Inverting the colors with SetInverted(bool) still applies to every view, this terminal included. Has no effect while ThemeName is empty.
Methods
CreateDefault()
Creates a new TextModeTerminalSettings with sensible default values.
Declaration
public static TextModeTerminalSettings CreateDefault()
Returns
| Type | Description |
|---|---|
| TextModeTerminalSettings | A settings instance with default configuration. |
Validate()
Validates and clamps all settings values to their valid ranges. Call this after constructing settings from external data to ensure all values are within acceptable bounds.
Declaration
public void Validate()