예제 #1
0
        private XInventoryFolder GetSuitcaseXFolder(UUID principalID)
        {
            // Warp! Root folder for travelers
            XInventoryFolder[] folders = m_Database.GetFolders(
                    new string[] { "agentID", "type" },
                    new string[] { principalID.ToString(), "100" }); // This is a special folder type...

            if (folders != null && folders.Length > 0)
                return folders[0];
            
            // check to see if we have the old Suitcase folder
            folders = m_Database.GetFolders(
                    new string[] { "agentID", "folderName", "parentFolderID" },
                    new string[] { principalID.ToString(), "My Suitcase", UUID.Zero.ToString() });
            if (folders != null && folders.Length > 0)
            {
                // Move it to under the root folder
                XInventoryFolder root = GetRootXFolder(principalID);
                folders[0].parentFolderID = root.folderID;
                folders[0].type = 100;
                m_Database.StoreFolder(folders[0]);
                return folders[0];
            }

            return null;
        }
예제 #2
0
        /// <summary>
        /// Return true if the folderID is a subfolder of the Suitcase or the suitcase folder  itself
        /// </summary>
        /// <param name="folderID"></param>
        /// <param name="root"></param>
        /// <param name="suitcase"></param>
        /// <returns></returns>
        private bool IsWithinSuitcaseTree(UUID principalID, UUID folderID)
        {
            XInventoryFolder suitcase = GetSuitcaseXFolder(principalID);

            if (suitcase == null)
            {
                m_log.WarnFormat("[HG SUITCASE INVENTORY SERVICE]: User {0} does not have a Suitcase folder", principalID);
                return(false);
            }

            List <XInventoryFolder> tree = new List <XInventoryFolder>();

            tree.Add(suitcase); // Warp! the tree is the real root folder plus the children of the suitcase folder
            tree.AddRange(GetFolderTree(principalID, suitcase.folderID));
            XInventoryFolder f = tree.Find(delegate(XInventoryFolder fl)
            {
                if (fl.folderID == folderID)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            });

            if (f == null)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
예제 #3
0
        public override InventoryFolderBase GetRootFolder(UUID principalID)
        {
            m_log.DebugFormat("[HG SUITCASE INVENTORY SERVICE]: GetRootFolder for {0}", principalID);

            // Let's find out the local root folder
            XInventoryFolder root = GetRootXFolder(principalID); ;
            if (root == null)
            {
                m_log.WarnFormat("[HG SUITCASE INVENTORY SERVICE]: Unable to retrieve local root folder for user {0}", principalID);
                return null;
            }

            // Warp! Root folder for travelers is the suitcase folder
            XInventoryFolder suitcase = GetSuitcaseXFolder(principalID);

            if (suitcase == null)
            {
                m_log.DebugFormat("[HG SUITCASE INVENTORY SERVICE]: User {0} does not have a Suitcase folder. Creating it...", principalID);
                // make one, and let's add it to the user's inventory as a direct child of the root folder
                // In the DB we tag it as type 100, but we use -1 (Unknown) outside
                suitcase = CreateFolder(principalID, root.folderID, 100, "My Suitcase");
                if (suitcase == null)
                    m_log.ErrorFormat("[HG SUITCASE INVENTORY SERVICE]: Unable to create suitcase folder");
                m_Database.StoreFolder(suitcase);

                // Create System folders
                CreateSystemFolders(principalID, suitcase.folderID);
            }

            SetAsNormalFolder(suitcase);

            return ConvertToOpenSim(suitcase);
        }
예제 #4
0
        public override InventoryFolderBase GetFolderForType(UUID principalID, FolderType type)
        {
            //m_log.DebugFormat("[HG INVENTORY SERVICE]: GetFolderForType for {0} {0}", principalID, type);
            XInventoryFolder suitcase = GetSuitcaseXFolder(principalID);

            if (suitcase == null)
            {
                m_log.WarnFormat("[HG SUITCASE INVENTORY SERVICE]: Found no suitcase folder for user {0} when looking for child type folder {1}", principalID, type);
                return(null);
            }

            XInventoryFolder[] folders = m_Database.GetFolders(
                new string[] { "agentID", "type", "parentFolderID" },
                new string[] { principalID.ToString(), ((int)type).ToString(), suitcase.folderID.ToString() });

            if (folders.Length == 0)
            {
                m_log.WarnFormat("[HG SUITCASE INVENTORY SERVICE]: Found no folder for type {0} for user {1}", type, principalID);
                return(null);
            }

            m_log.DebugFormat(
                "[HG SUITCASE INVENTORY SERVICE]: Found folder {0} {1} for type {2} for user {3}",
                folders[0].folderName, folders[0].folderID, type, principalID);

            return(ConvertToOpenSim(folders[0]));
        }
예제 #5
0
        public override List <InventoryFolderBase> GetInventorySkeleton(UUID principalID)
        {
            XInventoryFolder suitcase = GetSuitcaseXFolder(principalID);

            if (suitcase == null)
            {
                m_log.WarnFormat("[HG SUITCASE INVENTORY SERVICE]: Found no suitcase folder for user {0} when looking for inventory skeleton", principalID);
                return(null);
            }

            List <XInventoryFolder> tree = GetFolderTree(principalID, suitcase.folderID);

            if (tree.Count == 0)
            {
                return(null);
            }

            List <InventoryFolderBase> folders = new List <InventoryFolderBase>();

            foreach (XInventoryFolder x in tree)
            {
                folders.Add(ConvertToOpenSim(x));
            }

            SetAsNormalFolder(suitcase);
            folders.Add(ConvertToOpenSim(suitcase));

            return(folders);
        }
예제 #6
0
        public virtual InventoryFolderBase GetRootFolder(UUID principalID)
        {
            XInventoryFolder[] folders = m_Database.GetFolders(
                new string[] { "agentID", "parentFolderID" },
                new string[] { principalID.ToString(), UUID.Zero.ToString() });

            if (folders.Length == 0)
            {
                return(null);
            }

            XInventoryFolder root = null;

            foreach (XInventoryFolder folder in folders)
            {
                if (folder.folderName == "My Inventory")
                {
                    root = folder;
                    break;
                }
            }

            if (root == null) // oops
            {
                root = folders[0];
            }

            return(ConvertToOpenSim(root));
        }
예제 #7
0
        public override InventoryFolderBase GetRootFolder(UUID principalID)
        {
            m_log.DebugFormat("[HG SUITCASE INVENTORY SERVICE]: GetRootFolder for {0}", principalID);

            // Let's find out the local root folder
            XInventoryFolder root = GetRootXFolder(principalID);

            if (root == null)
            {
                m_log.WarnFormat("[HG SUITCASE INVENTORY SERVICE]: Unable to retrieve local root folder for user {0}", principalID);
                return(null);
            }

            // Warp! Root folder for travelers is the suitcase folder
            XInventoryFolder suitcase = GetSuitcaseXFolder(principalID);

            if (suitcase == null)
            {
                m_log.DebugFormat("[HG SUITCASE INVENTORY SERVICE]: User {0} does not have a Suitcase folder. Creating it...", principalID);
                // Create the My Suitcase folder under the user's root folder.
                // In the DB we tag it as type 100, but we use type 8 (Folder) outside, as this affects the sort order.
                suitcase = CreateFolder(principalID, root.folderID, (int)FolderType.Suitcase, InventoryFolderBase.SUITCASE_FOLDER_NAME);
                if (suitcase == null)
                {
                    m_log.ErrorFormat("[HG SUITCASE INVENTORY SERVICE]: Unable to create suitcase folder");
                    return(null);
                }

                CreateSystemFolders(principalID, suitcase.folderID);
            }

            SetAsNormalFolder(suitcase);

            return(ConvertToOpenSim(suitcase));
        }
        public virtual bool UpdateFolder(InventoryFolderBase folder)
        {
            XInventoryFolder    xFolder = ConvertFromOpenSim(folder);
            InventoryFolderBase check   = GetFolder(folder);

            if (check == null)
            {
                return(AddFolder(folder));
            }

            if (check.Type != -1 || xFolder.type != -1)
            {
                if (xFolder.version > check.Version)
                {
                    return(false);
                }
                check.Version = (ushort)xFolder.version;
                xFolder       = ConvertFromOpenSim(check);
                return(m_Database.StoreFolder(xFolder));
            }

            if (xFolder.version < check.Version)
            {
                xFolder.version = check.Version;
            }
            xFolder.folderID = check.ID;

            return(m_Database.StoreFolder(xFolder));
        }
예제 #9
0
        private XInventoryFolder GetSuitcaseXFolder(UUID principalID)
        {
            // Warp! Root folder for travelers
            XInventoryFolder[] folders = m_Database.GetFolders(
                new string[] { "agentID", "type" },
                new string[] { principalID.ToString(), ((int)FolderType.Suitcase).ToString() });

            if (folders != null && folders.Length > 0)
            {
                return(folders[0]);
            }

            // check to see if we have the old Suitcase folder
            folders = m_Database.GetFolders(
                new string[] { "agentID", "folderName", "parentFolderID" },
                new string[] { principalID.ToString(), InventoryFolderBase.SUITCASE_FOLDER_NAME, UUID.Zero.ToString() });
            if (folders != null && folders.Length > 0)
            {
                // Move it to under the root folder
                XInventoryFolder root = GetRootXFolder(principalID);
                folders[0].parentFolderID = root.folderID;
                folders[0].type           = (int)FolderType.Suitcase;
                m_Database.StoreFolder(folders[0]);
                return(folders[0]);
            }

            return(null);
        }
예제 #10
0
        /// <summary>
        /// Return true if the folderID is a subfolder of the Suitcase or the suitcase folder  itself
        /// </summary>
        /// <param name="folderID"></param>
        /// <param name="root"></param>
        /// <param name="suitcase"></param>
        /// <returns></returns>
        private bool IsWithinSuitcaseTree(UUID principalID, UUID folderID)
        {
            XInventoryFolder suitcase = GetSuitcaseXFolder(principalID);

            if (suitcase == null)
            {
                m_log.WarnFormat("[HG SUITCASE INVENTORY SERVICE]: User {0} does not have a Suitcase folder", principalID);
                return(false);
            }

            List <XInventoryFolder> tree = new List <XInventoryFolder>();

            tree.Add(suitcase); // Warp! the tree is the real root folder plus the children of the suitcase folder
            tree.AddRange(GetFolderTree(principalID, suitcase.folderID));

            // Also add the Current Outfit folder to the list of available folders
            XInventoryFolder folder = GetCurrentOutfitXFolder(principalID);

            if (folder != null)
            {
                tree.Add(folder);
            }

            XInventoryFolder f = tree.Find(delegate(XInventoryFolder fl)
            {
                return(fl.folderID == folderID);
            });

            return(f != null);
        }
 public bool StoreFolder(XInventoryFolder folder)
 {
     if (folder.folderName.Length > 64)
     {
         folder.folderName = folder.folderName.Substring(0, 64);
     }
     return(m_Folders.Store(folder));
 }
예제 #12
0
        public bool StoreFolder(XInventoryFolder folder)
        {
            m_allFolders[folder.folderID] = folder.Clone();

//            Console.WriteLine("Added folder {0} {1}", folder.folderName, folder.folderID);

            return(true);
        }
예제 #13
0
        public override InventoryCollection GetUserInventory(UUID userID)
        {
            m_log.DebugFormat("[HG SUITCASE INVENTORY SERVICE]: Get Suitcase inventory for user {0}", userID);

            InventoryCollection userInventory = new InventoryCollection();

            userInventory.UserID  = userID;
            userInventory.Folders = new List <InventoryFolderBase>();
            userInventory.Items   = new List <InventoryItemBase>();

            XInventoryFolder suitcase = GetSuitcaseXFolder(userID);

            if (suitcase == null)
            {
                m_log.WarnFormat("[HG SUITCASE INVENTORY SERVICE]: Found no suitcase folder for user {0} when looking for user inventory", userID);
                return(null);
            }

            List <XInventoryFolder> tree = GetFolderTree(userID, suitcase.folderID);

            if (tree == null || (tree != null && tree.Count == 0))
            {
                SetAsNormalFolder(suitcase);
                userInventory.Folders.Add(ConvertToOpenSim(suitcase));
                return(userInventory);
            }

            List <InventoryItemBase> items;

            foreach (XInventoryFolder f in tree)
            {
                // Add the items of this subfolder
                items = GetFolderItems(userID, f.folderID);
                if (items != null && items.Count > 0)
                {
                    userInventory.Items.AddRange(items);
                }

                // Add the folder itself
                userInventory.Folders.Add(ConvertToOpenSim(f));
            }

            items = GetFolderItems(userID, suitcase.folderID);
            if (items != null && items.Count > 0)
            {
                userInventory.Items.AddRange(items);
            }

            SetAsNormalFolder(suitcase);
            userInventory.Folders.Add(ConvertToOpenSim(suitcase));

            m_log.DebugFormat("[HG SUITCASE INVENTORY SERVICE]: GetUserInventory for user {0} returning {1} folders and {2} items",
                              userID, userInventory.Folders.Count, userInventory.Items.Count);
            return(userInventory);
        }
        public virtual bool AddFolder(InventoryFolderBase folder)
        {
            InventoryFolderBase check = GetFolder(folder);

            if (check != null)
            {
                return(false);
            }

            XInventoryFolder xFolder = ConvertFromOpenSim(folder);

            return(m_Database.StoreFolder(xFolder));
        }
        // CM Helpers
        //
        protected InventoryFolderBase ConvertToOpenSim(XInventoryFolder folder)
        {
            InventoryFolderBase newFolder = new InventoryFolderBase();

            newFolder.ParentID = folder.parentFolderID;
            newFolder.Type     = (short)folder.type;
            newFolder.Version  = (ushort)folder.version;
            newFolder.Name     = folder.folderName;
            newFolder.Owner    = folder.agentID;
            newFolder.ID       = folder.folderID;

            return(newFolder);
        }
예제 #16
0
        protected XInventoryFolder ConvertFromOpenSim(InventoryFolderBase folder)
        {
            XInventoryFolder newFolder = new XInventoryFolder();

            newFolder.parentFolderID = folder.ParentID;
            newFolder.type           = (int)folder.Type;
            newFolder.version        = (int)folder.Version;
            newFolder.folderName     = folder.Name;
            newFolder.agentID        = folder.Owner;
            newFolder.folderID       = folder.ID;

            return(newFolder);
        }
예제 #17
0
        protected XInventoryFolder CreateFolder(UUID principalID, UUID parentID, int type, string name)
        {
            XInventoryFolder newFolder = new XInventoryFolder();

            newFolder.folderName     = name;
            newFolder.type           = type;
            newFolder.version        = 1;
            newFolder.folderID       = UUID.Random();
            newFolder.agentID        = principalID;
            newFolder.parentFolderID = parentID;

            m_Database.StoreFolder(newFolder);

            return(newFolder);
        }
예제 #18
0
        // CM Helpers
        //
        protected InventoryFolderBase ConvertToOpenSim(XInventoryFolder folder)
        {
            InventoryFolderBase newFolder = new InventoryFolderBase();

            newFolder.ParentID = folder.parentFolderID;
            newFolder.Type     = (short)folder.type;
            //// Viewer can't understand anything that's not in it's LLFolderType enum
            //if (newFolder.Type == InventoryItemBase.SUITCASE_FOLDER_TYPE)
            //    newFolder.Type = InventoryItemBase.SUITCASE_FOLDER_FAKE_TYPE;
            newFolder.Version = (ushort)folder.version;
            newFolder.Name    = folder.folderName;
            newFolder.Owner   = folder.agentID;
            newFolder.ID      = folder.folderID;

            return(newFolder);
        }
예제 #19
0
        public override InventoryFolderBase GetRootFolder(UUID principalID)
        {
            // Warp! Root folder for travelers
            XInventoryFolder[] folders = m_Database.GetFolders(
                new string[] { "agentID", "folderName" },
                new string[] { principalID.ToString(), "My Suitcase" });

            if (folders.Length > 0)
            {
                return(ConvertToOpenSim(folders[0]));
            }

            // make one
            XInventoryFolder suitcase = CreateFolder(principalID, UUID.Zero, (int)AssetType.Folder, "My Suitcase");

            return(ConvertToOpenSim(suitcase));
        }
예제 #20
0
        public virtual bool AddFolder(InventoryFolderBase folder)
        {
//            m_log.DebugFormat("[XINVENTORY]: Add folder {0} type {1} in parent {2}", folder.Name, folder.Type, folder.ParentID);

            InventoryFolderBase check = GetFolder(folder);

            if (check != null)
            {
                return(false);
            }

            if (folder.Type != (short)AssetType.Folder && folder.Type != (short)AssetType.Unknown)
            {
                InventoryFolderBase rootFolder = GetRootFolder(folder.Owner);

                if (rootFolder == null)
                {
                    m_log.WarnFormat(
                        "[XINVENTORY]: Found no root folder for {0} in AddFolder() when looking for {1}",
                        folder.Owner, folder.Type);

                    return(false);
                }

                // Check we're not trying to add this as a system folder.
                if (folder.ParentID == rootFolder.ID)
                {
                    InventoryFolderBase existingSystemFolder
                        = GetSystemFolderForType(rootFolder, (AssetType)folder.Type);

                    if (existingSystemFolder != null)
                    {
                        m_log.WarnFormat(
                            "[XINVENTORY]: System folder of type {0} already exists when tried to add {1} to {2} for {3}",
                            folder.Type, folder.Name, folder.ParentID, folder.Owner);

                        return(false);
                    }
                }
            }

            XInventoryFolder xFolder = ConvertFromOpenSim(folder);

            return(m_Database.StoreFolder(xFolder));
        }
예제 #21
0
        public override InventoryFolderBase GetRootFolder(UUID principalID)
        {
            //m_log.DebugFormat("[HG INVENTORY SERVICE]: GetRootFolder for {0}", principalID);
            // Warp! Root folder for travelers
            XInventoryFolder[] folders = m_Database.GetFolders(
                new string[] { "agentID", "folderName" },
                new string[] { principalID.ToString(), "My Suitcase" });

            if (folders.Length > 0)
            {
                return(ConvertToOpenSim(folders[0]));
            }

            // make one
            XInventoryFolder suitcase = CreateFolder(principalID, UUID.Zero, (int)FolderType.Suitcase, "My Suitcase");

            return(ConvertToOpenSim(suitcase));
        }
        // CM Helpers
        //
        protected InventoryFolderBase ConvertToOpenSim(XInventoryFolder folder)
        {
            InventoryFolderBase newFolder = new InventoryFolderBase();

            newFolder.ParentID = folder.parentFolderID;
            newFolder.Type     = (short)folder.type;
            // Viewer can't understand anything that's not in it's LLFolderType enum
            if (newFolder.Type == 100)
            {
                newFolder.Type = -1;
            }
            newFolder.Version = (ushort)folder.version;
            newFolder.Name    = folder.folderName;
            newFolder.Owner   = folder.agentID;
            newFolder.ID      = folder.folderID;

            return(newFolder);
        }
예제 #23
0
        public override List<InventoryFolderBase> GetInventorySkeleton(UUID principalID)
        {
            XInventoryFolder suitcase = GetSuitcaseXFolder(principalID);

            List<XInventoryFolder> tree = GetFolderTree(principalID, suitcase.folderID);
            if (tree == null || (tree != null && tree.Count == 0))
                return null;

            List<InventoryFolderBase> folders = new List<InventoryFolderBase>();
            foreach (XInventoryFolder x in tree)
            {
                folders.Add(ConvertToOpenSim(x));
            }

            SetAsNormalFolder(suitcase);
            folders.Add(ConvertToOpenSim(suitcase));

            return folders;
        }
예제 #24
0
        private XInventoryFolder GetCurrentOutfitXFolder(UUID userID)
        {
            XInventoryFolder root = GetRootXFolder(userID);

            if (root == null)
            {
                return(null);
            }

            XInventoryFolder[] folders = m_Database.GetFolders(
                new string[] { "agentID", "type", "parentFolderID" },
                new string[] { userID.ToString(), ((int)FolderType.CurrentOutfit).ToString(), root.folderID.ToString() });

            if (folders.Length == 0)
            {
                return(null);
            }

            return(folders[0]);
        }
예제 #25
0
        public virtual bool UpdateFolder(InventoryFolderBase folder)
        {
//            m_log.DebugFormat("[XINVENTORY]: Update folder {0} {1} ({2})", folder.Name, folder.Type, folder.ID);

            XInventoryFolder    xFolder = ConvertFromOpenSim(folder);
            InventoryFolderBase check   = GetFolder(folder);

            if (check == null)
            {
                return(AddFolder(folder));
            }

            if ((check.Type != (short)AssetType.Unknown || xFolder.type != (short)AssetType.Unknown) &&
                (check.Type != (short)AssetType.OutfitFolder || xFolder.type != (short)AssetType.OutfitFolder))
            {
                if (xFolder.version < check.Version)
                {
//                    m_log.DebugFormat("[XINVENTORY]: {0} < {1} can't do", xFolder.version, check.Version);
                    return(false);
                }

                check.Version = (ushort)xFolder.version;
                xFolder       = ConvertFromOpenSim(check);

//                m_log.DebugFormat(
//                    "[XINVENTORY]: Storing version only update to system folder {0} {1} {2}",
//                    xFolder.folderName, xFolder.version, xFolder.type);

                return(m_Database.StoreFolder(xFolder));
            }

            if (xFolder.version < check.Version)
            {
                xFolder.version = check.Version;
            }

            xFolder.folderID = check.ID;

            return(m_Database.StoreFolder(xFolder));
        }
        public bool MoveFolder(string id, string newParent) 
        { 
            // Don't use GetFolders() here - it takes a clone!
            XInventoryFolder folder = m_allFolders[new UUID(id)];

            if (folder == null)
                return false;

            folder.parentFolderID = new UUID(newParent);

//            XInventoryFolder[] newParentFolders 
//                = GetFolders(new string[] { "folderID" }, new string[] { folder.parentFolderID.ToString() });

//            Console.WriteLine(
//                "Moved folder {0} {1}, to {2} {3}", 
//                folder.folderName, folder.folderID, newParentFolders[0].folderName, folder.parentFolderID);

            // TODO: Really need to implement folder version incrementing, though this should be common code anyway,
            // not reimplemented in each db plugin.

            return true;
        }
예제 #27
0
 private void SetAsNormalFolder(XInventoryFolder suitcase)
 {
     //suitcase.type = InventoryItemBase.SUITCASE_FOLDER_FAKE_TYPE;
 }
예제 #28
0
        public virtual bool CreateUserInventory(UUID principalID)
        {
            // This is braindeaad. We can't ever communicate that we fixed
            // an existing inventory. Well, just return root folder status,
            // but check sanity anyway.
            //
            bool result = false;

            InventoryFolderBase rootFolder = GetRootFolder(principalID);

            if (rootFolder == null)
            {
                rootFolder = ConvertToOpenSim(CreateFolder(principalID, UUID.Zero, (int)AssetType.RootFolder, "My Inventory"));
                result     = true;
            }

            XInventoryFolder[] sysFolders = GetSystemFolders(principalID, rootFolder.ID);

            if (!Array.Exists(sysFolders, delegate(XInventoryFolder f) { if (f.type == (int)AssetType.Animation)
                                                                         {
                                                                             return(true);
                                                                         }
                                                                         return(false); }))
            {
                CreateFolder(principalID, rootFolder.ID, (int)AssetType.Animation, "Animations");
            }
            if (!Array.Exists(sysFolders, delegate(XInventoryFolder f) { if (f.type == (int)AssetType.Bodypart)
                                                                         {
                                                                             return(true);
                                                                         }
                                                                         return(false); }))
            {
                CreateFolder(principalID, rootFolder.ID, (int)AssetType.Bodypart, "Body Parts");
            }
            if (!Array.Exists(sysFolders, delegate(XInventoryFolder f) { if (f.type == (int)AssetType.CallingCard)
                                                                         {
                                                                             return(true);
                                                                         }
                                                                         return(false); }))
            {
                XInventoryFolder folder = CreateFolder(principalID, rootFolder.ID, (int)AssetType.CallingCard, "Calling Cards");
                folder = CreateFolder(principalID, folder.folderID, (int)AssetType.CallingCard, "Friends");
                CreateFolder(principalID, folder.folderID, (int)AssetType.CallingCard, "All");
            }
            if (!Array.Exists(sysFolders, delegate(XInventoryFolder f) { if (f.type == (int)AssetType.Clothing)
                                                                         {
                                                                             return(true);
                                                                         }
                                                                         return(false); }))
            {
                CreateFolder(principalID, rootFolder.ID, (int)AssetType.Clothing, "Clothing");
            }
            if (!Array.Exists(sysFolders, delegate(XInventoryFolder f) { if (f.type == (int)AssetType.CurrentOutfitFolder)
                                                                         {
                                                                             return(true);
                                                                         }
                                                                         return(false); }))
            {
                CreateFolder(principalID, rootFolder.ID, (int)AssetType.CurrentOutfitFolder, "Current Outfit");
            }
            if (!Array.Exists(sysFolders, delegate(XInventoryFolder f) { if (f.type == (int)AssetType.FavoriteFolder)
                                                                         {
                                                                             return(true);
                                                                         }
                                                                         return(false); }))
            {
                CreateFolder(principalID, rootFolder.ID, (int)AssetType.FavoriteFolder, "Favorites");
            }
            if (!Array.Exists(sysFolders, delegate(XInventoryFolder f) { if (f.type == (int)AssetType.Gesture)
                                                                         {
                                                                             return(true);
                                                                         }
                                                                         return(false); }))
            {
                CreateFolder(principalID, rootFolder.ID, (int)AssetType.Gesture, "Gestures");
            }
            if (!Array.Exists(sysFolders, delegate(XInventoryFolder f) { if (f.type == (int)AssetType.Landmark)
                                                                         {
                                                                             return(true);
                                                                         }
                                                                         return(false); }))
            {
                CreateFolder(principalID, rootFolder.ID, (int)AssetType.Landmark, "Landmarks");
            }
            if (!Array.Exists(sysFolders, delegate(XInventoryFolder f) { if (f.type == (int)AssetType.LostAndFoundFolder)
                                                                         {
                                                                             return(true);
                                                                         }
                                                                         return(false); }))
            {
                CreateFolder(principalID, rootFolder.ID, (int)AssetType.LostAndFoundFolder, "Lost And Found");
            }
            if (!Array.Exists(sysFolders, delegate(XInventoryFolder f) { if (f.type == (int)AssetType.Notecard)
                                                                         {
                                                                             return(true);
                                                                         }
                                                                         return(false); }))
            {
                CreateFolder(principalID, rootFolder.ID, (int)AssetType.Notecard, "Notecards");
            }
            if (!Array.Exists(sysFolders, delegate(XInventoryFolder f) { if (f.type == (int)AssetType.Object)
                                                                         {
                                                                             return(true);
                                                                         }
                                                                         return(false); }))
            {
                CreateFolder(principalID, rootFolder.ID, (int)AssetType.Object, "Objects");
            }
            if (!Array.Exists(sysFolders, delegate(XInventoryFolder f) { if (f.type == (int)AssetType.SnapshotFolder)
                                                                         {
                                                                             return(true);
                                                                         }
                                                                         return(false); }))
            {
                CreateFolder(principalID, rootFolder.ID, (int)AssetType.SnapshotFolder, "Photo Album");
            }
            if (!Array.Exists(sysFolders, delegate(XInventoryFolder f) { if (f.type == (int)AssetType.LSLText)
                                                                         {
                                                                             return(true);
                                                                         }
                                                                         return(false); }))
            {
                CreateFolder(principalID, rootFolder.ID, (int)AssetType.LSLText, "Scripts");
            }
            if (!Array.Exists(sysFolders, delegate(XInventoryFolder f) { if (f.type == (int)AssetType.Sound)
                                                                         {
                                                                             return(true);
                                                                         }
                                                                         return(false); }))
            {
                CreateFolder(principalID, rootFolder.ID, (int)AssetType.Sound, "Sounds");
            }
            if (!Array.Exists(sysFolders, delegate(XInventoryFolder f) { if (f.type == (int)AssetType.Texture)
                                                                         {
                                                                             return(true);
                                                                         }
                                                                         return(false); }))
            {
                CreateFolder(principalID, rootFolder.ID, (int)AssetType.Texture, "Textures");
            }
            if (!Array.Exists(sysFolders, delegate(XInventoryFolder f) { if (f.type == (int)AssetType.TrashFolder)
                                                                         {
                                                                             return(true);
                                                                         }
                                                                         return(false); }))
            {
                CreateFolder(principalID, rootFolder.ID, (int)AssetType.TrashFolder, "Trash");
            }

            return(result);
        }
예제 #29
0
 public bool StoreFolder(XInventoryFolder folder)
 {
     return(m_Folders.Store(folder));
 }
예제 #30
0
 private void SetAsNormalFolder(XInventoryFolder suitcase)
 {
     suitcase.type = (short)AssetType.Folder;
 }