diff options
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r-- | OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneGraph.cs | 1 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 24 |
4 files changed, 19 insertions, 10 deletions
diff --git a/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs b/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs index 69ce967..0516cb1 100644 --- a/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs | |||
@@ -65,7 +65,7 @@ namespace OpenSim.Region.Framework.Interfaces | |||
65 | /// <param name="AttachmentPt"></param> | 65 | /// <param name="AttachmentPt"></param> |
66 | /// <param name="silent"></param> | 66 | /// <param name="silent"></param> |
67 | /// <returns>true if the object was successfully attached, false otherwise</returns> | 67 | /// <returns>true if the object was successfully attached, false otherwise</returns> |
68 | bool AttachObject(IScenePresence sp, SceneObjectGroup grp, uint AttachmentPt, bool silent); | 68 | bool AttachObject(IScenePresence sp, SceneObjectGroup grp, uint AttachmentPt, bool silent, bool useAttachmentInfo); |
69 | 69 | ||
70 | /// <summary> | 70 | /// <summary> |
71 | /// Rez an attachment from user inventory and change inventory status to match. | 71 | /// Rez an attachment from user inventory and change inventory status to match. |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 315b340..9c80d3e 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -2701,7 +2701,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2701 | RootPrim.RemFlag(PrimFlags.TemporaryOnRez); | 2701 | RootPrim.RemFlag(PrimFlags.TemporaryOnRez); |
2702 | 2702 | ||
2703 | if (AttachmentsModule != null) | 2703 | if (AttachmentsModule != null) |
2704 | AttachmentsModule.AttachObject(sp, grp, 0, false); | 2704 | AttachmentsModule.AttachObject(sp, grp, 0, false, false); |
2705 | } | 2705 | } |
2706 | else | 2706 | else |
2707 | { | 2707 | { |
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs index 23a0550..a62c1ac 100644 --- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs +++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs | |||
@@ -359,7 +359,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
359 | if (pa != null && pa.IsPhysical && vel != Vector3.Zero) | 359 | if (pa != null && pa.IsPhysical && vel != Vector3.Zero) |
360 | { | 360 | { |
361 | sceneObject.RootPart.ApplyImpulse((vel * sceneObject.GetMass()), false); | 361 | sceneObject.RootPart.ApplyImpulse((vel * sceneObject.GetMass()), false); |
362 | sceneObject.Velocity = vel; | ||
363 | } | 362 | } |
364 | 363 | ||
365 | return true; | 364 | return true; |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index bb8d065..61ef827 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -2640,15 +2640,25 @@ namespace OpenSim.Region.Framework.Scenes | |||
2640 | 2640 | ||
2641 | private void SendLandCollisionEvent(scriptEvents ev, ScriptCollidingNotification notify) | 2641 | private void SendLandCollisionEvent(scriptEvents ev, ScriptCollidingNotification notify) |
2642 | { | 2642 | { |
2643 | if ((ParentGroup.RootPart.ScriptEvents & ev) != 0) | 2643 | bool sendToRoot = true; |
2644 | { | 2644 | |
2645 | ColliderArgs LandCollidingMessage = new ColliderArgs(); | 2645 | ColliderArgs LandCollidingMessage = new ColliderArgs(); |
2646 | List<DetectedObject> colliding = new List<DetectedObject>(); | 2646 | List<DetectedObject> colliding = new List<DetectedObject>(); |
2647 | 2647 | ||
2648 | colliding.Add(CreateDetObjectForGround()); | 2648 | colliding.Add(CreateDetObjectForGround()); |
2649 | LandCollidingMessage.Colliders = colliding; | 2649 | LandCollidingMessage.Colliders = colliding; |
2650 | 2650 | ||
2651 | if (Inventory.ContainsScripts()) | ||
2652 | { | ||
2653 | if (!PassCollisions) | ||
2654 | sendToRoot = false; | ||
2655 | } | ||
2656 | if ((ScriptEvents & ev) != 0) | ||
2651 | notify(LocalId, LandCollidingMessage); | 2657 | notify(LocalId, LandCollidingMessage); |
2658 | |||
2659 | if ((ParentGroup.RootPart.ScriptEvents & ev) != 0 && sendToRoot) | ||
2660 | { | ||
2661 | notify(ParentGroup.RootPart.LocalId, LandCollidingMessage); | ||
2652 | } | 2662 | } |
2653 | } | 2663 | } |
2654 | 2664 | ||