aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes
diff options
context:
space:
mode:
authorMelanie2010-10-07 01:13:17 +0200
committerMelanie2010-10-07 01:13:17 +0200
commit2db0ac74c72f18d1bceb15b8a368777e42b366c0 (patch)
tree874f9c1eaa17855e0dd6f07ea50efa0326647a16 /OpenSim/Region/Framework/Scenes
parentPlumb the path for multiple object deletes (diff)
downloadopensim-SC-2db0ac74c72f18d1bceb15b8a368777e42b366c0.zip
opensim-SC-2db0ac74c72f18d1bceb15b8a368777e42b366c0.tar.gz
opensim-SC-2db0ac74c72f18d1bceb15b8a368777e42b366c0.tar.bz2
opensim-SC-2db0ac74c72f18d1bceb15b8a368777e42b366c0.tar.xz
Implement taking of coalesced objects.
WARNING!!!!! You can TAKE them, but you can't REZ them again. Only the first of the contained objects will rez, the rest is inaccessible until rezzing them is implemented. Also, rotations are not explicitly stored. This MAY work. Or not.
Diffstat (limited to 'OpenSim/Region/Framework/Scenes')
-rw-r--r--OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs4
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs9
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs7
3 files changed, 13 insertions, 7 deletions
diff --git a/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs b/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs
index 64567db..8feb022 100644
--- a/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs
+++ b/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs
@@ -137,7 +137,7 @@ namespace OpenSim.Region.Framework.Scenes
137 x = m_inventoryDeletes.Dequeue(); 137 x = m_inventoryDeletes.Dequeue();
138 138
139 m_log.DebugFormat( 139 m_log.DebugFormat(
140 "[ASYNC DELETER]: Sending object to user's inventory, {0} item(s) remaining.", left); 140 "[ASYNC DELETER]: Sending object to user's inventory, action {1}, count {2}, {0} item(s) remaining.", left, x.action, x.objectGroups.Count);
141 141
142 try 142 try
143 { 143 {
@@ -177,4 +177,4 @@ namespace OpenSim.Region.Framework.Scenes
177 return false; 177 return false;
178 } 178 }
179 } 179 }
180} \ No newline at end of file 180}
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index bcc439c..76e160d 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -5063,8 +5063,17 @@ namespace OpenSim.Region.Framework.Scenes
5063 { 5063 {
5064 float ominX, ominY, ominZ, omaxX, omaxY, omaxZ; 5064 float ominX, ominY, ominZ, omaxX, omaxY, omaxZ;
5065 5065
5066 Vector3 vec = g.AbsolutePosition;
5067
5066 g.GetAxisAlignedBoundingBoxRaw(out ominX, out omaxX, out ominY, out omaxY, out ominZ, out omaxZ); 5068 g.GetAxisAlignedBoundingBoxRaw(out ominX, out omaxX, out ominY, out omaxY, out ominZ, out omaxZ);
5067 5069
5070 ominX += vec.X;
5071 omaxX += vec.X;
5072 ominY += vec.Y;
5073 omaxY += vec.Y;
5074 ominZ += vec.Z;
5075 omaxZ += vec.Z;
5076
5068 if (minX > ominX) 5077 if (minX > ominX)
5069 minX = ominX; 5078 minX = ominX;
5070 if (minY > ominY) 5079 if (minY > ominY)
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index a6d89cf..9a7d560 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -1569,8 +1569,6 @@ namespace OpenSim.Region.Framework.Scenes
1569 ILandObject parcel = m_scene.LandChannel.GetLandObject( 1569 ILandObject parcel = m_scene.LandChannel.GetLandObject(
1570 m_rootPart.GroupPosition.X, m_rootPart.GroupPosition.Y); 1570 m_rootPart.GroupPosition.X, m_rootPart.GroupPosition.Y);
1571 1571
1572 List<uint> returns = new List<uint>();
1573
1574 if (parcel != null && parcel.LandData != null && 1572 if (parcel != null && parcel.LandData != null &&
1575 parcel.LandData.OtherCleanTime != 0) 1573 parcel.LandData.OtherCleanTime != 0)
1576 { 1574 {
@@ -1584,15 +1582,14 @@ namespace OpenSim.Region.Framework.Scenes
1584 DetachFromBackup(); 1582 DetachFromBackup();
1585 m_log.InfoFormat("[SCENE]: Returning object {0} due to parcel auto return", RootPart.UUID.ToString()); 1583 m_log.InfoFormat("[SCENE]: Returning object {0} due to parcel auto return", RootPart.UUID.ToString());
1586 m_scene.AddReturn(OwnerID, Name, AbsolutePosition, "parcel auto return"); 1584 m_scene.AddReturn(OwnerID, Name, AbsolutePosition, "parcel auto return");
1587 returns.Add(RootPart.LocalId); 1585 m_scene.DeRezObjects(null, new List<uint>() { RootPart.LocalId }, UUID.Zero,
1586 DeRezAction.Return, UUID.Zero);
1588 1587
1589 return; 1588 return;
1590 } 1589 }
1591 } 1590 }
1592 } 1591 }
1593 1592
1594 m_scene.DeRezObjects(null, returns, UUID.Zero,
1595 DeRezAction.Return, UUID.Zero);
1596 } 1593 }
1597 1594
1598 if (HasGroupChanged) 1595 if (HasGroupChanged)