Signal prim count taint if the AbsolutePosition of a scene object changes.
This updates prim counts correctly if an object is moved by something other than an avatar (e.g. scripts, region modules) Create TestMoveOwnerObject() regression test for this case.0.7.1-dev
parent
63533412f8
commit
8318915d7e
|
@ -167,17 +167,18 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests
|
|||
/// Test that parcel counts update correctly when an object is moved between parcels, where that movement
|
||||
/// is not done directly by the user/
|
||||
/// </summary>
|
||||
//[Test]
|
||||
[Test]
|
||||
public void TestMoveOwnerObject()
|
||||
{
|
||||
TestHelper.InMethod();
|
||||
log4net.Config.XmlConfigurator.Configure();
|
||||
// log4net.Config.XmlConfigurator.Configure();
|
||||
|
||||
SceneObjectGroup sog = SceneSetupHelpers.CreateSceneObject(3, m_userId, "a", 0x01);
|
||||
m_scene.AddNewSceneObject(sog, false);
|
||||
SceneObjectGroup sog2 = SceneSetupHelpers.CreateSceneObject(2, m_userId, "b", 0x10);
|
||||
m_scene.AddNewSceneObject(sog2, false);
|
||||
|
||||
// Move the first scene object to the eastern strip parcel
|
||||
sog.AbsolutePosition = new Vector3(254, 2, 2);
|
||||
|
||||
IPrimCounts pclo1 = m_lo.PrimCounts;
|
||||
|
@ -189,7 +190,7 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests
|
|||
Assert.That(pclo1.Selected, Is.EqualTo(0));
|
||||
Assert.That(pclo1.Users[m_userId], Is.EqualTo(2));
|
||||
Assert.That(pclo1.Users[m_otherUserId], Is.EqualTo(0));
|
||||
Assert.That(pclo1.Simulator, Is.EqualTo(2));
|
||||
Assert.That(pclo1.Simulator, Is.EqualTo(5));
|
||||
|
||||
IPrimCounts pclo2 = m_lo2.PrimCounts;
|
||||
|
||||
|
@ -200,7 +201,28 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests
|
|||
Assert.That(pclo2.Selected, Is.EqualTo(0));
|
||||
Assert.That(pclo2.Users[m_userId], Is.EqualTo(3));
|
||||
Assert.That(pclo2.Users[m_otherUserId], Is.EqualTo(0));
|
||||
Assert.That(pclo2.Simulator, Is.EqualTo(3));
|
||||
Assert.That(pclo2.Simulator, Is.EqualTo(5));
|
||||
|
||||
// Now move it back again
|
||||
sog.AbsolutePosition = new Vector3(2, 2, 2);
|
||||
|
||||
Assert.That(pclo1.Owner, Is.EqualTo(5));
|
||||
Assert.That(pclo1.Group, Is.EqualTo(0));
|
||||
Assert.That(pclo1.Others, Is.EqualTo(0));
|
||||
Assert.That(pclo1.Total, Is.EqualTo(5));
|
||||
Assert.That(pclo1.Selected, Is.EqualTo(0));
|
||||
Assert.That(pclo1.Users[m_userId], Is.EqualTo(5));
|
||||
Assert.That(pclo1.Users[m_otherUserId], Is.EqualTo(0));
|
||||
Assert.That(pclo1.Simulator, Is.EqualTo(5));
|
||||
|
||||
Assert.That(pclo2.Owner, Is.EqualTo(0));
|
||||
Assert.That(pclo2.Group, Is.EqualTo(0));
|
||||
Assert.That(pclo2.Others, Is.EqualTo(0));
|
||||
Assert.That(pclo2.Total, Is.EqualTo(0));
|
||||
Assert.That(pclo2.Selected, Is.EqualTo(0));
|
||||
Assert.That(pclo2.Users[m_userId], Is.EqualTo(0));
|
||||
Assert.That(pclo2.Users[m_otherUserId], Is.EqualTo(0));
|
||||
Assert.That(pclo2.Simulator, Is.EqualTo(5));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
@ -325,6 +325,8 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
//m_rootPart.GroupPosition.Z);
|
||||
//m_scene.PhysicsScene.AddPhysicsActorTaint(m_rootPart.PhysActor);
|
||||
//}
|
||||
|
||||
m_scene.EventManager.TriggerParcelPrimCountTainted();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue