private string persistAppearance(UUID avatarID, int appearanceVersion) { OSSL_Api osslApi = new OSSL_Api(); osslApi.Initialize(xEngine, aarBox.RootPart, null, null); string notecardName = string.Format("{0}-appearance-{1}-{2}", sessionId, avatarID, appearanceVersion); osslApi.osAgentSaveAppearance(avatarID.ToString(), notecardName); return(notecardName); }
public void TestOsAgentSaveAppearance() { TestHelpers.InMethod(); // log4net.Config.XmlConfigurator.Configure(); UUID ownerId = TestHelpers.ParseTail(0x1); UUID nonOwnerId = TestHelpers.ParseTail(0x2); float newHeight = 1.9f; ScenePresence sp = SceneHelpers.AddScenePresence(m_scene, nonOwnerId); sp.Appearance.AvatarHeight = newHeight; SceneObjectGroup so = SceneHelpers.CreateSceneObject(1, ownerId, 0x10); SceneObjectPart part = so.RootPart; m_scene.AddSceneObject(so); OSSL_Api osslApi = new OSSL_Api(); osslApi.Initialize(m_engine, part, null, null); string notecardName = "appearanceNc"; osslApi.osAgentSaveAppearance(new LSL_Types.LSLString(nonOwnerId.ToString()), notecardName); IList <TaskInventoryItem> items = part.Inventory.GetInventoryItems(notecardName); Assert.That(items.Count, Is.EqualTo(1)); TaskInventoryItem ncItem = items[0]; Assert.That(ncItem.Name, Is.EqualTo(notecardName)); AssetBase ncAsset = m_scene.AssetService.Get(ncItem.AssetID.ToString()); Assert.That(ncAsset, Is.Not.Null); AssetNotecard anc = new AssetNotecard(UUID.Zero, ncAsset.Data); anc.Decode(); OSDMap appearanceOsd = (OSDMap)OSDParser.DeserializeLLSDXml(anc.BodyText); AvatarAppearance savedAppearance = new AvatarAppearance(); savedAppearance.Unpack(appearanceOsd); Assert.That(savedAppearance.AvatarHeight, Is.EqualTo(sp.Appearance.AvatarHeight)); }