aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r--OpenSim/Region/Framework/Scenes/EventManager.cs192
1 files changed, 190 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/EventManager.cs b/OpenSim/Region/Framework/Scenes/EventManager.cs
index 67d218b..7133817 100644
--- a/OpenSim/Region/Framework/Scenes/EventManager.cs
+++ b/OpenSim/Region/Framework/Scenes/EventManager.cs
@@ -349,15 +349,58 @@ namespace OpenSim.Region.Framework.Scenes
349 public event StopScript OnStopScript; 349 public event StopScript OnStopScript;
350 350
351 public delegate bool SceneGroupMoved(UUID groupID, Vector3 delta); 351 public delegate bool SceneGroupMoved(UUID groupID, Vector3 delta);
352
353 /// <summary>
354 /// Triggered when an object is moved.
355 /// </summary>
356 /// <remarks>
357 /// Triggered by <see cref="TriggerGroupMove"/>
358 /// in <see cref="SceneObjectGroup.UpdateGroupPosition"/>,
359 /// <see cref="SceneObjectGroup.GrabMovement"/>
360 /// </remarks>
352 public event SceneGroupMoved OnSceneGroupMove; 361 public event SceneGroupMoved OnSceneGroupMove;
353 362
354 public delegate void SceneGroupGrabed(UUID groupID, Vector3 offset, UUID userID); 363 public delegate void SceneGroupGrabed(UUID groupID, Vector3 offset, UUID userID);
364
365 /// <summary>
366 /// Triggered when an object is grabbed.
367 /// </summary>
368 /// <remarks>
369 /// Triggered by <see cref="TriggerGroupGrab"/>
370 /// in <see cref="SceneObjectGroup.OnGrabGroup"/>
371 /// via <see cref="SceneObjectGroup.ObjectGrabHandler"/>
372 /// via <see cref="Scene.ProcessObjectGrab"/>
373 /// via <see cref="OpenSim.Framework.IClientAPI.OnGrabObject"/>
374 /// via <see cref="OpenSim.Region.ClientStack.LindenUDP.LLClientView.HandleObjectGrab"/>
375 /// </remarks>
355 public event SceneGroupGrabed OnSceneGroupGrab; 376 public event SceneGroupGrabed OnSceneGroupGrab;
356 377
357 public delegate bool SceneGroupSpinStarted(UUID groupID); 378 public delegate bool SceneGroupSpinStarted(UUID groupID);
379
380 /// <summary>
381 /// Triggered when an object starts to spin.
382 /// </summary>
383 /// <remarks>
384 /// Triggered by <see cref="TriggerGroupSpinStart"/>
385 /// in <see cref="SceneObjectGroup.SpinStart"/>
386 /// via <see cref="SceneGraph.SpinStart"/>
387 /// via <see cref="OpenSim.Framework.IClientAPI.OnSpinStart"/>
388 /// via <see cref="OpenSim.Region.ClientStack.LindenUDP.LLClientView.HandleObjectSpinStart"/>
389 /// </remarks>
358 public event SceneGroupSpinStarted OnSceneGroupSpinStart; 390 public event SceneGroupSpinStarted OnSceneGroupSpinStart;
359 391
360 public delegate bool SceneGroupSpun(UUID groupID, Quaternion rotation); 392 public delegate bool SceneGroupSpun(UUID groupID, Quaternion rotation);
393
394 /// <summary>
395 /// Triggered when an object is being spun.
396 /// </summary>
397 /// <remarks>
398 /// Triggered by <see cref="TriggerGroupSpin"/>
399 /// in <see cref="SceneObjectGroup.SpinMovement"/>
400 /// via <see cref="SceneGraph.SpinObject"/>
401 /// via <see cref="OpenSim.Framework.IClientAPI.OnSpinUpdate"/>
402 /// via <see cref="OpenSim.Region.ClientStack.LindenUDP.LLClientView.HandleObjectSpinUpdate"/>
403 /// </remarks>
361 public event SceneGroupSpun OnSceneGroupSpin; 404 public event SceneGroupSpun OnSceneGroupSpin;
362 405
363 public delegate void LandObjectAdded(ILandObject newParcel); 406 public delegate void LandObjectAdded(ILandObject newParcel);
@@ -464,36 +507,170 @@ namespace OpenSim.Region.Framework.Scenes
464 } 507 }
465 508
466 /// <summary> 509 /// <summary>
510 /// Triggered when some scene object properties change.
511 /// </summary>
512 /// <remarks>
467 /// ScriptChangedEvent is fired when a scene object property that a script might be interested 513 /// ScriptChangedEvent is fired when a scene object property that a script might be interested
468 /// in (such as color, scale or inventory) changes. Only enough information sent is for the LSL changed event. 514 /// in (such as color, scale or inventory) changes. Only enough information sent is for the LSL changed event.
469 /// This is not an indication that the script has changed (see OnUpdateScript for that). 515 /// This is not an indication that the script has changed (see OnUpdateScript for that).
470 /// This event is sent to a script to tell it that some property changed on 516 /// This event is sent to a script to tell it that some property changed on
471 /// the object the script is in. See http://lslwiki.net/lslwiki/wakka.php?wakka=changed . 517 /// the object the script is in. See http://lslwiki.net/lslwiki/wakka.php?wakka=changed .
472 /// </summary> 518 /// Triggered by <see cref="TriggerOnScriptChangedEvent"/>
519 /// in <see cref="OpenSim.Region.CoreModules.Framework.EntityTransfer.EntityTransferModule.TeleportAgentWithinRegion"/>,
520 /// <see cref="SceneObjectPart.TriggerScriptChangedEvent"/>
521 /// </remarks>
473 public event ScriptChangedEvent OnScriptChangedEvent; 522 public event ScriptChangedEvent OnScriptChangedEvent;
474 public delegate void ScriptChangedEvent(uint localID, uint change); 523 public delegate void ScriptChangedEvent(uint localID, uint change);
475 524
476 public delegate void ScriptControlEvent(UUID item, UUID avatarID, uint held, uint changed); 525 public delegate void ScriptControlEvent(UUID item, UUID avatarID, uint held, uint changed);
526
527 /// <summary>
528 /// Triggered when a script receives control input from an agent.
529 /// </summary>
530 /// <remarks>
531 /// Triggered by <see cref="TriggerControlEvent"/>
532 /// in <see cref="ScenePresence.SendControlsToScripts"/>
533 /// via <see cref="ScenePresence.HandleAgentUpdate"/>
534 /// via <see cref="OpenSim.Framework.IClientAPI.OnAgentUpdate"/>
535 /// via <see cref="OpenSim.Region.ClientStack.LindenUDP.LLClientView.HandleAgentUpdate"/>
536 /// </remarks>
477 public event ScriptControlEvent OnScriptControlEvent; 537 public event ScriptControlEvent OnScriptControlEvent;
478 538
479 public delegate void ScriptAtTargetEvent(uint localID, uint handle, Vector3 targetpos, Vector3 atpos); 539 public delegate void ScriptAtTargetEvent(uint localID, uint handle, Vector3 targetpos, Vector3 atpos);
540
541 /// <summary>
542 /// Triggered when an object has arrived within a tolerance distance
543 /// of a motion target.
544 /// </summary>
545 /// <remarks>
546 /// Triggered by <see cref="TriggerAtTargetEvent"/>
547 /// in <see cref="SceneObjectGroup.checkAtTargets"/>
548 /// via <see cref="SceneObjectGroup.ScheduleGroupForFullUpdate"/>,
549 /// <see cref="Scene.CheckAtTargets"/> via <see cref="Scene.Update"/>
550 /// </remarks>
480 public event ScriptAtTargetEvent OnScriptAtTargetEvent; 551 public event ScriptAtTargetEvent OnScriptAtTargetEvent;
481 552
482 public delegate void ScriptNotAtTargetEvent(uint localID); 553 public delegate void ScriptNotAtTargetEvent(uint localID);
554
555 /// <summary>
556 /// Triggered when an object has a motion target but has not arrived
557 /// within a tolerance distance.
558 /// </summary>
559 /// <remarks>
560 /// Triggered by <see cref="TriggerNotAtTargetEvent"/>
561 /// in <see cref="SceneObjectGroup.checkAtTargets"/>
562 /// via <see cref="SceneObjectGroup.ScheduleGroupForFullUpdate"/>,
563 /// <see cref="Scene.CheckAtTargets"/> via <see cref="Scene.Update"/>
564 /// </remarks>
483 public event ScriptNotAtTargetEvent OnScriptNotAtTargetEvent; 565 public event ScriptNotAtTargetEvent OnScriptNotAtTargetEvent;
484 566
485 public delegate void ScriptAtRotTargetEvent(uint localID, uint handle, Quaternion targetrot, Quaternion atrot); 567 public delegate void ScriptAtRotTargetEvent(uint localID, uint handle, Quaternion targetrot, Quaternion atrot);
568
569 /// <summary>
570 /// Triggered when an object has arrived within a tolerance rotation
571 /// of a rotation target.
572 /// </summary>
573 /// <remarks>
574 /// Triggered by <see cref="TriggerAtRotTargetEvent"/>
575 /// in <see cref="SceneObjectGroup.checkAtTargets"/>
576 /// via <see cref="SceneObjectGroup.ScheduleGroupForFullUpdate"/>,
577 /// <see cref="Scene.CheckAtTargets"/> via <see cref="Scene.Update"/>
578 /// </remarks>
486 public event ScriptAtRotTargetEvent OnScriptAtRotTargetEvent; 579 public event ScriptAtRotTargetEvent OnScriptAtRotTargetEvent;
487 580
488 public delegate void ScriptNotAtRotTargetEvent(uint localID); 581 public delegate void ScriptNotAtRotTargetEvent(uint localID);
582
583 /// <summary>
584 /// Triggered when an object has a rotation target but has not arrived
585 /// within a tolerance rotation.
586 /// </summary>
587 /// <remarks>
588 /// Triggered by <see cref="TriggerNotAtRotTargetEvent"/>
589 /// in <see cref="SceneObjectGroup.checkAtTargets"/>
590 /// via <see cref="SceneObjectGroup.ScheduleGroupForFullUpdate"/>,
591 /// <see cref="Scene.CheckAtTargets"/> via <see cref="Scene.Update"/>
592 /// </remarks>
489 public event ScriptNotAtRotTargetEvent OnScriptNotAtRotTargetEvent; 593 public event ScriptNotAtRotTargetEvent OnScriptNotAtRotTargetEvent;
490 594
491 public delegate void ScriptColliding(uint localID, ColliderArgs colliders); 595 public delegate void ScriptColliding(uint localID, ColliderArgs colliders);
596
597 /// <summary>
598 /// Triggered when a physical collision has started between a prim
599 /// and something other than the region terrain.
600 /// </summary>
601 /// <remarks>
602 /// Triggered by <see cref="TriggerScriptCollidingStart"/>
603 /// in <see cref="SceneObjectPart.SendCollisionEvent"/>
604 /// via <see cref="SceneObjectPart.PhysicsCollision"/>
605 /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.OnCollisionUpdate"/>
606 /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.SendCollisionUpdate"/>
607 /// </remarks>
492 public event ScriptColliding OnScriptColliderStart; 608 public event ScriptColliding OnScriptColliderStart;
609
610 /// <summary>
611 /// Triggered when something that previously collided with a prim has
612 /// not stopped colliding with it.
613 /// </summary>
614 /// <remarks>
615 /// <seealso cref="OnScriptColliderStart"/>
616 /// Triggered by <see cref="TriggerScriptColliding"/>
617 /// in <see cref="SceneObjectPart.SendCollisionEvent"/>
618 /// via <see cref="SceneObjectPart.PhysicsCollision"/>
619 /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.OnCollisionUpdate"/>
620 /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.SendCollisionUpdate"/>
621 /// </remarks>
493 public event ScriptColliding OnScriptColliding; 622 public event ScriptColliding OnScriptColliding;
623
624 /// <summary>
625 /// Triggered when something that previously collided with a prim has
626 /// stopped colliding with it.
627 /// </summary>
628 /// <remarks>
629 /// Triggered by <see cref="TriggerScriptCollidingEnd"/>
630 /// in <see cref="SceneObjectPart.SendCollisionEvent"/>
631 /// via <see cref="SceneObjectPart.PhysicsCollision"/>
632 /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.OnCollisionUpdate"/>
633 /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.SendCollisionUpdate"/>
634 /// </remarks>
494 public event ScriptColliding OnScriptCollidingEnd; 635 public event ScriptColliding OnScriptCollidingEnd;
636
637 /// <summary>
638 /// Triggered when a physical collision has started between an object
639 /// and the region terrain.
640 /// </summary>
641 /// <remarks>
642 /// Triggered by <see cref="TriggerScriptLandCollidingStart"/>
643 /// in <see cref="SceneObjectPart.SendLandCollisionEvent"/>
644 /// via <see cref="SceneObjectPart.PhysicsCollision"/>
645 /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.OnCollisionUpdate"/>
646 /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.SendCollisionUpdate"/>
647 /// </remarks>
495 public event ScriptColliding OnScriptLandColliderStart; 648 public event ScriptColliding OnScriptLandColliderStart;
649
650 /// <summary>
651 /// Triggered when an object that previously collided with the region
652 /// terrain has not yet stopped colliding with it.
653 /// </summary>
654 /// <remarks>
655 /// Triggered by <see cref="TriggerScriptLandColliding"/>
656 /// in <see cref="SceneObjectPart.SendLandCollisionEvent"/>
657 /// via <see cref="SceneObjectPart.PhysicsCollision"/>
658 /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.OnCollisionUpdate"/>
659 /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.SendCollisionUpdate"/>
660 /// </remarks>
496 public event ScriptColliding OnScriptLandColliding; 661 public event ScriptColliding OnScriptLandColliding;
662
663 /// <summary>
664 /// Triggered when an object that previously collided with the region
665 /// terrain has stopped colliding with it.
666 /// </summary>
667 /// <remarks>
668 /// Triggered by <see cref="TriggerScriptLandCollidingEnd"/>
669 /// in <see cref="SceneObjectPart.SendLandCollisionEvent"/>
670 /// via <see cref="SceneObjectPart.PhysicsCollision"/>
671 /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.OnCollisionUpdate"/>
672 /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.SendCollisionUpdate"/>
673 /// </remarks>
497 public event ScriptColliding OnScriptLandColliderEnd; 674 public event ScriptColliding OnScriptLandColliderEnd;
498 675
499 public delegate void OnMakeChildAgentDelegate(ScenePresence presence); 676 public delegate void OnMakeChildAgentDelegate(ScenePresence presence);
@@ -554,6 +731,13 @@ namespace OpenSim.Region.Framework.Scenes
554 731
555 /* 732 /*
556 public delegate void ScriptTimerEvent(uint localID, double timerinterval); 733 public delegate void ScriptTimerEvent(uint localID, double timerinterval);
734 /// <summary>
735 /// Used to be triggered when the LSL timer event fires.
736 /// </summary>
737 /// <remarks>
738 /// Triggered by <see cref="TriggerTimerEvent"/>
739 /// via <see cref="SceneObjectPart.handleTimerAccounting"/>
740 /// </remarks>
557 public event ScriptTimerEvent OnScriptTimerEvent; 741 public event ScriptTimerEvent OnScriptTimerEvent;
558 */ 742 */
559 743
@@ -2318,7 +2502,11 @@ namespace OpenSim.Region.Framework.Scenes
2318 } 2502 }
2319 } 2503 }
2320 2504
2321 // this lets us keep track of nasty script events like timer, etc. 2505 /// <summary>
2506 /// this lets us keep track of nasty script events like timer, etc.
2507 /// </summary>
2508 /// <param name="objLocalID"></param>
2509 /// <param name="Interval"></param>
2322 public void TriggerTimerEvent(uint objLocalID, double Interval) 2510 public void TriggerTimerEvent(uint objLocalID, double Interval)
2323 { 2511 {
2324 throw new NotImplementedException("TriggerTimerEvent was thought to be not used anymore and the registration for the event from scene object part has been commented out due to a memory leak"); 2512 throw new NotImplementedException("TriggerTimerEvent was thought to be not used anymore and the registration for the event from scene object part has been commented out due to a memory leak");