Show / Hide Table of Contents

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.

Delegates

DaggerfallAction.OnTeleportActionEventHandler

DaggerfallTerrain.OnInstantiateTerrainEventHandler

DaggerfallTerrain.OnPromoteTerrainDataEventHandler

DaggerfallUnity.OnPruneCacheEventHandler

DaggerfallUnity.OnReadyEventHandler

DaggerfallUnity.OnSetArena2SourceEventHandler

DaggerfallUnity.OnSetTerrainSamplerEventHandler

DaggerfallUnity.OnSetTextProviderEventHandler

PlayerGPS.OnClimateIndexChangedEventHandler

PlayerGPS.OnEnterLocationRectEventHandler

PlayerGPS.OnExitLocationRectEventHandler

PlayerGPS.OnMapPixelChangedEventHandler

PlayerGPS.OnPoliticIndexChangedEventHandler

PlayerGPS.OnRegionIndexChangedEventHandler

StreamingWorld.OnAvailableLocationGameObjectHandler

StreamingWorld.OnClearStreamingWorldEventHandler

StreamingWorld.OnCreateLocationGameObjectEventHandler

StreamingWorld.OnFloatingOriginChangeEventHandler

StreamingWorld.OnInitWorldEventHandler

StreamingWorld.OnPreInitWorldEventHandler

StreamingWorld.OnReadyEventHandler

StreamingWorld.OnTeleportToCoordinatesEventHandler

StreamingWorld.OnUpdateLocationGameObjectEventHandler

StreamingWorld.OnUpdateTerrainsEndEventHandler

StreamingWorld.OnUpdateTerrainsStartEventHandler

TerrainHelper.AdditionalLocationBlendSpace

WorldTime.OnCityLightsOffEventHandler

WorldTime.OnCityLightsOnEventHandler

WorldTime.OnDawnEventHandler

WorldTime.OnDuskEventHandler

WorldTime.OnMiddayEventHandler

WorldTime.OnMidnightEventHandler

WorldTime.OnNewDayEventHandler

WorldTime.OnNewHourEventHandler

WorldTime.OnNewMonthEventHandler

WorldTime.OnNewYearEventHandler

In This Article
Back to top Generated by DocFX