Esempio n. 1
0
        internal void AddToFilter(Filterdata filterdata)
        {
            if (filterdata.FilterItems.Length == 0)
            {
                // DebugLog.Write("AddToFilter called with 0 items to add. ignoring...");
                return;
            }

            var inventory = (MyInventory)MyCargoContainer.GetInventory();

            for (int i = 0; i < filterdata.FilterItems.Length; i++)
            {
                if (filterdata.FilterItems[i].Type == FilterType.FILTER_TYPE)
                {
                    MyObjectBuilderType type;
                    if (MyObjectBuilderType.TryParse(filterdata.FilterItems[i].ParseItem, out type) == true)
                    {
                        if (!inventory.Constraint.ConstrainedTypes.Contains(type))
                        {
                            inventory.Constraint.AddObjectBuilderType(type);
                        }
                    }
                }
                if (filterdata.FilterItems[i].Type == FilterType.FILTER_ITEM)
                {
                    MyDefinitionId Id;
                    if (MyDefinitionId.TryParse(filterdata.FilterItems[i].ParseItem, out Id) == true)
                    {
                        if (!inventory.Constraint.ConstrainedIds.Contains(Id))
                        {
                            inventory.Constraint.Add(Id);
                        }
                    }
                }
                if (!FilterController.FilterList.Contains(filterdata.FilterItems[i]))
                {
                    FilterController.FilterList.Add(filterdata.FilterItems[i]);
                }
            }
            inventory.Constraint.Icon = null;
            SaveData();
        }