Namespace DaggerfallWorkshop.Game.UserInterface
Classes
BaseScreenComponent
Provides features common to all screen components.
Button
A simple button component.
Checkbox
DaggerfallBankingWindow
DaggerfallFont
Daggerfall-specific implementation of a pixel font. Supports classic FONT0000-0004 with an SDF variant. Classic font has the same limitations of 256 characters starting from ASCII 33. SDF font uses a keyed dictionary so can support any number of glyph codes. Current implementation will load a TextMeshPro 2.0.x font asset directly for SDF variant.
DaggerfallShortcut
DaggerfallTalkWindow
DaggerfallVideo
Plays a Daggerfall VID file inside a control.
EnchantmentListPicker
EnchantmentListPicker.EnchantmentPanel
EscortingNPCFacePanel
Displays faces of quest NPCs escorted by player. Unlike Daggerfall will try to remove face when related quest ends, even if quest script forgets to drop face.
FacePicker
Implements a reusable player face picker. This control is used twice during character creation.
FLCPlayer
FolderBrowser
Simple cross-platform folder browser.
HorizontalSlider
HUDActiveSpells
Displays active spell icons on player HUD.
HUDBreathBar
Player breath bar for HUD.
HUDCompass
Compass for HUD.
HUDCrosshair
Crosshair for HUD.
HUDFlickerBase
HUDFlickerController
HUDFlickerFast
HUDFlickerSlow
HUDInteractionModeIcon
InteractionModeIcon for HUD.
HUDLarge
Implements the large HUD in Daggerfall Unity as just another overlay inside of primary HUD. This is so it can work uniformly in both widescreen and retro modes. Other HUD elements can still work alongside large HUD, but some will be disabled as they occupy same screen area.
HUDPlaceMarker
A debugging class to draw local quest site marker onto HUD. Not intended for gameplay - only used to help find site locations during quest development.
HUDQuestDebugger
Output quest information on HUD to view state in real-time and optionally step-through execution. Uses default keys (set in DialogShortcuts.txt file):
- Ctrl+Shift+D Cycle through debugger and global variables display state
- Ctrl+Shift+RightArrow Show next quest tasks/vars/timers (only when debugger HUD open)
- Ctrl+Shift+LeftArrow Show previous quest tasks/vars/timers (only when debugger HUD open)
- Ctrl+Shift+UpArrow Teleport to next dungeon marker (only when debugger HUD open inside dungeon)
- Ctrl+Shift+DownArrow Teleport to next dungeon marker (only when debugger HUD open inside dungeon) NOTE: EnableQuestDebugger must be True in settings.ini
HUDVitals
Player vital signs for HUD.
ItemListScroller
Item scroller UI panel component composed of scrollbar, scroll buttons and items list.
LabelFormatter
Helper class to uniformly reformat token streams into a line-wrapping TextLabel. -Problem description: Text in classic Daggerfall uses hard-coded positions, line breaks, and other justification tokens which assume text is written only with a certain size pixel font and only over a 320x200 display area. This is very problematic for correct translation support as international text require fonts of different proportions and each language requires variable distance to express the same concepts. To make matter worse, embedded formatting is broken in several places such as books, where text can become aligned oddly or even overflow the display area completely. A general solution is needed that can reformat text from various sources (quests, books, TEXT.RSC, etc.) into a new layout that will wrap words cleanly and use line breaks only when required. -Earlier implementation: Daggerfall Unity first implemented true classic pixel font support and followed the same formatting tokens precisely. This resulted in a perfect recreation of classic Daggerfall's user interface, but also inherited the same general limitations. When SDF fonts were implemented, they still followed the same formatting as classic. Glyphs were even stretched/squished to occupy the same spaces. While this made text somewhat clearer to read, formatting remained uncomfortable and inflexible. -Iterated implementation: The only way forward to correctly support translations will first require cleaner text formatting. This is a multi-stage process that first implementes new font and formatting support. It is necessary for this system to support both classic and SDF pathways with either default fonts or custom fonts for non-Latin characters. Ideally this will support text read from classic binary data in addition to new language databases. -Purpose of this helper class: This class is an attempt at creating a tool to automatically reformat classic text data from a variety of binary sources into a clean word-wrapped format. Its purpose is only to reformat classic text from the DOS binaries and classic quests to output text in a clean and readable manner for both classic and SDF font pathways. This class is not intended to be used with text sourced from translated text databases (in development) as this text will be written without classic formatting tokens and with normal word wrapping already in mind. -Supported classic sources: Initial support will be for automatically reformatting books. This will be extended to other areas where possible using lessons learned. Automatic text reformatting from classic binary data and quests will always remain "best effort". Eventually all in-game text will be migrated to a default text database at which point formatting can be cleaned up further.
LeftRightSpinner
Spinner for left/right number distribution.
ListBox
Implements a text list box.
ListBox.ListItem
MultiFormatTextLabel
A multi-format text label supporting variable pixel fonts and layouts. Designed for Daggerfall's formatted text records such as books and status popups. This class will be improved over time as needed.
MultiTextBox
A multi-control with text boxes for entering multiple values in the same line. Can also be used to draw text boxes in a row/column table.
Outline
Draws a solid-colour outline.
Paginator
Navigation controls for pages or listed items.
Panel
A screen component that contains other screen components.
PaperDoll
Implements character paper doll.
PauseOptionsDropdown
PopupText
Popup text for notifications, etc.
ReflexPicker
Implements a reusable player reflexes picker. This control is used twice during character creation.
ScreenComponentCollection
A list of screen components with events. The order components are added in determines the order they are updated and drawn.
ScreenComponentCollection.ComponentEventArgs
Event arguments.
SkillsRollout
Implements control to distribute bonus skills. Used both on the "add bonus points" skills window and end summary window of character creation.
SpellIconCollection
Stores spell icon packs for use in game UI (e.g. HUD, Spellbook, Spellmaker). The classic spell icon file "ICON00I0.IMG" is a 320x64 atlas of 69 textures.
SpellIconCollection.SpellIconPack
SpellIconCollection.SpellIconSettings
StatsRollout
Implements control to distribute bonus stats. Used on the "add bonus points" stats window, the end summary window of character creation and on the character sheet when leveling.
TextBox
Implements a single line text edit box.
TextCursor
Implements a blinking text cursor.
TextLabel
A simple single-line text label using a pixel font.
ToolTip
Displays popup tooltip text when mouse hovers over component for an amount of time. Designed to be shared by any number of components inside the same canvas area. Use \r escape character to create multi-row tooltips.
UpDownSpinner
Spinner for up/down number distribution.
UserInterfaceManager
Manages a stack of user interface windows. Provides a simple window messaging system for passing information and events via string.
UserInterfaceRenderTarget
Manages the render target texture for UI systems and provides helpers for drawing UI components.
UserInterfaceWindow
UserInterfaceWindow abstract base class. Each window is a unique state managed by UserInterfaceManager. All subordinate controls should be added to ParentPanel.
VerticalProgress
A vertical progress/indicator bar.
VerticalProgressSmoother
A vertical progress/indicator bar. Modified to smoothly change
VerticalScrollBar
Implements a vertical scrollbar.
VideoPlayerDrawer
Draws the output of a VideoPlayer with the Daggerfall Unity UI.
Structs
DaggerfallFont.GlyphInfo
DaggerfallFont.SDFFontInfo
DaggerfallFont.SDFGlyphInfo
HUDActiveSpells.ActiveSpellIcon
Stores information for icon display.
Interfaces
IUserInterfaceManager
IUserInterfaceWindow
Enums
AutoSizeModes
Defines how component should size itself relative to parent.
BackgroundLayout
Defines layout of background textures.
BaseScreenComponent.RestrictedRenderArea_CoordinateType
DaggerfallFont.FontName
DaggerfallShortcut.Buttons
DaggerfallTalkWindow.FacePortraitArchive
DaggerfallTalkWindow.TalkCategory
DaggerfallTalkWindow.TalkOption
DaggerfallTalkWindow.TalkTone
HorizontalAlignment
Defines horizontal alignment options.
HUDFlickerBase.AlphaDirection
HUDQuestDebugger.DisplayState
LabelFormatter.TextSources
Sources of text tokens to inform format choices.
ListBox.HorizontalScrollModes
ListBox.VerticalScrollModes
Margins
Defines margins used in panels.
NumericMode
Sides
Defines sides for various operations.
Slices
Defines slices for bitmap windows.
TextLabel.HorizontalTextAlignmentSetting
VerticalAlignment
Defines vertical alignment options.