diff options
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/EventManager.cs | 149 |
1 files changed, 147 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/EventManager.cs b/OpenSim/Region/Framework/Scenes/EventManager.cs index 96e9797..22d395c 100644 --- a/OpenSim/Region/Framework/Scenes/EventManager.cs +++ b/OpenSim/Region/Framework/Scenes/EventManager.cs | |||
@@ -460,36 +460,170 @@ namespace OpenSim.Region.Framework.Scenes | |||
460 | } | 460 | } |
461 | 461 | ||
462 | /// <summary> | 462 | /// <summary> |
463 | /// Triggered when some scene object properties change. | ||
464 | /// </summary> | ||
465 | /// <remarks> | ||
463 | /// ScriptChangedEvent is fired when a scene object property that a script might be interested | 466 | /// ScriptChangedEvent is fired when a scene object property that a script might be interested |
464 | /// in (such as color, scale or inventory) changes. Only enough information sent is for the LSL changed event. | 467 | /// in (such as color, scale or inventory) changes. Only enough information sent is for the LSL changed event. |
465 | /// This is not an indication that the script has changed (see OnUpdateScript for that). | 468 | /// This is not an indication that the script has changed (see OnUpdateScript for that). |
466 | /// This event is sent to a script to tell it that some property changed on | 469 | /// This event is sent to a script to tell it that some property changed on |
467 | /// the object the script is in. See http://lslwiki.net/lslwiki/wakka.php?wakka=changed . | 470 | /// the object the script is in. See http://lslwiki.net/lslwiki/wakka.php?wakka=changed . |
468 | /// </summary> | 471 | /// Triggered by <see cref="TriggerOnScriptChangedEvent"/> |
472 | /// in <see cref="OpenSim.Region.CoreModules.Framework.EntityTransfer.EntityTransferModule.TeleportAgentWithinRegion"/>, | ||
473 | /// <see cref="SceneObjectPart.TriggerScriptChangedEvent"/> | ||
474 | /// </remarks> | ||
469 | public event ScriptChangedEvent OnScriptChangedEvent; | 475 | public event ScriptChangedEvent OnScriptChangedEvent; |
470 | public delegate void ScriptChangedEvent(uint localID, uint change); | 476 | public delegate void ScriptChangedEvent(uint localID, uint change); |
471 | 477 | ||
472 | public delegate void ScriptControlEvent(UUID item, UUID avatarID, uint held, uint changed); | 478 | public delegate void ScriptControlEvent(UUID item, UUID avatarID, uint held, uint changed); |
479 | |||
480 | /// <summary> | ||
481 | /// Triggered when a script receives control input from an agent. | ||
482 | /// </summary> | ||
483 | /// <remarks> | ||
484 | /// Triggered by <see cref="TriggerControlEvent"/> | ||
485 | /// in <see cref="ScenePresence.SendControlsToScripts"/> | ||
486 | /// via <see cref="ScenePresence.HandleAgentUpdate"/> | ||
487 | /// via <see cref="OpenSim.Framework.IClientAPI.OnAgentUpdate"/> | ||
488 | /// via <see cref="OpenSim.Region.ClientStack.LindenUDP.LLClientView.HandleAgentUpdate"/> | ||
489 | /// </remarks> | ||
473 | public event ScriptControlEvent OnScriptControlEvent; | 490 | public event ScriptControlEvent OnScriptControlEvent; |
474 | 491 | ||
475 | public delegate void ScriptAtTargetEvent(uint localID, uint handle, Vector3 targetpos, Vector3 atpos); | 492 | public delegate void ScriptAtTargetEvent(uint localID, uint handle, Vector3 targetpos, Vector3 atpos); |
493 | |||
494 | /// <summary> | ||
495 | /// Triggered when an object has arrived within a tolerance distance | ||
496 | /// of a motion target. | ||
497 | /// </summary> | ||
498 | /// <remarks> | ||
499 | /// Triggered by <see cref="TriggerAtTargetEvent"/> | ||
500 | /// in <see cref="SceneObjectGroup.checkAtTargets"/> | ||
501 | /// via <see cref="SceneObjectGroup.ScheduleGroupForFullUpdate"/>, | ||
502 | /// <see cref="Scene.CheckAtTargets"/> via <see cref="Scene.Update"/> | ||
503 | /// </remarks> | ||
476 | public event ScriptAtTargetEvent OnScriptAtTargetEvent; | 504 | public event ScriptAtTargetEvent OnScriptAtTargetEvent; |
477 | 505 | ||
478 | public delegate void ScriptNotAtTargetEvent(uint localID); | 506 | public delegate void ScriptNotAtTargetEvent(uint localID); |
507 | |||
508 | /// <summary> | ||
509 | /// Triggered when an object has a motion target but has not arrived | ||
510 | /// within a tolerance distance. | ||
511 | /// </summary> | ||
512 | /// <remarks> | ||
513 | /// Triggered by <see cref="TriggerNotAtTargetEvent"/> | ||
514 | /// in <see cref="SceneObjectGroup.checkAtTargets"/> | ||
515 | /// via <see cref="SceneObjectGroup.ScheduleGroupForFullUpdate"/>, | ||
516 | /// <see cref="Scene.CheckAtTargets"/> via <see cref="Scene.Update"/> | ||
517 | /// </remarks> | ||
479 | public event ScriptNotAtTargetEvent OnScriptNotAtTargetEvent; | 518 | public event ScriptNotAtTargetEvent OnScriptNotAtTargetEvent; |
480 | 519 | ||
481 | public delegate void ScriptAtRotTargetEvent(uint localID, uint handle, Quaternion targetrot, Quaternion atrot); | 520 | public delegate void ScriptAtRotTargetEvent(uint localID, uint handle, Quaternion targetrot, Quaternion atrot); |
521 | |||
522 | /// <summary> | ||
523 | /// Triggered when an object has arrived within a tolerance rotation | ||
524 | /// of a rotation target. | ||
525 | /// </summary> | ||
526 | /// <remarks> | ||
527 | /// Triggered by <see cref="TriggerAtRotTargetEvent"/> | ||
528 | /// in <see cref="SceneObjectGroup.checkAtTargets"/> | ||
529 | /// via <see cref="SceneObjectGroup.ScheduleGroupForFullUpdate"/>, | ||
530 | /// <see cref="Scene.CheckAtTargets"/> via <see cref="Scene.Update"/> | ||
531 | /// </remarks> | ||
482 | public event ScriptAtRotTargetEvent OnScriptAtRotTargetEvent; | 532 | public event ScriptAtRotTargetEvent OnScriptAtRotTargetEvent; |
483 | 533 | ||
484 | public delegate void ScriptNotAtRotTargetEvent(uint localID); | 534 | public delegate void ScriptNotAtRotTargetEvent(uint localID); |
535 | |||
536 | /// <summary> | ||
537 | /// Triggered when an object has a rotation target but has not arrived | ||
538 | /// within a tolerance rotation. | ||
539 | /// </summary> | ||
540 | /// <remarks> | ||
541 | /// Triggered by <see cref="TriggerNotAtRotTargetEvent"/> | ||
542 | /// in <see cref="SceneObjectGroup.checkAtTargets"/> | ||
543 | /// via <see cref="SceneObjectGroup.ScheduleGroupForFullUpdate"/>, | ||
544 | /// <see cref="Scene.CheckAtTargets"/> via <see cref="Scene.Update"/> | ||
545 | /// </remarks> | ||
485 | public event ScriptNotAtRotTargetEvent OnScriptNotAtRotTargetEvent; | 546 | public event ScriptNotAtRotTargetEvent OnScriptNotAtRotTargetEvent; |
486 | 547 | ||
487 | public delegate void ScriptColliding(uint localID, ColliderArgs colliders); | 548 | public delegate void ScriptColliding(uint localID, ColliderArgs colliders); |
549 | |||
550 | /// <summary> | ||
551 | /// Triggered when a physical collision has started between a prim | ||
552 | /// and something other than the region terrain. | ||
553 | /// </summary> | ||
554 | /// <remarks> | ||
555 | /// Triggered by <see cref="TriggerScriptCollidingStart"/> | ||
556 | /// in <see cref="SceneObjectPart.SendCollisionEvent"/> | ||
557 | /// via <see cref="SceneObjectPart.PhysicsCollision"/> | ||
558 | /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.OnCollisionUpdate"/> | ||
559 | /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.SendCollisionUpdate"/> | ||
560 | /// </remarks> | ||
488 | public event ScriptColliding OnScriptColliderStart; | 561 | public event ScriptColliding OnScriptColliderStart; |
562 | |||
563 | /// <summary> | ||
564 | /// Triggered when something that previously collided with a prim has | ||
565 | /// not stopped colliding with it. | ||
566 | /// </summary> | ||
567 | /// <remarks> | ||
568 | /// <seealso cref="OnScriptColliderStart"/> | ||
569 | /// Triggered by <see cref="TriggerScriptColliding"/> | ||
570 | /// in <see cref="SceneObjectPart.SendCollisionEvent"/> | ||
571 | /// via <see cref="SceneObjectPart.PhysicsCollision"/> | ||
572 | /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.OnCollisionUpdate"/> | ||
573 | /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.SendCollisionUpdate"/> | ||
574 | /// </remarks> | ||
489 | public event ScriptColliding OnScriptColliding; | 575 | public event ScriptColliding OnScriptColliding; |
576 | |||
577 | /// <summary> | ||
578 | /// Triggered when something that previously collided with a prim has | ||
579 | /// stopped colliding with it. | ||
580 | /// </summary> | ||
581 | /// <remarks> | ||
582 | /// Triggered by <see cref="TriggerScriptCollidingEnd"/> | ||
583 | /// in <see cref="SceneObjectPart.SendCollisionEvent"/> | ||
584 | /// via <see cref="SceneObjectPart.PhysicsCollision"/> | ||
585 | /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.OnCollisionUpdate"/> | ||
586 | /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.SendCollisionUpdate"/> | ||
587 | /// </remarks> | ||
490 | public event ScriptColliding OnScriptCollidingEnd; | 588 | public event ScriptColliding OnScriptCollidingEnd; |
589 | |||
590 | /// <summary> | ||
591 | /// Triggered when a physical collision has started between an object | ||
592 | /// and the region terrain. | ||
593 | /// </summary> | ||
594 | /// <remarks> | ||
595 | /// Triggered by <see cref="TriggerScriptLandCollidingStart"/> | ||
596 | /// in <see cref="SceneObjectPart.SendLandCollisionEvent"/> | ||
597 | /// via <see cref="SceneObjectPart.PhysicsCollision"/> | ||
598 | /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.OnCollisionUpdate"/> | ||
599 | /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.SendCollisionUpdate"/> | ||
600 | /// </remarks> | ||
491 | public event ScriptColliding OnScriptLandColliderStart; | 601 | public event ScriptColliding OnScriptLandColliderStart; |
602 | |||
603 | /// <summary> | ||
604 | /// Triggered when an object that previously collided with the region | ||
605 | /// terrain has not yet stopped colliding with it. | ||
606 | /// </summary> | ||
607 | /// <remarks> | ||
608 | /// Triggered by <see cref="TriggerScriptLandColliding"/> | ||
609 | /// in <see cref="SceneObjectPart.SendLandCollisionEvent"/> | ||
610 | /// via <see cref="SceneObjectPart.PhysicsCollision"/> | ||
611 | /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.OnCollisionUpdate"/> | ||
612 | /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.SendCollisionUpdate"/> | ||
613 | /// </remarks> | ||
492 | public event ScriptColliding OnScriptLandColliding; | 614 | public event ScriptColliding OnScriptLandColliding; |
615 | |||
616 | /// <summary> | ||
617 | /// Triggered when an object that previously collided with the region | ||
618 | /// terrain has stopped colliding with it. | ||
619 | /// </summary> | ||
620 | /// <remarks> | ||
621 | /// Triggered by <see cref="TriggerScriptLandCollidingEnd"/> | ||
622 | /// in <see cref="SceneObjectPart.SendLandCollisionEvent"/> | ||
623 | /// via <see cref="SceneObjectPart.PhysicsCollision"/> | ||
624 | /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.OnCollisionUpdate"/> | ||
625 | /// via <see cref="OpenSim.Region.Physics.Manager.PhysicsActor.SendCollisionUpdate"/> | ||
626 | /// </remarks> | ||
493 | public event ScriptColliding OnScriptLandColliderEnd; | 627 | public event ScriptColliding OnScriptLandColliderEnd; |
494 | 628 | ||
495 | public delegate void OnMakeChildAgentDelegate(ScenePresence presence); | 629 | public delegate void OnMakeChildAgentDelegate(ScenePresence presence); |
@@ -550,6 +684,13 @@ namespace OpenSim.Region.Framework.Scenes | |||
550 | 684 | ||
551 | /* | 685 | /* |
552 | public delegate void ScriptTimerEvent(uint localID, double timerinterval); | 686 | public delegate void ScriptTimerEvent(uint localID, double timerinterval); |
687 | /// <summary> | ||
688 | /// Used to be triggered when the LSL timer event fires. | ||
689 | /// </summary> | ||
690 | /// <remarks> | ||
691 | /// Triggered by <see cref="TriggerTimerEvent"/> | ||
692 | /// via <see cref="SceneObjectPart.handleTimerAccounting"/> | ||
693 | /// </remarks> | ||
553 | public event ScriptTimerEvent OnScriptTimerEvent; | 694 | public event ScriptTimerEvent OnScriptTimerEvent; |
554 | */ | 695 | */ |
555 | 696 | ||
@@ -2293,7 +2434,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
2293 | } | 2434 | } |
2294 | } | 2435 | } |
2295 | 2436 | ||
2296 | // this lets us keep track of nasty script events like timer, etc. | 2437 | /// <summary> |
2438 | /// this lets us keep track of nasty script events like timer, etc. | ||
2439 | /// </summary> | ||
2440 | /// <param name="objLocalID"></param> | ||
2441 | /// <param name="Interval"></param> | ||
2297 | public void TriggerTimerEvent(uint objLocalID, double Interval) | 2442 | public void TriggerTimerEvent(uint objLocalID, double Interval) |
2298 | { | 2443 | { |
2299 | 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"); | 2444 | 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"); |