diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneEvents.cs | 7 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | 17 |
2 files changed, 14 insertions, 10 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneEvents.cs b/OpenSim/Region/Environment/Scenes/SceneEvents.cs index 0986654..e058745 100644 --- a/OpenSim/Region/Environment/Scenes/SceneEvents.cs +++ b/OpenSim/Region/Environment/Scenes/SceneEvents.cs | |||
@@ -88,7 +88,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
88 | 88 | ||
89 | public event RemoveScript OnRemoveScript; | 89 | public event RemoveScript OnRemoveScript; |
90 | 90 | ||
91 | public delegate void SceneGroupMoved(LLUUID groupID, LLVector3 delta); | 91 | public delegate bool SceneGroupMoved(LLUUID groupID, LLVector3 delta); |
92 | 92 | ||
93 | public event SceneGroupMoved OnSceneGroupMove; | 93 | public event SceneGroupMoved OnSceneGroupMove; |
94 | 94 | ||
@@ -194,12 +194,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
194 | } | 194 | } |
195 | } | 195 | } |
196 | 196 | ||
197 | public void TriggerGroupMove(LLUUID groupID, LLVector3 delta) | 197 | public bool TriggerGroupMove(LLUUID groupID, LLVector3 delta) |
198 | { | 198 | { |
199 | if (OnSceneGroupMove != null) | 199 | if (OnSceneGroupMove != null) |
200 | { | 200 | { |
201 | OnSceneGroupMove(groupID, delta); | 201 | return OnSceneGroupMove(groupID, delta); |
202 | } | 202 | } |
203 | return true; | ||
203 | } | 204 | } |
204 | 205 | ||
205 | public void TriggerGroupGrab(LLUUID groupID, LLVector3 offset, LLUUID userID) | 206 | public void TriggerGroupGrab(LLUUID groupID, LLVector3 offset, LLUUID userID) |
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index 1b55a49..8038a83 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | |||
@@ -972,9 +972,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
972 | /// <param name="remoteClient"></param> | 972 | /// <param name="remoteClient"></param> |
973 | public void GrabMovement(LLVector3 offset, LLVector3 pos, IClientAPI remoteClient) | 973 | public void GrabMovement(LLVector3 offset, LLVector3 pos, IClientAPI remoteClient) |
974 | { | 974 | { |
975 | AbsolutePosition = pos; | 975 | if (m_scene.EventManager.TriggerGroupMove(UUID, pos)) |
976 | m_rootPart.SendTerseUpdateToAllClients(); | 976 | { |
977 | m_scene.EventManager.TriggerGroupMove(UUID, pos); | 977 | AbsolutePosition = pos; |
978 | m_rootPart.SendTerseUpdateToAllClients(); | ||
979 | } | ||
978 | } | 980 | } |
979 | 981 | ||
980 | /// <summary> | 982 | /// <summary> |
@@ -1263,10 +1265,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
1263 | /// <param name="pos"></param> | 1265 | /// <param name="pos"></param> |
1264 | public void UpdateGroupPosition(LLVector3 pos) | 1266 | public void UpdateGroupPosition(LLVector3 pos) |
1265 | { | 1267 | { |
1266 | AbsolutePosition = pos; | 1268 | if (m_scene.EventManager.TriggerGroupMove(UUID, pos)) |
1267 | ScheduleGroupForTerseUpdate(); | 1269 | { |
1268 | 1270 | AbsolutePosition = pos; | |
1269 | m_scene.EventManager.TriggerGroupMove(UUID, pos); | 1271 | ScheduleGroupForTerseUpdate(); |
1272 | } | ||
1270 | } | 1273 | } |
1271 | 1274 | ||
1272 | /// <summary> | 1275 | /// <summary> |