示例#1
0
        public InventoryScriptConsole(SleekInstance instance, InventoryItem item)
        {
            InitializeComponent();

            this.instance = instance;
            netcom = this.instance.Netcom;
            client = this.instance.Client;
            this.item = item;
        }
示例#2
0
        public InventoryItemConsole(SleekInstance instance, InventoryItem item)
        {
            InitializeComponent();

            this.instance = instance;
            netcom = this.instance.Netcom;
            client = this.instance.Client;
            this.item = item;

            this.Disposed += new EventHandler(InventoryItemConsole_Disposed);

            AddClientEvents();
            FillItemProperties();
        }
示例#3
0
        public frmNotecardEditor(SleekInstance instance, InventoryItem item)
        {
            InitializeComponent();

            this.instance = instance;
            netcom = this.instance.Netcom;
            client = this.instance.Client;
            this.item = item;
            AddNetcomEvents();

            this.Text = item.Name + " (notecard) - SLeek";

            client.Assets.OnAssetReceived += new AssetManager.AssetReceivedCallback(Assets_OnAssetReceived);
            transferID = client.Assets.RequestInventoryAsset(item.AssetUUID, item.UUID, LLUUID.Zero, item.OwnerID, item.AssetType, false);
        }
示例#4
0
        public InventoryImageConsole(SecondLife instance, SLNetCom netcoms, InventoryItem item, ImageCache imageCache)
        {
            InitializeComponent();
            //SecondLife secondlife, SLNetCom netcoms,
            netcom = netcoms;
            client = instance;
            this.item = item;
            this.imagecache = imageCache;

            if (imageCache.ContainsImage(item.AssetUUID))
                SetFinalImage(this.imagecache.GetImage(item.AssetUUID));
            else
            {
                this.Disposed += new EventHandler(InventoryImageConsole_Disposed);
                client.Assets.OnImageReceived += new AssetManager.ImageReceivedCallback(Assets_OnImageReceived);
                client.Assets.RequestImage(item.AssetUUID, ImageType.Normal, 125000.0f, 0);
            }
        }
示例#5
0
        public InventoryImageConsole(SleekInstance instance, InventoryItem item)
        {
            InitializeComponent();

            this.instance = instance;
            netcom = this.instance.Netcom;
            client = this.instance.Client;
            this.item = item;

            if (instance.ImageCache.ContainsImage(item.AssetUUID))
                SetFinalImage(instance.ImageCache.GetImage(item.AssetUUID));
            else
            {
                this.Disposed += new EventHandler(InventoryImageConsole_Disposed);
                client.Assets.OnImageReceived += new AssetManager.ImageReceivedCallback(Assets_OnImageReceived);
                client.Assets.RequestImage(item.AssetUUID, ImageType.Normal, 125000.0f, 0);
            }
        }
示例#6
0
        public frmNotecardEditor(InventoryItem item, SecondLife secondlife, SLNetCom netcoms, ImageList imageIconList)
        {
            InitializeComponent();

            netcom = netcoms;
            client = secondlife;
            this.item = item;
            AddNetcomEvents();

            //Let's display the associated icon with the AssetType
            if (item.AssetType == AssetType.Notecard)
                this.Icon = Utils.MIUtils.MakeIcon(imageIconList.Images["textdoc.ico"], 16, true);
            else if (item.AssetType == AssetType.LSLText)
                this.Icon = Utils.MIUtils.MakeIcon(imageIconList.Images["script.ico"], 16, true);

            this.Text = item.Name + " (" + item.AssetType.ToString() + ")";

            client.Assets.OnAssetReceived += new AssetManager.AssetReceivedCallback(Assets_OnAssetReceived);
            transferID = client.Assets.RequestInventoryAsset(item.AssetUUID, item.UUID, LLUUID.Zero, item.OwnerID, item.AssetType, false);
        }
示例#7
0
        public ImageDownloader(SecondLife instance, SLNetCom netcoms, InventoryItem item, ImageCache imageCache, string savepath)
        {
            InitializeComponent();
            //SecondLife secondlife, SLNetCom netcoms,
            netcom = netcoms;
            client = instance;
            this.item = item;
            this.imagecache = imageCache;
            this.FilePath = savepath;

            if (imageCache.ContainsImage(item.AssetUUID))
                SetFinalImage(this.imagecache.GetImage(item.AssetUUID));
            else
            {
                this.Disposed += new EventHandler(InventoryImageConsole_Disposed);
                client.Assets.OnImageReceived += new AssetManager.ImageReceivedCallback(Assets_OnImageReceived);
                SetStatusBoxText("Requesting: " + item.Name);
                client.Assets.RequestImage(item.AssetUUID, ImageType.Normal, 125000.0f, 0);
                this.Decoded = false;
                // Wait for the event to trigger
                queryEvent.WaitOne(8000, false);
            }
        }
