mirror of
https://github.com/opensim/opensim.git
synced 2026-06-03 17:16:31 +08:00
* Moved InventoryData to Framework.Types/InventoryItemBase.cs * Moved UserData to Framework.Interfaces/IUserData.cs * Moved UserProfileData to Framework/Types/UserProfileData.cs * Deleted ass-backwards Framework dependency on Framework.Data (now it's the other way round) * Changed some namespaces to reflect file structure
68 lines
2.2 KiB
C#
68 lines
2.2 KiB
C#
using System.Collections.Generic;
|
|
using libsecondlife;
|
|
using OpenSim.Framework.Communications;
|
|
using OpenSim.Framework.Types;
|
|
using InventoryFolder=OpenSim.Framework.Communications.Caches.InventoryFolder;
|
|
|
|
namespace OpenSim.Region.Communications.Local
|
|
{
|
|
public class LocalInventoryService : InventoryServiceBase
|
|
{
|
|
|
|
public LocalInventoryService()
|
|
{
|
|
|
|
}
|
|
|
|
public override void RequestInventoryForUser(LLUUID userID, InventoryFolderInfo folderCallBack, InventoryItemInfo itemCallBack)
|
|
{
|
|
List<InventoryFolderBase> folders = this.RequestFirstLevelFolders(userID);
|
|
InventoryFolder rootFolder = null;
|
|
|
|
//need to make sure we send root folder first
|
|
foreach (InventoryFolderBase folder in folders)
|
|
{
|
|
if (folder.parentID == libsecondlife.LLUUID.Zero)
|
|
{
|
|
InventoryFolder newfolder = new InventoryFolder(folder);
|
|
rootFolder = newfolder;
|
|
folderCallBack(userID, newfolder);
|
|
}
|
|
}
|
|
|
|
if (rootFolder != null)
|
|
{
|
|
foreach (InventoryFolderBase folder in folders)
|
|
{
|
|
if (folder.folderID != rootFolder.folderID)
|
|
{
|
|
InventoryFolder newfolder = new InventoryFolder(folder);
|
|
folderCallBack(userID, newfolder);
|
|
|
|
List<InventoryItemBase> items = this.RequestFolderItems(newfolder.folderID);
|
|
foreach (InventoryItemBase item in items)
|
|
{
|
|
itemCallBack(userID, item);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public override void AddNewInventoryFolder(LLUUID userID, InventoryFolder folder)
|
|
{
|
|
this.AddFolder(folder);
|
|
}
|
|
|
|
public override void AddNewInventoryItem(LLUUID userID, InventoryItemBase item)
|
|
{
|
|
this.AddItem(item);
|
|
}
|
|
|
|
public override void DeleteInventoryItem(LLUUID userID, InventoryItemBase item)
|
|
{
|
|
this.deleteItem(item);
|
|
}
|
|
}
|
|
}
|