Beispiel #1
0
        /// <summary>
        /// Default constructor.
        /// </summary>
        /// <param name="itemBinder">An item to show</param>
        /// <param name="viewPanel">Panel that holds the image of the item</param>
        /// <param name="textBoxWidth">Width of the textBox</param>
        /// <param name="labeledControlWidth">Width of the labeled control</param>
        public InventorySlotItem(ItemBinder itemBinder, ViewPanel viewPanel, int textBoxWidth, int labeledControlWidth)
            : base(itemBinder, textBoxWidth, labeledControlWidth)
        {
            this.viewPanel = viewPanel;

            Size            = new Size(956, 268);
            CellBorderStyle = TableLayoutPanelCellBorderStyle.Inset;

            itemCore      = new TableLayoutPanel();
            itemCore.Size = new Size(262, 248);

            CreateSelector(ItemData.GetNameList());
            selector.DropDownStyle    = ComboBoxStyle.DropDown;
            selector.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
            itemCore.Controls.Add(selector, 0, 0);

            imageLabel      = new Label();
            imageLabel.Size = new Size(IconData.ICON_WIDTH, IconData.ICON_HEIGHT);
            SetImage();
            itemCore.Controls.Add(imageLabel, 0, 1);

            basicInfo        = GenerateBasicInfo();
            basicInfo.Anchor = AnchorStyles.Top;
            itemCore.Controls.Add(basicInfo, 0, 2);

            Controls.Add(itemCore, 0, 0);

            parts       = GenerateParts();
            attachments = GenerateAttachments();

            if (parts != null || attachments != null)
            {
                scrollPanel      = new ScrollPanel();
                scrollPanel.Size = new Size(676, 248);

                if (parts != null)
                {
                    scrollPanel.Controls.Add(parts, 0, 0);
                }

                if (attachments != null)
                {
                    scrollPanel.Controls.Add(attachments, 1, 0);
                }

                Controls.Add(scrollPanel, 1, 0);
            }
        }
Beispiel #2
0
        /// <summary>
        /// Default constructor.
        /// </summary>
        /// <param name="playerDataFile">PlayerDataFile which inventory is to be used</param>
        public InventoryTab(PlayerDataFile playerDataFile)
        {
            Text = "Inventory";

            this.playerDataFile = playerDataFile;

            SetUpInventory(playerDataFile.bag);
            SetUpInventory(playerDataFile.inventory);

            itemBinders = new ItemBinder[40];
            itemSlots   = new InventorySlotItem[40];
            viewPanels  = new ViewPanel[40];

            for (int i = 0; i < 32; i++)
            {
                itemBinders[i] = new ItemBinder(playerDataFile.bag[i]);
                viewPanels[i]  = new ViewPanel(i, this);
                itemSlots[i]   = new InventorySlotItem(itemBinders[i], viewPanels[i], 140, 250);
            }

            for (int i = 32; i < 40; i++)
            {
                itemBinders[i] = new ItemBinder(playerDataFile.inventory[i - 32]);
                viewPanels[i]  = new ViewPanel(i, this);
                itemSlots[i]   = new InventorySlotItem(itemBinders[i], viewPanels[i], 140, 250);
            }

            TableLayoutPanel basicPanel = new TableLayoutPanel()
            {
                Dock     = DockStyle.Fill,
                AutoSize = true
            };

            itemView             = new TableLayoutPanel();
            itemView.Dock        = DockStyle.Top;
            itemView.AutoSize    = true;
            itemView.MinimumSize = new Size(0, 260);

            activeIndex = 0;
            viewPanels[activeIndex].BackColor = COLOR_SELECT;
            itemView.Controls.Add(itemSlots[activeIndex]);

            basicPanel.Controls.Add(itemView);

            TableLayoutPanel inventoryDisplay = new TableLayoutPanel()
            {
                CellBorderStyle = TableLayoutPanelCellBorderStyle.Outset,
                Anchor          = AnchorStyles.Bottom,
                Size            = new Size(946, 412)
            };

            inventoryDisplay.MouseLeave += (sender, e) => {
                itemView.Controls.RemoveAt(0);
                itemView.Controls.Add(itemSlots[activeIndex]);
                itemSlots[activeIndex].OverrideBug();
            };

            for (int i = 0; i < 40; i++)
            {
                inventoryDisplay.Controls.Add(viewPanels[i], i % 8, i / 8);
            }

            basicPanel.Controls.Add(inventoryDisplay);

            Controls.Add(basicPanel);
        }