Exemplo n.º 1
0
        private void RefreshBlueprintGridColors()
        {
            m_selectedAssembler.InventoryOwnersDirty = true;
            for (int i = 0; i < m_blueprintsGrid.RowsCount; ++i)
            {
                for (int j = 0; j < m_blueprintsGrid.ColumnsCount; ++j)
                {
                    var item = m_blueprintsGrid.TryGetItemAt(i, j);
                    if (item == null)
                    {
                        continue;
                    }
                    var blueprint = item.UserData as MyBlueprintDefinitionBase;
                    if (blueprint == null)
                    {
                        continue;
                    }
                    item.IconColorMask = Vector4.One;
                    if (m_selectedAssembler == null /*|| CurrentAssemblerMode == AssemblerMode.Disassembling*/)
                    {
                        continue;
                    }

                    AddComponentPrerequisites(blueprint, 1, m_requiredCountCache);

                    if (CurrentAssemblerMode == AssemblerMode.Assembling)
                    {
                        foreach (var entry in m_requiredCountCache)
                        {
                            if (!m_selectedAssembler.CheckConveyorResources(entry.Value, entry.Key))
                            {
                                item.IconColorMask = ERROR_ICON_COLOR_MASK;
                                break;
                            }
                        }
                    }
                    else if (CurrentAssemblerMode == AssemblerMode.Disassembling)
                    {
                        if (!m_selectedAssembler.CheckConveyorResources(null, blueprint.Results[0].Id))
                        {
                            item.IconColorMask = ERROR_ICON_COLOR_MASK;
                        }
                    }
                    m_requiredCountCache.Clear();
                }
            }
        }