Show / Hide Table of Contents

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.

Delegates

BaseScreenComponent.OnKeyboardEventHandler

BaseScreenComponent.OnMiddleMouseClickHandler

BaseScreenComponent.OnMiddleMouseDoubleClickHandler

BaseScreenComponent.OnMiddleMouseDownHandler

BaseScreenComponent.OnMiddleMouseUpHandler

BaseScreenComponent.OnMouseClickHandler

BaseScreenComponent.OnMouseDoubleClickHandler

BaseScreenComponent.OnMouseDownHandler

BaseScreenComponent.OnMouseEnterHandler

BaseScreenComponent.OnMouseLeaveHandler

BaseScreenComponent.OnMouseMoveHandler

BaseScreenComponent.OnMouseScrollDownEventHandler

BaseScreenComponent.OnMouseScrollUpEventHandler

BaseScreenComponent.OnMouseUpHandler

BaseScreenComponent.OnRightMouseClickHandler

BaseScreenComponent.OnRightMouseDoubleClickHandler

BaseScreenComponent.OnRightMouseDownHandler

BaseScreenComponent.OnRightMouseUpHandler

Checkbox.OnToggleStateHandler

EnchantmentListPicker.OnRefreshListEventHandler

EnchantmentListPicker.OnRemoveItemEventHandler

FLCPlayer.OnAnimEndHandler

FolderBrowser.OnConfirmPathHandler

FolderBrowser.OnPathChangedHandler

HorizontalSlider.OnScrollHandler

ItemListScroller.ItemBackgroundAnimationHandler

ItemListScroller.ItemBackgroundColourHandler

ItemListScroller.ItemForegroundAnimationHandler

ItemListScroller.ItemLabelTextHandler

ItemListScroller.OnItemClickHandler

ItemListScroller.OnItemHoverHandler

ItemListScroller.OnItemMiddleClickHandler

ItemListScroller.OnItemRightClickHandler

LeftRightSpinner.OnLeftButtonClickedHandler

LeftRightSpinner.OnRightButtonClickedHandler

ListBox.OnScrollHandler

ListBox.OnSelectItemEventHandler

ListBox.OnSelectNextEventHandler

ListBox.OnSelectPreviousEventHandler

ListBox.OnUseSelectedItemEventHandler

Paginator.OnSelectedHandler

ScreenComponentCollection.ComponentAddedEventHandler

ScreenComponentCollection.ComponentRemovedEventHandler

StatsRollout.OnStatChangedEventHandler

TextBox.OnTypeHandler

UpDownSpinner.OnDownButtonClickedHandler

UpDownSpinner.OnUpButtonClickedHandler

UpDownSpinner.OnValueChangedHandler

UserInterfaceRenderTarget.OnCreateTargetTextureEventHandler

UserInterfaceWindow.OnCloseHandler

VerticalScrollBar.OnScrollHandler

In This Article
Back to top Generated by DocFX