diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs | 367 |
1 files changed, 0 insertions, 367 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs index 73d317a..a9f6991 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs | |||
@@ -92,129 +92,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
92 | /// <summary> | 92 | /// <summary> |
93 | /// | 93 | /// |
94 | /// </summary> | 94 | /// </summary> |
95 | /// <param name="originalPrim"></param> | ||
96 | /// <param name="offset"></param> | ||
97 | /// <param name="flags"></param> | ||
98 | public void DuplicateObject(uint originalPrim, LLVector3 offset, uint flags) | ||
99 | { | ||
100 | SceneObjectGroup originPrim = null; | ||
101 | foreach (EntityBase ent in Entities.Values) | ||
102 | { | ||
103 | if (ent is SceneObjectGroup) | ||
104 | { | ||
105 | if (((SceneObjectGroup) ent).LocalId == originalPrim) | ||
106 | { | ||
107 | originPrim = (SceneObjectGroup) ent; | ||
108 | break; | ||
109 | } | ||
110 | } | ||
111 | } | ||
112 | |||
113 | if (originPrim != null) | ||
114 | { | ||
115 | SceneObjectGroup copy = originPrim.Copy(); | ||
116 | copy.AbsolutePosition = copy.AbsolutePosition + offset; | ||
117 | Entities.Add(copy.UUID, copy); | ||
118 | |||
119 | copy.ScheduleGroupForFullUpdate(); | ||
120 | /* List<ScenePresence> avatars = this.GetScenePresences(); | ||
121 | for (int i = 0; i < avatars.Count; i++) | ||
122 | { | ||
123 | // copy.SendAllChildPrimsToClient(avatars[i].ControllingClient); | ||
124 | }*/ | ||
125 | } | ||
126 | else | ||
127 | { | ||
128 | MainLog.Instance.Warn("client", "Attempted to duplicate nonexistant prim"); | ||
129 | } | ||
130 | } | ||
131 | |||
132 | /// <summary> | ||
133 | /// | ||
134 | /// </summary> | ||
135 | /// <param name="parentPrim"></param> | ||
136 | /// <param name="childPrims"></param> | ||
137 | public void LinkObjects(uint parentPrim, List<uint> childPrims) | ||
138 | { | ||
139 | SceneObjectGroup parenPrim = null; | ||
140 | foreach (EntityBase ent in Entities.Values) | ||
141 | { | ||
142 | if (ent is SceneObjectGroup) | ||
143 | { | ||
144 | if (((SceneObjectGroup) ent).LocalId == parentPrim) | ||
145 | { | ||
146 | parenPrim = (SceneObjectGroup) ent; | ||
147 | break; | ||
148 | } | ||
149 | } | ||
150 | } | ||
151 | |||
152 | List<SceneObjectGroup> children = new List<SceneObjectGroup>(); | ||
153 | if (parenPrim != null) | ||
154 | { | ||
155 | for (int i = 0; i < childPrims.Count; i++) | ||
156 | { | ||
157 | foreach (EntityBase ent in Entities.Values) | ||
158 | { | ||
159 | if (ent is SceneObjectGroup) | ||
160 | { | ||
161 | if (((SceneObjectGroup) ent).LocalId == childPrims[i]) | ||
162 | { | ||
163 | children.Add((SceneObjectGroup) ent); | ||
164 | } | ||
165 | } | ||
166 | } | ||
167 | } | ||
168 | } | ||
169 | |||
170 | foreach (SceneObjectGroup sceneObj in children) | ||
171 | { | ||
172 | parenPrim.LinkToGroup(sceneObj); | ||
173 | } | ||
174 | } | ||
175 | |||
176 | /// <summary> | ||
177 | /// | ||
178 | /// </summary> | ||
179 | /// <param name="primLocalID"></param> | ||
180 | /// <param name="shapeBlock"></param> | ||
181 | public void UpdatePrimShape(uint primLocalID, ObjectShapePacket.ObjectDataBlock shapeBlock) | ||
182 | { | ||
183 | bool hasPrim = false; | ||
184 | foreach (EntityBase ent in Entities.Values) | ||
185 | { | ||
186 | if (ent is SceneObjectGroup) | ||
187 | { | ||
188 | hasPrim = ((SceneObjectGroup) ent).HasChildPrim(primLocalID); | ||
189 | if (hasPrim != false) | ||
190 | { | ||
191 | ((SceneObjectGroup) ent).UpdateShape(shapeBlock, primLocalID); | ||
192 | break; | ||
193 | } | ||
194 | } | ||
195 | } | ||
196 | } | ||
197 | |||
198 | public void UpdateExtraParam(uint primLocalID, ushort type, bool inUse, byte[] data) | ||
199 | { | ||
200 | bool hasPrim = false; | ||
201 | foreach (EntityBase ent in Entities.Values) | ||
202 | { | ||
203 | if (ent is SceneObjectGroup) | ||
204 | { | ||
205 | hasPrim = ((SceneObjectGroup) ent).HasChildPrim(primLocalID); | ||
206 | if (hasPrim != false) | ||
207 | { | ||
208 | ((SceneObjectGroup) ent).UpdateExtraParam(primLocalID, type, inUse, data); | ||
209 | break; | ||
210 | } | ||
211 | } | ||
212 | } | ||
213 | } | ||
214 | |||
215 | /// <summary> | ||
216 | /// | ||
217 | /// </summary> | ||
218 | /// <param name="primLocalID"></param> | 95 | /// <param name="primLocalID"></param> |
219 | /// <param name="remoteClient"></param> | 96 | /// <param name="remoteClient"></param> |
220 | public void SelectPrim(uint primLocalID, IClientAPI remoteClient) | 97 | public void SelectPrim(uint primLocalID, IClientAPI remoteClient) |
@@ -255,250 +132,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
255 | } | 132 | } |
256 | } | 133 | } |
257 | 134 | ||
258 | /// <summary> | ||
259 | /// | ||
260 | /// </summary> | ||
261 | /// <param name="primLocalID"></param> | ||
262 | /// <param name="description"></param> | ||
263 | public void PrimDescription(uint primLocalID, string description) | ||
264 | { | ||
265 | bool hasPrim = false; | ||
266 | foreach (EntityBase ent in Entities.Values) | ||
267 | { | ||
268 | if (ent is SceneObjectGroup) | ||
269 | { | ||
270 | hasPrim = ((SceneObjectGroup) ent).HasChildPrim(primLocalID); | ||
271 | if (hasPrim != false) | ||
272 | { | ||
273 | ((SceneObjectGroup) ent).SetPartDescription(description, primLocalID); | ||
274 | break; | ||
275 | } | ||
276 | } | ||
277 | } | ||
278 | } | ||
279 | |||
280 | /// <summary> | ||
281 | /// | ||
282 | /// </summary> | ||
283 | /// <param name="primLocalID"></param> | ||
284 | /// <param name="description"></param> | ||
285 | public void PrimName(uint primLocalID, string name) | ||
286 | { | ||
287 | bool hasPrim = false; | ||
288 | foreach (EntityBase ent in Entities.Values) | ||
289 | { | ||
290 | if (ent is SceneObjectGroup) | ||
291 | { | ||
292 | hasPrim = ((SceneObjectGroup) ent).HasChildPrim(primLocalID); | ||
293 | if (hasPrim != false) | ||
294 | { | ||
295 | ((SceneObjectGroup) ent).SetPartName(name, primLocalID); | ||
296 | break; | ||
297 | } | ||
298 | } | ||
299 | } | ||
300 | } | ||
301 | |||
302 | public void MoveObject(LLUUID objectID, LLVector3 offset, LLVector3 pos, IClientAPI remoteClient) | ||
303 | { | ||
304 | if (PermissionsMngr.CanEditObject(remoteClient.AgentId, objectID)) | ||
305 | { | ||
306 | bool hasPrim = false; | ||
307 | foreach (EntityBase ent in Entities.Values) | ||
308 | { | ||
309 | if (ent is SceneObjectGroup) | ||
310 | { | ||
311 | hasPrim = ((SceneObjectGroup) ent).HasChildPrim(objectID); | ||
312 | if (hasPrim != false) | ||
313 | { | ||
314 | ((SceneObjectGroup) ent).GrabMovement(offset, pos, remoteClient); | ||
315 | break; | ||
316 | } | ||
317 | } | ||
318 | } | ||
319 | } | ||
320 | } | ||
321 | |||
322 | /// <summary> | ||
323 | /// | ||
324 | /// </summary> | ||
325 | /// <param name="localID"></param> | ||
326 | /// <param name="packet"></param> | ||
327 | /// <param name="remoteClient"></param> | ||
328 | public void UpdatePrimFlags(uint localID, Packet packet, IClientAPI remoteClient) | ||
329 | { | ||
330 | bool hasprim = false; | ||
331 | foreach (EntityBase ent in Entities.Values) | ||
332 | { | ||
333 | if (ent is SceneObjectGroup) | ||
334 | { | ||
335 | hasprim = ((SceneObjectGroup) ent).HasChildPrim(localID); | ||
336 | if (hasprim != false) | ||
337 | { | ||
338 | ((SceneObjectGroup) ent).UpdatePrimFlags(localID, (ushort) packet.Type, true, packet.ToBytes()); | ||
339 | } | ||
340 | } | ||
341 | } | ||
342 | |||
343 | //System.Console.WriteLine("Got primupdate packet: " + packet.UsePhysics.ToString()); | ||
344 | } | ||
345 | |||
346 | /// <summary> | ||
347 | /// | ||
348 | /// </summary> | ||
349 | /// <param name="localID"></param> | ||
350 | /// <param name="texture"></param> | ||
351 | /// <param name="remoteClient"></param> | ||
352 | public void UpdatePrimTexture(uint localID, byte[] texture, IClientAPI remoteClient) | ||
353 | { | ||
354 | bool hasPrim = false; | ||
355 | foreach (EntityBase ent in Entities.Values) | ||
356 | { | ||
357 | if (ent is SceneObjectGroup) | ||
358 | { | ||
359 | hasPrim = ((SceneObjectGroup) ent).HasChildPrim(localID); | ||
360 | if (hasPrim != false) | ||
361 | { | ||
362 | ((SceneObjectGroup) ent).UpdateTextureEntry(localID, texture); | ||
363 | break; | ||
364 | } | ||
365 | } | ||
366 | } | ||
367 | } | ||
368 | |||
369 | /// <summary> | ||
370 | /// | ||
371 | /// </summary> | ||
372 | /// <param name="localID"></param> | ||
373 | /// <param name="pos"></param> | ||
374 | /// <param name="remoteClient"></param> | ||
375 | public void UpdatePrimPosition(uint localID, LLVector3 pos, IClientAPI remoteClient) | ||
376 | { | ||
377 | bool hasPrim = false; | ||
378 | foreach (EntityBase ent in Entities.Values) | ||
379 | { | ||
380 | if (ent is SceneObjectGroup) | ||
381 | { | ||
382 | hasPrim = ((SceneObjectGroup) ent).HasChildPrim(localID); | ||
383 | if (hasPrim != false) | ||
384 | { | ||
385 | ((SceneObjectGroup) ent).UpdateGroupPosition(pos); | ||
386 | break; | ||
387 | } | ||
388 | } | ||
389 | } | ||
390 | } | ||
391 | |||
392 | public void UpdatePrimSinglePosition(uint localID, LLVector3 pos, IClientAPI remoteClient) | ||
393 | { | ||
394 | bool hasPrim = false; | ||
395 | foreach (EntityBase ent in Entities.Values) | ||
396 | { | ||
397 | if (ent is SceneObjectGroup) | ||
398 | { | ||
399 | hasPrim = ((SceneObjectGroup) ent).HasChildPrim(localID); | ||
400 | if (hasPrim != false) | ||
401 | { | ||
402 | ((SceneObjectGroup) ent).UpdateSinglePosition(pos, localID); | ||
403 | break; | ||
404 | } | ||
405 | } | ||
406 | } | ||
407 | } | ||
408 | |||
409 | /// <summary> | ||
410 | /// | ||
411 | /// </summary> | ||
412 | /// <param name="localID"></param> | ||
413 | /// <param name="pos"></param> | ||
414 | /// <param name="rot"></param> | ||
415 | /// <param name="remoteClient"></param> | ||
416 | public void UpdatePrimRotation(uint localID, LLVector3 pos, LLQuaternion rot, IClientAPI remoteClient) | ||
417 | { | ||
418 | bool hasPrim = false; | ||
419 | foreach (EntityBase ent in Entities.Values) | ||
420 | { | ||
421 | if (ent is SceneObjectGroup) | ||
422 | { | ||
423 | hasPrim = ((SceneObjectGroup) ent).HasChildPrim(localID); | ||
424 | if (hasPrim != false) | ||
425 | { | ||
426 | ((SceneObjectGroup) ent).UpdateGroupRotation(pos, rot); | ||
427 | break; | ||
428 | } | ||
429 | } | ||
430 | } | ||
431 | } | ||
432 | |||
433 | /// <summary> | ||
434 | /// | ||
435 | /// </summary> | ||
436 | /// <param name="localID"></param> | ||
437 | /// <param name="rot"></param> | ||
438 | /// <param name="remoteClient"></param> | ||
439 | public void UpdatePrimRotation(uint localID, LLQuaternion rot, IClientAPI remoteClient) | ||
440 | { | ||
441 | bool hasPrim = false; | ||
442 | foreach (EntityBase ent in Entities.Values) | ||
443 | { | ||
444 | if (ent is SceneObjectGroup) | ||
445 | { | ||
446 | hasPrim = ((SceneObjectGroup) ent).HasChildPrim(localID); | ||
447 | if (hasPrim != false) | ||
448 | { | ||
449 | ((SceneObjectGroup) ent).UpdateGroupRotation(rot); | ||
450 | break; | ||
451 | } | ||
452 | } | ||
453 | } | ||
454 | } | ||
455 | |||
456 | /// <summary> | ||
457 | /// | ||
458 | /// </summary> | ||
459 | /// <param name="localID"></param> | ||
460 | /// <param name="rot"></param> | ||
461 | /// <param name="remoteClient"></param> | ||
462 | public void UpdatePrimSingleRotation(uint localID, LLQuaternion rot, IClientAPI remoteClient) | ||
463 | { | ||
464 | bool hasPrim = false; | ||
465 | foreach (EntityBase ent in Entities.Values) | ||
466 | { | ||
467 | if (ent is SceneObjectGroup) | ||
468 | { | ||
469 | hasPrim = ((SceneObjectGroup) ent).HasChildPrim(localID); | ||
470 | if (hasPrim != false) | ||
471 | { | ||
472 | ((SceneObjectGroup) ent).UpdateSingleRotation(rot, localID); | ||
473 | break; | ||
474 | } | ||
475 | } | ||
476 | } | ||
477 | } | ||
478 | |||
479 | /// <summary> | ||
480 | /// | ||
481 | /// </summary> | ||
482 | /// <param name="localID"></param> | ||
483 | /// <param name="scale"></param> | ||
484 | /// <param name="remoteClient"></param> | ||
485 | public void UpdatePrimScale(uint localID, LLVector3 scale, IClientAPI remoteClient) | ||
486 | { | ||
487 | bool hasPrim = false; | ||
488 | foreach (EntityBase ent in Entities.Values) | ||
489 | { | ||
490 | if (ent is SceneObjectGroup) | ||
491 | { | ||
492 | hasPrim = ((SceneObjectGroup) ent).HasChildPrim(localID); | ||
493 | if (hasPrim != false) | ||
494 | { | ||
495 | ((SceneObjectGroup) ent).Resize(scale, localID); | ||
496 | break; | ||
497 | } | ||
498 | } | ||
499 | } | ||
500 | } | ||
501 | |||
502 | public void StartAnimation(LLUUID animID, int seq, LLUUID agentId) | 135 | public void StartAnimation(LLUUID animID, int seq, LLUUID agentId) |
503 | { | 136 | { |
504 | Broadcast(delegate(IClientAPI client) { client.SendAnimation(animID, seq, agentId); }); | 137 | Broadcast(delegate(IClientAPI client) { client.SendAnimation(animID, seq, agentId); }); |