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.
This commit is contained in:
Melanie
2010-10-07 01:13:17 +02:00
parent 42f76773a1
commit 2db0ac74c7
4 changed files with 311 additions and 242 deletions

View File

@@ -137,7 +137,7 @@ namespace OpenSim.Region.Framework.Scenes
x = m_inventoryDeletes.Dequeue();
m_log.DebugFormat(
"[ASYNC DELETER]: Sending object to user's inventory, {0} item(s) remaining.", left);
"[ASYNC DELETER]: Sending object to user's inventory, action {1}, count {2}, {0} item(s) remaining.", left, x.action, x.objectGroups.Count);
try
{
@@ -177,4 +177,4 @@ namespace OpenSim.Region.Framework.Scenes
return false;
}
}
}
}

View File

@@ -5063,8 +5063,17 @@ namespace OpenSim.Region.Framework.Scenes
{
float ominX, ominY, ominZ, omaxX, omaxY, omaxZ;
Vector3 vec = g.AbsolutePosition;
g.GetAxisAlignedBoundingBoxRaw(out ominX, out omaxX, out ominY, out omaxY, out ominZ, out omaxZ);
ominX += vec.X;
omaxX += vec.X;
ominY += vec.Y;
omaxY += vec.Y;
ominZ += vec.Z;
omaxZ += vec.Z;
if (minX > ominX)
minX = ominX;
if (minY > ominY)

View File

@@ -1569,8 +1569,6 @@ namespace OpenSim.Region.Framework.Scenes
ILandObject parcel = m_scene.LandChannel.GetLandObject(
m_rootPart.GroupPosition.X, m_rootPart.GroupPosition.Y);
List<uint> returns = new List<uint>();
if (parcel != null && parcel.LandData != null &&
parcel.LandData.OtherCleanTime != 0)
{
@@ -1584,15 +1582,14 @@ namespace OpenSim.Region.Framework.Scenes
DetachFromBackup();
m_log.InfoFormat("[SCENE]: Returning object {0} due to parcel auto return", RootPart.UUID.ToString());
m_scene.AddReturn(OwnerID, Name, AbsolutePosition, "parcel auto return");
returns.Add(RootPart.LocalId);
m_scene.DeRezObjects(null, new List<uint>() { RootPart.LocalId }, UUID.Zero,
DeRezAction.Return, UUID.Zero);
return;
}
}
}
m_scene.DeRezObjects(null, returns, UUID.Zero,
DeRezAction.Return, UUID.Zero);
}
if (HasGroupChanged)