diff options
author | Melanie | 2010-10-07 01:13:17 +0200 |
---|---|---|
committer | Melanie | 2010-10-07 01:13:17 +0200 |
commit | 2db0ac74c72f18d1bceb15b8a368777e42b366c0 (patch) | |
tree | 874f9c1eaa17855e0dd6f07ea50efa0326647a16 /OpenSim/Region/Framework | |
parent | Plumb the path for multiple object deletes (diff) | |
download | opensim-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')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs | 4 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 9 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 7 |
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) |