Namespace DaggerfallWorkshop
Classes
AutomapModel
Attached to all Automap models to perform various functions specific to them.
Billboard
DaedraSeducerMobileBehaviour
Special mobile unit behaviours for Daedra Seducer.
DaggerfallAction
Defines and executes Daggerfall action records.
DaggerfallActionCollision
DaggerfallActionDoor
Specialised action component for hinged doors in buildings interiors and dungeons.
DaggerfallActionDoorSpecial
This door component is assigned when linked action calls for a door, but no normal door record found. Usually found on super-secret doors the player is never intended to open manually and must find a lever. Player cannot open, bash, pick, or cast their way through this type of door.
DaggerfallAudioSource
Load sound effects from Daggerfall into a normal AudioSource. This component loads clips procedurally in editor and at runtime. Can preview clips by index, ID, or enum directly from editor window.
DaggerfallBillboard
DaggerfallBillboardBatch
Draws a large number of atlased billboards using a single mesh and custom geometry shader. Supports animated billboards with a random start frame, but only one animation timer per batch. Currently used for exterior billboards only (origin = centre-bottom). Support for interior/dungeon billboards will be added later (origin = centre). Tries to not recreate Mesh and Material where possible. Generates some garbage when rebuilding mesh layout. This can probably be improved.
DaggerfallBookshelf
Bookshelves in building interiors which allow reading books.
DaggerfallBulletinBoard
DaggerfallCityGate
DaggerfallDungeon
DaggerfallEnemy
Stores enemy settings for serialization and other tasks.
DaggerfallGC
DaggerfallGroundPlane
DaggerfallInterior
DaggerfallLadder
Moves player up an down ladders in building interiors.
DaggerfallLight
Attached to point lights to create animated effect.
DaggerfallLocation
DaggerfallLoot
Enables a world object to be lootable by player.
DaggerfallLootDataTables
DaggerfallMesh
DaggerfallMobileUnit
A billboard class for classic Daggerfall mobile sprites with 8 orientations. Handles loading resources and rendering billboard based on orientation and state. Will rotate and scale based on camera angle and texture, so this component should only be attached to a child GameObject. Uses parent GameObject to determine actual facing in world.
DaggerfallRDBBlock
Attached to dungeon blocks.
DaggerfallRMBBlock
This is back to a placeholder component for now. Building lookup has been moved to DaggerfallLocation object by way of BuildingDirectory.
DaggerfallSky
Implementation of Daggerfall's sky backgrounds. Works in both forward and deferred rendering paths. Uses two cameras and OnPostRender in local camera for sky drawing (uses normal camera solid colour clear). Sets own camera depth to MainCamera.depth-1 so sky is drawn first.
DO NOT ATTACH THIS SCRIPT TO MAINCAMERA GAMEOBJECT. Attach to an empty GameObject or use the prefab provided.
DaggerfallSongPlayer
DaggerfallSongPlayer.MyMemoryFile
DaggerfallStaticBuildings
Stores an array of buildings inside a block object. This provides the bridge between live scene data and game data. Used to hit-test buildings for identification and to locate in scene.
DaggerfallStaticDoors
Stores an array of static doors. Exposes helpers to check doors in correct world space.
DaggerfallTerrain
Partners with a Unity Terrain for use by StreamingWorld. Each terrain is "self-assembling" based on position in world (1000x500 map pixels). Also serializes additional information about neighbour terrains.
DaggerfallUnity
DaggerfallUnity main class.
DefaultTerrainNature
Drops nature flats based on random chance scaled by simple rules.
DefaultTerrainSampler
Default TerrainSampler for StreamingWorld.
DefaultTerrainTexturing
Generates texture tiles for terrains and uses marching squares for tile transitions. These features are very much in early stages of development.
DFRandom
Reimplementing key parts of Daggerfall's random library. This ensures critical random number sequences (e.g. building names) will match Daggerfall's output across all platforms.
DungeonTextureTables
GenerateDiagLog
JobA
JobRand
KeyWords
MaterialReader
Imports Daggerfall images into Unity. Should only be attached to DaggerfallUnity singleton (for which it is a required component). Note: Texture loading methods have been moved to TextureReader class.
MeshReader
Imports Daggerfall models into Unity as Mesh objects. Should only be attached to DaggerfallUnity (for which it is a required component).
MobilePersonAsset
The component that handles graphics for a mobile person.
MobilePersonBillboard
Billboard class for classic wandering NPCs found in town environments.
MobileUnit
Daggerfall mobile enemy. Handles loading resources and rendering object (i.e. a billboard) based on orientation and state. Note for implementors: an instance of a component extending this class can be added to a prefab named "DaggerfallMobileUnit" and bundled with a mod.
NoiseTerrainSampler
A sampler to produce rolling noise-based terrain. Does not use Daggerfall map data so usual coastlines and elevations not present.
PlayerGPS
Tracks player position in virtual world space. Provides information about world around the player.
SettingsManager
Settings manager for reading game configuration from INI file. Deploys new settings from Resources/defaults.ini to persistentDataPath/settings.ini. Settings no longer present in defaults.ini are removed from settings.ini. Reads on start to public property cache. This prevents expensive string parsing if property checked every frame. Transfers settings from public property cache back to ini data on save.
SimpleTerrainSampler
A minimal terrain sampler to create perfectly flat terrain. Does not create any ocean or terrain features.
SoundReader
Imports Daggerfall sounds into Unity as AudioClip objects. Should only be attached to DaggerfallUnity (for which it is a required component).
StreamingWorld
Manages terrains for streaming world at runtime. At runtime only coordinates from LocalPlayerGPS will be used. Be sure to apply desired preview to PlayerGPS. Terrain tiles are spread outwards from a centre tile up to TerrainDistance around player. Terrains will be marked inactive once they pass beyond TerrainDistance. Inactive terrains greater than TerrainDistance+1 from player will be recycled. Locations and other loose objects greater than TerrainDistance+1 from player will be destroyed.
TerrainHelper
Helper methods for terrain generation.
TerrainMaterialProvider
Base class for Daggerfall terrain material providers.
TerrainSampler
Base TerrainSampler for transforming heightmap samples. This class and interface will be expanded on later.
TilemapTerrainMaterialProvider
Fallback implementation for terrain materials, supported on most platforms.
TilemapTextureArrayTerrainMaterialProvider
Implements terrain materials using Texture2DArray, with support for custom textures.
TileTexArrUniforms
TileUniforms
Uniforms
WorldTime
A simple clock component to raise current world time at runtime. Provides some events for time milestones. Be careful using events in combination with very high timescales. This can cause events to fire too often or be skipped entirely. For large-scale time changes (hundreds to thousands of objects) a better performance pattern is to simply check the DaggerfallUnity.Singleton.WorldTime.Now in Update() of each object. See DaggerfallLight.cs for an example of reading time directly for lights on/off.
Structs
BillboardSummary
Border<T>
BuildingSummary
Detailed information about a building for directory lookups.
CachedMaterial
Defines a single cached material and related properties. Marked as serializable but not currently serialized.
CareerStartingSpells
List of starting spells for a specific career. Custom careers use the same starting spells as Spellsword (CareerIndex=1) if any primary or major skills are a magic skill)
ClimateTextureInfo
Some information about a climate texture, returned by climate parser.
DaggerfallDungeon.DungeonSummary
DaggerfallGroundPlane.GroundSummary
DaggerfallInterior.InteriorEditorMarker
DaggerfallLocation.LocationSummary
DaggerfallSky.SkyColors
DaggerfallTextureIndex
Index of a single Daggerfall texture.
DefaultTerrainTexturing.AssignTilesJob
DefaultTerrainTexturing.GenerateTileDataJob
FaceDetails
GetTextureResults
Results out for GetTexture methods.
GetTextureSettings
Settings in for GetTexture methods.
GlobalVar
A single global variable.
ImageData
Data package returned by ImageHelper.GetImageData() methods. Supplied Texture2D will always be readable.
LootChanceMatrix
Used to create matrix of chances by loot table key.
MapPixelData
Information about a single map pixel for streaming world.
MobileAnimation
Defines animation setup for mobile enemies.
MobileEnemy
Defines basic properties of mobile enemies.
MobileUnit.MobileUnitSummary
ModelData
Defines model data.
ModelData.SubMeshData
Defines submesh data.
ModelDoor
Defines a door found in model data.
PlayerGPS.DiscoveredBuilding
PlayerGPS.DiscoveredLocation
PlayerGPS.NearbyObject
QuestMarker
Describes a single quest marker for NPC, item, etc. These markers are used to place quest resources like Person, Foe, Item, etc.
RandomEncounterTable
Defines a list of random encounters based on dungeon type (Crypt, Orc Stronghold, etc.).
RecordIndex
A record index for cached materials. Used to align indices in atlased textures.
SiteDetails
Full details of a quest site generated by Place resource. A site has different meanings based on type:
- Town - Exterior arrangement of RMB blocks. Can be fixed or random.
- Dungeon - Interior arrangement of RDB blocks. Can be fixed or random.
- Building - Interior of a specific RMB block record. Random based on building type.
NOTES:
- All available quest Spawn and Item markers are stored in SiteDetails for lookups.
- Only a single marker will be selected based on first resource placed to site and what markers are available.
- If an Item resource is placed first it will select a random Item marker.
- If a Foe or Person resource is placed first it will select a random Spawn marker.
- Future placements will be added to selected marker.
- If site has only a Spawn or Item marker available, the best available marker type will be used.
- Will continue to refine this design as quest system progresses.
SiteLink
Site links are reserved by "create npc at" action. Creates a bridge between world and quest markers for layout classes. For example, quest NPCs might need to be injected to a certain building or dungeon interior. The same mechanism is used to place quest items and foes for the player. SiteLink contains enough information for external classes to determine if they belong to that site. If layout classes find a matching SiteLink, they will deploy any assigned QuestMarkers assigned to site.
StartingSpell
A single starting spell.
StaticBuilding
Defines a static building for hit tests inside scene.
StaticDoor
Defines a static door for hit tests inside a scene.
StreamingWorld.TerrainDesc
TerrainMaterialData
Data used for promotion of Daggerfall terrain material.
WeaponAnimation
Defines animation setup for weapons.
Interfaces
IMapSamplesResource
Interface to map samples resource for StreamingWorld.
ITerrainMaterialProvider
Provides materials for Daggerfall terrains.
ITerrainNature
Terrain nature layout interface.
ITerrainSampler
Interface to TerrainSampler.
ITerrainTexturing
Terrain texturing interface.
Enums
ActionState
States for action doors and other objects.
AntiAliasingMethods
Antialiasing methods supported by core.
AudioPresets
Quick AudioSource presets for DaggerfallAudioSource. These make minor changes to peer AudioSource component.
CharacterHands
Defines character's hands.
ClimateBases
Base types for climate-aware texture sets.
ClimateNatureSets
Texture sets for nature flats. Note: Snow sets are only assigned by climate processing.
ClimateSeason
Climate season modifiers.
CoreGameEffectSettingsGroups
Core game effects settings groups for deploying some or all settings.
DaggerfallAction.TriggerTypes
DaggerfallInterior.InteriorMarkerTypes
DaggerfallRegions
Regions across the game world. Values maps to zero-based region index. Not all regions used in game.
DoorTypes
Door types found around locations.
DungeonTextureUse
DyeColors
Available dye colours for armour, weapons, and clothing. Values match known Daggerfall colour indices. May change at a later date with new research.
DyeTargets
Supported targets for dye changes.
EditorFlatTypes
Sub-types of editor flats.
EntityTypes
Defines various types of living entities in the world.
FlatTypes
Types of billboard flats in Daggerfall blocks.
Handedness
Controls how weapons are held in the player's hands.
ImageTypes
Supported ImageReader file types.
InventoryContainerImages
Various container images for inventory management. Not sure if all of these are used. May change at a later date.
ItemHands
Defines how an item is held.
LocationClimateUse
Location climate usage options.
LootContainerTypes
Supported loot containers in world.
LunarPhases
Phases of the moons.
LycanthropyTypes
Lycanthropy variants.
MacroTypes
Text macros used by various systems (quest messages, items, stats, etc.). Macro output depends on the characters wrapping symbol name. Not all objects support all macro types.
MarkerPreference
Marker preference when allocating quest resources to a static marker index.
MarkerTypes
Types of markers in a location from TEXTURE.199. Only used for quest resource placement right now. Will be expanded later to include additional marker types (rest, ladders, etc.)
MaterialReader.CustomBlendMode
Standard shader blend modes. Using a custom enum as Unity does not expose outside of editor GUI.
MaterialReader.CustomSmoothnessMapChannel
Standard shader smoothness map channel setting. Using a custom enum as Unity does not expose outside of editor GUI.
MetalTypes
Various metal types in Daggerfall. This is a Daggerfall Unity enum. For enum matching native data see Items/ItemEnums.cs.
MobileAffinity
Mobile affinity for resists/weaknesses, grouping, etc. This could be extended into a set of flags for multi-affinity creatures.
MobileBehaviour
Mobile enemy behaviour groups.
MobileCombatFlags
Basic combat flags for mobiles. Every mobile has a basic melee attack available. This can be extended to create more diverse foes with a wider range of behaviours.
MobileGender
Mobile gender. All monsters have an unspecified gender and no male/female variations. When specifying gender for humanoids, a value of unspecified will randomly choose between male/female.
MobileReactions
Reaction settings for mobiles.
MobileStates
Mobile animation states.
MobileTeams
Mobile teams.
MobileTypes
A list of mobile enemy types with ID range 0-42 (monsters) and 128-146 (humanoids). Do not extend this enum.
PlayerActivateModes
Modes for user when activating central object.
PlayerGPS.NearbyObjectFlags
QuestSmallerDungeonsState
State of smaller dungeons setting to be serialized with quest data.
RetroModeAspects
Retro Mode supported aspect ratio corrections.
SiteTypes
Types of sites player can be sent to for quests.
SongFiles
All songs in MIDI.BSA.
SoundClips
Enum for Daggerfall sound clips. This will be filled out over time.
StreamingWorld.RepositionMethods
Methods for auto-reposition logic.
SupportedAlphaTextureFormats
Supported alpha texture formats for texure reader.
TextCollections
Quick way to reference a text collection. The current value of collection name is read from appropriate field in scene TextManager singleton.
VampireClans
Vampire clans.
WeaponAlignment
Defines how a weapon is aligned.
WeaponStates
Weapon animation states.
WeaponTypes
Generic weapon types in Daggerfall.
WeatherStyle
Weather texture modifiers.
WindowStyle
Window textures modifiers.
WorldContext
Basic context of world object, such as dropped loot.