Пример #1
0
 public void AddToFurnitureSet(FurnitureDesign design, FurnitureSet furnitureSet)
 {
     foreach (FurnitureDesign item in design.ListChain())
     {
         item.FurnitureSet = furnitureSet;
     }
 }
 public void FillSlots()
 {
     m_subsystemFurnitureBlockBehavior.GarbageCollectDesigns();
     m_slots.Clear();
     for (int i = 0; i < maxDesign; i++)
     {
         FurnitureDesign design = m_subsystemFurnitureBlockBehavior.GetDesign(i);
         if (design != null)
         {
             int num = (from f in design.ListChain()
                        select f.Index).Min();
             if (design.Index == num)
             {
                 int data = FurnitureBlock.SetDesignIndex(0, i, design.ShadowStrengthFactor, design.IsLightEmitter);
                 int item = Terrain.MakeBlockValue(227, 0, data);
                 m_slots.Add(item);
             }
         }
     }
 }
Пример #3
0
        public FurnitureDesign TryAddDesignChain(FurnitureDesign design, bool garbageCollectIfNeeded)
        {
            FurnitureDesign furnitureDesign = FindMatchingDesignChain(design);

            if (furnitureDesign != null)
            {
                return(furnitureDesign);
            }
            List <FurnitureDesign> list = design.ListChain();

            if (garbageCollectIfNeeded && m_furnitureDesigns.Count((FurnitureDesign d) => d == null) < list.Count)
            {
                GarbageCollectDesigns();
            }
            if (m_furnitureDesigns.Count((FurnitureDesign d) => d == null) < list.Count)
            {
                return(null);
            }
            int num = 0;

            for (int i = 0; i < m_furnitureDesigns.Length; i++)
            {
                if (num >= list.Count)
                {
                    break;
                }
                if (m_furnitureDesigns[i] == null)
                {
                    AddDesign(i, list[num]);
                    num++;
                }
            }
            if (num != list.Count)
            {
                throw new InvalidOperationException("public error.");
            }
            return(design);
        }