aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/InnerScene.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/InnerScene.cs')
-rw-r--r--OpenSim/Region/Environment/Scenes/InnerScene.cs81
1 files changed, 38 insertions, 43 deletions
diff --git a/OpenSim/Region/Environment/Scenes/InnerScene.cs b/OpenSim/Region/Environment/Scenes/InnerScene.cs
index 48fa3dc..57b8ae7 100644
--- a/OpenSim/Region/Environment/Scenes/InnerScene.cs
+++ b/OpenSim/Region/Environment/Scenes/InnerScene.cs
@@ -150,7 +150,7 @@ namespace OpenSim.Region.Environment.Scenes
150 { 150 {
151 lock (m_syncRoot) 151 lock (m_syncRoot)
152 { 152 {
153 return _PhyScene.Simulate((float) elapsed); 153 return _PhyScene.Simulate((float)elapsed);
154 } 154 }
155 } 155 }
156 156
@@ -175,7 +175,7 @@ namespace OpenSim.Region.Environment.Scenes
175 foreach (SceneObjectPart part in sceneObject.Children.Values) 175 foreach (SceneObjectPart part in sceneObject.Children.Values)
176 { 176 {
177 part.LocalID = m_parentScene.PrimIDAllocate(); 177 part.LocalID = m_parentScene.PrimIDAllocate();
178 178
179 } 179 }
180 sceneObject.UpdateParentIDs(); 180 sceneObject.UpdateParentIDs();
181 AddEntity(sceneObject); 181 AddEntity(sceneObject);
@@ -222,9 +222,9 @@ namespace OpenSim.Region.Environment.Scenes
222 { 222 {
223 if (obj is SceneObjectGroup) 223 if (obj is SceneObjectGroup)
224 { 224 {
225 if (((SceneObjectGroup) obj).LocalId == localID) 225 if (((SceneObjectGroup)obj).LocalId == localID)
226 { 226 {
227 m_parentScene.RemoveEntity((SceneObjectGroup) obj); 227 m_parentScene.RemoveEntity((SceneObjectGroup)obj);
228 m_numPrim--; 228 m_numPrim--;
229 return; 229 return;
230 } 230 }
@@ -237,7 +237,8 @@ namespace OpenSim.Region.Environment.Scenes
237 System.Console.WriteLine("Attaching object " + objectLocalID + " to " + AttachmentPt); 237 System.Console.WriteLine("Attaching object " + objectLocalID + " to " + AttachmentPt);
238 SceneObjectPart p = GetSceneObjectPart(objectLocalID); 238 SceneObjectPart p = GetSceneObjectPart(objectLocalID);
239 ScenePresence av = null; 239 ScenePresence av = null;
240 if (TryGetAvatar(remoteClient.AgentId, out av)) { 240 if (TryGetAvatar(remoteClient.AgentId, out av))
241 {
241 ObjectUpdatePacket objupdate = new ObjectUpdatePacket(); 242 ObjectUpdatePacket objupdate = new ObjectUpdatePacket();
242 objupdate.RegionData.RegionHandle = m_regInfo.RegionHandle; 243 objupdate.RegionData.RegionHandle = m_regInfo.RegionHandle;
243 objupdate.RegionData.TimeDilation = ushort.MaxValue; 244 objupdate.RegionData.TimeDilation = ushort.MaxValue;
@@ -287,7 +288,7 @@ namespace OpenSim.Region.Environment.Scenes
287 objupdate.ObjectData[0].NameValue = 288 objupdate.ObjectData[0].NameValue =
288 Helpers.StringToField("FirstName STRING RW SV " + av.Firstname + "\nLastName STRING RW SV " + av.Lastname); 289 Helpers.StringToField("FirstName STRING RW SV " + av.Firstname + "\nLastName STRING RW SV " + av.Lastname);
289 LLVector3 pos2 = av.AbsolutePosition; 290 LLVector3 pos2 = av.AbsolutePosition;
290 // new LLVector3((float) Pos.X, (float) Pos.Y, (float) Pos.Z); 291 // new LLVector3((float) Pos.X, (float) Pos.Y, (float) Pos.Z);
291 byte[] pb = pos2.GetBytes(); 292 byte[] pb = pos2.GetBytes();
292 Array.Copy(pb, 0, objupdate.ObjectData[0].ObjectData, 16, pb.Length); 293 Array.Copy(pb, 0, objupdate.ObjectData[0].ObjectData, 16, pb.Length);
293 294
@@ -318,7 +319,7 @@ namespace OpenSim.Region.Environment.Scenes
318 319
319 objupdate.ObjectData[1].TextureEntry = primData.TextureEntry; 320 objupdate.ObjectData[1].TextureEntry = primData.TextureEntry;
320 objupdate.ObjectData[1].PCode = primData.PCode; 321 objupdate.ObjectData[1].PCode = primData.PCode;
321 objupdate.ObjectData[1].State = (byte)(((byte)AttachmentPt) << 4) ; 322 objupdate.ObjectData[1].State = (byte)(((byte)AttachmentPt) << 4);
322 objupdate.ObjectData[1].PathBegin = primData.PathBegin; 323 objupdate.ObjectData[1].PathBegin = primData.PathBegin;
323 objupdate.ObjectData[1].PathEnd = primData.PathEnd; 324 objupdate.ObjectData[1].PathEnd = primData.PathEnd;
324 objupdate.ObjectData[1].PathScaleX = primData.PathScaleX; 325 objupdate.ObjectData[1].PathScaleX = primData.PathScaleX;
@@ -356,7 +357,7 @@ namespace OpenSim.Region.Environment.Scenes
356 objupdate.ObjectData[1].Radius = 20; 357 objupdate.ObjectData[1].Radius = 20;
357 objupdate.ObjectData[1].NameValue = 358 objupdate.ObjectData[1].NameValue =
358 Helpers.StringToField("AttachItemID STRING RW SV " + p.UUID); 359 Helpers.StringToField("AttachItemID STRING RW SV " + p.UUID);
359 LLVector3 pos = new LLVector3((float) 0.0, (float) 0.0, (float) 0.0); 360 LLVector3 pos = new LLVector3((float)0.0, (float)0.0, (float)0.0);
360 361
361 pb = pos.GetBytes(); 362 pb = pos.GetBytes();
362 Array.Copy(pb, 0, objupdate.ObjectData[1].ObjectData, 0, pb.Length); 363 Array.Copy(pb, 0, objupdate.ObjectData[1].ObjectData, 0, pb.Length);
@@ -364,13 +365,7 @@ namespace OpenSim.Region.Environment.Scenes
364 byte[] brot = rot.GetBytes(); 365 byte[] brot = rot.GetBytes();
365 Array.Copy(brot, 0, objupdate.ObjectData[1].ObjectData, 36, brot.Length); 366 Array.Copy(brot, 0, objupdate.ObjectData[1].ObjectData, 36, brot.Length);
366 367
367 368 remoteClient.OutPacket(objupdate, ThrottleOutPacketType.Task);
368
369 remoteClient.OutPacket(objupdate, ThrottleOutPacketType.Task);
370
371
372
373
374 } 369 }
375 else 370 else
376 { 371 {
@@ -466,8 +461,8 @@ namespace OpenSim.Region.Environment.Scenes
466 { 461 {
467 // some network situations come in where child agents get closed twice. 462 // some network situations come in where child agents get closed twice.
468 if (m_numChildAgents < 0) 463 if (m_numChildAgents < 0)
469 { 464 {
470 m_numChildAgents = 0; 465 m_numChildAgents = 0;
471 } 466 }
472 467
473 return m_numChildAgents; 468 return m_numChildAgents;
@@ -569,8 +564,8 @@ namespace OpenSim.Region.Environment.Scenes
569 { 564 {
570 if (ent is SceneObjectGroup) 565 if (ent is SceneObjectGroup)
571 { 566 {
572 if (((SceneObjectGroup) ent).HasChildPrim(localID)) 567 if (((SceneObjectGroup)ent).HasChildPrim(localID))
573 return (SceneObjectGroup) ent; 568 return (SceneObjectGroup)ent;
574 } 569 }
575 } 570 }
576 return null; 571 return null;
@@ -584,8 +579,8 @@ namespace OpenSim.Region.Environment.Scenes
584 { 579 {
585 if (ent is SceneObjectGroup) 580 if (ent is SceneObjectGroup)
586 { 581 {
587 if (((SceneObjectGroup) ent).HasChildPrim(fullID)) 582 if (((SceneObjectGroup)ent).HasChildPrim(fullID))
588 return (SceneObjectGroup) ent; 583 return (SceneObjectGroup)ent;
589 } 584 }
590 } 585 }
591 return null; 586 return null;
@@ -600,7 +595,7 @@ namespace OpenSim.Region.Environment.Scenes
600 { 595 {
601 if (ent is SceneObjectGroup) 596 if (ent is SceneObjectGroup)
602 { 597 {
603 SceneObjectGroup reportingG = (SceneObjectGroup) ent; 598 SceneObjectGroup reportingG = (SceneObjectGroup)ent;
604 EntityIntersection result = reportingG.TestIntersection(hray); 599 EntityIntersection result = reportingG.TestIntersection(hray);
605 if (result.HitTF) 600 if (result.HitTF)
606 { 601 {
@@ -613,7 +608,7 @@ namespace OpenSim.Region.Environment.Scenes
613 } 608 }
614 } 609 }
615 return returnResult; 610 return returnResult;
616 } 611 }
617 612
618 public SceneObjectPart GetSceneObjectPart(uint localID) 613 public SceneObjectPart GetSceneObjectPart(uint localID)
619 { 614 {
@@ -719,7 +714,7 @@ namespace OpenSim.Region.Environment.Scenes
719 if (presence.IsChildAgent && m_parentScene.m_seeIntoRegionFromNeighbor) 714 if (presence.IsChildAgent && m_parentScene.m_seeIntoRegionFromNeighbor)
720 { 715 {
721 LLVector3 oLoc = ((SceneObjectGroup)ent).AbsolutePosition; 716 LLVector3 oLoc = ((SceneObjectGroup)ent).AbsolutePosition;
722 float distResult = (float)Util.GetDistanceTo(presence.AbsolutePosition,oLoc); 717 float distResult = (float)Util.GetDistanceTo(presence.AbsolutePosition, oLoc);
723 718
724 //m_log.Info("[DISTANCE]: " + distResult.ToString()); 719 //m_log.Info("[DISTANCE]: " + distResult.ToString());
725 720
@@ -727,13 +722,13 @@ namespace OpenSim.Region.Environment.Scenes
727 { 722 {
728 // Send Only if we don't already know about it. 723 // Send Only if we don't already know about it.
729 // KnownPrim also makes the prim known when called. 724 // KnownPrim also makes the prim known when called.
730 if (!presence.KnownPrim(((SceneObjectGroup) ent).UUID)) 725 if (!presence.KnownPrim(((SceneObjectGroup)ent).UUID))
731 ((SceneObjectGroup) ent).ScheduleFullUpdateToAvatar(presence); 726 ((SceneObjectGroup)ent).ScheduleFullUpdateToAvatar(presence);
732 } 727 }
733 } 728 }
734 else 729 else
735 { 730 {
736 ((SceneObjectGroup) ent).ScheduleFullUpdateToAvatar(presence); 731 ((SceneObjectGroup)ent).ScheduleFullUpdateToAvatar(presence);
737 } 732 }
738 } 733 }
739 } 734 }
@@ -903,7 +898,7 @@ namespace OpenSim.Region.Environment.Scenes
903 { 898 {
904 if (PermissionsMngr.CanEditObject(remoteClient.AgentId, group.UUID)) 899 if (PermissionsMngr.CanEditObject(remoteClient.AgentId, group.UUID))
905 { 900 {
906 group.UpdatePrimFlags(localID, (ushort) packet.Type, true, packet.ToBytes()); 901 group.UpdatePrimFlags(localID, (ushort)packet.Type, true, packet.ToBytes());
907 } 902 }
908 } 903 }
909 } 904 }
@@ -1003,9 +998,9 @@ namespace OpenSim.Region.Environment.Scenes
1003 { 998 {
1004 if (ent is SceneObjectGroup) 999 if (ent is SceneObjectGroup)
1005 { 1000 {
1006 if (((SceneObjectGroup) ent).LocalId == parentPrim) 1001 if (((SceneObjectGroup)ent).LocalId == parentPrim)
1007 { 1002 {
1008 parenPrim = (SceneObjectGroup) ent; 1003 parenPrim = (SceneObjectGroup)ent;
1009 break; 1004 break;
1010 } 1005 }
1011 } 1006 }
@@ -1020,9 +1015,9 @@ namespace OpenSim.Region.Environment.Scenes
1020 { 1015 {
1021 if (ent is SceneObjectGroup) 1016 if (ent is SceneObjectGroup)
1022 { 1017 {
1023 if (((SceneObjectGroup) ent).LocalId == childPrims[i]) 1018 if (((SceneObjectGroup)ent).LocalId == childPrims[i])
1024 { 1019 {
1025 children.Add((SceneObjectGroup) ent); 1020 children.Add((SceneObjectGroup)ent);
1026 } 1021 }
1027 } 1022 }
1028 } 1023 }
@@ -1049,25 +1044,25 @@ namespace OpenSim.Region.Environment.Scenes
1049 // be more efficient yet to keep this dictionary permanently on hand. 1044 // be more efficient yet to keep this dictionary permanently on hand.
1050 1045
1051 Dictionary<uint, SceneObjectGroup> sceneObjects = new Dictionary<uint, SceneObjectGroup>(); 1046 Dictionary<uint, SceneObjectGroup> sceneObjects = new Dictionary<uint, SceneObjectGroup>();
1052 1047
1053 List<EntityBase> EntitieList = GetEntities(); 1048 List<EntityBase> EntitieList = GetEntities();
1054 foreach (EntityBase ent in EntitieList) 1049 foreach (EntityBase ent in EntitieList)
1055 { 1050 {
1056 if (ent is SceneObjectGroup) 1051 if (ent is SceneObjectGroup)
1057 { 1052 {
1058 SceneObjectGroup obj = (SceneObjectGroup) ent; 1053 SceneObjectGroup obj = (SceneObjectGroup)ent;
1059 sceneObjects.Add(obj.LocalId, obj); 1054 sceneObjects.Add(obj.LocalId, obj);
1060 1055
1061 } 1056 }
1062 } 1057 }
1063 1058
1064 // Find the root prim among the prim ids we've been given 1059 // Find the root prim among the prim ids we've been given
1065 for (int i = 0; i < primIds.Count; i++) 1060 for (int i = 0; i < primIds.Count; i++)
1066 { 1061 {
1067 1062
1068 if (sceneObjects.ContainsKey(primIds[i])) 1063 if (sceneObjects.ContainsKey(primIds[i]))
1069 { 1064 {
1070 1065
1071 parenPrim = sceneObjects[primIds[i]]; 1066 parenPrim = sceneObjects[primIds[i]];
1072 primIds.RemoveAt(i); 1067 primIds.RemoveAt(i);
1073 break; 1068 break;
@@ -1124,9 +1119,9 @@ namespace OpenSim.Region.Environment.Scenes
1124 { 1119 {
1125 if (ent is SceneObjectGroup) 1120 if (ent is SceneObjectGroup)
1126 { 1121 {
1127 if (((SceneObjectGroup) ent).LocalId == originalPrim) 1122 if (((SceneObjectGroup)ent).LocalId == originalPrim)
1128 { 1123 {
1129 originPrim = (SceneObjectGroup) ent; 1124 originPrim = (SceneObjectGroup)ent;
1130 break; 1125 break;
1131 } 1126 }
1132 } 1127 }
@@ -1139,14 +1134,14 @@ namespace OpenSim.Region.Environment.Scenes
1139 SceneObjectGroup copy = originPrim.Copy(AgentID, GroupID); 1134 SceneObjectGroup copy = originPrim.Copy(AgentID, GroupID);
1140 copy.AbsolutePosition = copy.AbsolutePosition + offset; 1135 copy.AbsolutePosition = copy.AbsolutePosition + offset;
1141 copy.ResetIDs(); 1136 copy.ResetIDs();
1142 1137
1143 lock (Entities) 1138 lock (Entities)
1144 { 1139 {
1145 Entities.Add(copy.UUID, copy); 1140 Entities.Add(copy.UUID, copy);
1146 } 1141 }
1147 1142
1148 m_numPrim++; 1143 m_numPrim++;
1149 1144
1150 copy.StartScripts(); 1145 copy.StartScripts();
1151 copy.ScheduleGroupForFullUpdate(); 1146 copy.ScheduleGroupForFullUpdate();
1152 } 1147 }
@@ -1170,7 +1165,7 @@ namespace OpenSim.Region.Environment.Scenes
1170 1165
1171 return 1166 return
1172 (float) 1167 (float)
1173 Math.Sqrt((v1.x - v2.x)*(v1.x - v2.x) + (v1.y - v2.y)*(v1.y - v2.y) + (v1.z - v2.z)*(v1.z - v2.z)); 1168 Math.Sqrt((v1.x - v2.x) * (v1.x - v2.x) + (v1.y - v2.y) * (v1.y - v2.y) + (v1.z - v2.z) * (v1.z - v2.z));
1174 } 1169 }
1175 1170
1176 #endregion 1171 #endregion