aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/Scene.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/Scene.cs')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs262
1 files changed, 131 insertions, 131 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index 1964ef4..32dc7d5 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -98,7 +98,7 @@ namespace OpenSim.Region.Environment.Scenes
98 /// Each agent has its own capabilities handler. 98 /// Each agent has its own capabilities handler.
99 /// </summary> 99 /// </summary>
100 protected Dictionary<LLUUID, Caps> m_capsHandlers = new Dictionary<LLUUID, Caps>(); 100 protected Dictionary<LLUUID, Caps> m_capsHandlers = new Dictionary<LLUUID, Caps>();
101 101
102 protected BaseHttpServer m_httpListener; 102 protected BaseHttpServer m_httpListener;
103 103
104 protected Dictionary<string, IRegionModule> Modules = new Dictionary<string, IRegionModule>(); 104 protected Dictionary<string, IRegionModule> Modules = new Dictionary<string, IRegionModule>();
@@ -135,7 +135,7 @@ namespace OpenSim.Region.Environment.Scenes
135 private int m_update_backup = 200; 135 private int m_update_backup = 200;
136 private int m_update_terrain = 50; 136 private int m_update_terrain = 50;
137 private int m_update_land = 1; 137 private int m_update_land = 1;
138 138
139 139
140 private int frameMS = 0; 140 private int frameMS = 0;
141 private int physicsMS2 = 0; 141 private int physicsMS2 = 0;
@@ -201,7 +201,7 @@ namespace OpenSim.Region.Environment.Scenes
201 get { return m_innerScene.Entities; } 201 get { return m_innerScene.Entities; }
202 set { m_innerScene.Entities = value; } 202 set { m_innerScene.Entities = value; }
203 } 203 }
204 204
205 public Dictionary<LLUUID, ScenePresence> m_restorePresences 205 public Dictionary<LLUUID, ScenePresence> m_restorePresences
206 { 206 {
207 get { return m_innerScene.RestorePresences; } 207 get { return m_innerScene.RestorePresences; }
@@ -324,14 +324,14 @@ namespace OpenSim.Region.Environment.Scenes
324 324
325 public override bool OtherRegionUp(RegionInfo otherRegion) 325 public override bool OtherRegionUp(RegionInfo otherRegion)
326 { 326 {
327 // Another region is up. 327 // Another region is up.
328 // Gets called from Grid Comms (SceneCommunicationService<---RegionListener<----LocalBackEnd<----OGS1) 328 // Gets called from Grid Comms (SceneCommunicationService<---RegionListener<----LocalBackEnd<----OGS1)
329 // We have to tell all our ScenePresences about it.. 329 // We have to tell all our ScenePresences about it..
330 // and add it to the neighbor list. 330 // and add it to the neighbor list.
331 331
332 // We only add it to the neighbor list if it's within 1 region from here. 332 // We only add it to the neighbor list if it's within 1 region from here.
333 // Agents may have draw distance values that cross two regions though, so 333 // Agents may have draw distance values that cross two regions though, so
334 // we add it to the notify list regardless of distance. 334 // we add it to the notify list regardless of distance.
335 // We'll check the agent's draw distance before notifying them though. 335 // We'll check the agent's draw distance before notifying them though.
336 336
337 337
@@ -339,9 +339,9 @@ namespace OpenSim.Region.Environment.Scenes
339 { 339 {
340 for (int i = 0; i < m_neighbours.Count; i++) 340 for (int i = 0; i < m_neighbours.Count; i++)
341 { 341 {
342 // The purpose of this loop is to re-update the known neighbors 342 // The purpose of this loop is to re-update the known neighbors
343 // when another region comes up on top of another one. 343 // when another region comes up on top of another one.
344 // The latest region in that location ends up in the 344 // The latest region in that location ends up in the
345 // 'known neighbors list' 345 // 'known neighbors list'
346 // Additionally, the commFailTF property gets reset to false. 346 // Additionally, the commFailTF property gets reset to false.
347 if (m_neighbours[i].RegionHandle == otherRegion.RegionHandle) 347 if (m_neighbours[i].RegionHandle == otherRegion.RegionHandle)
@@ -354,7 +354,7 @@ namespace OpenSim.Region.Environment.Scenes
354 } 354 }
355 355
356 // If the value isn't in the neighbours, add it. 356 // If the value isn't in the neighbours, add it.
357 // If the RegionInfo isn't exact but is for the same XY World location, 357 // If the RegionInfo isn't exact but is for the same XY World location,
358 // then the above loop will fix that. 358 // then the above loop will fix that.
359 359
360 if (!(CheckNeighborRegion(otherRegion))) 360 if (!(CheckNeighborRegion(otherRegion)))
@@ -431,8 +431,8 @@ namespace OpenSim.Region.Environment.Scenes
431 } 431 }
432 } 432 }
433 return found; 433 return found;
434 434
435 435
436 } 436 }
437 public virtual void Restart(float seconds) 437 public virtual void Restart(float seconds)
438 { 438 {
@@ -461,8 +461,8 @@ namespace OpenSim.Region.Environment.Scenes
461 } 461 }
462 } 462 }
463 463
464 // The Restart timer has occured. 464 // The Restart timer has occured.
465 // We have to figure out if this is a notification or if the number of seconds specified in Restart 465 // We have to figure out if this is a notification or if the number of seconds specified in Restart
466 // have elapsed. 466 // have elapsed.
467 // If they have elapsed, call RestartNow() 467 // If they have elapsed, call RestartNow()
468 public void RestartTimer_Elapsed(object sender, ElapsedEventArgs e) 468 public void RestartTimer_Elapsed(object sender, ElapsedEventArgs e)
@@ -500,7 +500,7 @@ namespace OpenSim.Region.Environment.Scenes
500 } 500 }
501 501
502 // This is a helper function that notifies root agents in this region that a new sim near them has come up 502 // This is a helper function that notifies root agents in this region that a new sim near them has come up
503 // This is in the form of a timer because when an instance of OpenSim.exe is started, 503 // This is in the form of a timer because when an instance of OpenSim.exe is started,
504 // Even though the sims initialize, they don't listen until 'all of the sims are initialized' 504 // Even though the sims initialize, they don't listen until 'all of the sims are initialized'
505 // If we tell an agent about a sim that's not listening yet, the agent will not be able to connect to it. 505 // If we tell an agent about a sim that's not listening yet, the agent will not be able to connect to it.
506 // subsequently the agent will never see the region come back online. 506 // subsequently the agent will never see the region come back online.
@@ -730,7 +730,7 @@ namespace OpenSim.Region.Environment.Scenes
730 if (m_frame % m_update_entities == 0) 730 if (m_frame % m_update_entities == 0)
731 m_innerScene.UpdateEntities(); 731 m_innerScene.UpdateEntities();
732 732
733 // run through entities that have scheduled themselves for 733 // run through entities that have scheduled themselves for
734 // updates looking for updates(faster) 734 // updates looking for updates(faster)
735 if (m_frame % m_update_entitiesquick == 0) 735 if (m_frame % m_update_entitiesquick == 0)
736 m_innerScene.ProcessUpdates(); 736 m_innerScene.ProcessUpdates();
@@ -743,13 +743,13 @@ namespace OpenSim.Region.Environment.Scenes
743 { 743 {
744 if (m_frame % m_update_events == 0) 744 if (m_frame % m_update_events == 0)
745 UpdateEvents(); 745 UpdateEvents();
746 746
747 if (m_frame % m_update_backup == 0) 747 if (m_frame % m_update_backup == 0)
748 UpdateStorageBackup(); 748 UpdateStorageBackup();
749 749
750 if (m_frame % m_update_terrain == 0) 750 if (m_frame % m_update_terrain == 0)
751 UpdateTerrain(); 751 UpdateTerrain();
752 752
753 if (m_frame % m_update_land == 0) 753 if (m_frame % m_update_land == 0)
754 UpdateLand(); 754 UpdateLand();
755 otherMS = System.Environment.TickCount - otherMS; 755 otherMS = System.Environment.TickCount - otherMS;
@@ -800,14 +800,14 @@ namespace OpenSim.Region.Environment.Scenes
800 // Get actual time dilation 800 // Get actual time dilation
801 float tmpval = (m_timespan / (float)SinceLastFrame.TotalSeconds); 801 float tmpval = (m_timespan / (float)SinceLastFrame.TotalSeconds);
802 802
803 // If actual time dilation is greater then one, we're catching up, so subtract 803 // If actual time dilation is greater then one, we're catching up, so subtract
804 // the amount that's greater then 1 from the time dilation 804 // the amount that's greater then 1 from the time dilation
805 if (tmpval > 1.0) 805 if (tmpval > 1.0)
806 { 806 {
807 tmpval = tmpval - (tmpval - 1.0f); 807 tmpval = tmpval - (tmpval - 1.0f);
808 } 808 }
809 m_timedilation = tmpval; 809 m_timedilation = tmpval;
810 810
811 m_lastupdate = DateTime.Now; 811 m_lastupdate = DateTime.Now;
812 } 812 }
813 } 813 }
@@ -858,9 +858,9 @@ namespace OpenSim.Region.Environment.Scenes
858 { 858 {
859 ForEachScenePresence(delegate(ScenePresence presence) { whatToDo(presence.ControllingClient); }); 859 ForEachScenePresence(delegate(ScenePresence presence) { whatToDo(presence.ControllingClient); });
860 } 860 }
861 861
862 /// <summary> 862 /// <summary>
863 /// 863 ///
864 /// </summary> 864 /// </summary>
865 /// <returns></returns> 865 /// <returns></returns>
866 public bool Backup() 866 public bool Backup()
@@ -929,7 +929,7 @@ namespace OpenSim.Region.Environment.Scenes
929 /// <summary> 929 /// <summary>
930 /// Loads the World heightmap 930 /// Loads the World heightmap
931 /// </summary> 931 /// </summary>
932 /// 932 ///
933 public override void LoadWorldMap() 933 public override void LoadWorldMap()
934 { 934 {
935 try 935 try
@@ -946,7 +946,7 @@ namespace OpenSim.Region.Environment.Scenes
946 { 946 {
947 Heightmap = new TerrainChannel(map); 947 Heightmap = new TerrainChannel(map);
948 } 948 }
949 949
950 } 950 }
951 catch (Exception e) 951 catch (Exception e)
952 { 952 {
@@ -961,13 +961,13 @@ namespace OpenSim.Region.Environment.Scenes
961 public void RegisterRegionWithGrid() 961 public void RegisterRegionWithGrid()
962 { 962 {
963 RegisterCommsEvents(); 963 RegisterCommsEvents();
964 964
965 // These two 'commands' *must be* next to each other or sim rebooting fails. 965 // These two 'commands' *must be* next to each other or sim rebooting fails.
966 m_sceneGridService.RegisterRegion(RegionInfo); 966 m_sceneGridService.RegisterRegion(RegionInfo);
967 m_sceneGridService.InformNeighborsThatRegionisUp(RegionInfo); 967 m_sceneGridService.InformNeighborsThatRegionisUp(RegionInfo);
968 968
969 Dictionary<string, string> dGridSettings = m_sceneGridService.GetGridSettings(); 969 Dictionary<string, string> dGridSettings = m_sceneGridService.GetGridSettings();
970 970
971 if (dGridSettings.ContainsKey("allow_forceful_banlines")) 971 if (dGridSettings.ContainsKey("allow_forceful_banlines"))
972 { 972 {
973 if (dGridSettings["allow_forceful_banlines"] != "TRUE") 973 if (dGridSettings["allow_forceful_banlines"] != "TRUE")
@@ -984,11 +984,11 @@ namespace OpenSim.Region.Environment.Scenes
984 } 984 }
985 985
986 /// <summary> 986 /// <summary>
987 /// 987 ///
988 /// </summary> 988 /// </summary>
989 public void CreateTerrainTexture(bool temporary) 989 public void CreateTerrainTexture(bool temporary)
990 { 990 {
991 //create a texture asset of the terrain 991 //create a texture asset of the terrain
992 IMapImageGenerator terrain = RequestModuleInterface<IMapImageGenerator>(); 992 IMapImageGenerator terrain = RequestModuleInterface<IMapImageGenerator>();
993 993
994 // Cannot create a map for a nonexistant heightmap yet. 994 // Cannot create a map for a nonexistant heightmap yet.
@@ -1129,7 +1129,7 @@ namespace OpenSim.Region.Environment.Scenes
1129 AssetCache.AddAsset(asset); 1129 AssetCache.AddAsset(asset);
1130 } 1130 }
1131 } 1131 }
1132 1132
1133 } 1133 }
1134 1134
1135 #endregion 1135 #endregion
@@ -1211,7 +1211,7 @@ namespace OpenSim.Region.Environment.Scenes
1211 if (RayTargetID != LLUUID.Zero) 1211 if (RayTargetID != LLUUID.Zero)
1212 { 1212 {
1213 SceneObjectPart target = GetSceneObjectPart(RayTargetID); 1213 SceneObjectPart target = GetSceneObjectPart(RayTargetID);
1214 1214
1215 LLVector3 direction = LLVector3.Norm(RayEnd - RayStart); 1215 LLVector3 direction = LLVector3.Norm(RayEnd - RayStart);
1216 Vector3 AXOrigin = new Vector3(RayStart.X, RayStart.Y, RayStart.Z); 1216 Vector3 AXOrigin = new Vector3(RayStart.X, RayStart.Y, RayStart.Z);
1217 Vector3 AXdirection = new Vector3(direction.X, direction.Y, direction.Z); 1217 Vector3 AXdirection = new Vector3(direction.X, direction.Y, direction.Z);
@@ -1220,9 +1220,9 @@ namespace OpenSim.Region.Environment.Scenes
1220 { 1220 {
1221 pos = target.AbsolutePosition; 1221 pos = target.AbsolutePosition;
1222 //m_log.Info("[OBJECT_REZ]: TargetPos: " + pos.ToString() + ", RayStart: " + RayStart.ToString() + ", RayEnd: " + RayEnd.ToString() + ", Volume: " + Util.GetDistanceTo(RayStart,RayEnd).ToString() + ", mag1: " + Util.GetMagnitude(RayStart).ToString() + ", mag2: " + Util.GetMagnitude(RayEnd).ToString()); 1222 //m_log.Info("[OBJECT_REZ]: TargetPos: " + pos.ToString() + ", RayStart: " + RayStart.ToString() + ", RayEnd: " + RayEnd.ToString() + ", Volume: " + Util.GetDistanceTo(RayStart,RayEnd).ToString() + ", mag1: " + Util.GetMagnitude(RayStart).ToString() + ", mag2: " + Util.GetMagnitude(RayEnd).ToString());
1223 1223
1224 // TODO: Raytrace better here 1224 // TODO: Raytrace better here
1225 1225
1226 //EntityIntersection ei = m_innerScene.GetClosestIntersectingPrim(new Ray(AXOrigin, AXdirection)); 1226 //EntityIntersection ei = m_innerScene.GetClosestIntersectingPrim(new Ray(AXOrigin, AXdirection));
1227 Ray NewRay = new Ray(AXOrigin, AXdirection); 1227 Ray NewRay = new Ray(AXOrigin, AXdirection);
1228 1228
@@ -1246,13 +1246,13 @@ namespace OpenSim.Region.Environment.Scenes
1246 // Set the position to the intersection point 1246 // Set the position to the intersection point
1247 LLVector3 offset = (normal * (ScaleOffset / 2f)); 1247 LLVector3 offset = (normal * (ScaleOffset / 2f));
1248 pos = (intersectionpoint + offset); 1248 pos = (intersectionpoint + offset);
1249 1249
1250 // Un-offset the prim (it gets offset later by the consumer method) 1250 // Un-offset the prim (it gets offset later by the consumer method)
1251 pos.Z -= 0.25F; 1251 pos.Z -= 0.25F;
1252 1252
1253 } 1253 }
1254 1254
1255 1255
1256 return pos; 1256 return pos;
1257 } 1257 }
1258 else 1258 else
@@ -1267,8 +1267,8 @@ namespace OpenSim.Region.Environment.Scenes
1267 if (ei.HitTF) 1267 if (ei.HitTF)
1268 { 1268 {
1269 pos = new LLVector3(ei.ipoint.x, ei.ipoint.y, ei.ipoint.z); 1269 pos = new LLVector3(ei.ipoint.x, ei.ipoint.y, ei.ipoint.z);
1270 } 1270 }
1271 1271
1272 return pos; 1272 return pos;
1273 } 1273 }
1274 } 1274 }
@@ -1284,7 +1284,7 @@ namespace OpenSim.Region.Environment.Scenes
1284 byte bypassRaycast, LLVector3 RayStart, LLUUID RayTargetID, 1284 byte bypassRaycast, LLVector3 RayStart, LLUUID RayTargetID,
1285 byte RayEndIsIntersection) 1285 byte RayEndIsIntersection)
1286 { 1286 {
1287 1287
1288 LLVector3 pos = GetNewRezLocation(RayStart, RayEnd, RayTargetID, rot, bypassRaycast, RayEndIsIntersection, true, new LLVector3(0.5f,0.5f,0.5f), false); 1288 LLVector3 pos = GetNewRezLocation(RayStart, RayEnd, RayTargetID, rot, bypassRaycast, RayEndIsIntersection, true, new LLVector3(0.5f,0.5f,0.5f), false);
1289 1289
1290 if ( ExternalChecks.ExternalChecksCanRezObject(1,ownerID,pos)) 1290 if ( ExternalChecks.ExternalChecksCanRezObject(1,ownerID,pos))
@@ -1386,11 +1386,11 @@ namespace OpenSim.Region.Environment.Scenes
1386 1386
1387 /// <summary> 1387 /// <summary>
1388 /// Locate New region Handle and offset the prim position for the new region 1388 /// Locate New region Handle and offset the prim position for the new region
1389 /// 1389 ///
1390 /// </summary> 1390 /// </summary>
1391 /// <param name="position">current position of Group</param> 1391 /// <param name="position">current position of Group</param>
1392 /// <param name="grp">Scene Object Group that we're crossing</param> 1392 /// <param name="grp">Scene Object Group that we're crossing</param>
1393 1393
1394 public void CrossPrimGroupIntoNewRegion(LLVector3 position, SceneObjectGroup grp) 1394 public void CrossPrimGroupIntoNewRegion(LLVector3 position, SceneObjectGroup grp)
1395 { 1395 {
1396 if (grp == null) 1396 if (grp == null)
@@ -1424,7 +1424,7 @@ namespace OpenSim.Region.Environment.Scenes
1424 pos.X = ((pos.X - Constants.RegionSize)); 1424 pos.X = ((pos.X - Constants.RegionSize));
1425 1425
1426 newRegionHandle = Util.UIntsToLong((uint)((thisx + 1) * Constants.RegionSize), (uint)(thisy * Constants.RegionSize)); 1426 newRegionHandle = Util.UIntsToLong((uint)((thisx + 1) * Constants.RegionSize), (uint)(thisy * Constants.RegionSize));
1427 1427
1428 // x + 1 1428 // x + 1
1429 } 1429 }
1430 else if (position.X < -0.1f) 1430 else if (position.X < -0.1f)
@@ -1449,7 +1449,7 @@ namespace OpenSim.Region.Environment.Scenes
1449 1449
1450 // Offset the positions for the new region across the border 1450 // Offset the positions for the new region across the border
1451 grp.OffsetForNewRegion(pos); 1451 grp.OffsetForNewRegion(pos);
1452 1452
1453 CrossPrimGroupIntoNewRegion(newRegionHandle, grp); 1453 CrossPrimGroupIntoNewRegion(newRegionHandle, grp);
1454 1454
1455 } 1455 }
@@ -1507,7 +1507,7 @@ namespace OpenSim.Region.Environment.Scenes
1507 if (sp != null) 1507 if (sp != null)
1508 { 1508 {
1509 // hack assetID until we get assetID into the XML format. 1509 // hack assetID until we get assetID into the XML format.
1510 // LastOwnerID is used for group deeding, so when you do stuff 1510 // LastOwnerID is used for group deeding, so when you do stuff
1511 // with the deeded object, it goes back to them 1511 // with the deeded object, it goes back to them
1512 1512
1513 grp.SetFromAssetID(grp.RootPart.LastOwnerID); 1513 grp.SetFromAssetID(grp.RootPart.LastOwnerID);
@@ -1515,7 +1515,7 @@ namespace OpenSim.Region.Environment.Scenes
1515 } 1515 }
1516 } 1516 }
1517 } 1517 }
1518 1518
1519 1519
1520 } 1520 }
1521 } 1521 }
@@ -1533,16 +1533,16 @@ namespace OpenSim.Region.Environment.Scenes
1533 #region Add/Remove Avatar Methods 1533 #region Add/Remove Avatar Methods
1534 1534
1535 /// <summary> 1535 /// <summary>
1536 /// 1536 ///
1537 /// </summary> 1537 /// </summary>
1538 /// <param name="client"></param 1538 /// <param name="client"></param
1539 /// <param name="child"></param> 1539 /// <param name="child"></param>
1540 public override void AddNewClient(IClientAPI client, bool child) 1540 public override void AddNewClient(IClientAPI client, bool child)
1541 { 1541 {
1542 m_log.DebugFormat( 1542 m_log.DebugFormat(
1543 "[CONNECTION DEBUGGING]: Creating new client for {0} at {1}", 1543 "[CONNECTION DEBUGGING]: Creating new client for {0} at {1}",
1544 client.AgentId, RegionInfo.RegionName); 1544 client.AgentId, RegionInfo.RegionName);
1545 1545
1546 SubscribeToClientEvents(client); 1546 SubscribeToClientEvents(client);
1547 ScenePresence presence; 1547 ScenePresence presence;
1548 1548
@@ -1618,7 +1618,7 @@ namespace OpenSim.Region.Environment.Scenes
1618 client.OnObjectDuplicateOnRay += doObjectDuplicateOnRay; 1618 client.OnObjectDuplicateOnRay += doObjectDuplicateOnRay;
1619 client.OnUpdatePrimFlags += m_innerScene.UpdatePrimFlags; 1619 client.OnUpdatePrimFlags += m_innerScene.UpdatePrimFlags;
1620 client.OnRequestObjectPropertiesFamily += m_innerScene.RequestObjectPropertiesFamily; 1620 client.OnRequestObjectPropertiesFamily += m_innerScene.RequestObjectPropertiesFamily;
1621 1621
1622 client.OnRequestGodlikePowers += handleRequestGodlikePowers; 1622 client.OnRequestGodlikePowers += handleRequestGodlikePowers;
1623 client.OnGodKickUser += HandleGodlikeKickUser; 1623 client.OnGodKickUser += HandleGodlikeKickUser;
1624 client.OnObjectPermissions += HandleObjectPermissionsUpdate; 1624 client.OnObjectPermissions += HandleObjectPermissionsUpdate;
@@ -1655,7 +1655,7 @@ namespace OpenSim.Region.Environment.Scenes
1655 1655
1656 client.OnSetStartLocationRequest += SetHomeRezPoint; 1656 client.OnSetStartLocationRequest += SetHomeRezPoint;
1657 client.OnUndo += m_innerScene.HandleUndo; 1657 client.OnUndo += m_innerScene.HandleUndo;
1658 1658
1659 EventManager.TriggerOnNewClient(client); 1659 EventManager.TriggerOnNewClient(client);
1660 } 1660 }
1661 public virtual void TeleportClientHome(LLUUID AgentId, IClientAPI client) 1661 public virtual void TeleportClientHome(LLUUID AgentId, IClientAPI client)
@@ -1669,14 +1669,14 @@ namespace OpenSim.Region.Environment.Scenes
1669 RequestTeleportLocation(client, homeRegion, homePostion,homeLookat,(uint)0); 1669 RequestTeleportLocation(client, homeRegion, homePostion,homeLookat,(uint)0);
1670 } 1670 }
1671 } 1671 }
1672 1672
1673 public void doObjectDuplicateOnRay(uint localID, uint dupeFlags, LLUUID AgentID, LLUUID GroupID, 1673 public void doObjectDuplicateOnRay(uint localID, uint dupeFlags, LLUUID AgentID, LLUUID GroupID,
1674 LLUUID RayTargetObj, LLVector3 RayEnd, LLVector3 RayStart, 1674 LLUUID RayTargetObj, LLVector3 RayEnd, LLVector3 RayStart,
1675 bool BypassRaycast, bool RayEndIsIntersection, bool CopyCenters, bool CopyRotates) 1675 bool BypassRaycast, bool RayEndIsIntersection, bool CopyCenters, bool CopyRotates)
1676 { 1676 {
1677 LLVector3 pos; 1677 LLVector3 pos;
1678 const bool frontFacesOnly = true; 1678 const bool frontFacesOnly = true;
1679 1679
1680 SceneObjectPart target = GetSceneObjectPart(localID); 1680 SceneObjectPart target = GetSceneObjectPart(localID);
1681 SceneObjectPart target2 = GetSceneObjectPart(RayTargetObj); 1681 SceneObjectPart target2 = GetSceneObjectPart(RayTargetObj);
1682 1682
@@ -1685,8 +1685,8 @@ namespace OpenSim.Region.Environment.Scenes
1685 1685
1686 LLVector3 direction = LLVector3.Norm(RayEnd - RayStart); 1686 LLVector3 direction = LLVector3.Norm(RayEnd - RayStart);
1687 Vector3 AXOrigin = new Vector3(RayStart.X, RayStart.Y, RayStart.Z); 1687 Vector3 AXOrigin = new Vector3(RayStart.X, RayStart.Y, RayStart.Z);
1688 Vector3 AXdirection = new Vector3(direction.X, direction.Y, direction.Z); 1688 Vector3 AXdirection = new Vector3(direction.X, direction.Y, direction.Z);
1689 1689
1690 if (target2.ParentGroup != null) 1690 if (target2.ParentGroup != null)
1691 { 1691 {
1692 pos = target2.AbsolutePosition; 1692 pos = target2.AbsolutePosition;
@@ -1717,7 +1717,7 @@ namespace OpenSim.Region.Environment.Scenes
1717 LLVector3 normal = new LLVector3(ei.normal.x, ei.normal.y, ei.normal.z); 1717 LLVector3 normal = new LLVector3(ei.normal.x, ei.normal.y, ei.normal.z);
1718 LLVector3 offset = (normal * (ScaleOffset / 2f)); 1718 LLVector3 offset = (normal * (ScaleOffset / 2f));
1719 pos = (intersectionpoint + offset); 1719 pos = (intersectionpoint + offset);
1720 1720
1721 if (CopyCenters) 1721 if (CopyCenters)
1722 { 1722 {
1723 // now we cast a ray from inside the prim(absolute position) to one of it's faces along the face normal. 1723 // now we cast a ray from inside the prim(absolute position) to one of it's faces along the face normal.
@@ -1735,7 +1735,7 @@ namespace OpenSim.Region.Environment.Scenes
1735 normal.Z = ei2.normal.z; 1735 normal.Z = ei2.normal.z;
1736 } 1736 }
1737 } 1737 }
1738 1738
1739 // Set the position to the intersection point 1739 // Set the position to the intersection point
1740 offset = (normal * (ScaleOffset / 2f)); 1740 offset = (normal * (ScaleOffset / 2f));
1741 pos = (intersectionpoint + offset); 1741 pos = (intersectionpoint + offset);
@@ -1749,8 +1749,8 @@ namespace OpenSim.Region.Environment.Scenes
1749 return; 1749 return;
1750 } 1750 }
1751 return; 1751 return;
1752 1752
1753 1753
1754 } 1754 }
1755 1755
1756 1756
@@ -1776,7 +1776,7 @@ namespace OpenSim.Region.Environment.Scenes
1776 UserProfile.HomeLookAtY = (int)lookAt.Y; 1776 UserProfile.HomeLookAtY = (int)lookAt.Y;
1777 UserProfile.HomeLookAtZ = (int)lookAt.Z; 1777 UserProfile.HomeLookAtZ = (int)lookAt.Z;
1778 CommsManager.UserService.UpdateUserProfileProperties(UserProfile); 1778 CommsManager.UserService.UpdateUserProfileProperties(UserProfile);
1779 1779
1780 remoteClient.SendAgentAlertMessage("Set home to here if supported by login service",false); 1780 remoteClient.SendAgentAlertMessage("Set home to here if supported by login service",false);
1781 } 1781 }
1782 else 1782 else
@@ -1784,7 +1784,7 @@ namespace OpenSim.Region.Environment.Scenes
1784 remoteClient.SendAgentAlertMessage("Set Home request Failed",false); 1784 remoteClient.SendAgentAlertMessage("Set Home request Failed",false);
1785 } 1785 }
1786 } 1786 }
1787 1787
1788 protected virtual ScenePresence CreateAndAddScenePresence(IClientAPI client, bool child) 1788 protected virtual ScenePresence CreateAndAddScenePresence(IClientAPI client, bool child)
1789 { 1789 {
1790 AvatarAppearance appearance; 1790 AvatarAppearance appearance;
@@ -1844,7 +1844,7 @@ namespace OpenSim.Region.Environment.Scenes
1844 m_sceneGridService.SendCloseChildAgentConnections(agentID, childknownRegions); 1844 m_sceneGridService.SendCloseChildAgentConnections(agentID, childknownRegions);
1845 1845
1846 RemoveCapsHandler(agentID); 1846 RemoveCapsHandler(agentID);
1847 1847
1848 CommsManager.UserProfileCacheService.RemoveUser(agentID); 1848 CommsManager.UserProfileCacheService.RemoveUser(agentID);
1849 } 1849 }
1850 1850
@@ -1870,7 +1870,7 @@ namespace OpenSim.Region.Environment.Scenes
1870 1870
1871 ForEachScenePresence( 1871 ForEachScenePresence(
1872 delegate(ScenePresence presence) { presence.CoarseLocationChange(); }); 1872 delegate(ScenePresence presence) { presence.CoarseLocationChange(); });
1873 1873
1874 IAgentAssetTransactions agentTransactions = this.RequestModuleInterface<IAgentAssetTransactions>(); 1874 IAgentAssetTransactions agentTransactions = this.RequestModuleInterface<IAgentAssetTransactions>();
1875 if (agentTransactions != null) 1875 if (agentTransactions != null)
1876 { 1876 {
@@ -1921,7 +1921,7 @@ namespace OpenSim.Region.Environment.Scenes
1921 } 1921 }
1922 1922
1923 //m_log.InfoFormat("[SCENE] Memory pre GC {0}", System.GC.GetTotalMemory(false)); 1923 //m_log.InfoFormat("[SCENE] Memory pre GC {0}", System.GC.GetTotalMemory(false));
1924 //m_log.InfoFormat("[SCENE] Memory post GC {0}", System.GC.GetTotalMemory(true)); 1924 //m_log.InfoFormat("[SCENE] Memory post GC {0}", System.GC.GetTotalMemory(true));
1925 } 1925 }
1926 1926
1927 public void HandleRemoveKnownRegionsFromAvatar(LLUUID avatarID, List<ulong> regionslst) 1927 public void HandleRemoveKnownRegionsFromAvatar(LLUUID avatarID, List<ulong> regionslst)
@@ -1931,7 +1931,7 @@ namespace OpenSim.Region.Environment.Scenes
1931 { 1931 {
1932 lock (av) 1932 lock (av)
1933 { 1933 {
1934 1934
1935 for (int i = 0; i < regionslst.Count; i++) 1935 for (int i = 0; i < regionslst.Count; i++)
1936 { 1936 {
1937 av.KnownChildRegions.Remove(regionslst[i]); 1937 av.KnownChildRegions.Remove(regionslst[i]);
@@ -1957,7 +1957,7 @@ namespace OpenSim.Region.Environment.Scenes
1957 #region Entities 1957 #region Entities
1958 1958
1959 /// <summary> 1959 /// <summary>
1960 /// 1960 ///
1961 /// </summary> 1961 /// </summary>
1962 /// <param name="entID"></param> 1962 /// <param name="entID"></param>
1963 /// <returns></returns> 1963 /// <returns></returns>
@@ -1983,7 +1983,7 @@ namespace OpenSim.Region.Environment.Scenes
1983 #region RegionComms 1983 #region RegionComms
1984 1984
1985 /// <summary> 1985 /// <summary>
1986 /// 1986 ///
1987 /// </summary> 1987 /// </summary>
1988 public void RegisterCommsEvents() 1988 public void RegisterCommsEvents()
1989 { 1989 {
@@ -1999,7 +1999,7 @@ namespace OpenSim.Region.Environment.Scenes
1999 } 1999 }
2000 2000
2001 /// <summary> 2001 /// <summary>
2002 /// 2002 ///
2003 /// </summary> 2003 /// </summary>
2004 public void UnRegisterReginWithComms() 2004 public void UnRegisterReginWithComms()
2005 { 2005 {
@@ -2026,7 +2026,7 @@ namespace OpenSim.Region.Environment.Scenes
2026 if (regionHandle == m_regInfo.RegionHandle) 2026 if (regionHandle == m_regInfo.RegionHandle)
2027 { 2027 {
2028 capsPaths[agent.AgentID] = agent.CapsPath; 2028 capsPaths[agent.AgentID] = agent.CapsPath;
2029 2029
2030 if (!agent.child) 2030 if (!agent.child)
2031 { 2031 {
2032 AddCapsHandler(agent.AgentID); 2032 AddCapsHandler(agent.AgentID);
@@ -2041,44 +2041,44 @@ namespace OpenSim.Region.Environment.Scenes
2041 } 2041 }
2042 } 2042 }
2043 } 2043 }
2044 2044
2045 m_log.DebugFormat( 2045 m_log.DebugFormat(
2046 "[CONNECTION DEBUGGING]: Creating new circuit code ({0}) for avatar {1} at {2}", 2046 "[CONNECTION DEBUGGING]: Creating new circuit code ({0}) for avatar {1} at {2}",
2047 agent.circuitcode, agent.AgentID, RegionInfo.RegionName); 2047 agent.circuitcode, agent.AgentID, RegionInfo.RegionName);
2048 2048
2049 m_authenticateHandler.AddNewCircuit(agent.circuitcode, agent); 2049 m_authenticateHandler.AddNewCircuit(agent.circuitcode, agent);
2050 } 2050 }
2051 else 2051 else
2052 { 2052 {
2053 m_log.WarnFormat( 2053 m_log.WarnFormat(
2054 "[CONNECTION DEBUGGING]: Skipping this region for welcoming avatar {0} [{1}] at {2}", 2054 "[CONNECTION DEBUGGING]: Skipping this region for welcoming avatar {0} [{1}] at {2}",
2055 agent.AgentID, regionHandle, RegionInfo.RegionName); 2055 agent.AgentID, regionHandle, RegionInfo.RegionName);
2056 } 2056 }
2057 } 2057 }
2058 2058
2059 /// <summary> 2059 /// <summary>
2060 /// Add a caps handler for the given agent. If the CAPS handler already exists for this agent, 2060 /// Add a caps handler for the given agent. If the CAPS handler already exists for this agent,
2061 /// then it is replaced by a new CAPS handler. 2061 /// then it is replaced by a new CAPS handler.
2062 /// 2062 ///
2063 /// FIXME: On login this is called twice, once for the login and once when the connection is made. 2063 /// FIXME: On login this is called twice, once for the login and once when the connection is made.
2064 /// This is somewhat innefficient and should be fixed. The initial login creation is necessary 2064 /// This is somewhat innefficient and should be fixed. The initial login creation is necessary
2065 /// since the client asks for capabilities immediately after being informed of the seed. 2065 /// since the client asks for capabilities immediately after being informed of the seed.
2066 /// </summary> 2066 /// </summary>
2067 /// <param name="agentId"></param> 2067 /// <param name="agentId"></param>
2068 /// <param name="capsObjectPath"></param> 2068 /// <param name="capsObjectPath"></param>
2069 public void AddCapsHandler(LLUUID agentId) 2069 public void AddCapsHandler(LLUUID agentId)
2070 { 2070 {
2071 String capsObjectPath = GetCapsPath(agentId); 2071 String capsObjectPath = GetCapsPath(agentId);
2072 2072
2073 m_log.DebugFormat( 2073 m_log.DebugFormat(
2074 "[CAPS]: Setting up CAPS handler for root agent {0} in {1}", 2074 "[CAPS]: Setting up CAPS handler for root agent {0} in {1}",
2075 agentId, RegionInfo.RegionName); 2075 agentId, RegionInfo.RegionName);
2076 2076
2077 Caps cap = 2077 Caps cap =
2078 new Caps(AssetCache, m_httpListener, m_regInfo.ExternalHostName, m_httpListener.Port, 2078 new Caps(AssetCache, m_httpListener, m_regInfo.ExternalHostName, m_httpListener.Port,
2079 capsObjectPath, agentId, m_dumpAssetsToFile, RegionInfo.RegionName); 2079 capsObjectPath, agentId, m_dumpAssetsToFile, RegionInfo.RegionName);
2080 cap.RegisterHandlers(); 2080 cap.RegisterHandlers();
2081 2081
2082 EventManager.TriggerOnRegisterCaps(agentId, cap); 2082 EventManager.TriggerOnRegisterCaps(agentId, cap);
2083 2083
2084 cap.AddNewInventoryItem = AddInventoryItem; 2084 cap.AddNewInventoryItem = AddInventoryItem;
@@ -2087,7 +2087,7 @@ namespace OpenSim.Region.Environment.Scenes
2087 cap.CAPSFetchInventoryDescendents = CommsManager.UserProfileCacheService.HandleFetchInventoryDescendentsCAPS; 2087 cap.CAPSFetchInventoryDescendents = CommsManager.UserProfileCacheService.HandleFetchInventoryDescendentsCAPS;
2088 cap.GetClient = m_innerScene.GetControllingClient; 2088 cap.GetClient = m_innerScene.GetControllingClient;
2089 m_capsHandlers[agentId] = cap; 2089 m_capsHandlers[agentId] = cap;
2090 } 2090 }
2091 2091
2092 /// <summary> 2092 /// <summary>
2093 /// Remove the caps handler for a given agent. 2093 /// Remove the caps handler for a given agent.
@@ -2100,9 +2100,9 @@ namespace OpenSim.Region.Environment.Scenes
2100 if (m_capsHandlers.ContainsKey(agentId)) 2100 if (m_capsHandlers.ContainsKey(agentId))
2101 { 2101 {
2102 m_log.DebugFormat( 2102 m_log.DebugFormat(
2103 "[CAPS]: Removing CAPS handler for root agent {0} in {1}", 2103 "[CAPS]: Removing CAPS handler for root agent {0} in {1}",
2104 agentId, RegionInfo.RegionName); 2104 agentId, RegionInfo.RegionName);
2105 2105
2106 m_capsHandlers[agentId].DeregisterHandlers(); 2106 m_capsHandlers[agentId].DeregisterHandlers();
2107 EventManager.TriggerOnDeregisterCaps(agentId, m_capsHandlers[agentId]); 2107 EventManager.TriggerOnDeregisterCaps(agentId, m_capsHandlers[agentId]);
2108 2108
@@ -2118,7 +2118,7 @@ namespace OpenSim.Region.Environment.Scenes
2118 } 2118 }
2119 2119
2120 /// <summary> 2120 /// <summary>
2121 /// 2121 ///
2122 /// </summary> 2122 /// </summary>
2123 /// <param name="regionHandle"></param> 2123 /// <param name="regionHandle"></param>
2124 /// <param name="agentID"></param> 2124 /// <param name="agentID"></param>
@@ -2152,8 +2152,8 @@ namespace OpenSim.Region.Environment.Scenes
2152 ScenePresence childAgentUpdate = GetScenePresence(new LLUUID(cAgentData.AgentID)); 2152 ScenePresence childAgentUpdate = GetScenePresence(new LLUUID(cAgentData.AgentID));
2153 if (childAgentUpdate != null) 2153 if (childAgentUpdate != null)
2154 { 2154 {
2155 // I can't imagine *yet* why we would get an update if the agent is a root agent.. 2155 // I can't imagine *yet* why we would get an update if the agent is a root agent..
2156 // however to avoid a race condition crossing borders.. 2156 // however to avoid a race condition crossing borders..
2157 if (childAgentUpdate.IsChildAgent) 2157 if (childAgentUpdate.IsChildAgent)
2158 { 2158 {
2159 uint rRegionX = (uint)(cAgentData.regionHandle >> 40); 2159 uint rRegionX = (uint)(cAgentData.regionHandle >> 40);
@@ -2193,7 +2193,7 @@ namespace OpenSim.Region.Environment.Scenes
2193 } 2193 }
2194 // Tell a single agent to disconnect from the region. 2194 // Tell a single agent to disconnect from the region.
2195 presence.ControllingClient.SendShutdownConnectionNotice(); 2195 presence.ControllingClient.SendShutdownConnectionNotice();
2196 2196
2197 presence.ControllingClient.Close(true); 2197 presence.ControllingClient.Close(true);
2198 } 2198 }
2199 } 2199 }
@@ -2202,11 +2202,11 @@ namespace OpenSim.Region.Environment.Scenes
2202 2202
2203 /// <summary> 2203 /// <summary>
2204 /// Tell neighboring regions about this agent 2204 /// Tell neighboring regions about this agent
2205 /// When the regions respond with a true value, 2205 /// When the regions respond with a true value,
2206 /// tell the agents about the region. 2206 /// tell the agents about the region.
2207 /// 2207 ///
2208 /// We have to tell the regions about the agents first otherwise it'll deny them access 2208 /// We have to tell the regions about the agents first otherwise it'll deny them access
2209 /// 2209 ///
2210 /// </summary> 2210 /// </summary>
2211 /// <param name="presence"></param> 2211 /// <param name="presence"></param>
2212 public void InformClientOfNeighbours(ScenePresence presence) 2212 public void InformClientOfNeighbours(ScenePresence presence)
@@ -2309,7 +2309,7 @@ namespace OpenSim.Region.Environment.Scenes
2309 #region Module Methods 2309 #region Module Methods
2310 2310
2311 /// <summary> 2311 /// <summary>
2312 /// 2312 ///
2313 /// </summary> 2313 /// </summary>
2314 /// <param name="name"></param> 2314 /// <param name="name"></param>
2315 /// <param name="module"></param> 2315 /// <param name="module"></param>
@@ -2379,21 +2379,21 @@ namespace OpenSim.Region.Environment.Scenes
2379 m_statsReporter.SetObjectCapacity(objects); 2379 m_statsReporter.SetObjectCapacity(objects);
2380 } 2380 }
2381 objectCapacity = objects; 2381 objectCapacity = objects;
2382 2382
2383 } 2383 }
2384 2384
2385 public List<FriendListItem> GetFriendList(LLUUID avatarID) 2385 public List<FriendListItem> GetFriendList(LLUUID avatarID)
2386 { 2386 {
2387 return CommsManager.GetUserFriendList(avatarID); 2387 return CommsManager.GetUserFriendList(avatarID);
2388 } 2388 }
2389 2389
2390 2390
2391 #endregion 2391 #endregion
2392 2392
2393 #region Other Methods 2393 #region Other Methods
2394 2394
2395 /// <summary> 2395 /// <summary>
2396 /// 2396 ///
2397 /// </summary> 2397 /// </summary>
2398 /// <param name="phase"></param> 2398 /// <param name="phase"></param>
2399 public void SetTimePhase(int phase) 2399 public void SetTimePhase(int phase)
@@ -2402,7 +2402,7 @@ namespace OpenSim.Region.Environment.Scenes
2402 } 2402 }
2403 2403
2404 /// <summary> 2404 /// <summary>
2405 /// 2405 ///
2406 /// </summary> 2406 /// </summary>
2407 /// <param name="avatarID"></param> 2407 /// <param name="avatarID"></param>
2408 /// <param name="objectName"></param> 2408 /// <param name="objectName"></param>
@@ -2437,7 +2437,7 @@ namespace OpenSim.Region.Environment.Scenes
2437 } 2437 }
2438 2438
2439 /// <summary> 2439 /// <summary>
2440 /// 2440 ///
2441 /// </summary> 2441 /// </summary>
2442 /// <param name="url"></param> 2442 /// <param name="url"></param>
2443 /// <param name="type"></param> 2443 /// <param name="type"></param>
@@ -2451,14 +2451,14 @@ namespace OpenSim.Region.Environment.Scenes
2451 } 2451 }
2452 return LLUUID.Zero; 2452 return LLUUID.Zero;
2453 } 2453 }
2454 2454
2455 2455
2456 /// <summary> 2456 /// <summary>
2457 /// This method is a way for the Friends Module to create an instant 2457 /// This method is a way for the Friends Module to create an instant
2458 /// message to the avatar and for Instant Messages that travel across 2458 /// message to the avatar and for Instant Messages that travel across
2459 /// gridcomms to make it to the Instant Message Module. 2459 /// gridcomms to make it to the Instant Message Module.
2460 /// 2460 ///
2461 /// Friendship establishment and groups are unfortunately tied with instant messaging and 2461 /// Friendship establishment and groups are unfortunately tied with instant messaging and
2462 /// there's no way to separate them completely. 2462 /// there's no way to separate them completely.
2463 /// </summary> 2463 /// </summary>
2464 /// <param name="message">object containing the instant message data</param> 2464 /// <param name="message">object containing the instant message data</param>
@@ -2525,7 +2525,7 @@ namespace OpenSim.Region.Environment.Scenes
2525 } 2525 }
2526 2526
2527 /// <summary> 2527 /// <summary>
2528 /// 2528 ///
2529 /// </summary> 2529 /// </summary>
2530 /// <param name="message"></param> 2530 /// <param name="message"></param>
2531 public void SendGeneralAlert(string message) 2531 public void SendGeneralAlert(string message)
@@ -2539,7 +2539,7 @@ namespace OpenSim.Region.Environment.Scenes
2539 } 2539 }
2540 2540
2541 /// <summary> 2541 /// <summary>
2542 /// 2542 ///
2543 /// </summary> 2543 /// </summary>
2544 /// <param name="agentID"></param> 2544 /// <param name="agentID"></param>
2545 /// <param name="message"></param> 2545 /// <param name="message"></param>
@@ -2556,7 +2556,7 @@ namespace OpenSim.Region.Environment.Scenes
2556 } 2556 }
2557 2557
2558 /// <summary> 2558 /// <summary>
2559 /// 2559 ///
2560 /// </summary> 2560 /// </summary>
2561 /// <param name="agentID"></param> 2561 /// <param name="agentID"></param>
2562 /// <param name="sessionID"></param> 2562 /// <param name="sessionID"></param>
@@ -2569,7 +2569,7 @@ namespace OpenSim.Region.Environment.Scenes
2569 { 2569 {
2570 // User needs to be logged into this sim 2570 // User needs to be logged into this sim
2571 if (m_scenePresences.ContainsKey(agentID)) 2571 if (m_scenePresences.ContainsKey(agentID))
2572 { 2572 {
2573 // First check that this is the sim owner 2573 // First check that this is the sim owner
2574 if (ExternalChecks.ExternalChecksCanBeGodLike(agentID)) 2574 if (ExternalChecks.ExternalChecksCanBeGodLike(agentID))
2575 { 2575 {
@@ -2632,8 +2632,8 @@ namespace OpenSim.Region.Environment.Scenes
2632 2632
2633 /// <summary> 2633 /// <summary>
2634 /// Kicks User specified from the simulator. This logs them off of the grid 2634 /// Kicks User specified from the simulator. This logs them off of the grid
2635 /// If the client gets the UUID: 44e87126e7944ded05b37c42da3d5cdb it assumes 2635 /// If the client gets the UUID: 44e87126e7944ded05b37c42da3d5cdb it assumes
2636 /// that you're kicking it even if the avatar's UUID isn't the UUID that the 2636 /// that you're kicking it even if the avatar's UUID isn't the UUID that the
2637 /// agent is assigned 2637 /// agent is assigned
2638 /// </summary> 2638 /// </summary>
2639 /// <param name="godID">The person doing the kicking</param> 2639 /// <param name="godID">The person doing the kicking</param>
@@ -2662,7 +2662,7 @@ namespace OpenSim.Region.Environment.Scenes
2662 2662
2663 } 2663 }
2664 ); 2664 );
2665 2665
2666 // This is a bit crude. It seems the client will be null before it actually stops the thread 2666 // This is a bit crude. It seems the client will be null before it actually stops the thread
2667 // The thread will kill itself eventually :/ 2667 // The thread will kill itself eventually :/
2668 // Is there another way to make sure *all* clients get this 'inter region' message? 2668 // Is there another way to make sure *all* clients get this 'inter region' message?
@@ -2722,7 +2722,7 @@ namespace OpenSim.Region.Environment.Scenes
2722 } 2722 }
2723 2723
2724 /// <summary> 2724 /// <summary>
2725 /// 2725 ///
2726 /// </summary> 2726 /// </summary>
2727 /// <param name="firstName"></param> 2727 /// <param name="firstName"></param>
2728 /// <param name="lastName"></param> 2728 /// <param name="lastName"></param>
@@ -2743,7 +2743,7 @@ namespace OpenSim.Region.Environment.Scenes
2743 } 2743 }
2744 2744
2745 /// <summary> 2745 /// <summary>
2746 /// 2746 ///
2747 /// </summary> 2747 /// </summary>
2748 /// <param name="commandParams"></param> 2748 /// <param name="commandParams"></param>
2749 public void HandleAlertCommand(string[] commandParams) 2749 public void HandleAlertCommand(string[] commandParams)
@@ -2931,7 +2931,7 @@ namespace OpenSim.Region.Environment.Scenes
2931 private bool m_dumpAssetsToFile; 2931 private bool m_dumpAssetsToFile;
2932 2932
2933 /// <summary> 2933 /// <summary>
2934 /// 2934 ///
2935 /// </summary> 2935 /// </summary>
2936 /// <param name="scriptEngine"></param> 2936 /// <param name="scriptEngine"></param>
2937 public void AddScriptEngine(ScriptEngineInterface scriptEngine) 2937 public void AddScriptEngine(ScriptEngineInterface scriptEngine)
@@ -2978,7 +2978,7 @@ namespace OpenSim.Region.Environment.Scenes
2978 { 2978 {
2979 return false; 2979 return false;
2980 } 2980 }
2981 } 2981 }
2982 else 2982 else
2983 { 2983 {
2984 if (part.OwnerID == parcel.landData.ownerID) 2984 if (part.OwnerID == parcel.landData.ownerID)
@@ -2996,7 +2996,7 @@ namespace OpenSim.Region.Environment.Scenes
2996 2996
2997 if (pos.X > 0f && pos.X < Constants.RegionSize && pos.Y > 0f && pos.Y < Constants.RegionSize) 2997 if (pos.X > 0f && pos.X < Constants.RegionSize && pos.Y > 0f && pos.Y < Constants.RegionSize)
2998 { 2998 {
2999 // The only time parcel != null when an object is inside a region is when 2999 // The only time parcel != null when an object is inside a region is when
3000 // there is nothing behind the landchannel. IE, no land plugin loaded. 3000 // there is nothing behind the landchannel. IE, no land plugin loaded.
3001 return true; 3001 return true;
3002 } 3002 }
@@ -3027,7 +3027,7 @@ namespace OpenSim.Region.Environment.Scenes
3027 3027
3028 public bool pipeEventsForScript(uint localID) 3028 public bool pipeEventsForScript(uint localID)
3029 { 3029 {
3030 3030
3031 SceneObjectPart part = GetSceneObjectPart(localID); 3031 SceneObjectPart part = GetSceneObjectPart(localID);
3032 if (part != null) 3032 if (part != null)
3033 { 3033 {
@@ -3046,7 +3046,7 @@ namespace OpenSim.Region.Environment.Scenes
3046 #region InnerScene wrapper methods 3046 #region InnerScene wrapper methods
3047 3047
3048 /// <summary> 3048 /// <summary>
3049 /// 3049 ///
3050 /// </summary> 3050 /// </summary>
3051 /// <param name="localID"></param> 3051 /// <param name="localID"></param>
3052 /// <returns></returns> 3052 /// <returns></returns>
@@ -3071,7 +3071,7 @@ namespace OpenSim.Region.Environment.Scenes
3071 } 3071 }
3072 3072
3073 /// <summary> 3073 /// <summary>
3074 /// 3074 ///
3075 /// </summary> 3075 /// </summary>
3076 /// <param name="presence"></param> 3076 /// <param name="presence"></param>
3077 public void SendAllSceneObjectsToClient(ScenePresence presence) 3077 public void SendAllSceneObjectsToClient(ScenePresence presence)
@@ -3080,10 +3080,10 @@ namespace OpenSim.Region.Environment.Scenes
3080 } 3080 }
3081 3081
3082 //The idea is to have a group of method that return a list of avatars meeting some requirement 3082 //The idea is to have a group of method that return a list of avatars meeting some requirement
3083 // ie it could be all m_scenePresences within a certain range of the calling prim/avatar. 3083 // ie it could be all m_scenePresences within a certain range of the calling prim/avatar.
3084 3084
3085 /// <summary> 3085 /// <summary>
3086 /// 3086 ///
3087 /// </summary> 3087 /// </summary>
3088 /// <returns></returns> 3088 /// <returns></returns>
3089 public List<ScenePresence> GetAvatars() 3089 public List<ScenePresence> GetAvatars()
@@ -3132,7 +3132,7 @@ namespace OpenSim.Region.Environment.Scenes
3132 } 3132 }
3133 3133
3134 /// <summary> 3134 /// <summary>
3135 /// 3135 ///
3136 /// </summary> 3136 /// </summary>
3137 /// <param name="action"></param> 3137 /// <param name="action"></param>
3138 public void ForEachScenePresence(Action<ScenePresence> action) 3138 public void ForEachScenePresence(Action<ScenePresence> action)
@@ -3154,13 +3154,13 @@ namespace OpenSim.Region.Environment.Scenes
3154 } 3154 }
3155 } 3155 }
3156 } 3156 }
3157 3157
3158 /// <summary> 3158 /// <summary>
3159 /// Delete this object from the scene. 3159 /// Delete this object from the scene.
3160 /// </summary> 3160 /// </summary>
3161 /// <param name="group"></param> 3161 /// <param name="group"></param>
3162 public void DeleteSceneObjectGroup(SceneObjectGroup group) 3162 public void DeleteSceneObjectGroup(SceneObjectGroup group)
3163 { 3163 {
3164 SceneObjectPart rootPart = (group).GetChildPart(group.UUID); 3164 SceneObjectPart rootPart = (group).GetChildPart(group.UUID);
3165 if (rootPart.PhysActor != null) 3165 if (rootPart.PhysActor != null)
3166 { 3166 {
@@ -3177,18 +3177,18 @@ namespace OpenSim.Region.Environment.Scenes
3177 m_innerScene.RemoveAPrimCount(); 3177 m_innerScene.RemoveAPrimCount();
3178 } 3178 }
3179 group.DeleteParts(); 3179 group.DeleteParts();
3180 3180
3181 // In case anybody else retains a reference to this group, signal deletion by changing the name 3181 // In case anybody else retains a reference to this group, signal deletion by changing the name
3182 // to null. We can't zero out the UUID because this is taken from the root part, which has already 3182 // to null. We can't zero out the UUID because this is taken from the root part, which has already
3183 // been removed. 3183 // been removed.
3184 // FIXME: This is a really poor temporary solution, since it still leaves plenty of scope for race 3184 // FIXME: This is a really poor temporary solution, since it still leaves plenty of scope for race
3185 // conditions where a user deletes an entity while it is being stored. Really, the update 3185 // conditions where a user deletes an entity while it is being stored. Really, the update
3186 // code needs a redesign. 3186 // code needs a redesign.
3187 group.Name = null; 3187 group.Name = null;
3188 } 3188 }
3189 3189
3190 /// <summary> 3190 /// <summary>
3191 /// 3191 ///
3192 /// </summary> 3192 /// </summary>
3193 /// <param name="action"></param> 3193 /// <param name="action"></param>
3194 // public void ForEachObject(Action<SceneObjectGroup> action) 3194 // public void ForEachObject(Action<SceneObjectGroup> action)
@@ -3207,7 +3207,7 @@ namespace OpenSim.Region.Environment.Scenes
3207 // } 3207 // }
3208 3208
3209 /// <summary> 3209 /// <summary>
3210 /// 3210 ///
3211 /// </summary> 3211 /// </summary>
3212 /// <param name="localID"></param> 3212 /// <param name="localID"></param>
3213 /// <returns></returns> 3213 /// <returns></returns>
@@ -3217,7 +3217,7 @@ namespace OpenSim.Region.Environment.Scenes
3217 } 3217 }
3218 3218
3219 /// <summary> 3219 /// <summary>
3220 /// 3220 ///
3221 /// </summary> 3221 /// </summary>
3222 /// <param name="fullID"></param> 3222 /// <param name="fullID"></param>
3223 /// <returns></returns> 3223 /// <returns></returns>