示例#8
0
        public ImageViewerForm(InventoryItem item, SecondLife secondlife, SLNetCom netcoms, ImageList imageIconList, ImageCache imageCache)
        {
            InitializeComponent();

            this.netcom = netcoms;
            this.client = secondlife;
            this.item = item;
            this.imagecache = imageCache;

            //Let's display the associated icon with the AssetType
            switch (item.AssetType)
	        {
                case AssetType.Texture:
                case AssetType.TextureTGA:
                case AssetType.ImageJPEG:
                case AssetType.ImageTGA:
                    this.Icon = Utils.MIUtils.MakeIcon(imageIconList.Images["snapshot.ico"], 16, true);
                    break;
		        default:
                    this.Icon = Utils.MIUtils.MakeIcon(imageIconList.Images["texture.ico"], 16, true);
                    break;
            }

        }
示例#9
0
        public static List<InventoryBase> ParseTaskInventory(string taskData)
        {
            List<InventoryBase> items = new List<InventoryBase>();
            int lineNum = 0;
            string[] lines = taskData.Replace("\r\n", "\n").Split('\n');

            while (lineNum < lines.Length)
            {
                string key, value;
                if (ParseLine(lines[lineNum++], out key, out value))
                {
                    if (key == "inv_object")
                    {
                        #region inv_object

                        // In practice this appears to only be used for folders
                        LLUUID itemID = LLUUID.Zero;
                        LLUUID parentID = LLUUID.Zero;
                        string name = String.Empty;
                        AssetType assetType = AssetType.Unknown;

                        while (lineNum < lines.Length)
                        {
                            if (ParseLine(lines[lineNum++], out key, out value))
                            {
                                if (key == "{")
                                {
                                    continue;
                                }
                                else if (key == "}")
                                {
                                    break;
                                }
                                else if (key == "obj_id")
                                {
                                    LLUUID.TryParse(value, out itemID);
                                }
                                else if (key == "parent_id")
                                {
                                    LLUUID.TryParse(value, out parentID);
                                }
                                else if (key == "type")
                                {
                                    assetType = StringToAssetType(value);
                                }
                                else if (key == "name")
                                {
                                    name = value.Substring(0, value.IndexOf('|'));
                                }
                            }
                        }

                        if (assetType == AssetType.Folder)
                        {
                            InventoryFolder folder = new InventoryFolder(itemID);
                            folder.Name = name;
                            folder.ParentUUID = parentID;

                            items.Add(folder);
                        }
                        else
                        {
                            InventoryItem item = new InventoryItem(itemID);
                            item.Name = name;
                            item.ParentUUID = parentID;
                            item.AssetType = assetType;

                            items.Add(item);
                        }

                        #endregion inv_object
                    }
                    else if (key == "inv_item")
                    {
                        #region inv_item

                        // Any inventory item that links to an assetID, has permissions, etc
                        LLUUID itemID = LLUUID.Zero;
                        LLUUID assetID = LLUUID.Zero;
                        LLUUID parentID = LLUUID.Zero;
                        LLUUID creatorID = LLUUID.Zero;
                        LLUUID ownerID = LLUUID.Zero;
                        LLUUID lastOwnerID = LLUUID.Zero;
                        LLUUID groupID = LLUUID.Zero;
                        bool groupOwned = false;
                        string name = String.Empty;
                        string desc = String.Empty;
                        AssetType assetType = AssetType.Unknown;
                        InventoryType inventoryType = InventoryType.Unknown;
                        DateTime creationDate = Helpers.Epoch;
                        uint flags = 0;
                        Permissions perms = Permissions.NoPermissions;
                        SaleType saleType = SaleType.Not;
                        int salePrice = 0;

                        while (lineNum < lines.Length)
                        {
                            if (ParseLine(lines[lineNum++], out key, out value))
                            {
                                if (key == "{")
                                {
                                    continue;
                                }
                                else if (key == "}")
                                {
                                    break;
                                }
                                else if (key == "item_id")
                                {
                                    LLUUID.TryParse(value, out itemID);
                                }
                                else if (key == "parent_id")
                                {
                                    LLUUID.TryParse(value, out parentID);
                                }
                                else if (key == "permissions")
                                {
                                    #region permissions

                                    while (lineNum < lines.Length)
                                    {
                                        if (ParseLine(lines[lineNum++], out key, out value))
                                        {
                                            if (key == "{")
                                            {
                                                continue;
                                            }
                                            else if (key == "}")
                                            {
                                                break;
                                            }
                                            else if (key == "creator_mask")
                                            {
                                                // Deprecated
                                                uint val;
                                                if (Helpers.TryParseHex(value, out val))
                                                    perms.BaseMask = (PermissionMask)val;
                                            }
                                            else if (key == "base_mask")
                                            {
                                                uint val;
                                                if (Helpers.TryParseHex(value, out val))
                                                    perms.BaseMask = (PermissionMask)val;
                                            }
                                            else if (key == "owner_mask")
                                            {
                                                uint val;
                                                if (Helpers.TryParseHex(value, out val))
                                                    perms.OwnerMask = (PermissionMask)val;
                                            }
                                            else if (key == "group_mask")
                                            {
                                                uint val;
                                                if (Helpers.TryParseHex(value, out val))
                                                    perms.GroupMask = (PermissionMask)val;
                                            }
                                            else if (key == "everyone_mask")
                                            {
                                                uint val;
                                                if (Helpers.TryParseHex(value, out val))
                                                    perms.EveryoneMask = (PermissionMask)val;
                                            }
                                            else if (key == "next_owner_mask")
                                            {
                                                uint val;
                                                if (Helpers.TryParseHex(value, out val))
                                                    perms.NextOwnerMask = (PermissionMask)val;
                                            }
                                            else if (key == "creator_id")
                                            {
                                                Helpers.TryParse(value, out creatorID);
                                            }
                                            else if (key == "owner_id")
                                            {
                                                Helpers.TryParse(value, out ownerID);
                                            }
                                            else if (key == "last_owner_id")
                                            {
                                                Helpers.TryParse(value, out lastOwnerID);
                                            }
                                            else if (key == "group_id")
                                            {
                                                Helpers.TryParse(value, out groupID);
                                            }
                                            else if (key == "group_owned")
                                            {
                                                uint val;
                                                if (Helpers.TryParse(value, out val))
                                                    groupOwned = (val != 0);
                                            }
                                        }
                                    }

                                    #endregion permissions
                                }
                                else if (key == "sale_info")
                                {
                                    #region sale_info

                                    while (lineNum < lines.Length)
                                    {
                                        if (ParseLine(lines[lineNum++], out key, out value))
                                        {
                                            if (key == "{")
                                            {
                                                continue;
                                            }
                                            else if (key == "}")
                                            {
                                                break;
                                            }
                                            else if (key == "sale_type")
                                            {
                                                saleType = StringToSaleType(value);
                                            }
                                            else if (key == "sale_price")
                                            {
                                                Helpers.TryParse(value, out salePrice);
                                            }
                                        }
                                    }

                                    #endregion sale_info
                                }
                                else if (key == "shadow_id")
                                {
                                    //FIXME:
                                }
                                else if (key == "asset_id")
                                {
                                    LLUUID.TryParse(value, out assetID);
                                }
                                else if (key == "type")
                                {
                                    assetType = StringToAssetType(value);
                                }
                                else if (key == "inv_type")
                                {
                                    inventoryType = StringToInventoryType(value);
                                }
                                else if (key == "flags")
                                {
                                    Helpers.TryParse(value, out flags);
                                }
                                else if (key == "name")
                                {
                                    name = value.Substring(0, value.IndexOf('|'));
                                }
                                else if (key == "desc")
                                {
                                    desc = value.Substring(0, value.IndexOf('|'));
                                }
                                else if (key == "creation_date")
                                {
                                    uint timestamp;
                                    if (Helpers.TryParse(value, out timestamp))
                                        creationDate = Helpers.UnixTimeToDateTime(timestamp);
                                    else
                                        SecondLife.LogStatic("Failed to parse creation_date " + value, Helpers.LogLevel.Warning);
                                }
                            }
                        }

                        InventoryItem item = CreateInventoryItem(inventoryType, itemID);
                        item.AssetUUID = assetID;
                        item.AssetType = assetType;
                        item.CreationDate = creationDate;
                        item.CreatorID = creatorID;
                        item.Description = desc;
                        item.Flags = flags;
                        item.GroupID = groupID;
                        item.GroupOwned = groupOwned;
                        item.Name = name;
                        item.OwnerID = ownerID;
                        item.ParentUUID = parentID;
                        item.Permissions = perms;
                        item.SalePrice = salePrice;
                        item.SaleType = saleType;

                        items.Add(item);

                        #endregion inv_item
                    }
                    else
                    {
                        SecondLife.LogStatic("Unrecognized token " + key + " in: " + Helpers.NewLine + taskData,
                            Helpers.LogLevel.Error);
                    }
                }
            }

            return items;
        }
