diff options
author | UbitUmarov | 2016-11-10 17:56:51 +0000 |
---|---|---|
committer | UbitUmarov | 2016-11-10 17:56:51 +0000 |
commit | bddaef51220198c3a3894edeece750e29337a558 (patch) | |
tree | 88c826e7b58aa966caa045386583699976c85afe /OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs | |
parent | fix some invalid string.format arguments (diff) | |
download | opensim-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.cs | 42 |
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 |