public ManageContentScreen()
    {
        XElement node = ContentManager.Get <XElement>("Screens/ManageContentScreen");

        LoadContents(this, node);
        m_contentList                   = Children.Find <ListPanelWidget>("ContentList");
        m_deleteButton                  = Children.Find <ButtonWidget>("DeleteButton");
        m_uploadButton                  = Children.Find <ButtonWidget>("UploadButton");
        m_changeFilterButton            = Children.Find <ButtonWidget>("ChangeFilter");
        m_filterLabel                   = Children.Find <LabelWidget>("Filter");
        m_contentList.ItemWidgetFactory = delegate(object obj)
        {
            ListItem        listItem = (ListItem)obj;
            ContainerWidget containerWidget;
            if (listItem.Type == ExternalContentType.BlocksTexture)
            {
                XElement node2 = ContentManager.Get <XElement>("Widgets/BlocksTextureItem");
                containerWidget = (ContainerWidget)Widget.LoadWidget(this, node2, null);
                RectangleWidget rectangleWidget = containerWidget.Children.Find <RectangleWidget>("BlocksTextureItem.Icon");
                LabelWidget     labelWidget     = containerWidget.Children.Find <LabelWidget>("BlocksTextureItem.Text");
                LabelWidget     labelWidget2    = containerWidget.Children.Find <LabelWidget>("BlocksTextureItem.Details");
                Texture2D       texture         = m_blocksTexturesCache.GetTexture(listItem.Name);
                BlocksTexturesManager.GetCreationDate(listItem.Name);
                rectangleWidget.Subtexture = new Subtexture(texture, Vector2.Zero, Vector2.One);
                labelWidget.Text           = listItem.DisplayName;
                labelWidget2.Text          = string.Format(LanguageControl.Get(fName, 1), texture.Width, texture.Height);
                if (!listItem.IsBuiltIn)
                {
                    labelWidget2.Text += $" | {listItem.CreationTime.ToLocalTime():dd MMM yyyy HH:mm}";
                    if (listItem.UseCount > 0)
                    {
                        labelWidget2.Text += string.Format(LanguageControl.Get(fName, 2), listItem.UseCount);
                    }
                }
            }
            else
            {
                if (listItem.Type != ExternalContentType.CharacterSkin)
                {
                    if (listItem.Type == ExternalContentType.FurniturePack)
                    {
                        XElement node3 = ContentManager.Get <XElement>("Widgets/FurniturePackItem");
                        containerWidget = (ContainerWidget)Widget.LoadWidget(this, node3, null);
                        LabelWidget labelWidget3 = containerWidget.Children.Find <LabelWidget>("FurniturePackItem.Text");
                        LabelWidget labelWidget4 = containerWidget.Children.Find <LabelWidget>("FurniturePackItem.Details");
                        labelWidget3.Text = listItem.DisplayName;
                        try
                        {
                            List <FurnitureDesign> designs = FurniturePacksManager.LoadFurniturePack(null, listItem.Name);
                            labelWidget4.Text = string.Format(LanguageControl.Get(fName, 3), FurnitureDesign.ListChains(designs).Count);
                            if (string.IsNullOrEmpty(listItem.Name))
                            {
                                return(containerWidget);
                            }
                            labelWidget4.Text += $" | {listItem.CreationTime.ToLocalTime():dd MMM yyyy HH:mm}";
                            return(containerWidget);
                        }
                        catch (Exception ex)
                        {
                            labelWidget4.Text = labelWidget4.Text + LanguageControl.Get("Usual", "error") + ex.Message;
                            return(containerWidget);
                        }
                    }
                    throw new InvalidOperationException(LanguageControl.Get(fName, 10));
                }
                XElement node4 = ContentManager.Get <XElement>("Widgets/CharacterSkinItem");
                containerWidget = (ContainerWidget)Widget.LoadWidget(this, node4, null);
                PlayerModelWidget playerModelWidget = containerWidget.Children.Find <PlayerModelWidget>("CharacterSkinItem.Model");
                LabelWidget       labelWidget5      = containerWidget.Children.Find <LabelWidget>("CharacterSkinItem.Text");
                LabelWidget       labelWidget6      = containerWidget.Children.Find <LabelWidget>("CharacterSkinItem.Details");
                Texture2D         texture2          = m_characterSkinsCache.GetTexture(listItem.Name);
                playerModelWidget.PlayerClass          = PlayerClass.Male;
                playerModelWidget.CharacterSkinTexture = texture2;
                labelWidget5.Text = listItem.DisplayName;
                labelWidget6.Text = string.Format(LanguageControl.Get(fName, 4), texture2.Width, texture2.Height);
                if (!listItem.IsBuiltIn)
                {
                    labelWidget6.Text += $" | {listItem.CreationTime.ToLocalTime():dd MMM yyyy HH:mm}";
                    if (listItem.UseCount > 0)
                    {
                        labelWidget6.Text += string.Format(LanguageControl.Get(fName, 2), listItem.UseCount);
                    }
                }
            }
            return(containerWidget);
        };
    }