示例#10
0
文件: Form1.cs 项目: hamalawy/slmiv
 /// <summary>
 /// Executes AssetManager.RequestInventoryAsset and assigns transferID while writing to lbStatus.Text and txbStatusHis
 /// </summary>
 private void RequestInventoryItem(InventoryItem i)
 {
     Console.WriteLine("[SLMIV]: AssetReceivedCallback=requesting:" + i.Name + " ;" + i.UUID.ToStringHyphenated());//Debug
     client.Log("[SLMIV] Requesting: " + i.Name + " ;UUID: " + i.UUID.ToStringHyphenated(), Helpers.LogLevel.Info);
     lbStatus.Text = "Requesting: " + i.Name + " ;UUID: " + i.UUID.ToStringHyphenated();
     AppendLineStatusBox(lbStatus.Text);
     lbStatus.Update();
     transferID = client.Assets.RequestInventoryAsset(i.AssetUUID, i.UUID, LLUUID.Zero, i.OwnerID, i.AssetType, false);
     System.Threading.Thread.Sleep(2000);//Sleep needed to wait for call backs
 }
示例#11
0
        public static uint ItemCRC(InventoryItem iitem)
        {
            uint CRC = 0;

            // IDs
            CRC += iitem.AssetUUID.CRC(); // AssetID
            CRC += iitem.ParentUUID.CRC(); // FolderID
            CRC += iitem.UUID == null ? LLUUID.Zero.CRC() : iitem.UUID.CRC(); // ItemID

            // Permission stuff
            CRC += iitem.CreatorID.CRC(); // CreatorID
            CRC += iitem.OwnerID.CRC(); // OwnerID
            CRC += iitem.GroupID.CRC(); // GroupID

            // CRC += another 4 words which always seem to be zero -- unclear if this is a LLUUID or what
            CRC += (uint)iitem.Permissions.OwnerMask; //owner_mask;      // Either owner_mask or next_owner_mask may need to be
            CRC += (uint)iitem.Permissions.NextOwnerMask; //next_owner_mask; // switched with base_mask -- 2 values go here and in my
            CRC += (uint)iitem.Permissions.EveryoneMask; //everyone_mask;   // study item, the three were identical.
            CRC += (uint)iitem.Permissions.GroupMask; //group_mask;

            // The rest of the CRC fields
            CRC += iitem.Flags; // Flags
            CRC += (uint)iitem.InventoryType; // InvType
            CRC += (uint)iitem.AssetType; // Type 
            CRC += (uint)Helpers.DateTimeToUnixTime(iitem.CreationDate); // CreationDate
            CRC += (uint)iitem.SalePrice;    // SalePrice
            CRC += (uint)((uint)iitem.SaleType * 0x07073096); // SaleType

            return CRC;
        }
