diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/EventManager.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/EventManager.cs | 291 |
1 files changed, 259 insertions, 32 deletions
diff --git a/OpenSim/Region/Framework/Scenes/EventManager.cs b/OpenSim/Region/Framework/Scenes/EventManager.cs index 4c49b71..97b9482 100644 --- a/OpenSim/Region/Framework/Scenes/EventManager.cs +++ b/OpenSim/Region/Framework/Scenes/EventManager.cs | |||
@@ -144,7 +144,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
144 | /// Triggered when a new presence is added to the scene | 144 | /// Triggered when a new presence is added to the scene |
145 | /// </summary> | 145 | /// </summary> |
146 | /// <remarks> | 146 | /// <remarks> |
147 | /// Triggered in <see cref="OpenSim.Region.Framework.Scenes.Scene.AddNewClient"/> which is used by both | 147 | /// Triggered in <see cref="OpenSim.Region.Framework.Scenes.Scene.AddNewAgent"/> which is used by both |
148 | /// <see cref="OpenSim.Framework.PresenceType.User">users</see> and <see cref="OpenSim.Framework.PresenceType.Npc">NPCs</see> | 148 | /// <see cref="OpenSim.Framework.PresenceType.User">users</see> and <see cref="OpenSim.Framework.PresenceType.Npc">NPCs</see> |
149 | /// </remarks> | 149 | /// </remarks> |
150 | public event OnNewPresenceDelegate OnNewPresence; | 150 | public event OnNewPresenceDelegate OnNewPresence; |
@@ -155,7 +155,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
155 | /// Triggered when a presence is removed from the scene | 155 | /// Triggered when a presence is removed from the scene |
156 | /// </summary> | 156 | /// </summary> |
157 | /// <remarks> | 157 | /// <remarks> |
158 | /// Triggered in <see cref="OpenSim.Region.Framework.Scenes.Scene.AddNewClient"/> which is used by both | 158 | /// Triggered in <see cref="OpenSim.Region.Framework.Scenes.Scene.AddNewAgent"/> which is used by both |
159 | /// <see cref="OpenSim.Framework.PresenceType.User">users</see> and <see cref="OpenSim.Framework.PresenceType.Npc">NPCs</see> | 159 | /// <see cref="OpenSim.Framework.PresenceType.User">users</see> and <see cref="OpenSim.Framework.PresenceType.Npc">NPCs</see> |
160 | /// | 160 | /// |
161 | /// Triggered under per-agent lock. So if you want to perform any long-running operations, please | 161 | /// Triggered under per-agent lock. So if you want to perform any long-running operations, please |
@@ -339,6 +339,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
339 | /// in <see cref="Scene.SetScriptRunning"/> | 339 | /// in <see cref="Scene.SetScriptRunning"/> |
340 | /// via <see cref="OpenSim.Framework.IClientAPI.OnSetScriptRunning"/>, | 340 | /// via <see cref="OpenSim.Framework.IClientAPI.OnSetScriptRunning"/>, |
341 | /// via <see cref="OpenSim.Region.ClientStack.LindenUDP.HandleSetScriptRunning"/> | 341 | /// via <see cref="OpenSim.Region.ClientStack.LindenUDP.HandleSetScriptRunning"/> |
342 | /// XXX: This is only triggered when it is the client that starts the script, not in other situations where | ||
343 | /// a script is started, unlike OnStopScript! | ||
342 | /// </remarks> | 344 | /// </remarks> |
343 | public event StartScript OnStartScript; | 345 | public event StartScript OnStartScript; |
344 | 346 | ||
@@ -352,6 +354,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
352 | /// in <see cref="SceneObjectPartInventory.CreateScriptInstance"/>, | 354 | /// in <see cref="SceneObjectPartInventory.CreateScriptInstance"/>, |
353 | /// <see cref="SceneObjectPartInventory.StopScriptInstance"/>, | 355 | /// <see cref="SceneObjectPartInventory.StopScriptInstance"/>, |
354 | /// <see cref="Scene.SetScriptRunning"/> | 356 | /// <see cref="Scene.SetScriptRunning"/> |
357 | /// XXX: This is triggered when a sciprt is stopped for any reason, unlike OnStartScript! | ||
355 | /// </remarks> | 358 | /// </remarks> |
356 | public event StopScript OnStopScript; | 359 | public event StopScript OnStopScript; |
357 | 360 | ||
@@ -427,6 +430,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
427 | public delegate void IncomingInstantMessage(GridInstantMessage message); | 430 | public delegate void IncomingInstantMessage(GridInstantMessage message); |
428 | public event IncomingInstantMessage OnIncomingInstantMessage; | 431 | public event IncomingInstantMessage OnIncomingInstantMessage; |
429 | 432 | ||
433 | public delegate void CrossAgentToNewRegion(ScenePresence sp, bool isFlying, GridRegion newRegion); | ||
434 | public event CrossAgentToNewRegion OnCrossAgentToNewRegion; | ||
435 | |||
430 | public event IncomingInstantMessage OnUnhandledInstantMessage; | 436 | public event IncomingInstantMessage OnUnhandledInstantMessage; |
431 | 437 | ||
432 | public delegate void ClientClosed(UUID clientID, Scene scene); | 438 | public delegate void ClientClosed(UUID clientID, Scene scene); |
@@ -546,6 +552,20 @@ namespace OpenSim.Region.Framework.Scenes | |||
546 | /// </remarks> | 552 | /// </remarks> |
547 | public event ScriptControlEvent OnScriptControlEvent; | 553 | public event ScriptControlEvent OnScriptControlEvent; |
548 | 554 | ||
555 | public delegate void ScriptMovingStartEvent(uint localID); | ||
556 | |||
557 | /// <summary> | ||
558 | /// TODO: Should be triggered when a physics object starts moving. | ||
559 | /// </summary> | ||
560 | public event ScriptMovingStartEvent OnScriptMovingStartEvent; | ||
561 | |||
562 | public delegate void ScriptMovingEndEvent(uint localID); | ||
563 | |||
564 | /// <summary> | ||
565 | /// TODO: Should be triggered when a physics object stops moving. | ||
566 | /// </summary> | ||
567 | public event ScriptMovingEndEvent OnScriptMovingEndEvent; | ||
568 | |||
549 | public delegate void ScriptAtTargetEvent(uint localID, uint handle, Vector3 targetpos, Vector3 atpos); | 569 | public delegate void ScriptAtTargetEvent(uint localID, uint handle, Vector3 targetpos, Vector3 atpos); |
550 | 570 | ||
551 | /// <summary> | 571 | /// <summary> |
@@ -612,8 +632,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
612 | /// Triggered by <see cref="TriggerScriptCollidingStart"/> | 632 | /// Triggered by <see cref="TriggerScriptCollidingStart"/> |
613 | /// in <see cref="SceneObjectPart.SendCollisionEvent"/> | 633 | /// in <see cref="SceneObjectPart.SendCollisionEvent"/> |
614 | /// via <see cref="SceneObjectPart.PhysicsCollision"/> | 634 | /// via <see cref="SceneObjectPart.PhysicsCollision"/> |
615 | /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.OnCollisionUpdate"/> | 635 | /// via <see cref="OpenSim.Region.PhysicsModule.SharedBase.PhysicsActor.OnCollisionUpdate"/> |
616 | /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.SendCollisionUpdate"/> | 636 | /// via <see cref="OpenSim.Region.PhysicsModule.SharedBase.PhysicsActor.SendCollisionUpdate"/> |
617 | /// </remarks> | 637 | /// </remarks> |
618 | public event ScriptColliding OnScriptColliderStart; | 638 | public event ScriptColliding OnScriptColliderStart; |
619 | 639 | ||
@@ -626,8 +646,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
626 | /// Triggered by <see cref="TriggerScriptColliding"/> | 646 | /// Triggered by <see cref="TriggerScriptColliding"/> |
627 | /// in <see cref="SceneObjectPart.SendCollisionEvent"/> | 647 | /// in <see cref="SceneObjectPart.SendCollisionEvent"/> |
628 | /// via <see cref="SceneObjectPart.PhysicsCollision"/> | 648 | /// via <see cref="SceneObjectPart.PhysicsCollision"/> |
629 | /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.OnCollisionUpdate"/> | 649 | /// via <see cref="OpenSim.Region.PhysicsModule.SharedBase.PhysicsActor.OnCollisionUpdate"/> |
630 | /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.SendCollisionUpdate"/> | 650 | /// via <see cref="OpenSim.Region.PhysicsModule.SharedBase.PhysicsActor.SendCollisionUpdate"/> |
631 | /// </remarks> | 651 | /// </remarks> |
632 | public event ScriptColliding OnScriptColliding; | 652 | public event ScriptColliding OnScriptColliding; |
633 | 653 | ||
@@ -639,8 +659,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
639 | /// Triggered by <see cref="TriggerScriptCollidingEnd"/> | 659 | /// Triggered by <see cref="TriggerScriptCollidingEnd"/> |
640 | /// in <see cref="SceneObjectPart.SendCollisionEvent"/> | 660 | /// in <see cref="SceneObjectPart.SendCollisionEvent"/> |
641 | /// via <see cref="SceneObjectPart.PhysicsCollision"/> | 661 | /// via <see cref="SceneObjectPart.PhysicsCollision"/> |
642 | /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.OnCollisionUpdate"/> | 662 | /// via <see cref="OpenSim.Region.PhysicsModule.SharedBase.PhysicsActor.OnCollisionUpdate"/> |
643 | /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.SendCollisionUpdate"/> | 663 | /// via <see cref="OpenSim.Region.PhysicsModule.SharedBase.PhysicsActor.SendCollisionUpdate"/> |
644 | /// </remarks> | 664 | /// </remarks> |
645 | public event ScriptColliding OnScriptCollidingEnd; | 665 | public event ScriptColliding OnScriptCollidingEnd; |
646 | 666 | ||
@@ -652,8 +672,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
652 | /// Triggered by <see cref="TriggerScriptLandCollidingStart"/> | 672 | /// Triggered by <see cref="TriggerScriptLandCollidingStart"/> |
653 | /// in <see cref="SceneObjectPart.SendLandCollisionEvent"/> | 673 | /// in <see cref="SceneObjectPart.SendLandCollisionEvent"/> |
654 | /// via <see cref="SceneObjectPart.PhysicsCollision"/> | 674 | /// via <see cref="SceneObjectPart.PhysicsCollision"/> |
655 | /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.OnCollisionUpdate"/> | 675 | /// via <see cref="OpenSim.Region.PhysicsModule.SharedBase.PhysicsActor.OnCollisionUpdate"/> |
656 | /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.SendCollisionUpdate"/> | 676 | /// via <see cref="OpenSim.Region.PhysicsModule.SharedBase.PhysicsActor.SendCollisionUpdate"/> |
657 | /// </remarks> | 677 | /// </remarks> |
658 | public event ScriptColliding OnScriptLandColliderStart; | 678 | public event ScriptColliding OnScriptLandColliderStart; |
659 | 679 | ||
@@ -665,8 +685,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
665 | /// Triggered by <see cref="TriggerScriptLandColliding"/> | 685 | /// Triggered by <see cref="TriggerScriptLandColliding"/> |
666 | /// in <see cref="SceneObjectPart.SendLandCollisionEvent"/> | 686 | /// in <see cref="SceneObjectPart.SendLandCollisionEvent"/> |
667 | /// via <see cref="SceneObjectPart.PhysicsCollision"/> | 687 | /// via <see cref="SceneObjectPart.PhysicsCollision"/> |
668 | /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.OnCollisionUpdate"/> | 688 | /// via <see cref="OpenSim.Region.PhysicsModule.SharedBase.PhysicsActor.OnCollisionUpdate"/> |
669 | /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.SendCollisionUpdate"/> | 689 | /// via <see cref="OpenSim.Region.PhysicsModule.SharedBase.PhysicsActor.SendCollisionUpdate"/> |
670 | /// </remarks> | 690 | /// </remarks> |
671 | public event ScriptColliding OnScriptLandColliding; | 691 | public event ScriptColliding OnScriptLandColliding; |
672 | 692 | ||
@@ -678,8 +698,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
678 | /// Triggered by <see cref="TriggerScriptLandCollidingEnd"/> | 698 | /// Triggered by <see cref="TriggerScriptLandCollidingEnd"/> |
679 | /// in <see cref="SceneObjectPart.SendLandCollisionEvent"/> | 699 | /// in <see cref="SceneObjectPart.SendLandCollisionEvent"/> |
680 | /// via <see cref="SceneObjectPart.PhysicsCollision"/> | 700 | /// via <see cref="SceneObjectPart.PhysicsCollision"/> |
681 | /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.OnCollisionUpdate"/> | 701 | /// via <see cref="OpenSim.Region.PhysicsModule.SharedBase.PhysicsActor.OnCollisionUpdate"/> |
682 | /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.SendCollisionUpdate"/> | 702 | /// via <see cref="OpenSim.Region.PhysicsModule.SharedBase.PhysicsActor.SendCollisionUpdate"/> |
683 | /// </remarks> | 703 | /// </remarks> |
684 | public event ScriptColliding OnScriptLandColliderEnd; | 704 | public event ScriptColliding OnScriptLandColliderEnd; |
685 | 705 | ||
@@ -725,7 +745,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
725 | public event OnIncomingSceneObjectDelegate OnIncomingSceneObject; | 745 | public event OnIncomingSceneObjectDelegate OnIncomingSceneObject; |
726 | public delegate void OnIncomingSceneObjectDelegate(SceneObjectGroup so); | 746 | public delegate void OnIncomingSceneObjectDelegate(SceneObjectGroup so); |
727 | 747 | ||
728 | public delegate void NewInventoryItemUploadComplete(UUID avatarID, UUID assetID, string name, int userlevel); | 748 | public delegate void NewInventoryItemUploadComplete(UUID avatarID, AssetType type, UUID assetID, string name, int userlevel); |
729 | 749 | ||
730 | public event NewInventoryItemUploadComplete OnNewInventoryItemUploadComplete; | 750 | public event NewInventoryItemUploadComplete OnNewInventoryItemUploadComplete; |
731 | 751 | ||
@@ -751,7 +771,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
751 | public event ScriptTimerEvent OnScriptTimerEvent; | 771 | public event ScriptTimerEvent OnScriptTimerEvent; |
752 | */ | 772 | */ |
753 | 773 | ||
754 | public delegate void EstateToolsSunUpdate(ulong regionHandle, bool FixedTime, bool EstateSun, float LindenHour); | 774 | public delegate void EstateToolsSunUpdate(ulong regionHandle); |
755 | public delegate void GetScriptRunning(IClientAPI controllingClient, UUID objectID, UUID itemID); | 775 | public delegate void GetScriptRunning(IClientAPI controllingClient, UUID objectID, UUID itemID); |
756 | 776 | ||
757 | public event EstateToolsSunUpdate OnEstateToolsSunUpdate; | 777 | public event EstateToolsSunUpdate OnEstateToolsSunUpdate; |
@@ -766,12 +786,20 @@ namespace OpenSim.Region.Framework.Scenes | |||
766 | /// <see cref="Scene.doObjectDuplicateOnRay"/> | 786 | /// <see cref="Scene.doObjectDuplicateOnRay"/> |
767 | /// </remarks> | 787 | /// </remarks> |
768 | public event Action<SceneObjectGroup> OnObjectAddedToScene; | 788 | public event Action<SceneObjectGroup> OnObjectAddedToScene; |
769 | 789 | ||
770 | /// <summary> | 790 | /// <summary> |
771 | /// Delegate for <see cref="OnObjectBeingRemovedFromScene"/> | 791 | /// When a client sends a derez request for an object inworld |
792 | /// but before the object is deleted | ||
772 | /// </summary> | 793 | /// </summary> |
773 | /// <param name="obj">The object being removed from the scene</param> | 794 | public event DeRezRequested OnDeRezRequested; |
774 | public delegate void ObjectBeingRemovedFromScene(SceneObjectGroup obj); | 795 | /// <summary> |
796 | /// Triggered when a client sends a derez request for an object inworld | ||
797 | /// </summary> | ||
798 | /// <param name="remoteClient">The client question (it can be null)</param> | ||
799 | /// <param name="obj">The object in question</param> | ||
800 | /// <param name="action">The exact derez action</param> | ||
801 | /// <returns>Flag indicating whether the object should be deleted from the scene or not</returns> | ||
802 | public delegate bool DeRezRequested(IClientAPI remoteClient, List<SceneObjectGroup> objs, DeRezAction action); | ||
775 | 803 | ||
776 | /// <summary> | 804 | /// <summary> |
777 | /// Triggered when an object is removed from the scene. | 805 | /// Triggered when an object is removed from the scene. |
@@ -781,6 +809,24 @@ namespace OpenSim.Region.Framework.Scenes | |||
781 | /// in <see cref="Scene.DeleteSceneObject"/> | 809 | /// in <see cref="Scene.DeleteSceneObject"/> |
782 | /// </remarks> | 810 | /// </remarks> |
783 | public event ObjectBeingRemovedFromScene OnObjectBeingRemovedFromScene; | 811 | public event ObjectBeingRemovedFromScene OnObjectBeingRemovedFromScene; |
812 | /// <summary> | ||
813 | /// Delegate for <see cref="OnObjectBeingRemovedFromScene"/> | ||
814 | /// </summary> | ||
815 | /// <param name="obj">The object being removed from the scene</param> | ||
816 | public delegate void ObjectBeingRemovedFromScene(SceneObjectGroup obj); | ||
817 | |||
818 | /// <summary> | ||
819 | /// Triggered when an object is placed into the physical scene (PhysicsActor created). | ||
820 | /// </summary> | ||
821 | public event Action<SceneObjectPart> OnObjectAddedToPhysicalScene; | ||
822 | /// <summary> | ||
823 | /// Triggered when an object is removed from the physical scene (PhysicsActor destroyed). | ||
824 | /// </summary> | ||
825 | /// <remarks> | ||
826 | /// Note: this is triggered just before the PhysicsActor is removed from the | ||
827 | /// physics engine so the receiver can do any necessary cleanup before its destruction. | ||
828 | /// </remarks> | ||
829 | public event Action<SceneObjectPart> OnObjectRemovedFromPhysicalScene; | ||
784 | 830 | ||
785 | public delegate void NoticeNoLandDataFromStorage(); | 831 | public delegate void NoticeNoLandDataFromStorage(); |
786 | public event NoticeNoLandDataFromStorage OnNoticeNoLandDataFromStorage; | 832 | public event NoticeNoLandDataFromStorage OnNoticeNoLandDataFromStorage; |
@@ -939,6 +985,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
939 | public delegate void RegionStarted(Scene scene); | 985 | public delegate void RegionStarted(Scene scene); |
940 | public event RegionStarted OnRegionStarted; | 986 | public event RegionStarted OnRegionStarted; |
941 | 987 | ||
988 | public delegate void RegionHeartbeatStart(Scene scene); | ||
989 | public event RegionHeartbeatStart OnRegionHeartbeatStart; | ||
942 | public delegate void RegionHeartbeatEnd(Scene scene); | 990 | public delegate void RegionHeartbeatEnd(Scene scene); |
943 | public event RegionHeartbeatEnd OnRegionHeartbeatEnd; | 991 | public event RegionHeartbeatEnd OnRegionHeartbeatEnd; |
944 | 992 | ||
@@ -989,6 +1037,16 @@ namespace OpenSim.Region.Framework.Scenes | |||
989 | /// </remarks> | 1037 | /// </remarks> |
990 | public event TeleportFail OnTeleportFail; | 1038 | public event TeleportFail OnTeleportFail; |
991 | 1039 | ||
1040 | // public delegate void GatherUuids(SceneObjectPart sop, IDictionary<UUID, AssetType> assetUuids); | ||
1041 | // | ||
1042 | // /// <summary> | ||
1043 | // /// Triggered when UUIDs referenced by a scene object are being gathered for archiving, hg transfer, etc. | ||
1044 | // /// </summary> | ||
1045 | // /// <remarks> | ||
1046 | // /// The listener should add references to the IDictionary<UUID, AssetType> as appropriate. | ||
1047 | // /// </remarks> | ||
1048 | // public event GatherUuids OnGatherUuids; | ||
1049 | |||
992 | public class MoneyTransferArgs : EventArgs | 1050 | public class MoneyTransferArgs : EventArgs |
993 | { | 1051 | { |
994 | public UUID sender; | 1052 | public UUID sender; |
@@ -1060,7 +1118,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1060 | /// Triggered in <see cref="OpenSim.Region.Framework.Scenes.Scene.ProcessMoneyTransferRequest"/> | 1118 | /// Triggered in <see cref="OpenSim.Region.Framework.Scenes.Scene.ProcessMoneyTransferRequest"/> |
1061 | /// via <see cref="OpenSim.Region.Framework.Scenes.Scene.SubscribeToClientGridEvents"/> | 1119 | /// via <see cref="OpenSim.Region.Framework.Scenes.Scene.SubscribeToClientGridEvents"/> |
1062 | /// via <see cref="OpenSim.Region.Framework.Scenes.Scene.SubscribeToClientEvents"/> | 1120 | /// via <see cref="OpenSim.Region.Framework.Scenes.Scene.SubscribeToClientEvents"/> |
1063 | /// via <see cref="OpenSim.Region.Framework.Scenes.Scene.AddNewClient"/> | 1121 | /// via <see cref="OpenSim.Region.Framework.Scenes.Scene.AddNewAgent"/> |
1064 | /// </remarks> | 1122 | /// </remarks> |
1065 | public event MoneyTransferEvent OnMoneyTransfer; | 1123 | public event MoneyTransferEvent OnMoneyTransfer; |
1066 | 1124 | ||
@@ -1476,8 +1534,33 @@ namespace OpenSim.Region.Framework.Scenes | |||
1476 | } | 1534 | } |
1477 | } | 1535 | } |
1478 | } | 1536 | } |
1479 | } | 1537 | } |
1480 | 1538 | ||
1539 | public bool TriggerDeRezRequested(IClientAPI client, List<SceneObjectGroup> objs, DeRezAction action) | ||
1540 | { | ||
1541 | bool canDeRez = true; | ||
1542 | |||
1543 | DeRezRequested handlerDeRezRequested = OnDeRezRequested; | ||
1544 | if (handlerDeRezRequested != null) | ||
1545 | { | ||
1546 | foreach (DeRezRequested d in handlerDeRezRequested.GetInvocationList()) | ||
1547 | { | ||
1548 | try | ||
1549 | { | ||
1550 | canDeRez &= d(client, objs, action); | ||
1551 | } | ||
1552 | catch (Exception e) | ||
1553 | { | ||
1554 | m_log.ErrorFormat( | ||
1555 | "[EVENT MANAGER]: Delegate for TriggerDeRezRequested failed - continuing. {0} {1}", | ||
1556 | e.Message, e.StackTrace); | ||
1557 | } | ||
1558 | } | ||
1559 | } | ||
1560 | |||
1561 | return canDeRez; | ||
1562 | } | ||
1563 | |||
1481 | public void TriggerObjectBeingRemovedFromScene(SceneObjectGroup obj) | 1564 | public void TriggerObjectBeingRemovedFromScene(SceneObjectGroup obj) |
1482 | { | 1565 | { |
1483 | ObjectBeingRemovedFromScene handlerObjectBeingRemovedFromScene = OnObjectBeingRemovedFromScene; | 1566 | ObjectBeingRemovedFromScene handlerObjectBeingRemovedFromScene = OnObjectBeingRemovedFromScene; |
@@ -1499,6 +1582,48 @@ namespace OpenSim.Region.Framework.Scenes | |||
1499 | } | 1582 | } |
1500 | } | 1583 | } |
1501 | 1584 | ||
1585 | public void TriggerObjectAddedToPhysicalScene(SceneObjectPart obj) | ||
1586 | { | ||
1587 | Action<SceneObjectPart> handler = OnObjectAddedToPhysicalScene; | ||
1588 | if (handler != null) | ||
1589 | { | ||
1590 | foreach (Action<SceneObjectPart> d in handler.GetInvocationList()) | ||
1591 | { | ||
1592 | try | ||
1593 | { | ||
1594 | d(obj); | ||
1595 | } | ||
1596 | catch (Exception e) | ||
1597 | { | ||
1598 | m_log.ErrorFormat( | ||
1599 | "[EVENT MANAGER]: Delegate for TriggerObjectAddedToPhysicalScene failed - continuing. {0} {1}", | ||
1600 | e.Message, e.StackTrace); | ||
1601 | } | ||
1602 | } | ||
1603 | } | ||
1604 | } | ||
1605 | |||
1606 | public void TriggerObjectRemovedFromPhysicalScene(SceneObjectPart obj) | ||
1607 | { | ||
1608 | Action<SceneObjectPart> handler = OnObjectRemovedFromPhysicalScene; | ||
1609 | if (handler != null) | ||
1610 | { | ||
1611 | foreach (Action<SceneObjectPart> d in handler.GetInvocationList()) | ||
1612 | { | ||
1613 | try | ||
1614 | { | ||
1615 | d(obj); | ||
1616 | } | ||
1617 | catch (Exception e) | ||
1618 | { | ||
1619 | m_log.ErrorFormat( | ||
1620 | "[EVENT MANAGER]: Delegate for TriggerObjectRemovedFromPhysicalScene failed - continuing. {0} {1}", | ||
1621 | e.Message, e.StackTrace); | ||
1622 | } | ||
1623 | } | ||
1624 | } | ||
1625 | } | ||
1626 | |||
1502 | public void TriggerShutdown() | 1627 | public void TriggerShutdown() |
1503 | { | 1628 | { |
1504 | Action handlerShutdown = OnShutdown; | 1629 | Action handlerShutdown = OnShutdown; |
@@ -1876,6 +2001,27 @@ namespace OpenSim.Region.Framework.Scenes | |||
1876 | } | 2001 | } |
1877 | } | 2002 | } |
1878 | 2003 | ||
2004 | public void TriggerCrossAgentToNewRegion(ScenePresence agent, bool isFlying, GridRegion newRegion) | ||
2005 | { | ||
2006 | CrossAgentToNewRegion handlerCrossAgentToNewRegion = OnCrossAgentToNewRegion; | ||
2007 | if (handlerCrossAgentToNewRegion != null) | ||
2008 | { | ||
2009 | foreach (CrossAgentToNewRegion d in handlerCrossAgentToNewRegion.GetInvocationList()) | ||
2010 | { | ||
2011 | try | ||
2012 | { | ||
2013 | d(agent, isFlying, newRegion); | ||
2014 | } | ||
2015 | catch (Exception e) | ||
2016 | { | ||
2017 | m_log.ErrorFormat( | ||
2018 | "[EVENT MANAGER]: Delegate for TriggerCrossAgentToNewRegion failed - continuing. {0} {1}", | ||
2019 | e.Message, e.StackTrace); | ||
2020 | } | ||
2021 | } | ||
2022 | } | ||
2023 | } | ||
2024 | |||
1879 | public void TriggerIncomingInstantMessage(GridInstantMessage message) | 2025 | public void TriggerIncomingInstantMessage(GridInstantMessage message) |
1880 | { | 2026 | { |
1881 | IncomingInstantMessage handlerIncomingInstantMessage = OnIncomingInstantMessage; | 2027 | IncomingInstantMessage handlerIncomingInstantMessage = OnIncomingInstantMessage; |
@@ -2062,7 +2208,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2062 | } | 2208 | } |
2063 | } | 2209 | } |
2064 | 2210 | ||
2065 | public void TriggerOnNewInventoryItemUploadComplete(UUID agentID, UUID AssetID, String AssetName, int userlevel) | 2211 | public void TriggerOnNewInventoryItemUploadComplete(UUID agentID, AssetType type, UUID AssetID, String AssetName, int userlevel) |
2066 | { | 2212 | { |
2067 | NewInventoryItemUploadComplete handlerNewInventoryItemUpdateComplete = OnNewInventoryItemUploadComplete; | 2213 | NewInventoryItemUploadComplete handlerNewInventoryItemUpdateComplete = OnNewInventoryItemUploadComplete; |
2068 | if (handlerNewInventoryItemUpdateComplete != null) | 2214 | if (handlerNewInventoryItemUpdateComplete != null) |
@@ -2071,7 +2217,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2071 | { | 2217 | { |
2072 | try | 2218 | try |
2073 | { | 2219 | { |
2074 | d(agentID, AssetID, AssetName, userlevel); | 2220 | d(agentID, type, AssetID, AssetName, userlevel); |
2075 | } | 2221 | } |
2076 | catch (Exception e) | 2222 | catch (Exception e) |
2077 | { | 2223 | { |
@@ -2209,6 +2355,48 @@ namespace OpenSim.Region.Framework.Scenes | |||
2209 | } | 2355 | } |
2210 | } | 2356 | } |
2211 | 2357 | ||
2358 | public void TriggerMovingStartEvent(uint localID) | ||
2359 | { | ||
2360 | ScriptMovingStartEvent handlerScriptMovingStartEvent = OnScriptMovingStartEvent; | ||
2361 | if (handlerScriptMovingStartEvent != null) | ||
2362 | { | ||
2363 | foreach (ScriptMovingStartEvent d in handlerScriptMovingStartEvent.GetInvocationList()) | ||
2364 | { | ||
2365 | try | ||
2366 | { | ||
2367 | d(localID); | ||
2368 | } | ||
2369 | catch (Exception e) | ||
2370 | { | ||
2371 | m_log.ErrorFormat( | ||
2372 | "[EVENT MANAGER]: Delegate for TriggerMovingStartEvent failed - continuing. {0} {1}", | ||
2373 | e.Message, e.StackTrace); | ||
2374 | } | ||
2375 | } | ||
2376 | } | ||
2377 | } | ||
2378 | |||
2379 | public void TriggerMovingEndEvent(uint localID) | ||
2380 | { | ||
2381 | ScriptMovingEndEvent handlerScriptMovingEndEvent = OnScriptMovingEndEvent; | ||
2382 | if (handlerScriptMovingEndEvent != null) | ||
2383 | { | ||
2384 | foreach (ScriptMovingEndEvent d in handlerScriptMovingEndEvent.GetInvocationList()) | ||
2385 | { | ||
2386 | try | ||
2387 | { | ||
2388 | d(localID); | ||
2389 | } | ||
2390 | catch (Exception e) | ||
2391 | { | ||
2392 | m_log.ErrorFormat( | ||
2393 | "[EVENT MANAGER]: Delegate for TriggerMovingEndEvent failed - continuing. {0} {1}", | ||
2394 | e.Message, e.StackTrace); | ||
2395 | } | ||
2396 | } | ||
2397 | } | ||
2398 | } | ||
2399 | |||
2212 | public void TriggerRequestChangeWaterHeight(float height) | 2400 | public void TriggerRequestChangeWaterHeight(float height) |
2213 | { | 2401 | { |
2214 | if (height < 0) | 2402 | if (height < 0) |
@@ -2507,13 +2695,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
2507 | } | 2695 | } |
2508 | 2696 | ||
2509 | /// <summary> | 2697 | /// <summary> |
2510 | /// Updates the system as to how the position of the sun should be handled. | 2698 | /// Called when the sun's position parameters have changed in the Region and/or Estate |
2511 | /// </summary> | 2699 | /// </summary> |
2512 | /// <param name="regionHandle"></param> | 2700 | /// <param name="regionHandle">The region that changed</param> |
2513 | /// <param name="FixedTime">True if the Sun Position is fixed</param> | 2701 | public void TriggerEstateToolsSunUpdate(ulong regionHandle) |
2514 | /// <param name="useEstateTime">True if the Estate Settings should be used instead of region</param> | ||
2515 | /// <param name="FixedSunHour">The hour 0.0 <= FixedSunHour <= 24.0 at which the sun is fixed at. Sun Hour 0 is sun-rise, when Day/Night ratio is 1:1</param> | ||
2516 | public void TriggerEstateToolsSunUpdate(ulong regionHandle, bool FixedTime, bool useEstateTime, float FixedSunHour) | ||
2517 | { | 2702 | { |
2518 | EstateToolsSunUpdate handlerEstateToolsSunUpdate = OnEstateToolsSunUpdate; | 2703 | EstateToolsSunUpdate handlerEstateToolsSunUpdate = OnEstateToolsSunUpdate; |
2519 | if (handlerEstateToolsSunUpdate != null) | 2704 | if (handlerEstateToolsSunUpdate != null) |
@@ -2522,7 +2707,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2522 | { | 2707 | { |
2523 | try | 2708 | try |
2524 | { | 2709 | { |
2525 | d(regionHandle, FixedTime, useEstateTime, FixedSunHour); | 2710 | d(regionHandle); |
2526 | } | 2711 | } |
2527 | catch (Exception e) | 2712 | catch (Exception e) |
2528 | { | 2713 | { |
@@ -2957,6 +3142,27 @@ namespace OpenSim.Region.Framework.Scenes | |||
2957 | } | 3142 | } |
2958 | } | 3143 | } |
2959 | 3144 | ||
3145 | public void TriggerRegionHeartbeatStart(Scene scene) | ||
3146 | { | ||
3147 | RegionHeartbeatStart handler = OnRegionHeartbeatStart; | ||
3148 | |||
3149 | if (handler != null) | ||
3150 | { | ||
3151 | foreach (RegionHeartbeatStart d in handler.GetInvocationList()) | ||
3152 | { | ||
3153 | try | ||
3154 | { | ||
3155 | d(scene); | ||
3156 | } | ||
3157 | catch (Exception e) | ||
3158 | { | ||
3159 | m_log.ErrorFormat("[EVENT MANAGER]: Delegate for OnRegionHeartbeatStart failed - continuing {0} - {1}", | ||
3160 | e.Message, e.StackTrace); | ||
3161 | } | ||
3162 | } | ||
3163 | } | ||
3164 | } | ||
3165 | |||
2960 | public void TriggerRegionHeartbeatEnd(Scene scene) | 3166 | public void TriggerRegionHeartbeatEnd(Scene scene) |
2961 | { | 3167 | { |
2962 | RegionHeartbeatEnd handler = OnRegionHeartbeatEnd; | 3168 | RegionHeartbeatEnd handler = OnRegionHeartbeatEnd; |
@@ -3103,5 +3309,26 @@ namespace OpenSim.Region.Framework.Scenes | |||
3103 | } | 3309 | } |
3104 | } | 3310 | } |
3105 | } | 3311 | } |
3312 | |||
3313 | // public void TriggerGatherUuids(SceneObjectPart sop, IDictionary<UUID, AssetType> assetUuids) | ||
3314 | // { | ||
3315 | // GatherUuids handler = OnGatherUuids; | ||
3316 | // | ||
3317 | // if (handler != null) | ||
3318 | // { | ||
3319 | // foreach (GatherUuids d in handler.GetInvocationList()) | ||
3320 | // { | ||
3321 | // try | ||
3322 | // { | ||
3323 | // d(sop, assetUuids); | ||
3324 | // } | ||
3325 | // catch (Exception e) | ||
3326 | // { | ||
3327 | // m_log.ErrorFormat("[EVENT MANAGER]: Delegate for TriggerUuidGather failed - continuing {0} - {1}", | ||
3328 | // e.Message, e.StackTrace); | ||
3329 | // } | ||
3330 | // } | ||
3331 | // } | ||
3332 | // } | ||
3106 | } | 3333 | } |
3107 | } | 3334 | } |