InventoryFolder.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using libsecondlife;
  5. using OpenSim.Framework.Data;
  6. namespace OpenSim.Framework.Communications.Caches
  7. {
  8. public class InventoryFolder : InventoryFolderBase
  9. {
  10. public Dictionary<LLUUID, InventoryFolder> SubFolders = new Dictionary<LLUUID, InventoryFolder>();
  11. public Dictionary<LLUUID, InventoryItemBase> Items = new Dictionary<LLUUID, InventoryItemBase>();
  12. public InventoryFolder()
  13. {
  14. }
  15. public InventoryFolder HasSubFolder(LLUUID folderID)
  16. {
  17. InventoryFolder returnFolder = null;
  18. if (this.SubFolders.ContainsKey(folderID))
  19. {
  20. returnFolder = this.SubFolders[folderID];
  21. }
  22. else
  23. {
  24. foreach (InventoryFolder folder in this.SubFolders.Values)
  25. {
  26. returnFolder = folder.HasSubFolder(folderID);
  27. if (returnFolder != null)
  28. {
  29. break;
  30. }
  31. }
  32. }
  33. return returnFolder;
  34. }
  35. public InventoryFolder CreateNewSubFolder(LLUUID folderID, string folderName, ushort type)
  36. {
  37. InventoryFolder subFold = new InventoryFolder();
  38. subFold.name = folderName;
  39. subFold.folderID = folderID;
  40. subFold.type = type;
  41. subFold.parentID = this.folderID;
  42. subFold.agentID = this.agentID;
  43. this.SubFolders.Add(subFold.folderID, subFold);
  44. return subFold;
  45. }
  46. }
  47. }