Пример #1
0
        public RecipaediaScreen()
        {
            XElement node = ContentManager.Get <XElement>("Screens/RecipaediaScreen");

            LoadContents(this, node);
            m_blocksList         = Children.Find <ListPanelWidget>("BlocksList");
            m_categoryLabel      = Children.Find <LabelWidget>("Category");
            m_prevCategoryButton = Children.Find <ButtonWidget>("PreviousCategory");
            m_nextCategoryButton = Children.Find <ButtonWidget>("NextCategory");
            m_detailsButton      = Children.Find <ButtonWidget>("DetailsButton");
            m_recipesButton      = Children.Find <ButtonWidget>("RecipesButton");
            m_categories.Add(null);
            m_categories.AddRange(BlocksManager.Categories);
            m_blocksList.ItemWidgetFactory = delegate(object item)
            {
                int             value = (int)item;
                int             num   = Terrain.ExtractContents(value);
                Block           block = BlocksManager.Blocks[num];
                XElement        node2 = ContentManager.Get <XElement>("Widgets/RecipaediaItem");
                ContainerWidget obj   = (ContainerWidget)Widget.LoadWidget(this, node2, null);
                obj.Children.Find <BlockIconWidget>("RecipaediaItem.Icon").Value = value;
                obj.Children.Find <LabelWidget>("RecipaediaItem.Text").Text      = block.GetDisplayName(null, value);
                obj.Children.Find <LabelWidget>("RecipaediaItem.Details").Text   = block.GetDescription(value);
                return(obj);
            };
            m_blocksList.ItemClicked += delegate(object item)
            {
                if (m_blocksList.SelectedItem == item && item is int)
                {
                    ScreensManager.SwitchScreen("RecipaediaDescription", item, m_blocksList.Items.Cast <int>().ToList());
                }
            };
        }
Пример #2
0
 public void UpdateBlockProperties()
 {
     if (m_index >= 0 && m_index < m_valuesList.Count)
     {
         int   value = m_valuesList[m_index];
         int   num   = Terrain.ExtractContents(value);
         Block block = BlocksManager.Blocks[num];
         m_blockIconWidget.Value      = value;
         m_nameWidget.Text            = block.GetDisplayName(null, value);
         m_descriptionWidget.Text     = block.GetDescription(value);
         m_propertyNames1Widget.Text  = string.Empty;
         m_propertyValues1Widget.Text = string.Empty;
         m_propertyNames2Widget.Text  = string.Empty;
         m_propertyValues2Widget.Text = string.Empty;
         Dictionary <string, string> blockProperties = GetBlockProperties(value);
         int num2 = 0;
         foreach (KeyValuePair <string, string> item in blockProperties)
         {
             if (num2 < blockProperties.Count - blockProperties.Count / 2)
             {
                 LabelWidget propertyNames1Widget = m_propertyNames1Widget;
                 propertyNames1Widget.Text = propertyNames1Widget.Text + item.Key + ":\n";
                 LabelWidget propertyValues1Widget = m_propertyValues1Widget;
                 propertyValues1Widget.Text = propertyValues1Widget.Text + item.Value + "\n";
             }
             else
             {
                 LabelWidget propertyNames2Widget = m_propertyNames2Widget;
                 propertyNames2Widget.Text = propertyNames2Widget.Text + item.Key + ":\n";
                 LabelWidget propertyValues2Widget = m_propertyValues2Widget;
                 propertyValues2Widget.Text = propertyValues2Widget.Text + item.Value + "\n";
             }
             num2++;
         }
     }
 }