示例#12
0
 public bool Equals(InventoryItem o)
 {
     return base.Equals(o as InventoryBase)
         && o.AssetType == AssetType
         && o.AssetUUID == AssetUUID
         && o.CreationDate == CreationDate
         && o.Description == Description
         && o.Flags == Flags
         && o.GroupID == GroupID
         && o.GroupOwned == GroupOwned
         && o.InventoryType == InventoryType
         && o.Permissions.Equals(Permissions)
         && o.SalePrice == SalePrice
         && o.SaleType == SaleType;
 }
示例#13
0
        public void RequestUpdateItem(InventoryItem item)
        {
            List<InventoryItem> items = new List<InventoryItem>(1);
            items.Add(item);

            RequestUpdateItems(items, LLUUID.Random());
        }
示例#14
0
        public LLUUID UpdateTaskInventory(uint objectLocalID, InventoryItem item)
        {
            LLUUID transactionID = LLUUID.Random();

            UpdateTaskInventoryPacket update = new UpdateTaskInventoryPacket();
            update.AgentData.AgentID = _Client.Self.AgentID;
            update.AgentData.SessionID = _Client.Self.SessionID;
            update.UpdateData.Key = 0;
            update.UpdateData.LocalID = objectLocalID;

            update.InventoryData.ItemID = item.UUID;
            update.InventoryData.FolderID = item.ParentUUID;
            update.InventoryData.CreatorID = item.CreatorID;
            update.InventoryData.OwnerID = item.OwnerID;
            update.InventoryData.GroupID = item.GroupID;
            update.InventoryData.BaseMask = (uint)item.Permissions.BaseMask;
            update.InventoryData.OwnerMask = (uint)item.Permissions.OwnerMask;
            update.InventoryData.GroupMask = (uint)item.Permissions.GroupMask;
            update.InventoryData.EveryoneMask = (uint)item.Permissions.EveryoneMask;
            update.InventoryData.NextOwnerMask = (uint)item.Permissions.NextOwnerMask;
            update.InventoryData.GroupOwned = item.GroupOwned;
            update.InventoryData.TransactionID = transactionID;
            update.InventoryData.Type = (sbyte)item.AssetType;
            update.InventoryData.InvType = (sbyte)item.InventoryType;
            update.InventoryData.Flags = item.Flags;
            update.InventoryData.SaleType = (byte)item.SaleType;
            update.InventoryData.SalePrice = item.SalePrice;
            update.InventoryData.Name = Helpers.StringToField(item.Name);
            update.InventoryData.Description = Helpers.StringToField(item.Description);
            update.InventoryData.CreationDate = (int)Helpers.DateTimeToUnixTime(item.CreationDate);
            update.InventoryData.CRC = ItemCRC(item);

            _Client.Network.SendPacket(update);

            return transactionID;
        }
