Class RMBLayout
Helper for laying out RMB (city block) data in scene.
Namespace: DaggerfallWorkshop.Utility
Assembly: Assembly-CSharp.dll
Syntax
public static class RMBLayout
Fields
| Improve this Doc View SourceBulletinBoardModelID
Declaration
public const uint BulletinBoardModelID = 41739U
Field Value
| Type | Description |
|---|---|
| UInt32 |
CityGateClosedModelID
Declaration
public const uint CityGateClosedModelID = 447U
Field Value
| Type | Description |
|---|---|
| UInt32 |
CityGateOpenModelID
Declaration
public const uint CityGateOpenModelID = 446U
Field Value
| Type | Description |
|---|---|
| UInt32 |
RMBSide
Declaration
public const float RMBSide = 102.4F
Field Value
| Type | Description |
|---|---|
| Single |
RMBTileSide
Declaration
public const float RMBTileSide = 6.4F
Field Value
| Type | Description |
|---|---|
| Single |
RMBTilesPerBlock
Declaration
public const int RMBTilesPerBlock = 16
Field Value
| Type | Description |
|---|---|
| Int32 |
RMBTilesPerTerrain
Declaration
public const int RMBTilesPerTerrain = 128
Field Value
| Type | Description |
|---|---|
| Int32 |
Methods
| Improve this Doc View SourceAddExteriorBlockFlats(ref DFBlock, Transform, Transform, Int32, Int32, ClimateNatureSets, ClimateSeason)
Add subrecord (building) exterior block flats.
Declaration
public static void AddExteriorBlockFlats(ref DFBlock blockData, Transform flatsParent, Transform lightsParent, int mapId, int locationIndex, ClimateNatureSets climateNature = ClimateNatureSets.TemperateWoodland, ClimateSeason climateSeason = ClimateSeason.Summer)
Parameters
| Type | Name | Description |
|---|---|---|
| DFBlock | blockData | |
| Transform | flatsParent | |
| Transform | lightsParent | |
| Int32 | mapId | |
| Int32 | locationIndex | |
| ClimateNatureSets | climateNature | |
| ClimateSeason | climateSeason |
AddGroundPlane(ref DFBlock, Transform, ClimateBases, ClimateSeason)
Add simple ground plane to block layout.
Declaration
public static GameObject AddGroundPlane(ref DFBlock blockData, Transform parent = null, ClimateBases climateBase = ClimateBases.Temperate, ClimateSeason climateSeason = ClimateSeason.Summer)
Parameters
| Type | Name | Description |
|---|---|---|
| DFBlock | blockData | |
| Transform | parent | |
| ClimateBases | climateBase | |
| ClimateSeason | climateSeason |
Returns
| Type | Description |
|---|---|
| GameObject |
AddLights(ref DFBlock, Transform, Transform, DaggerfallBillboardBatch)
Adds light flats and prefabs.
Declaration
public static void AddLights(ref DFBlock blockData, Transform flatsParent, Transform lightsParent, DaggerfallBillboardBatch billboardBatch = null)
Parameters
| Type | Name | Description |
|---|---|---|
| DFBlock | blockData | |
| Transform | flatsParent | |
| Transform | lightsParent | |
| DaggerfallBillboardBatch | billboardBatch |
AddMiscBlockFlats(ref DFBlock, Transform, Int32, Int32, DaggerfallBillboardBatch, TextureAtlasBuilder, DaggerfallBillboardBatch)
Add misc block flats. Batching is conditionally supported.
Declaration
public static void AddMiscBlockFlats(ref DFBlock blockData, Transform flatsParent, int mapId, int locationIndex, DaggerfallBillboardBatch animalsBillboardBatch = null, TextureAtlasBuilder miscBillboardsAtlas = null, DaggerfallBillboardBatch miscBillboardsBatch = null)
Parameters
| Type | Name | Description |
|---|---|---|
| DFBlock | blockData | |
| Transform | flatsParent | |
| Int32 | mapId | |
| Int32 | locationIndex | |
| DaggerfallBillboardBatch | animalsBillboardBatch | |
| TextureAtlasBuilder | miscBillboardsAtlas | |
| DaggerfallBillboardBatch | miscBillboardsBatch |
AddNatureFlats(ref DFBlock, Transform, DaggerfallBillboardBatch, ClimateNatureSets, ClimateSeason)
Add nature billboards.
Declaration
public static void AddNatureFlats(ref DFBlock blockData, Transform flatsParent, DaggerfallBillboardBatch billboardBatch = null, ClimateNatureSets climateNature = ClimateNatureSets.TemperateWoodland, ClimateSeason climateSeason = ClimateSeason.Summer)
Parameters
| Type | Name | Description |
|---|---|---|
| DFBlock | blockData | |
| Transform | flatsParent | |
| DaggerfallBillboardBatch | billboardBatch | |
| ClimateNatureSets | climateNature | |
| ClimateSeason | climateSeason |
AlignBillboardToBase(GameObject)
Aligns billboard GameObject to centre of base. This is required for exterior billboard.
Declaration
public static void AlignBillboardToBase(GameObject go)
Parameters
| Type | Name | Description |
|---|---|---|
| GameObject | go | GameObject with DaggerfallBillboard component. |
ClearLocationCache()
Clear the location cache. Use if block data is changed dynamically.
Declaration
public static void ClearLocationCache()
CreateBaseGameObject(ref DFBlock, Int32, Int32, DaggerfallRMBBlock)
Instantiate base RMB block by DFBlock data.
Declaration
public static GameObject CreateBaseGameObject(ref DFBlock blockData, int layoutX, int layoutY, DaggerfallRMBBlock cloneFrom = null)
Parameters
| Type | Name | Description |
|---|---|---|
| DFBlock | blockData | Block data. |
| Int32 | layoutX | X coordinate in parent map layout. |
| Int32 | layoutY | Y coordinate in parent map layout. |
| DaggerfallRMBBlock | cloneFrom | Prefab to clone from. |
Returns
| Type | Description |
|---|---|
| GameObject | Block GameObject. |
CreateBaseGameObject(String, Int32, Int32, out DFBlock, DaggerfallRMBBlock)
Create base RMB block by name and get back DFBlock data.
Declaration
public static GameObject CreateBaseGameObject(string blockName, int layoutX, int layoutY, out DFBlock blockDataOut, DaggerfallRMBBlock cloneFrom = null)
Parameters
| Type | Name | Description |
|---|---|---|
| String | blockName | Name of block. |
| Int32 | layoutX | X coordinate in parent map layout. |
| Int32 | layoutY | Y coordinate in parent map layout. |
| DFBlock | blockDataOut | DFBlock data out. |
| DaggerfallRMBBlock | cloneFrom | Prefab to clone from. |
Returns
| Type | Description |
|---|---|
| GameObject | Block GameObject. |
CreateBaseGameObject(String, Int32, Int32, DaggerfallRMBBlock)
Create base RMB block by name.
Declaration
public static GameObject CreateBaseGameObject(string blockName, int layoutX, int layoutY, DaggerfallRMBBlock cloneFrom = null)
Parameters
| Type | Name | Description |
|---|---|---|
| String | blockName | Name of block. |
| Int32 | layoutX | X coordinate in parent map layout. |
| Int32 | layoutY | Y coordinate in parent map layout. |
| DaggerfallRMBBlock | cloneFrom | Prefab to clone from. |
Returns
| Type | Description |
|---|---|
| GameObject | Block GameObject. |
GetBlockData(String, out DFBlock)
Gets block data with validation.
Declaration
public static bool GetBlockData(string blockName, out DFBlock blockDataOut)
Parameters
| Type | Name | Description |
|---|---|---|
| String | blockName | Block name. |
| DFBlock | blockDataOut | DFBlock data out. |
Returns
| Type | Description |
|---|---|
| Boolean | True if validated and successful. |
GetBuildingData(in DFBlock, Int32, Int32)
Gets BuildingSummary array generated from DFBlock data. DFBlock data should be provided from RMBLayout.GetLocationBuildingData() output. Otherwise not all building data will be present.
Declaration
public static BuildingSummary[] GetBuildingData(in DFBlock blockData, int layoutX = -1, int layoutY = -1)
Parameters
| Type | Name | Description |
|---|---|---|
| DFBlock | blockData | DFBlock data. |
| Int32 | layoutX | X coordindate in map layout used to generate building key. |
| Int32 | layoutY | Y coordindate in map layout used to generate building key. |
Returns
| Type | Description |
|---|---|
| BuildingSummary[] | BuildingSummary. |
GetLocationBuildingData(in DFLocation)
Gets all RMB blocks from a location populated with building data from MAPS.BSA. This method is using "best effort" process at this point in time. However, it does yield very accurate results most of the time. Please use exception handling when calling this method for now. It will be progressed over time.
Declaration
public static DFBlock[] GetLocationBuildingData(in DFLocation location)
Parameters
| Type | Name | Description |
|---|---|---|
| DFLocation | location | Location to use. |
Returns
| Type | Description |
|---|---|
| DFBlock[] |
GetModelScaleVector(DFBlock.RmbBlock3dObjectRecord)
Gets the model scale vector, converting zeros to 1s if needed.
Declaration
public static Vector3 GetModelScaleVector(DFBlock.RmbBlock3dObjectRecord obj)
Parameters
| Type | Name | Description |
|---|---|---|
| DFBlock.RmbBlock3dObjectRecord | obj | RmbBlock3dObjectRecord structure |
Returns
| Type | Description |
|---|---|
| Vector3 | Vector3 with the scaling factors |
IsNamedBuilding(DFLocation.BuildingTypes)
Checks if building type is a special named building.
Declaration
public static bool IsNamedBuilding(DFLocation.BuildingTypes buildingType)
Parameters
| Type | Name | Description |
|---|---|---|
| DFLocation.BuildingTypes | buildingType |
Returns
| Type | Description |
|---|---|
| Boolean |
IsRepairShop(DFLocation.BuildingTypes)
Checks if building is a shop which offers repair service.
Declaration
public static bool IsRepairShop(DFLocation.BuildingTypes buildingType)
Parameters
| Type | Name | Description |
|---|---|---|
| DFLocation.BuildingTypes | buildingType |
Returns
| Type | Description |
|---|---|
| Boolean |
IsResidence(DFLocation.BuildingTypes)
Checks if building is a residence.
Declaration
public static bool IsResidence(DFLocation.BuildingTypes buildingType)
Parameters
| Type | Name | Description |
|---|---|---|
| DFLocation.BuildingTypes | buildingType |
Returns
| Type | Description |
|---|---|
| Boolean |
IsShop(DFLocation.BuildingTypes)
Checks if building is a shop with quality text.
Declaration
public static bool IsShop(DFLocation.BuildingTypes buildingType)
Parameters
| Type | Name | Description |
|---|---|---|
| DFLocation.BuildingTypes | buildingType |
Returns
| Type | Description |
|---|---|
| Boolean |
IsTavern(DFLocation.BuildingTypes)
Checks if building is a tavern.
Declaration
public static bool IsTavern(DFLocation.BuildingTypes buildingType)
Parameters
| Type | Name | Description |
|---|---|---|
| DFLocation.BuildingTypes | buildingType |
Returns
| Type | Description |
|---|---|
| Boolean |