aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/EventManager.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/EventManager.cs')
-rw-r--r--OpenSim/Region/Framework/Scenes/EventManager.cs55
1 files changed, 55 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Scenes/EventManager.cs b/OpenSim/Region/Framework/Scenes/EventManager.cs
index 052a05e..4733547 100644
--- a/OpenSim/Region/Framework/Scenes/EventManager.cs
+++ b/OpenSim/Region/Framework/Scenes/EventManager.cs
@@ -792,6 +792,19 @@ namespace OpenSim.Region.Framework.Scenes
792 public delegate void ObjectBeingRemovedFromScene(SceneObjectGroup obj); 792 public delegate void ObjectBeingRemovedFromScene(SceneObjectGroup obj);
793 793
794 /// <summary> 794 /// <summary>
795 /// Triggered when an object is placed into the physical scene (PhysicsActor created).
796 /// </summary>
797 public event Action<SceneObjectPart> OnObjectAddedToPhysicalScene;
798 /// <summary>
799 /// Triggered when an object is removed from the physical scene (PhysicsActor destroyed).
800 /// </summary>
801 /// <remarks>
802 /// Note: this is triggered just before the PhysicsActor is removed from the
803 /// physics engine so the receiver can do any necessary cleanup before its destruction.
804 /// </remarks>
805 public event Action<SceneObjectPart> OnObjectRemovedFromPhysicalScene;
806
807 /// <summary>
795 /// Triggered when an object is removed from the scene. 808 /// Triggered when an object is removed from the scene.
796 /// </summary> 809 /// </summary>
797 /// <remarks> 810 /// <remarks>
@@ -1541,6 +1554,48 @@ namespace OpenSim.Region.Framework.Scenes
1541 } 1554 }
1542 } 1555 }
1543 1556
1557 public void TriggerObjectAddedToPhysicalScene(SceneObjectPart obj)
1558 {
1559 Action<SceneObjectPart> handler = OnObjectAddedToPhysicalScene;
1560 if (handler != null)
1561 {
1562 foreach (Action<SceneObjectPart> d in handler.GetInvocationList())
1563 {
1564 try
1565 {
1566 d(obj);
1567 }
1568 catch (Exception e)
1569 {
1570 m_log.ErrorFormat(
1571 "[EVENT MANAGER]: Delegate for TriggerObjectAddedToPhysicalScene failed - continuing. {0} {1}",
1572 e.Message, e.StackTrace);
1573 }
1574 }
1575 }
1576 }
1577
1578 public void TriggerObjectRemovedFromPhysicalScene(SceneObjectPart obj)
1579 {
1580 Action<SceneObjectPart> handler = OnObjectRemovedFromPhysicalScene;
1581 if (handler != null)
1582 {
1583 foreach (Action<SceneObjectPart> d in handler.GetInvocationList())
1584 {
1585 try
1586 {
1587 d(obj);
1588 }
1589 catch (Exception e)
1590 {
1591 m_log.ErrorFormat(
1592 "[EVENT MANAGER]: Delegate for TriggerObjectRemovedFromPhysicalScene failed - continuing. {0} {1}",
1593 e.Message, e.StackTrace);
1594 }
1595 }
1596 }
1597 }
1598
1544 public void TriggerShutdown() 1599 public void TriggerShutdown()
1545 { 1600 {
1546 Action handlerShutdown = OnShutdown; 1601 Action handlerShutdown = OnShutdown;