示例#1
0
 public void AddToFurnitureSet(FurnitureDesign design, FurnitureSet furnitureSet)
 {
     foreach (FurnitureDesign item in design.ListChain())
     {
         item.FurnitureSet = furnitureSet;
     }
 }
示例#2
0
 public void DeleteFurnitureSet(FurnitureSet furnitureSet)
 {
     foreach (FurnitureDesign furnitureSetDesign in GetFurnitureSetDesigns(furnitureSet))
     {
         furnitureSetDesign.FurnitureSet = null;
     }
     m_furnitureSets.Remove(furnitureSet);
 }
示例#3
0
        public void MoveFurnitureSet(int move)
        {
            FurnitureSet furnitureSet = m_furnitureSetList.SelectedItem as FurnitureSet;

            if (furnitureSet != null)
            {
                SubsystemFurnitureBlockBehavior.MoveFurnitureSet(furnitureSet, move);
                Invalidate();
            }
        }
示例#4
0
        public void MoveFurnitureSet(FurnitureSet furnitureSet, int move)
        {
            int num = m_furnitureSets.IndexOf(furnitureSet);

            if (num >= 0)
            {
                m_furnitureSets.RemoveAt(num);
                m_furnitureSets.Insert(MathUtils.Clamp(num + move, 0, m_furnitureSets.Count), furnitureSet);
            }
        }
示例#5
0
        public FurnitureSetItemWidget(FurnitureInventoryPanel furnitureInventoryWidget, FurnitureSet furnitureSet)
        {
            m_furnitureInventoryPanel = furnitureInventoryWidget;
            m_furnitureSet            = furnitureSet;
            XElement node = ContentManager.Get <XElement>("Widgets/FurnitureSetItemWidget");

            LoadContents(this, node);
            LabelWidget labelWidget  = Children.Find <LabelWidget>("FurnitureSetItem.Name");
            LabelWidget labelWidget2 = Children.Find <LabelWidget>("FurnitureSetItem.DesignsCount");

            labelWidget.Text  = ((furnitureSet == null) ? "Uncategorized" : furnitureSet.Name);
            labelWidget2.Text = $"{CountFurnitureDesigns()} design(s)";
        }
示例#6
0
        public void DeleteFurnitureSet()
        {
            FurnitureSet furnitureSet = m_furnitureSetList.SelectedItem as FurnitureSet;

            if (furnitureSet != null)
            {
                int num = SubsystemFurnitureBlockBehavior.FurnitureSets.IndexOf(furnitureSet);
                SubsystemFurnitureBlockBehavior.DeleteFurnitureSet(furnitureSet);
                SubsystemFurnitureBlockBehavior.GarbageCollectDesigns();
                ComponentFurnitureInventory.FurnitureSet = ((num > 0) ? SubsystemFurnitureBlockBehavior.FurnitureSets[num - 1] : null);
                Invalidate();
            }
        }
示例#7
0
        public void NewFurnitureSet()
        {
            ComponentPlayer componentPlayer = ComponentFurnitureInventory.Entity.FindComponent <ComponentPlayer>(throwOnError: true);

            base.Input.EnterText(componentPlayer.GuiWidget, LanguageControl.Get(fName, 15), LanguageControl.Get(fName, 16), 20, delegate(string s)
            {
                if (s != null)
                {
                    FurnitureSet furnitureSet = SubsystemFurnitureBlockBehavior.NewFurnitureSet(s, null);
                    ComponentFurnitureInventory.FurnitureSet = furnitureSet;
                    Populate();
                    m_furnitureSetList.ScrollToItem(furnitureSet);
                }
            });
        }
示例#8
0
        public void RenameFurnitureSet()
        {
            FurnitureSet furnitureSet = m_furnitureSetList.SelectedItem as FurnitureSet;

            if (furnitureSet != null)
            {
                ComponentPlayer componentPlayer = ComponentFurnitureInventory.Entity.FindComponent <ComponentPlayer>(throwOnError: true);
                base.Input.EnterText(componentPlayer.GuiWidget, LanguageControl.Get(fName, 17), furnitureSet.Name, 20, delegate(string s)
                {
                    if (s != null)
                    {
                        furnitureSet.Name = s;
                        Invalidate();
                    }
                });
            }
        }
示例#9
0
        public FurnitureSet NewFurnitureSet(string name, string importedFrom)
        {
            if (name.Length > MaxFurnitureSetNameLength)
            {
                name = name.Substring(0, MaxFurnitureSetNameLength);
            }
            int num = 0;

            while (FurnitureSets.FirstOrDefault((FurnitureSet fs) => fs.Name == name) != null)
            {
                num++;
                name = ((num > 0) ? (name + num.ToString(CultureInfo.InvariantCulture)) : name);
            }
            FurnitureSet furnitureSet = new FurnitureSet
            {
                Name         = name,
                ImportedFrom = importedFrom
            };

            m_furnitureSets.Add(furnitureSet);
            return(furnitureSet);
        }
示例#10
0
        public override void Load(ValuesDictionary valuesDictionary)
        {
            base.Load(valuesDictionary);
            m_subsystemAudio          = base.Project.FindSubsystem <SubsystemAudio>(throwOnError: true);
            m_subsystemSoundMaterials = base.Project.FindSubsystem <SubsystemSoundMaterials>(throwOnError: true);
            m_subsystemItemsScanner   = base.Project.FindSubsystem <SubsystemItemsScanner>(throwOnError: true);
            m_subsystemGameInfo       = base.Project.FindSubsystem <SubsystemGameInfo>(throwOnError: true);
            m_subsystemPickables      = base.Project.FindSubsystem <SubsystemPickables>(throwOnError: true);
            m_subsystemParticles      = base.Project.FindSubsystem <SubsystemParticles>(throwOnError: true);
            ValuesDictionary value = valuesDictionary.GetValue <ValuesDictionary>("FurnitureDesigns");

            foreach (FurnitureDesign item in LoadFurnitureDesigns(base.SubsystemTerrain, value))
            {
                m_furnitureDesigns[item.Index] = item;
            }
            foreach (ValuesDictionary item2 in valuesDictionary.GetValue <ValuesDictionary>("FurnitureSets").Values.Where((object v) => v is ValuesDictionary))
            {
                string       value2       = item2.GetValue <string>("Name");
                string       value3       = item2.GetValue <string>("ImportedFrom", null);
                string       value4       = item2.GetValue <string>("Indices");
                int[]        array        = HumanReadableConverter.ValuesListFromString <int>(';', value4);
                FurnitureSet furnitureSet = new FurnitureSet
                {
                    Name         = value2,
                    ImportedFrom = value3
                };
                m_furnitureSets.Add(furnitureSet);
                int[] array2 = array;
                foreach (int num in array2)
                {
                    if (num >= 0 && num < m_furnitureDesigns.Length && m_furnitureDesigns[num] != null)
                    {
                        m_furnitureDesigns[num].FurnitureSet = furnitureSet;
                    }
                }
            }
            m_subsystemItemsScanner.ItemsScanned += GarbageCollectDesigns;
        }
示例#11
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));
             }
         }));
     }
 }
示例#12
0
 public IEnumerable <FurnitureDesign> GetFurnitureSetDesigns(FurnitureSet furnitureSet)
 {
     return(m_furnitureDesigns.Where((FurnitureDesign fd) => fd != null && fd.FurnitureSet == furnitureSet));
 }