Namespace DaggerfallWorkshop.Game
Classes
AcrobatMotor
AdjacentSurface
AmbientEffectsPlayer
Plays different ambient effects, both audible and visual, at random intervals. Certain effects such as lightning are timed to each other. NOTE: Lightning sky effects are deprecated for now.
AmbientEffectsPlayer.AmbientEffectsEventArgs
Arguments for AmbientEffectsPlayer events.
Automap
this class provides the automap core functionality like geometry creation and discovery mechanism
Automap.AutoMapConsoleCommands
Automap.AutomapDungeonState
class to store state of discovery of a dungeon, this state can be used to restore state of GameObject gameobjectGeometry this class basically maps the two fields/states (MeshRenderer active state and Material shader keyword "RENDER_IN_GRAYSCALE") that are used for discovery state of the models inside GameObject gameobjectGeometry when a dungeon is loaded into this GameObject it also stores list of user note markers
Automap.AutomapGeometryBlockState
class to store state of discovery of a dungeon block or interior, this state can be used to restore state of GameObject gameobjectGeometry this class basically maps the two fields/states (MeshRenderer active state and Material shader keyword "RENDER_IN_GRAYSCALE") that are used for discovery state of the models inside GameObject gameobjectGeometry when an interior is loaded into this GameObject it is also used as type inside the blocks list in AutomapDungeonState
Automap.AutomapGeometryBlockState.AutomapGeometryBlockElementState
Automap.AutomapGeometryBlockState.AutomapGeometryBlockElementState.AutomapGeometryModelState
Automap.NoteMarker
Automap.TeleporterConnection
Automap.TeleporterTransform
we need to use this instead of Transform since Transform can not be serialized
BuildingDirectory
Attached to same GameObject as DaggerfallLocation by scene builders. This behaviour manages a building dictionary for every building in an exterior location. Provides helpers to query buildings and link between related systems (automap, quest sites, info text, etc.).
CameraRecoiler
ClimbingMotor
ConstrainRotation
Constrains rotation. Used to stop particle effects from rotating with player.
ContainerLootSpawnedEventArgs
ControlsConfigManager
ControlsConfigManager singleton class for controls settings and configuration. Related to the controls windows.
DaggerfallMissile
Missile component for spell casters and archers. Designed to handle missile role in abstract way for other systems. Collects list of affected entities for involved system to process. Supports touch, target at range, area of effect. Has some basic lighting effects that might expand later. Does not currently support serialization, but this will be added later. Currently ranged missiles can only move in a straight line as per classic.
DaggerfallUI
Implements Daggerfall's user interface with internal UI system.
DaggerfallUIMessages
DungeonLightHandler
Disables dungeon lights when out of range. A dungeon block has a 2048x2048 DF unit footprint. This means lights just outside this range can be safely disabled, returning performance for more lighting effects such as shadows.
EnablePlayerTorch
Enable or disable player torch. This component is used by Workshop demo scenes.
EnemyAttack
Temporary enemy attack.
EnemyBlood
Example enemy blood effect.
EnemyDeath
Handles enemy death.
EnemyHealth
Example enemy health. Note: Deprecated. For standalone DFTFU scenes only.
EnemyMotor
Enemy motor and AI combat decision-making logic.
EnemySenses
Example enemy senses.
EnemySounds
Example enemy sounds component. Handles attract and attack sounds.
ExitGame
Component to simply exit game when player presses KeyCode.Escape
ExteriorAutomap
this class provides the automap core functionality like geometry creation and discovery mechanism
ExteriorAutomap.ExteriorAutoMapConsoleCommands
FadeBehaviour
Handles fading HUD during scene transitions.
FPSCrosshair
Just drawing a basic crosshair using OnGUI().
FPSSpellCasting
Renders first-person spellcasting animations for player. Spellcasting animations have different texture and layout requirements to weapons and are never mixed with weapons directly on screen at same time. Opted to create a new class to play these animations and separate from FPSWeapon.
FPSWeapon
Renders first-person weapons and attack animations. Recommended for this component to be on its own game object. Cam modify pitch of audio source for different weapon speed effects.
FrictionMotor
GameManager
GameManager singleton class.
HangingMotor
HeadBobber
HotkeySequence
InputManager
InputManager singleton class for Daggerfall-specific game actions.
InputManager.KeyBindData_v1
LevitateMotor
A temporary replacement motor for player levitation and swimming.
LoanChecker
MobilePersonMotor
Drives mobile NPCs around town exteriors using the local navgrid.
MobilePersonNPC
This contains the actual NPC data for mobile NPCs.
NewLocationAlert
Peer with PlayerGPS to display text when player enters a new location rect.
PlayerActivate
Example class to handle activation of doors, switches, etc. from Fire1 input.
PlayerAmbientLight
Peer this with Player and PlayerEnterExit to change ambient light based on player surroundings. For example, Daggerfall scales ambient light up and down in dungeons with castle blocks (e.g. Wayrest). Ambient light is dimmed when player leaves castle block and brightened on return.
PlayerCollision
PlayerCollisionHandler
PlayerCompass
Renders Daggerfall's small compass. Should be attached to player camera.
PlayerCrush
PlayerDeath
Handles player death.
PlayerEnterExit
Assist player controller to enter and exit building interiors and dungeons. Should be attached to player object with PlayerGPS for climate tracking.
PlayerEnterExit.TransitionEventArgs
Arguments for PlayerEnterExit events. All interior/exterior/dungeon transitions use these arguments. Valid members will depend on which transition event was fired.
PlayerFootsteps
Player footstep sounds. Designed to be attached to Player object.
PlayerGroundMotor
PlayerHealth
Temporary class to remove player health on damage.
PlayerHeightChanger
PlayerMotor
PlayerMouseLook
PlayerMoveScanner
Detects information about where the player is going to step
PlayerSpeedChanger
PlayerWeather
Script to play weather effects over player. Allows weather to be attached elsewhere than a child of player (such as exterior parent). In multiplayer do not sync weather particle effects to other players.
RappelMotor
SetupDemoEnemy
Sets up enemy using demo components. Currently using this component to setup enemy entity. TODO: Revise enemy instantiation and entity assignment.
ShowPlayerDamage
Simple component to flash screen red on player damage.
SongManager
Peer this with DaggerfallSongPlayer to play music based on climate, location, time of day, etc. Starting lists can be edited in Inspector to add/remove items. There is some overlap in songs lists where the moods are similar.
SortedListExtensions
extension for SortedList class - we want to reuse id's if list items have been deleted from the list and thus the id is free - so we need to have a function that supports this
StateManager
A simple state manager class, driven by events
StaticNPC
Attached to every static NPC in the game and maintains two kinds of information:
- From static layout data read from game files (RMB/RDB block data)
- From instantiation context (in a dungeon, a building, etc.) This behaviour helps solve the problem of layout classes not knowing (or needing to know) about runtime quest state, and vice versa. It also decouples NPC information from Billboards. Other uses include Questor injection, hiding relocated NPCs, and disabling NPCs that have been permanently removed by quest system.
Notes:
- Static NPCs only exist inside buildings and dungeons, these are not the wandering NPCs in towns.
- This behaviour will be used to ultimately decouple NPC information from Billboards.
- Any NPC replacers (e.g. to 3D models) will need to assign this behaviour with original layout data.
- Correct NPC name seed is currently unknown, using offset position in layout data for now.
SunlightManager
Changes angle of directional light to simulate sunrise through sunset.
TalkManager
This class manages talk topics and resulting actions/answers
TalkManager.ListItem
TalkManager.NPCData
TalkManager.QuestResourceInfo
TalkManager.QuestResources
TalkManager.RumorMillEntry
TalkManager.SaveDataConversation
TalkManager.TalkConsoleCommands
TalkManager.TalkManagerContext
TextManager
Text manager singleton class.
TransportManager
UIShaderParam
UnderwaterFog
VectorMeasurement
VitalsChangeDetector
WeaponManager
Support for mouse attack gestures, weapon state firing, and damage transfer. Should only be attached to player game object.
WeatherManager
Helper component to assign weather settings across multiple components.
The logic for weather changes are based on the climate and weather table described in the Daggerfall Chronicles, pg. 47. Plus some additional logic to handle more natural weather transitions.
TODO add smooth weather transitions
Structs
ExteriorAutomap.BlockLayout
Block layout of location.
ExteriorAutomap.BuildingNameplate
ExteriorAutomap.Rectangle
StaticNPC.NPCData
Holds information about this NPC.
TalkManager.NpcWorkEntry
WeatherManager.FogSettings
Interfaces
IPlayerActivable
Defines a MonoBehaviour component that can be activated by player interaction. Activation is detected when a ray cast hits a collider or trigger collider on the GameObject on which the component is instantiated.
Enums
AmbientEffectsPlayer.AmbientSoundPresets
Automap.AutomapFocusObject
Automap.AutomapRenderMode
BobbingStyle
Defines the Head-bobbing pattern used by HeadBobber
CameraRecoilSetting
ControlsConfigManager.UnaryBindings
DaggerfallUI.PopupStyle
ExteriorAutomap.ExteriorAutomapViewMode
ExteriorAutomap.LocationBorder
HeightChangeAction
Tells HeightChanger.Update() which method to call to change controller height and camera position
HotkeySequence.HotkeySequenceProcessStatus
HotkeySequence.KeyModifiers
InputManager.Actions
InputManager.AxisActions
InputManager.JoystickUIActions
MobilePersonMotor.MobileDirection
The direction mobile is currently facing and moving. Might be expanded to 8 directions in future.
MobilePersonMotor.MobileStates
States the mobile can be shifted into.
MobilePersonNPC.DisplayRaces
PlayerEnterExit.TransitionType
Types of transition encountered by event system.
PlayerMotor.OnExteriorWaterMethod
Defines the way player can interact with exterior water tiles. Unrelated to deep water swimming such as in dungeons.
PlayerMoveScanner.RotationDirection
RappelMotor.RappelDirection
RappelMotor.RappelStage
StateManager.StateTypes
StaticNPC.Context
The context of where NPC belongs in layout data.
TalkManager.KeySubjectType
TalkManager.ListItemType
TalkManager.NPCKnowledgeAboutItem
TalkManager.NPCType
TalkManager.QuestInfoResourceType
TalkManager.QuestionType
TalkManager.QuestResourceInfo.BuildingLocationHintTypeGiven
TalkManager.RumorType
TransportModes
WeaponManager.MouseDirections
Mouse directions for attack trigger.
Delegates
AmbientEffectsPlayer.OnPlayEffectEventHandler
Automap.OnInjectMeshAndMaterialPropertiesEventHandler
Send an event instructing all Automap models to apply Automap materials and properties to their MeshRenderers.
DaggerfallMissile.OnCompleteEventHandler
DaggerfallUI.OnInstantiatePersistentWindowInstancesHandler
Event raised when the persistent window instances have been instantiated.