示例#15
0
 public void Inventory_OnItemReceived(InventoryItem item)
 {
     Hashtable message = new Hashtable();
     message.Add("MessageType", "ItemReceived");
     message.Add("Name", item.Name);
     message.Add("FolderID", item.ParentUUID);
     message.Add("UUID", item.UUID);
     message.Add("AssetType", item.AssetType);
     message.Add("AssetUUID", item.AssetUUID);
     message.Add("CreatorID", item.CreatorID);
     message.Add("OwnerID", item.OwnerID);
     message.Add("CreationDate", item.CreationDate);
     message.Add("Description", item.Description);
     message.Add("Flags", item.Flags);
     message.Add("InventoryType", item.InventoryType);
     message.Add("Permissions", item.Permissions);
     enqueue(message);
 }
示例#16
0
 public LLUUID RequestInventoryAsset(InventoryItem item, bool priority)
 {
     return RequestInventoryAsset(item.AssetUUID, item.UUID, LLUUID.Zero, item.OwnerID, item.AssetType, priority);
 }
示例#17
0
 /// <summary>
 /// Detach an item from avatar using an <seealso cref="libsecondlife.InventoryItem"/> object
 /// </summary>
 /// <param name="item">An <seealso cref="libsecondlife.InventoryItem"/> object</param>
 public void Detach(InventoryItem item)
 {
     Detach(item.UUID); 
 }
示例#18
0
 /// <summary>
 /// Attach an item to an avatar at a specific attach point
 /// </summary>
 /// <param name="item">A <seealso cref="libsecondlife.InventoryItem"/> to attach</param>
 /// <param name="attachPoint">the <seealso cref="libsecondlife.AttachmentPoint"/> on the avatar 
 /// to attach the item to</param>
 public void Attach(InventoryItem item, AttachmentPoint attachPoint)
 {
     Attach(item.UUID, item.OwnerID, item.Name, item.Description, item.Permissions, item.Flags, 
         attachPoint);
 }
示例#19
0
 //Seperate thread
 private void Inventory_OnItemReceived(InventoryItem item)
 {
     BeginInvoke(
         new InventoryManager.ItemReceivedCallback(ReceivedInventoryItem),
         new object[] { item });
 }
示例#20
0
 //UI thread
 private void ReceivedInventoryItem(InventoryItem item)
 {
     ProcessIncomingObject(item);
 }
