From 40abeed7d425065e273e3a33264425f8ded35f3e Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Sun, 17 Aug 2008 18:41:13 +0000 Subject: Add the IInventoryModule interface and a sample method call to Scene.INventory.cs --- OpenSim/Framework/IInventoryModule.cs | 40 ++++++++++++++++++++++ .../Modules/Avatar/Inventory/InventoryModule.cs | 36 ++++++++++++------- .../Region/Environment/Scenes/Scene.Inventory.cs | 9 +++++ 3 files changed, 72 insertions(+), 13 deletions(-) create mode 100644 OpenSim/Framework/IInventoryModule.cs diff --git a/OpenSim/Framework/IInventoryModule.cs b/OpenSim/Framework/IInventoryModule.cs new file mode 100644 index 0000000..19171cd --- /dev/null +++ b/OpenSim/Framework/IInventoryModule.cs @@ -0,0 +1,40 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System.Collections.Generic; +using libsecondlife; + +namespace OpenSim.Framework +{ + /// + /// An interface for accessing and managing agent inventory + /// + public interface IInventoryModule + { +// void TestFunction(); + } +} diff --git a/OpenSim/Region/Environment/Modules/Avatar/Inventory/InventoryModule.cs b/OpenSim/Region/Environment/Modules/Avatar/Inventory/InventoryModule.cs index e1cc688..cc088a0 100644 --- a/OpenSim/Region/Environment/Modules/Avatar/Inventory/InventoryModule.cs +++ b/OpenSim/Region/Environment/Modules/Avatar/Inventory/InventoryModule.cs @@ -36,7 +36,7 @@ using OpenSim.Region.Environment.Scenes; namespace OpenSim.Region.Environment.Modules.Avatar.Inventory { - public class InventoryModule : IRegionModule + public class InventoryModule : IInventoryModule, IRegionModule { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); @@ -48,14 +48,20 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Inventory /// private IDictionary m_pendingOffers = new Dictionary(); - private Scene m_scene; + private List m_Scenelist = new List(); #region IRegionModule Members public void Initialise(Scene scene, IConfigSource config) { - m_scene = scene; - scene.EventManager.OnNewClient += OnNewClient; + if(!m_Scenelist.Contains(scene)) + { + m_Scenelist.Add(scene); + + scene.RegisterModuleInterface(this); + + scene.EventManager.OnNewClient += OnNewClient; + } } public void PostInitialise() @@ -73,7 +79,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Inventory public bool IsSharedModule { - get { return false; } + get { return true; } } #endregion @@ -97,9 +103,9 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Inventory "[AGENT INVENTORY]: Routing inventory offering message from {0}, {1} to {2}", client.AgentId, client.Name, toAgentID); - if (m_scene.Entities.ContainsKey(toAgentID) && m_scene.Entities[toAgentID] is ScenePresence) + if (((Scene)(client.Scene)).Entities.ContainsKey(toAgentID) && ((Scene)(client.Scene)).Entities[toAgentID] is ScenePresence) { - ScenePresence user = (ScenePresence) m_scene.Entities[toAgentID]; + ScenePresence user = (ScenePresence) ((Scene)(client.Scene)).Entities[toAgentID]; if (!user.IsChildAgent) { @@ -143,9 +149,9 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Inventory "[AGENT INVENTORY]: Routing inventory accepted message from {0}, {1} to {2}", client.AgentId, client.Name, toAgentID); - if (m_scene.Entities.ContainsKey(toAgentID) && m_scene.Entities[toAgentID] is ScenePresence) + if (((Scene)(client.Scene)).Entities.ContainsKey(toAgentID) && ((Scene)(client.Scene)).Entities[toAgentID] is ScenePresence) { - ScenePresence user = (ScenePresence) m_scene.Entities[toAgentID]; + ScenePresence user = (ScenePresence) ((Scene)(client.Scene)).Entities[toAgentID]; if (!user.IsChildAgent) { @@ -160,7 +166,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Inventory // Since the message originates from the accepting client, the toAgentID is // the agent giving the item. - m_scene.GiveInventoryItem(client, toAgentID, m_pendingOffers[imSessionID]); + ((Scene)(client.Scene)).GiveInventoryItem(client, toAgentID, m_pendingOffers[imSessionID]); m_pendingOffers.Remove(imSessionID); } @@ -189,9 +195,9 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Inventory } else if (dialog == (byte) InstantMessageDialog.InventoryDeclined) { - if (m_scene.Entities.ContainsKey(toAgentID) && m_scene.Entities[toAgentID] is ScenePresence) + if (((Scene)(client.Scene)).Entities.ContainsKey(toAgentID) && ((Scene)(client.Scene)).Entities[toAgentID] is ScenePresence) { - ScenePresence user = (ScenePresence) m_scene.Entities[toAgentID]; + ScenePresence user = (ScenePresence) ((Scene)(client.Scene)).Entities[toAgentID]; if (!user.IsChildAgent) { @@ -216,5 +222,9 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Inventory } } } + +// public void TestFunction() +// { +// } } -} \ No newline at end of file +} diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs index 3f62610..fe66dd5 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs @@ -2308,5 +2308,14 @@ namespace OpenSim.Region.Environment.Scenes else EventManager.TriggerStopScript(part.LocalId, itemID); } + +// public void TestFunction() +// { +// IInventoryModule imod = RequestModuleInterface(); +// if (imod == null) +// return; +// +// imod.TestFunction(); +// } } } -- cgit v1.1