diff options
author | Sean Dague | 2008-02-08 16:09:24 +0000 |
---|---|---|
committer | Sean Dague | 2008-02-08 16:09:24 +0000 |
commit | 7b4fb3b8bc62ff93927e88fef18cf5e2f931fa7e (patch) | |
tree | 941de0e5206aa2cb4c0aa5f7b45c16388851a9c0 | |
parent | fix the issue found on IRC this morning. The logging call was mistructured (diff) | |
download | opensim-SC_OLD-7b4fb3b8bc62ff93927e88fef18cf5e2f931fa7e.zip opensim-SC_OLD-7b4fb3b8bc62ff93927e88fef18cf5e2f931fa7e.tar.gz opensim-SC_OLD-7b4fb3b8bc62ff93927e88fef18cf5e2f931fa7e.tar.bz2 opensim-SC_OLD-7b4fb3b8bc62ff93927e88fef18cf5e2f931fa7e.tar.xz |
From: Kurt Taylor <krtaylor@us.ibm.com>
Attached is a patch for Mantis 25 - this fixes the problem of not having a
touch_start happen for all prims in a linked group. So, with this, large
builds can now have a single script in the base prim and it will run when
any prim in the linked build is touched. The problem was that the
objectgrab event was not being propagated to all the prims in the group.
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs index 8adb281..86f10d7 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs | |||
@@ -148,7 +148,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
148 | 148 | ||
149 | public virtual void ProcessObjectGrab(uint localID, LLVector3 offsetPos, IClientAPI remoteClient) | 149 | public virtual void ProcessObjectGrab(uint localID, LLVector3 offsetPos, IClientAPI remoteClient) |
150 | { | 150 | { |
151 | EventManager.TriggerObjectGrab(localID, offsetPos, remoteClient); | ||
152 | 151 | ||
153 | List<EntityBase> EntitieList = GetEntities(); | 152 | List<EntityBase> EntitieList = GetEntities(); |
154 | 153 | ||
@@ -158,9 +157,21 @@ namespace OpenSim.Region.Environment.Scenes | |||
158 | { | 157 | { |
159 | SceneObjectGroup obj = ent as SceneObjectGroup; | 158 | SceneObjectGroup obj = ent as SceneObjectGroup; |
160 | 159 | ||
160 | // Is this prim part of the group | ||
161 | if (obj.HasChildPrim(localID)) | 161 | if (obj.HasChildPrim(localID)) |
162 | { | 162 | { |
163 | // Currently only grab/touch for the single prim | ||
164 | // the client handles rez correctly | ||
163 | obj.ObjectGrabHandler(localID, offsetPos, remoteClient); | 165 | obj.ObjectGrabHandler(localID, offsetPos, remoteClient); |
166 | |||
167 | // trigger event, one for each prim part in the group | ||
168 | // so that a touch to a non-root prim in a group will still | ||
169 | // trigger a touch_start for a script in the root prim | ||
170 | foreach (SceneObjectPart part in obj.Children.Values) | ||
171 | { | ||
172 | EventManager.TriggerObjectGrab(part.LocalID, part.OffsetPosition, remoteClient); | ||
173 | } | ||
174 | |||
164 | return; | 175 | return; |
165 | } | 176 | } |
166 | } | 177 | } |