Example #1
0
        /// <summary>
        /// Overidden function; additionally reloads the custom lighting file
        /// </summary>
        public override void OnCreateAllEngineInstances(ProgressStatus progress)
        {
            string meshAbsFilename = Path.Combine(this.LayerDirectoryName, "StaticLightingInfo.lit");
              EditorManager.EngineManager.InitStaticLightingMode(meshAbsFilename);

              // load global lightgrid first
              EditorManager.EngineManager.ReloadLightingFiles(FileName, null); // removes extension for us...

              // scale down range (20%..90%)
              if (progress != null)
            progress.SetRange(progress.Percentage, 90.0f);

              base.OnCreateAllEngineInstances(progress);

              if (progress != null)
              {
            progress.SetRange(0.0f, 100.0f); // full range again
            progress.StatusString = "Reload lighting files";
              }

              // reload lighting file
              EditorManager.EngineManager.ReloadStaticLightingMeshes(null, meshAbsFilename);
              string basename = FileNameNoExt + "_";

              // also for every zone in the scene
              foreach (Zone zone in Zones)
              {
            if (!zone.Loaded)
              continue;

            meshAbsFilename = Path.Combine(this.LayerDirectoryName, "StaticLightingInfo_" + zone.ZoneName + ".lit");
            EditorManager.EngineManager.ReloadStaticLightingMeshes(zone, meshAbsFilename);
            EditorManager.EngineManager.ReloadLightingFiles(basename + zone.ZoneName, zone);
              }

              // trigger the event
              EditorManager.TriggerSceneEvent(SceneEventArgs.Action.StaticLightingLoaded, true);

              if (progress != null)
              {
            progress.StatusString = "Finalizing...";
            progress.Percentage = 98.0f;
              }
        }