Beispiel #2
0
 public void ImportFurnitureSet(SubsystemTerrain subsystemTerrain)
 {
     FurniturePacksManager.UpdateFurniturePacksList();
     if (FurniturePacksManager.FurniturePackNames.Count() == 0)
     {
         DialogsManager.ShowDialog(m_componentPlayer.GuiWidget, new MessageDialog(LanguageControl.Get(fName, 18), LanguageControl.Get(fName, 19), LanguageControl.Get("Usual", "ok"), null, null));
     }
     else
     {
         DialogsManager.ShowDialog(m_componentPlayer.GuiWidget, new ListSelectionDialog(LanguageControl.Get(fName, 20), FurniturePacksManager.FurniturePackNames, 64f, (object s) => FurniturePacksManager.GetDisplayName((string)s), delegate(object s)
         {
             try
             {
                 int num     = 0;
                 int num2    = 0;
                 string text = (string)s;
                 List <List <FurnitureDesign> > list = FurnitureDesign.ListChains(FurniturePacksManager.LoadFurniturePack(subsystemTerrain, text));
                 List <FurnitureDesign> list2        = new List <FurnitureDesign>();
                 SubsystemFurnitureBlockBehavior.GarbageCollectDesigns();
                 foreach (List <FurnitureDesign> item in list)
                 {
                     FurnitureDesign furnitureDesign = SubsystemFurnitureBlockBehavior.TryAddDesignChain(item[0], garbageCollectIfNeeded: false);
                     if (furnitureDesign == item[0])
                     {
                         list2.Add(furnitureDesign);
                     }
                     else if (furnitureDesign == null)
                     {
                         num2++;
                     }
                     else
                     {
                         num++;
                     }
                 }
                 if (list2.Count > 0)
                 {
                     FurnitureSet furnitureSet = SubsystemFurnitureBlockBehavior.NewFurnitureSet(FurniturePacksManager.GetDisplayName(text), text);
                     foreach (FurnitureDesign item2 in list2)
                     {
                         SubsystemFurnitureBlockBehavior.AddToFurnitureSet(item2, furnitureSet);
                     }
                     ComponentFurnitureInventory.FurnitureSet = furnitureSet;
                 }
                 Invalidate();
                 string text2 = string.Format(LanguageControl.Get(fName, 1), list2.Count);
                 if (num > 0)
                 {
                     text2 += string.Format(LanguageControl.Get(fName, 2), num);
                 }
                 if (num2 > 0)
                 {
                     text2 += string.Format(LanguageControl.Get(fName, 3), num2, 65535);
                 }
                 DialogsManager.ShowDialog(m_componentPlayer.GuiWidget, new MessageDialog(LanguageControl.Get(fName, 4), text2.Trim(), LanguageControl.Get("Usual", "ok"), null, null));
             }
             catch (Exception ex)
             {
                 DialogsManager.ShowDialog(m_componentPlayer.GuiWidget, new MessageDialog(LanguageControl.Get(fName, 5), ex.Message, LanguageControl.Get("Usual", "ok"), null, null));
             }
         }));
     }
 }