aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/Framework/Scenes/EventManager.cs24
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPart.cs4
2 files changed, 28 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Scenes/EventManager.cs b/OpenSim/Region/Framework/Scenes/EventManager.cs
index fd35c62..3d96f40 100644
--- a/OpenSim/Region/Framework/Scenes/EventManager.cs
+++ b/OpenSim/Region/Framework/Scenes/EventManager.cs
@@ -398,6 +398,9 @@ namespace OpenSim.Region.Framework.Scenes
398 public event SceneObjectPartCopyDelegate OnSceneObjectPartCopy; 398 public event SceneObjectPartCopyDelegate OnSceneObjectPartCopy;
399 public delegate void SceneObjectPartCopyDelegate(SceneObjectPart copy, SceneObjectPart original, bool userExposed); 399 public delegate void SceneObjectPartCopyDelegate(SceneObjectPart copy, SceneObjectPart original, bool userExposed);
400 400
401 public delegate void SceneObjectPartUpdated(SceneObjectPart sop);
402 public event SceneObjectPartUpdated OnSceneObjectPartUpdated;
403
401 public delegate void RegionUp(GridRegion region); 404 public delegate void RegionUp(GridRegion region);
402 public event RegionUp OnRegionUp; 405 public event RegionUp OnRegionUp;
403 406
@@ -2203,6 +2206,27 @@ namespace OpenSim.Region.Framework.Scenes
2203 } 2206 }
2204 } 2207 }
2205 2208
2209 public void TriggerSceneObjectPartUpdated(SceneObjectPart sop)
2210 {
2211 SceneObjectPartUpdated handler = OnSceneObjectPartUpdated;
2212 if (handler != null)
2213 {
2214 foreach (SceneObjectPartUpdated d in handler.GetInvocationList())
2215 {
2216 try
2217 {
2218 d(sop);
2219 }
2220 catch (Exception e)
2221 {
2222 m_log.ErrorFormat(
2223 "[EVENT MANAGER]: Delegate for TriggerSceneObjectPartUpdated failed - continuing. {0} {1}",
2224 e.Message, e.StackTrace);
2225 }
2226 }
2227 }
2228 }
2229
2206 public void TriggerOnParcelPropertiesUpdateRequest(LandUpdateArgs args, 2230 public void TriggerOnParcelPropertiesUpdateRequest(LandUpdateArgs args,
2207 int local_id, IClientAPI remote_client) 2231 int local_id, IClientAPI remote_client)
2208 { 2232 {
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index a70c8fa..8e59abf 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -2733,6 +2733,8 @@ namespace OpenSim.Region.Framework.Scenes
2733 if (ParentGroup == null) 2733 if (ParentGroup == null)
2734 return; 2734 return;
2735 2735
2736 ParentGroup.Scene.EventManager.TriggerSceneObjectPartUpdated(this);
2737
2736 ParentGroup.QueueForUpdateCheck(); 2738 ParentGroup.QueueForUpdateCheck();
2737 2739
2738 int timeNow = Util.UnixTimeSinceEpoch(); 2740 int timeNow = Util.UnixTimeSinceEpoch();
@@ -2765,6 +2767,8 @@ namespace OpenSim.Region.Framework.Scenes
2765 if (ParentGroup == null) 2767 if (ParentGroup == null)
2766 return; 2768 return;
2767 2769
2770 ParentGroup.Scene.EventManager.TriggerSceneObjectPartUpdated(this);
2771
2768 // This was pulled from SceneViewer. Attachments always receive full updates. 2772 // This was pulled from SceneViewer. Attachments always receive full updates.
2769 // I could not verify if this is a requirement but this maintains existing behavior 2773 // I could not verify if this is a requirement but this maintains existing behavior
2770 if (ParentGroup.IsAttachment) 2774 if (ParentGroup.IsAttachment)