From 9759b2a4bb5e5e2bed4c74cea05be58640c8e7c3 Mon Sep 17 00:00:00 2001
From: Diva Canto
Date: Wed, 8 Jun 2011 15:18:14 -0700
Subject: Added EventManager.OnPrimsLoaded, an event that modules can hook up
 onto so that they know when the scene's objects have been loaded from the DB.

---
 OpenSim/Region/Framework/Scenes/EventManager.cs | 24 ++++++++++++++++++++++++
 OpenSim/Region/Framework/Scenes/Scene.cs        |  1 +
 2 files changed, 25 insertions(+)

diff --git a/OpenSim/Region/Framework/Scenes/EventManager.cs b/OpenSim/Region/Framework/Scenes/EventManager.cs
index b43d5f0..b67937d 100644
--- a/OpenSim/Region/Framework/Scenes/EventManager.cs
+++ b/OpenSim/Region/Framework/Scenes/EventManager.cs
@@ -392,6 +392,9 @@ namespace OpenSim.Region.Framework.Scenes
         public delegate void LoginsEnabled(string regionName);
         public event LoginsEnabled OnLoginsEnabled;
 
+        public delegate void PrimsLoaded(Scene s);
+        public event PrimsLoaded OnPrimsLoaded;
+
         public class MoneyTransferArgs : EventArgs
         {
             public UUID sender;
@@ -2242,5 +2245,26 @@ namespace OpenSim.Region.Framework.Scenes
                 }
             }
         }
+
+        public void TriggerPrimsLoaded(Scene s)
+        {
+            PrimsLoaded handler = OnPrimsLoaded;
+
+            if (handler != null)
+            {
+                foreach (PrimsLoaded d in handler.GetInvocationList())
+                {
+                    try
+                    {
+                        d(s);
+                    }
+                    catch (Exception e)
+                    {
+                        m_log.ErrorFormat("[EVENT MANAGER]: Delegate for PrimsLoaded failed - continuing {0} - {1}",
+                            e.Message, e.StackTrace);
+                    }
+                }
+            }
+        }
     }
 }
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 588d627..f122b58 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -1754,6 +1754,7 @@ namespace OpenSim.Region.Framework.Scenes
 
             m_log.Info("[SCENE]: Loaded " + PrimsFromDB.Count.ToString() + " SceneObject(s)");
             LoadingPrims = false;
+            EventManager.TriggerPrimsLoaded(this);
         }
 
 
-- 
cgit v1.1