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); } } } }
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); }