private void AddRDBLight(DFBlock.RdbObject obj, Transform parent) { // Do nothing if import option not enabled if (!dfUnity.Option_ImportPointLights) { return; } // Spawn light gameobject float radius = obj.Resources.LightResource.Radius * MeshReader.GlobalScale; GameObject go = GameObjectHelper.CreateDaggerfallRDBPointLight(radius, parent); Vector3 lightPosition = new Vector3(obj.XPos, -obj.YPos, obj.ZPos) * MeshReader.GlobalScale; // Add component DaggerfallLight c = go.AddComponent <DaggerfallLight>(); if (dfUnity.Option_AnimatedPointLights) { c.Animate = true; } // Set transform go.transform.position = lightPosition; }
public static void AddBlockFlats( DaggerfallUnity dfUnity, ref DFBlock blockData, Transform parent = null) { // Add block flats foreach (DFBlock.RmbBlockFlatObjectRecord obj in blockData.RmbBlock.MiscFlatObjectRecords) { // Spawn billboard gameobject GameObject go = GameObjectHelper.CreateDaggerfallBillboardGameObject(obj.TextureArchive, obj.TextureRecord, parent); go.transform.position = new Vector3( obj.XPos, -obj.YPos + BlockFlatsOffsetY, obj.ZPos + BlocksFile.RMBDimension) * MeshReader.GlobalScale; // Add lights if (obj.TextureArchive == 210 && dfUnity.Option_ImportPointLights) { // Spawn light gameobject Vector2 size = dfUnity.MeshReader.GetScaledBillboardSize(210, obj.TextureRecord); GameObject lightgo = GameObjectHelper.CreateDaggerfallRMBPointLight(go.transform); lightgo.transform.position = new Vector3( obj.XPos, -obj.YPos + size.y, obj.ZPos + BlocksFile.RMBDimension) * MeshReader.GlobalScale; // Animate light DaggerfallLight c = lightgo.AddComponent <DaggerfallLight>(); c.ParentBillboard = go.GetComponent <DaggerfallBillboard>(); if (dfUnity.Option_AnimatedPointLights) { c.Animate = true; } } } }