예제 #1
0
        private void OnItemsReceived(IList <Facepunch.Steamworks.Workshop.Item> itemDetails)
        {
            installedItemList.ClearChildren();
            availableItemList.ClearChildren();
            foreach (var item in itemDetails)
            {
                GUIListBox listBox   = item.Installed ? installedItemList : availableItemList;
                var        itemFrame = new GUIFrame(new RectTransform(new Vector2(1.0f, 0.1f), listBox.Content.RectTransform, minSize: new Point(0, 80)),
                                                    style: "ListBoxElement")
                {
                    UserData = item
                };
                new GUITextBlock(new RectTransform(new Vector2(0.75f, 0.25f), itemFrame.RectTransform), item.Title);
                new GUITextBlock(new RectTransform(new Vector2(0.75f, 0.75f), itemFrame.RectTransform, Anchor.BottomLeft), item.Description,
                                 wrap: true, font: GUI.SmallFont);

                if (item.Installed)
                {
                    var enabledTickBox = new GUITickBox(new RectTransform(new Vector2(0.25f, 0.5f), itemFrame.RectTransform, Anchor.CenterRight), "Enabled")
                    {
                        UserData   = item,
                        OnSelected = ToggleItemEnabled
                    };

                    try
                    {
                        enabledTickBox.Selected = SteamManager.CheckWorkshopItemEnabled(item);
                    }
                    catch (Exception e)
                    {
                        new GUIMessageBox("Error", e.Message);
                        enabledTickBox.Enabled  = false;
                        itemFrame.Color         = Color.Red;
                        itemFrame.HoverColor    = Color.Red;
                        itemFrame.SelectedColor = Color.Red;
                        itemFrame.GetChild <GUITextBlock>().TextColor = Color.Red;
                    }
                }
                else if (item.Downloading)
                {
                    new GUITextBlock(new RectTransform(new Vector2(0.25f, 0.5f), itemFrame.RectTransform, Anchor.CenterRight), "Downloading");
                }
                else
                {
                    var downloadBtn = new GUIButton(new RectTransform(new Vector2(0.2f, 0.5f), itemFrame.RectTransform, Anchor.CenterRight),
                                                    TextManager.Get("DownloadButton"))
                    {
                        UserData  = item,
                        OnClicked = DownloadItem
                    };
                }
            }
        }