示例#21
0
文件: Form1.cs 项目: hamalawy/slmiv
        /// <summary>
        /// Occurs when user Right-Clicks an item and chooses Download
        /// Connects to SL to download a single InventoryItem
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void downloadToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                if (!String.IsNullOrEmpty((String)treeView1.SelectedNode.Tag))
                {
                    if ((((String)treeView1.SelectedNode.Tag) == "notecard") ||
                        (((String)treeView1.SelectedNode.Tag) == "lsl") ||
                        (((String)treeView1.SelectedNode.Tag) == "snapshot") ||
                        (((String)treeView1.SelectedNode.Tag) == "texture") ||
                        (((String)treeView1.SelectedNode.Tag) == "rootcategory"))
                    {
                        //Get the SLMIV object for this item
                        Item SLMIVItem;
                        InventoryNotecard notecard;
                        string ObjectsKey = treeView1.SelectedNode.Name;
                        int ivalue = 0;
                        MIUtils.OD_treeindex.TryGetValue(ObjectsKey, out ivalue);
                        MIUtils.INV_TYPE objtype = new MIUtils.INV_TYPE();
                        Object objectinfo = new Object();
                        if (ivalue != -1)
                        {
                            objectinfo = MIUtils.GetMyInventoryObject(ivalue, out objtype);
                            if (objtype == MIUtils.INV_TYPE.ITEM)
                            {
                                SLMIVItem = ((Item)objectinfo);
                                Console.WriteLine("[SLMIV]: Retreiving " + treeView1.SelectedNode.Text + ", " + treeView1.SelectedNode.Name);
                                //Check to make sure currently online
                                if (client.Network.Connected)
                                {
                                    LLUUID uuid = new LLUUID();
                                    uuid = LLUUID.Parse(treeView1.SelectedNode.Name);
                                    InventoryItem item = new InventoryItem(uuid);
                                    if (libsecItemDict.TryGetValue(uuid, out item))
                                    {
                                        if ((item.AssetType == AssetType.Notecard) || (item.AssetType == AssetType.LSLText))
                                        {
                                            frmNotecardEditor notecEdfrm = new frmNotecardEditor(item, this.client, this.netcom, imageListTreeView);
                                            notecEdfrm.ItemTreeNode = treeView1.SelectedNode;//Pass the TreeNode so it has its fullpath
                                            notecEdfrm.Show();
                                        }
                                        else if (item.AssetType == AssetType.Texture)
                                        {
                                            //Show 
                                            ImageViewerForm iviewer = new ImageViewerForm(item, client, netcom, imageListTreeView, imageCache);
                                            iviewer.ItemTreeNode = treeView1.SelectedNode;//Pass the TreeNode so it has its fullpath
                                            iviewer.Show();
                                        }
                                    }
                                }
                                else
                                {
                                    MessageBox.Show("Can not download because you are not currently connected to the online grid.", "Can Not Download", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                }
                            }
                        }
                        else
                        {
                            //Exception ?? Really? Please tell me why
                            MessageBox.Show("ERROR: Can not download because the selected item in the inventory tree [" + treeView1.SelectedNode.Text + "] is not found in MIUtils.OD_treeindex.", "Can Not Download", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    else
                    {
                        MessageBox.Show("Can not download because the selected item in the inventory tree [" + treeView1.SelectedNode.Text + "] is not a Notecard or LSL script.", "Can Not Download", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
            catch (Exception)
            {

            }
        }
示例#22
0
文件: Form1.cs 项目: hamalawy/slmiv
        /// <summary>
        /// Searches treeLookup for InventoryItem.UUID and returns its <LLUUID, TreeNode> object
        /// if it is not found, it adds <UUID string, item.Name> to incoming TreeNode node
        /// then node to treeLookup
        /// </summary>
        /// <param name="item">InventoryItem</param>
        /// <param name="node">TreeNode</param>
        /// <returns>TreeNode with added <UUID string, item.Name> item</returns>
        private TreeNode AddTreeItem(InventoryItem item, TreeNode node)
        {
            if (treeLookup.ContainsKey(item.UUID))
                return treeLookup[item.UUID];

            TreeNode itemNode = node.Nodes.Add(item.UUID.ToString(), item.Name);
            itemNode.Tag = item;

            switch (item.InventoryType)
            {
                case InventoryType.Wearable:
                    itemNode.ImageKey = "Gear"; //TODO: use "clothing" key instead
                    break;

                case InventoryType.Notecard:
                    itemNode.ImageKey = "Notecard";
                    break;

                case InventoryType.LSL:
                    itemNode.ImageKey = "Script";
                    break;

                case InventoryType.Texture:
                    itemNode.ImageKey = "Gear"; //TODO: use "image" key instead
                    break;

                default:
                    itemNode.ImageKey = "Gear";
                    break;
            }

            treeLookup.Add(item.UUID, itemNode);
            return itemNode;
        }
示例#23
0
 public QueuedDownloadInfo(string file, InventoryItem iitem)
 {
     FileName = file;
     IItem = iitem;
     WhenRequested = DateTime.Now;
     IsRequested = false;
 }