示例#1
0
        public void TestDeleteSceneObject()
        {
            TestHelper.InMethod();

            TestScene       scene = SceneSetupHelpers.SetupScene();
            SceneObjectPart part  = SceneSetupHelpers.AddSceneObject(scene);

            scene.DeleteSceneObject(part.ParentGroup, false);

            SceneObjectPart retrievedPart = scene.GetSceneObjectPart(part.LocalId);

            Assert.That(retrievedPart, Is.Null);
        }
        public void TestRemoveOwnerObject()
        {
            TestHelpers.InMethod();
            //            log4net.Config.XmlConfigurator.Configure();

            IPrimCounts pc = m_lo.PrimCounts;

            m_scene.AddNewSceneObject(SceneHelpers.CreateSceneObject(1, m_userId, "a", 0x1), false);
            SceneObjectGroup sogToDelete = SceneHelpers.CreateSceneObject(3, m_userId, "b", 0x10);

            m_scene.AddNewSceneObject(sogToDelete, false);
            m_scene.DeleteSceneObject(sogToDelete, false);

            Assert.That(pc.Owner, Is.EqualTo(1));
            Assert.That(pc.Group, Is.EqualTo(0));
            Assert.That(pc.Others, Is.EqualTo(0));
            Assert.That(pc.Total, Is.EqualTo(1));
            Assert.That(pc.Selected, Is.EqualTo(0));
            Assert.That(pc.Users[m_userId], Is.EqualTo(1));
            Assert.That(pc.Users[m_otherUserId], Is.EqualTo(0));
            Assert.That(pc.Simulator, Is.EqualTo(1));
        }
示例#3
0
        public void TestDeRezSceneObjectToAgents()
        {
            TestHelpers.InMethod();
            //            TestHelpers.EnableLogging();

            SceneHelpers sh     = new SceneHelpers();
            TestScene    sceneA = sh.SetupScene("sceneA", TestHelpers.ParseTail(0x100), 1000, 1000);
            TestScene    sceneB = sh.SetupScene("sceneB", TestHelpers.ParseTail(0x200), 1000, 999);

            // We need this so that the creation of the root client for userB in sceneB can trigger the creation of a child client in sceneA
            LocalSimulationConnectorModule lscm = new LocalSimulationConnectorModule();
            EntityTransferModule           etmB = new EntityTransferModule();
            IConfigSource config        = new IniConfigSource();
            IConfig       modulesConfig = config.AddConfig("Modules");

            modulesConfig.Set("EntityTransferModule", etmB.Name);
            modulesConfig.Set("SimulationServices", lscm.Name);
            SceneHelpers.SetupSceneModules(new Scene[] { sceneA, sceneB }, config, lscm);
            SceneHelpers.SetupSceneModules(sceneB, config, etmB);

            // We need this for derez
            SceneHelpers.SetupSceneModules(sceneA, new PermissionsModule());

            UserAccount uaA = UserAccountHelpers.CreateUserWithInventory(sceneA, "Andy", "AAA", 0x1, "");
            UserAccount uaB = UserAccountHelpers.CreateUserWithInventory(sceneA, "Brian", "BBB", 0x2, "");

            TestClient clientA = (TestClient)SceneHelpers.AddScenePresence(sceneA, uaA).ControllingClient;

            // This is the more long-winded route we have to take to get a child client created for userB in sceneA
            // rather than just calling AddScenePresence() as for userA
            AgentCircuitData  acd           = SceneHelpers.GenerateAgentData(uaB);
            TestClient        clientB       = new TestClient(acd, sceneB);
            List <TestClient> childClientsB = new List <TestClient>();

            EntityTransferHelpers.SetupInformClientOfNeighbourTriggersNeighbourClientCreate(clientB, childClientsB);

            SceneHelpers.AddScenePresence(sceneB, clientB, acd);

            SceneObjectGroup so        = SceneHelpers.AddSceneObject(sceneA);
            uint             soLocalId = so.LocalId;

            sceneA.DeleteSceneObject(so, false);

            Assert.That(clientA.ReceivedKills.Count, Is.EqualTo(1));
            Assert.That(clientA.ReceivedKills[0], Is.EqualTo(soLocalId));

            Assert.That(childClientsB[0].ReceivedKills.Count, Is.EqualTo(1));
            Assert.That(childClientsB[0].ReceivedKills[0], Is.EqualTo(soLocalId));
        }
示例#4
0
        public void TestDelinkPersistence()
        {
            TestHelpers.InMethod();
            //log4net.Config.XmlConfigurator.Configure();

            TestScene scene = SceneHelpers.SetupScene();

            string rootPartName = "rootpart";
            UUID   rootPartUuid = new UUID("00000000-0000-0000-0000-000000000001");
            string linkPartName = "linkpart";
            UUID   linkPartUuid = new UUID("00000000-0000-0000-0001-000000000000");

            SceneObjectPart rootPart
                = new SceneObjectPart(UUID.Zero, PrimitiveBaseShape.Default, Vector3.Zero, Quaternion.Identity, Vector3.Zero)
                {
                Name = rootPartName, UUID = rootPartUuid
                };
            SceneObjectPart linkPart
                = new SceneObjectPart(UUID.Zero, PrimitiveBaseShape.Default, Vector3.Zero, Quaternion.Identity, Vector3.Zero)
                {
                Name = linkPartName, UUID = linkPartUuid
                };

            SceneObjectGroup sog = new SceneObjectGroup(rootPart);

            sog.AddPart(linkPart);
            scene.AddNewSceneObject(sog, true);

            // In a test, we have to crank the backup handle manually.  Normally this would be done by the timer invoked
            // scene backup thread.
            scene.Backup(true);

            // These changes should occur immediately without waiting for a backup pass
            SceneObjectGroup groupToDelete = sog.DelinkFromGroup(linkPart, false);

            Assert.That(groupToDelete.HasGroupChangedDueToDelink, Is.True);
            scene.DeleteSceneObject(groupToDelete, false);
            Assert.That(groupToDelete.HasGroupChangedDueToDelink, Is.False);

            List <SceneObjectGroup> storedObjects = scene.SimulationDataService.LoadObjects(scene.RegionInfo.RegionID);

            Assert.That(storedObjects.Count, Is.EqualTo(1));
            Assert.That(storedObjects[0].Parts.Length, Is.EqualTo(1));
            Assert.That(storedObjects[0].ContainsPart(rootPartUuid));
        }
        public void TestAddRemovePhysicalLinkset()
        {
            Assert.That(m_scene.SceneGraph.GetActiveObjectsCount(), Is.EqualTo(0));

            UUID             ownerId = TestHelpers.ParseTail(0x1);
            SceneObjectGroup so1     = SceneHelpers.CreateSceneObject(3, ownerId, "so1", 0x10);

            so1.ScriptSetPhysicsStatus(true);
            m_scene.AddSceneObject(so1);

            Assert.That(m_scene.SceneGraph.GetTotalObjectsCount(), Is.EqualTo(3));
            Assert.That(m_scene.SceneGraph.GetActiveObjectsCount(), Is.EqualTo(3));

            m_scene.DeleteSceneObject(so1, false);

            Assert.That(m_scene.SceneGraph.GetTotalObjectsCount(), Is.EqualTo(0));
            Assert.That(m_scene.SceneGraph.GetActiveObjectsCount(), Is.EqualTo(0));
        }