aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs
diff options
context:
space:
mode:
authorUbitUmarov2016-11-10 17:56:51 +0000
committerUbitUmarov2016-11-10 17:56:51 +0000
commitbddaef51220198c3a3894edeece750e29337a558 (patch)
tree88c826e7b58aa966caa045386583699976c85afe /OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs
parentfix some invalid string.format arguments (diff)
downloadopensim-SC-bddaef51220198c3a3894edeece750e29337a558.zip
opensim-SC-bddaef51220198c3a3894edeece750e29337a558.tar.gz
opensim-SC-bddaef51220198c3a3894edeece750e29337a558.tar.bz2
opensim-SC-bddaef51220198c3a3894edeece750e29337a558.tar.xz
on Select use again the priority queues to send ObjectProperties, including physics via caps. This is need to reduce useless redudance
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs42
1 files changed, 3 insertions, 39 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs
index 3f48372..24a2db7 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs
@@ -166,8 +166,6 @@ namespace OpenSim.Region.Framework.Scenes
166 /// <param name="remoteClient"></param> 166 /// <param name="remoteClient"></param>
167 public void SelectPrim(List<uint> primIDs, IClientAPI remoteClient) 167 public void SelectPrim(List<uint> primIDs, IClientAPI remoteClient)
168 { 168 {
169 List<ISceneEntity> needUpdates = new List<ISceneEntity>();
170
171 foreach(uint primLocalID in primIDs) 169 foreach(uint primLocalID in primIDs)
172 { 170 {
173 SceneObjectPart part = GetSceneObjectPart(primLocalID); 171 SceneObjectPart part = GetSceneObjectPart(primLocalID);
@@ -179,8 +177,6 @@ namespace OpenSim.Region.Framework.Scenes
179 if (sog == null) 177 if (sog == null)
180 continue; 178 continue;
181 179
182 needUpdates.Add((ISceneEntity)part);
183
184 // waste of time because properties do not send prim flags as they should 180 // waste of time because properties do not send prim flags as they should
185 // if a friend got or lost edit rights after login, a full update is needed 181 // if a friend got or lost edit rights after login, a full update is needed
186 if(sog.OwnerID != remoteClient.AgentId) 182 if(sog.OwnerID != remoteClient.AgentId)
@@ -193,10 +189,9 @@ namespace OpenSim.Region.Framework.Scenes
193 part.IsSelected = true; 189 part.IsSelected = true;
194 EventManager.TriggerParcelPrimCountTainted(); 190 EventManager.TriggerParcelPrimCountTainted();
195 } 191 }
196 }
197 192
198 if(needUpdates.Count > 0) 193 part.SendPropertiesToClient(remoteClient);
199 remoteClient.SendSelectedPartsProprieties(needUpdates); 194 }
200 } 195 }
201 196
202 /// <summary> 197 /// <summary>
@@ -248,38 +243,7 @@ namespace OpenSim.Region.Framework.Scenes
248 SceneObjectPart part = GetSceneObjectPart(primLocalID); 243 SceneObjectPart part = GetSceneObjectPart(primLocalID);
249 if (part == null) 244 if (part == null)
250 return; 245 return;
251 /* 246
252 // A deselect packet contains all the local prims being deselected. However, since selection is still
253 // group based we only want the root prim to trigger a full update - otherwise on objects with many prims
254 // we end up sending many duplicate ObjectUpdates
255 if (part.ParentGroup.RootPart.LocalId != part.LocalId)
256 return;
257
258 // This is wrong, wrong, wrong. Selection should not be
259 // handled by group, but by prim. Legacy cruft.
260 // TODO: Make selection flagging per prim!
261 //
262 if (Permissions.CanEditObject(part.ParentGroup.UUID, remoteClient.AgentId)
263 || Permissions.CanMoveObject(part.ParentGroup.UUID, remoteClient.AgentId))
264 part.ParentGroup.IsSelected = false;
265
266 part.ParentGroup.ScheduleGroupForFullUpdate();
267
268 // If it's not an attachment, and we are allowed to move it,
269 // then we might have done so. If we moved across a parcel
270 // boundary, we will need to recount prims on the parcels.
271 // For attachments, that makes no sense.
272 //
273 if (!part.ParentGroup.IsAttachment)
274 {
275 if (Permissions.CanEditObject(
276 part.UUID, remoteClient.AgentId)
277 || Permissions.CanMoveObject(
278 part.UUID, remoteClient.AgentId))
279 EventManager.TriggerParcelPrimCountTainted();
280 }
281 */
282
283 bool oldgprSelect = part.ParentGroup.IsSelected; 247 bool oldgprSelect = part.ParentGroup.IsSelected;
284 248
285 // This is wrong, wrong, wrong. Selection should not be 249 // This is wrong, wrong, wrong. Selection should not be