Class ScyllaTextModeConfiguration
Configuration asset for the Scylla TextMode module.
Provides settings for grid layout, SDF rendering, and terminal emulation.
Inheritance
Object
ScriptableObject
ScyllaConfiguration
ScyllaTextModeConfiguration
Inherited Members
ScyllaConfiguration.CONFIG_FOLDER
ScyllaConfiguration.LABEL_CONFIG_FILES
ScyllaConfiguration.LABEL_CONFIG_FILE
ScyllaConfiguration.LABEL_GLOBAL
ScyllaConfiguration.LABEL_CORE
ScyllaConfiguration.LABEL_CONFIG_FILES_IN_DBG
ScyllaConfiguration.LABEL_CONFIG_FILES_IN_PRD
ScyllaConfiguration.LABEL_CONFIG_FILE_IN_DBG
ScyllaConfiguration.LABEL_CONFIG_FILE_IN_PRD
ScyllaConfiguration.LABEL_VALIDATION
ScyllaConfiguration.LABEL_ERROR
ScyllaConfiguration.LABEL_WARNING
ScyllaConfiguration.LABEL_METADATA
ScyllaConfiguration.LABEL_CONFIGURATION
ScyllaConfiguration.LABEL_ACTIONS
ScyllaConfiguration.LABEL_VALIDATE
ScyllaConfiguration.LABEL_RESET_TO_DEFAULTS
ScyllaConfiguration.LABEL_APPLY_NOW
ScyllaConfiguration.LABEL_RESOURCE_PATH
ScyllaConfiguration.LABEL_ASSET_PATH
ScyllaConfiguration.LABEL_EXPORT_CONFIG_FILE
ScyllaConfiguration.LABEL_TO_USER_DOCUMENTS
ScyllaConfiguration.LABEL_TO_APP_FOLDER
ScyllaConfiguration.MSG_RESET_CONFIRM_TITLE
ScyllaConfiguration.MSG_RESET_CONFIRM_BODY
ScyllaConfiguration.MSG_RESET_BUTTON
ScyllaConfiguration.MSG_CANCEL_BUTTON
ScyllaConfiguration.MSG_OK_BUTTON
ScyllaConfiguration.MSG_VALIDATION_TITLE
ScyllaConfiguration.MSG_EXPORT_CONFIG_TITLE
ScyllaConfiguration.MSG_OVERWRITE_BUTTON
ScyllaConfiguration.ConfigFileEnabledInDebugBuild
ScyllaConfiguration.ConfigFileEnabledInProductionBuild
ScyllaConfiguration.CreateConfigFile
ScyllaConfiguration.ConfigurationName
ScyllaConfiguration.Description
ScyllaConfiguration.IsRuntimeCopy
ScyllaConfiguration.RuntimeSource
ScyllaConfiguration.CreateRuntimeCopy<T>(T)
ScyllaConfiguration.ReleaseRuntimeCopy(ScyllaConfiguration)
ScyllaConfiguration.IsConfigFileEnabledForCurrentBuild()
ScyllaConfiguration.IsValid()
ScyllaConfiguration.GetConfigFileBaseName()
ScriptableObject.CreateInstance<T>()
Object.GetEntityId()
Object.GetHashCode()
Object.InstantiateAsync<T>(T)
Object.InstantiateAsync<T>(T, Transform)
Object.InstantiateAsync<T>(T, Vector3, Quaternion)
Object.InstantiateAsync<T>(T, Transform, Vector3, Quaternion)
Object.Instantiate(Object, Vector3, Quaternion)
Object.Instantiate(Object, Vector3, Quaternion, Transform)
Object.Instantiate(Object)
Object.Instantiate(Object, Scene)
Object.Instantiate<T>(T, InstantiateParameters)
Object.Instantiate<T>(T, Vector3, Quaternion, InstantiateParameters)
Object.Instantiate(Object, Transform)
Object.Instantiate<T>(T)
Object.Instantiate<T>(T, Vector3, Quaternion)
Object.Instantiate<T>(T, Vector3, Quaternion, Transform)
Object.Instantiate<T>(T, Transform)
Object.Destroy(Object)
Object.DestroyImmediate(Object)
Object.DontDestroyOnLoad(Object)
Object.FindAnyObjectByType<T>()
Object.FindAnyObjectByType<T>(FindObjectsInactive)
Object.FindObjectsByType<T>()
Object.FindObjectsByType<T>(FindObjectsInactive)
Object.ToString()
Object.name
Object.hideFlags
Assembly: ScyllaTextMode.dll
Syntax
[ScyllaCreateAsset("TextMode/TextMode Configuration", FileName = "Scylla TextMode Configuration")]
public sealed class ScyllaTextModeConfiguration : ScyllaConfiguration
Fields
CONFIG_FILENAME
Filename for auto-loading this configuration.
Declaration
public const string CONFIG_FILENAME = "Scylla TextMode Configuration"
Field Value
DISPLAY_NAME
Display name for this configuration type.
Declaration
public const string DISPLAY_NAME = "TextMode Settings"
Field Value
GROUP_CRT
Declaration
public const string GROUP_CRT = "CRT"
Field Value
GROUP_DEBUG
Declaration
public const string GROUP_DEBUG = "Debug"
Field Value
GROUP_EFFECTS
Declaration
public const string GROUP_EFFECTS = "Effects"
Field Value
GROUP_GRID
Declaration
public const string GROUP_GRID = "Grid"
Field Value
GROUP_SDF
Declaration
public const string GROUP_SDF = "SDF"
Field Value
GROUP_TERMINAL
Declaration
public const string GROUP_TERMINAL = "Terminal"
Field Value
GROUP_THEME
Declaration
public const string GROUP_THEME = "Theme"
Field Value
KEY_APPLY_THEME_TO_VIEWS
Declaration
public const string KEY_APPLY_THEME_TO_VIEWS = "ApplyThemeToViews"
Field Value
KEY_BOLD_WEIGHT
Declaration
public const string KEY_BOLD_WEIGHT = "BoldWeight"
Field Value
KEY_CRT_BEAM
Declaration
public const string KEY_CRT_BEAM = "BeamSimulation"
Field Value
KEY_CRT_BEAM_ANTI_RETENTION
Declaration
public const string KEY_CRT_BEAM_ANTI_RETENTION = "BeamAntiRetention"
Field Value
KEY_CRT_BEAM_CRT_RATE
Declaration
public const string KEY_CRT_BEAM_CRT_RATE = "BeamCRTRate"
Field Value
KEY_CRT_BEAM_GAIN
Declaration
public const string KEY_CRT_BEAM_GAIN = "BeamGain"
Field Value
KEY_CRT_BEAM_REFRESH_RATE
Declaration
public const string KEY_CRT_BEAM_REFRESH_RATE = "BeamRefreshRate"
Field Value
KEY_CRT_BEAM_SCAN_DIRECTION
Declaration
public const string KEY_CRT_BEAM_SCAN_DIRECTION = "BeamScanDirection"
Field Value
KEY_CRT_DEFAULT_PRESET
Declaration
public const string KEY_CRT_DEFAULT_PRESET = "DefaultPreset"
Field Value
KEY_CRT_HDR_HEADROOM
Declaration
public const string KEY_CRT_HDR_HEADROOM = "HDRHeadroom"
Field Value
KEY_CRT_HDR_MASK
Declaration
public const string KEY_CRT_HDR_MASK = "HDRMask"
Field Value
KEY_CRT_HDR_MASK_BRIGHTNESS
Declaration
public const string KEY_CRT_HDR_MASK_BRIGHTNESS = "HDRMaskBrightness"
Field Value
KEY_CRT_MAX_DELTA_TIME
Declaration
public const string KEY_CRT_MAX_DELTA_TIME = "MaxDeltaTime"
Field Value
KEY_CRT_QUALITY_TIER
Declaration
public const string KEY_CRT_QUALITY_TIER = "QualityTier"
Field Value
KEY_CRT_READABILITY_CLAMP
Declaration
public const string KEY_CRT_READABILITY_CLAMP = "ReadabilityClamp"
Field Value
KEY_CURSOR_BLINK_RATE
Declaration
public const string KEY_CURSOR_BLINK_RATE = "CursorBlinkRate"
Field Value
KEY_DEFAULT_AUTO_WRAP
Declaration
public const string KEY_DEFAULT_AUTO_WRAP = "DefaultAutoWrap"
Field Value
KEY_DEFAULT_EFFECT_DURATION
Declaration
public const string KEY_DEFAULT_EFFECT_DURATION = "DefaultDuration"
Field Value
KEY_DEFAULT_FONT_SIZE
Declaration
public const string KEY_DEFAULT_FONT_SIZE = "DefaultFontSize"
Field Value
KEY_DEFAULT_LINE_HEIGHT
Declaration
public const string KEY_DEFAULT_LINE_HEIGHT = "DefaultLineHeight"
Field Value
KEY_DEFAULT_PIXELS_PER_UNIT
Declaration
public const string KEY_DEFAULT_PIXELS_PER_UNIT = "DefaultPixelsPerUnit"
Field Value
KEY_DEFAULT_VIEW_HEIGHT
Declaration
public const string KEY_DEFAULT_VIEW_HEIGHT = "DefaultViewHeight"
Field Value
KEY_DEFAULT_VIEW_WIDTH
Declaration
public const string KEY_DEFAULT_VIEW_WIDTH = "DefaultViewWidth"
Field Value
KEY_EFFECTS_ENABLED
Declaration
public const string KEY_EFFECTS_ENABLED = "EffectsEnabled"
Field Value
KEY_GLOBAL_SPEED_MULTIPLIER
Declaration
public const string KEY_GLOBAL_SPEED_MULTIPLIER = "GlobalSpeedMultiplier"
Field Value
KEY_ITALIC_SHEAR
Declaration
public const string KEY_ITALIC_SHEAR = "ItalicShear"
Field Value
KEY_LOG_RENDER_STATS
Declaration
public const string KEY_LOG_RENDER_STATS = "LogRenderStats"
Field Value
KEY_MAX_CONCURRENT_EFFECTS
Declaration
public const string KEY_MAX_CONCURRENT_EFFECTS = "MaxConcurrentEffects"
Field Value
KEY_PUBLISH_CHARACTER_EVENTS
Declaration
public const string KEY_PUBLISH_CHARACTER_EVENTS = "PublishCharacterEvents"
Field Value
KEY_REDUCE_MOTION
Declaration
public const string KEY_REDUCE_MOTION = "ReduceMotion"
Field Value
KEY_REMAP_ON_THEME_CHANGE
Declaration
public const string KEY_REMAP_ON_THEME_CHANGE = "RemapOnThemeChange"
Field Value
KEY_SCROLLBACK_LINES
Declaration
public const string KEY_SCROLLBACK_LINES = "ScrollbackLines"
Field Value
KEY_SHOW_GRID_OUTLINE
Declaration
public const string KEY_SHOW_GRID_OUTLINE = "ShowGridOutline"
Field Value
KEY_SMOOTHING
Declaration
public const string KEY_SMOOTHING = "Smoothing"
Field Value
KEY_TAB_STOP_INTERVAL
Declaration
public const string KEY_TAB_STOP_INTERVAL = "TabStopInterval"
Field Value
KEY_TEXT_BLINK_RATE
Declaration
public const string KEY_TEXT_BLINK_RATE = "TextBlinkRate"
Field Value
KEY_THEME_NAME
Declaration
public const string KEY_THEME_NAME = "ThemeName"
Field Value
KEY_THRESHOLD
Declaration
public const string KEY_THRESHOLD = "Threshold"
Field Value
KEY_TYPEWRITER_CPS
Declaration
public const string KEY_TYPEWRITER_CPS = "TypewriterCharactersPerSecond"
Field Value
KEY_WRAP_MODE
Declaration
public const string KEY_WRAP_MODE = "WrapMode"
Field Value
Properties
CRT
Gets the CRT display simulation defaults.
Declaration
public CRTSettings CRT { get; }
Property Value
Effects
Gets the text effects settings.
Declaration
public EffectsSettings Effects { get; }
Property Value
Grid
Gets the grid layout settings.
Declaration
public GridSettings Grid { get; }
Property Value
LogRenderStats
Gets whether render statistics should be logged.
Declaration
public bool LogRenderStats { get; }
Property Value
SDF
Gets the SDF rendering settings.
Declaration
public SDFSettings SDF { get; }
Property Value
ShowGridOutline
Gets whether the grid outline should be shown in debug mode.
Declaration
public bool ShowGridOutline { get; }
Property Value
Terminal
Gets the terminal emulation settings.
Declaration
public TerminalSettings Terminal { get; }
Property Value
Theme
Gets the color theme settings.
Declaration
public ThemeSettings Theme { get; }
Property Value
Methods
Apply()
Pushes the current configuration values to the live runtime system.
Override this method in derived classes to update module state whenever the
configuration changes - for example, to reconfigure a logging sink, update a
render pipeline setting, or resize an internal buffer.
During Play Mode in the Unity Editor, the framework automatically schedules
a deferred call to Apply whenever a field value changes in the Inspector
(via the OnValidate callback), enabling live iteration without a
domain reload. This method is also exposed as the "Apply Now" button in the
custom Inspector.
The base implementation does nothing. If a configuration's settings are only
consumed at startup (e.g. Scylla.Core.Config.ScyllaCoreConfiguration), the override
may remain empty.
Declaration
public override void Apply()
Overrides
Scylla.Core.Config.ScyllaConfiguration.Apply()
ApplyConfigFileOverrides(ConfigFile)
Reads property values from a loaded Scylla.Core.Util.File.ConfigFile and writes them
into this configuration's serialized fields, effectively applying user or
environment overrides on top of the Inspector-authored defaults.
Override in derived classes to map specific config-file group/key pairs to
their corresponding serialized fields. Only fields that are present in the
config file should be updated; fields missing from the file should retain
their current values. Return the count of properties that were successfully
read and applied so callers can log accurate diagnostic information.
The base implementation does nothing and returns 0. Subclasses that
return null from Scylla.Core.Config.ScyllaConfiguration.GetConfigFileName() do not need to
override this method.
Declaration
public override int ApplyConfigFileOverrides(ConfigFile configFile)
Parameters
| Type |
Name |
Description |
| ConfigFile |
configFile |
The Scylla.Core.Util.File.ConfigFile loaded by Scylla.Core.Config.ConfigFileManager for this
configuration. Will not be null when called by the framework, but
implementations should guard against it for robustness.
|
Returns
| Type |
Description |
| int |
The number of config-file properties that were successfully read and written to
serialized fields. A return value of 0 means no overrides were applied.
|
Overrides
Scylla.Core.Config.ScyllaConfiguration.ApplyConfigFileOverrides(Scylla.Core.Util.File.ConfigFile)
ExportToConfigFile()
Serializes the current values of this configuration's fields into a new
Scylla.Core.Util.File.ConfigFile suitable for saving to disk.
Override in derived classes to write each relevant serialized field into
the appropriate group and key within the returned Scylla.Core.Util.File.ConfigFile.
The resulting file is used both by the Inspector "Export Config File" action
and by the auto-create mechanism in Scylla.Core.Config.ConfigFileManager.
Group and key names must match those read in Scylla.Core.Config.ScyllaConfiguration.ApplyConfigFileOverrides(Scylla.Core.Util.File.ConfigFile).
The base implementation returns an empty Scylla.Core.Util.File.ConfigFile with no
groups. Subclasses that return null from Scylla.Core.Config.ScyllaConfiguration.GetConfigFileName()
do not need to override this method.
Declaration
public override ConfigFile ExportToConfigFile()
Returns
| Type |
Description |
| ConfigFile |
A new Scylla.Core.Util.File.ConfigFile populated with the current configuration values,
ready for serialization to JSON via Scylla.Core.Util.File.ConfigFile.ToJSON().
|
Overrides
Scylla.Core.Config.ScyllaConfiguration.ExportToConfigFile()
GetConfigFileName()
Returns the display name used as the key for loading and saving the JSON config file
associated with this configuration type.
The returned name should follow the Scylla convention
"Scylla [Name] Configuration" (e.g. "Scylla Core Configuration")
so that Scylla.Core.Config.ScyllaConfiguration.GetConfigFileBaseName() can derive the compact base name
("Core") used for the actual JSON filename on disk. Override this method
in concrete subclasses that support config-file overrides; the default returns
null, which disables config-file support for that configuration type.
Declaration
public override string GetConfigFileName()
Returns
| Type |
Description |
| string |
The full configuration name string (e.g. "Scylla Core Configuration"), or
null if this configuration type does not participate in the config-file system.
|
Overrides
Scylla.Core.Config.ScyllaConfiguration.GetConfigFileName()
LoadDefault()
Loads the default TextMode configuration from the Resources folder.
Declaration
public static ScyllaTextModeConfiguration LoadDefault()
Returns
ResetToDefaults()
Resets every serialized field in this configuration back to its authored default
value, discarding any user edits.
Called by the base class Scylla.Core.Config.ScyllaConfiguration.Reset() Unity callback (triggered when
the asset is created or when the user selects Reset in the Inspector context menu),
and also exposed as an explicit editor action via the custom Inspector's
"Reset to Defaults" button. Implementations should set every field to the same
value it would have immediately after a fresh asset creation.
Declaration
public override void ResetToDefaults()
Overrides
Scylla.Core.Config.ScyllaConfiguration.ResetToDefaults()
ResolveActiveWrapMode()
Resolves the wrap mode from the active TextMode module configuration, falling back to
DEFAULT_WRAP_MODE when no module or configuration is
available (for example a console used standalone in tests). Reading this live lets
configuration changes apply without recreating consumers.
Declaration
public static TextWrapMode ResolveActiveWrapMode()
Returns
TryResolveActiveSDF(out float, out float, out float, out float)
Resolves the SDF rendering settings from the active TextMode module configuration.
Returns false (with the default values set) when no module or configuration is
available, letting consumers keep their own values in that case. Reading this live lets
configuration changes apply without recreating consumers.
Declaration
public static bool TryResolveActiveSDF(out float threshold, out float smoothing, out float boldWeight, out float italicShear)
Parameters
| Type |
Name |
Description |
| float |
threshold |
The resolved SDF threshold.
|
| float |
smoothing |
The resolved SDF smoothing.
|
| float |
boldWeight |
The resolved faux-bold weight in atlas texels.
|
| float |
italicShear |
The resolved italic shear factor.
|
Returns
| Type |
Description |
| bool |
true if values came from an active configuration; otherwise false.
|
TryResolveBlinkRates(out float, out float)
Resolves the cursor and text blink rates from the active TextMode module configuration.
Returns false (with defaults set) when no module or configuration is available.
Declaration
public static bool TryResolveBlinkRates(out float cursorBlinkRate, out float textBlinkRate)
Parameters
| Type |
Name |
Description |
| float |
cursorBlinkRate |
The resolved cursor blink rate, or zero to leave the cursor solid.
|
| float |
textBlinkRate |
The resolved blink rate for cells carrying the blink attribute.
|
Returns
| Type |
Description |
| bool |
true if the values came from an active configuration; otherwise false.
|
TryResolveDefaultLineHeight(out float)
Resolves the default line height from the active TextMode module configuration.
Returns false (with the default value set) when no module or configuration is
available, letting consumers keep their own value in that case.
Declaration
public static bool TryResolveDefaultLineHeight(out float lineHeight)
Parameters
| Type |
Name |
Description |
| float |
lineHeight |
The resolved default line height multiplier.
|
Returns
| Type |
Description |
| bool |
true if the value came from an active configuration; otherwise false.
|
TryResolveEffectSettings(out bool, out float, out int, out bool)
Resolves the text effect settings from the active TextMode module configuration.
Returns false (with defaults set) when no module or configuration is available,
which is what lets effects run in a scene with no framework bootstrap.
Declaration
public static bool TryResolveEffectSettings(out bool enabled, out float speedMultiplier, out int maxConcurrent, out bool reduceMotion)
Parameters
| Type |
Name |
Description |
| bool |
enabled |
Whether effects are allowed to run.
|
| float |
speedMultiplier |
Speed multiplier applied to every effect.
|
| int |
maxConcurrent |
Maximum number of effects one player may run at once.
|
| bool |
reduceMotion |
Whether effects should resolve instantly instead of animating.
|
Returns
| Type |
Description |
| bool |
true if the values came from an active configuration; otherwise false.
|
TryResolveThemeSettings(out string, out bool, out bool)
Resolves the color theme settings from the active TextMode module configuration.
Returns false (with defaults set) when no module or configuration is available,
which is what lets a themed view work in a scene with no framework bootstrap.
Declaration
public static bool TryResolveThemeSettings(out string themeName, out bool applyToViews, out bool remapOnChange)
Parameters
| Type |
Name |
Description |
| string |
themeName |
Name of the palette to use as the active theme.
|
| bool |
applyToViews |
Whether a view should adopt the theme when it initializes.
|
| bool |
remapOnChange |
Whether switching theme also recolors existing content.
|
Returns
| Type |
Description |
| bool |
true if the values came from an active configuration; otherwise false.
|
Validate()
Validates all serialized fields in this configuration and returns diagnostic results.
Called by the framework at startup (to detect invalid configurations early), by the
custom Inspector when the user clicks the Validate button, and by Scylla.Core.Config.ScyllaConfiguration.IsValid()
when a quick validity check is needed.
Implementations should check every field that has a defined valid range or
dependency and produce a Scylla.Core.Config.ConfigurationValidationResult for each
issue found. Use Error(string, string) for values
that render the configuration unusable, Warning(string, string)
for values that are technically valid but may cause problems, and
Info(string, string) for contextual information.
Use Scylla.Core.Config.ScyllaConfiguration.BuildValidationResults(params Scylla.Core.Config.ConfigurationValidationResult[]) to conveniently assemble the return array.
Declaration
public override ConfigurationValidationResult[] Validate()
Returns
| Type |
Description |
| ConfigurationValidationResult[] |
An array of Scylla.Core.Config.ConfigurationValidationResult values describing all
discovered issues. Return an empty array (or use Empty<T>()) if
all fields are valid.
|
Overrides
Scylla.Core.Config.ScyllaConfiguration.Validate()