public void ResolveReferences()
        {
            for (int i = 0; i < DefDatabase <SpecialThingFilterDef> .AllDefsListForReading.Count; i++)
            {
                SpecialThingFilterDef specialThingFilterDef = DefDatabase <SpecialThingFilterDef> .AllDefsListForReading[i];
                if (!specialThingFilterDef.allowedByDefault)
                {
                    this.SetAllow(specialThingFilterDef, false);
                }
            }
            if (this.thingDefs != null)
            {
                for (int j = 0; j < this.thingDefs.Count; j++)
                {
                    if (this.thingDefs[j] != null)
                    {
                        this.SetAllow(this.thingDefs[j], true);
                    }
                    else
                    {
                        Log.Error("ThingFilter could not find thing def named " + this.thingDefs[j]);
                    }
                }
            }
            if (this.categories != null)
            {
                for (int k = 0; k < this.categories.Count; k++)
                {
                    ThingCategoryDef named = DefDatabase <ThingCategoryDef> .GetNamed(this.categories[k], true);

                    if (named != null)
                    {
                        this.SetAllow(named, true, null, null);
                    }
                }
            }
            if (this.exceptedThingDefs != null)
            {
                for (int l = 0; l < this.exceptedThingDefs.Count; l++)
                {
                    if (this.exceptedThingDefs[l] != null)
                    {
                        this.SetAllow(this.exceptedThingDefs[l], false);
                    }
                    else
                    {
                        Log.Error("ThingFilter could not find excepted thing def named " + this.exceptedThingDefs[l]);
                    }
                }
            }
            if (this.exceptedCategories != null)
            {
                for (int m = 0; m < this.exceptedCategories.Count; m++)
                {
                    ThingCategoryDef named2 = DefDatabase <ThingCategoryDef> .GetNamed(this.exceptedCategories[m], true);

                    if (named2 != null)
                    {
                        this.SetAllow(named2, false, null, null);
                    }
                }
            }
            if (this.specialFiltersToAllow != null)
            {
                for (int n = 0; n < this.specialFiltersToAllow.Count; n++)
                {
                    this.SetAllow(SpecialThingFilterDef.Named(this.specialFiltersToAllow[n]), true);
                }
            }
            if (this.specialFiltersToDisallow != null)
            {
                for (int num = 0; num < this.specialFiltersToDisallow.Count; num++)
                {
                    this.SetAllow(SpecialThingFilterDef.Named(this.specialFiltersToDisallow[num]), false);
                }
            }
            if (this.stuffCategoriesToAllow != null)
            {
                for (int num2 = 0; num2 < this.stuffCategoriesToAllow.Count; num2++)
                {
                    this.SetAllow(this.stuffCategoriesToAllow[num2], true);
                }
            }
            if (this.allowAllWhoCanMake != null)
            {
                for (int num3 = 0; num3 < this.allowAllWhoCanMake.Count; num3++)
                {
                    this.SetAllowAllWhoCanMake(this.allowAllWhoCanMake[num3]);
                }
            }
            this.RecalculateDisplayRootCategory();
        }
        public void ResolveReferences()
        {
            for (int i = 0; i < DefDatabase <SpecialThingFilterDef> .AllDefsListForReading.Count; i++)
            {
                SpecialThingFilterDef specialThingFilterDef = DefDatabase <SpecialThingFilterDef> .AllDefsListForReading[i];
                if (!specialThingFilterDef.allowedByDefault)
                {
                    this.SetAllow(specialThingFilterDef, false);
                }
            }
            if (this.thingDefs != null)
            {
                for (int j = 0; j < this.thingDefs.Count; j++)
                {
                    if (this.thingDefs[j] != null)
                    {
                        this.SetAllow(this.thingDefs[j], true);
                    }
                    else
                    {
                        Log.Error("ThingFilter could not find thing def named " + this.thingDefs[j], false);
                    }
                }
            }
            if (this.categories != null)
            {
                for (int k = 0; k < this.categories.Count; k++)
                {
                    ThingCategoryDef named = DefDatabase <ThingCategoryDef> .GetNamed(this.categories[k], true);

                    if (named != null)
                    {
                        this.SetAllow(named, true, null, null);
                    }
                }
            }
            if (this.tradeTagsToAllow != null)
            {
                for (int l = 0; l < this.tradeTagsToAllow.Count; l++)
                {
                    List <ThingDef> allDefsListForReading = DefDatabase <ThingDef> .AllDefsListForReading;
                    for (int m = 0; m < allDefsListForReading.Count; m++)
                    {
                        ThingDef thingDef = allDefsListForReading[m];
                        if (thingDef.tradeTags != null && thingDef.tradeTags.Contains(this.tradeTagsToAllow[l]))
                        {
                            this.SetAllow(thingDef, true);
                        }
                    }
                }
            }
            if (this.tradeTagsToDisallow != null)
            {
                for (int n = 0; n < this.tradeTagsToDisallow.Count; n++)
                {
                    List <ThingDef> allDefsListForReading2 = DefDatabase <ThingDef> .AllDefsListForReading;
                    for (int num = 0; num < allDefsListForReading2.Count; num++)
                    {
                        ThingDef thingDef2 = allDefsListForReading2[num];
                        if (thingDef2.tradeTags != null && thingDef2.tradeTags.Contains(this.tradeTagsToDisallow[n]))
                        {
                            this.SetAllow(thingDef2, false);
                        }
                    }
                }
            }
            if (this.thingSetMakerTagsToAllow != null)
            {
                for (int num2 = 0; num2 < this.thingSetMakerTagsToAllow.Count; num2++)
                {
                    List <ThingDef> allDefsListForReading3 = DefDatabase <ThingDef> .AllDefsListForReading;
                    for (int num3 = 0; num3 < allDefsListForReading3.Count; num3++)
                    {
                        ThingDef thingDef3 = allDefsListForReading3[num3];
                        if (thingDef3.thingSetMakerTags != null && thingDef3.thingSetMakerTags.Contains(this.thingSetMakerTagsToAllow[num2]))
                        {
                            this.SetAllow(thingDef3, true);
                        }
                    }
                }
            }
            if (this.thingSetMakerTagsToDisallow != null)
            {
                for (int num4 = 0; num4 < this.thingSetMakerTagsToDisallow.Count; num4++)
                {
                    List <ThingDef> allDefsListForReading4 = DefDatabase <ThingDef> .AllDefsListForReading;
                    for (int num5 = 0; num5 < allDefsListForReading4.Count; num5++)
                    {
                        ThingDef thingDef4 = allDefsListForReading4[num5];
                        if (thingDef4.thingSetMakerTags != null && thingDef4.thingSetMakerTags.Contains(this.thingSetMakerTagsToDisallow[num4]))
                        {
                            this.SetAllow(thingDef4, false);
                        }
                    }
                }
            }
            if (this.disallowedCategories != null)
            {
                for (int num6 = 0; num6 < this.disallowedCategories.Count; num6++)
                {
                    ThingCategoryDef named2 = DefDatabase <ThingCategoryDef> .GetNamed(this.disallowedCategories[num6], true);

                    if (named2 != null)
                    {
                        this.SetAllow(named2, false, null, null);
                    }
                }
            }
            if (this.specialFiltersToAllow != null)
            {
                for (int num7 = 0; num7 < this.specialFiltersToAllow.Count; num7++)
                {
                    this.SetAllow(SpecialThingFilterDef.Named(this.specialFiltersToAllow[num7]), true);
                }
            }
            if (this.specialFiltersToDisallow != null)
            {
                for (int num8 = 0; num8 < this.specialFiltersToDisallow.Count; num8++)
                {
                    this.SetAllow(SpecialThingFilterDef.Named(this.specialFiltersToDisallow[num8]), false);
                }
            }
            if (this.stuffCategoriesToAllow != null)
            {
                for (int num9 = 0; num9 < this.stuffCategoriesToAllow.Count; num9++)
                {
                    this.SetAllow(this.stuffCategoriesToAllow[num9], true);
                }
            }
            if (this.allowAllWhoCanMake != null)
            {
                for (int num10 = 0; num10 < this.allowAllWhoCanMake.Count; num10++)
                {
                    this.SetAllowAllWhoCanMake(this.allowAllWhoCanMake[num10]);
                }
            }
            if (this.disallowWorsePreferability != FoodPreferability.Undefined)
            {
                List <ThingDef> allDefsListForReading5 = DefDatabase <ThingDef> .AllDefsListForReading;
                for (int num11 = 0; num11 < allDefsListForReading5.Count; num11++)
                {
                    ThingDef thingDef5 = allDefsListForReading5[num11];
                    if (thingDef5.IsIngestible && thingDef5.ingestible.preferability != FoodPreferability.Undefined && thingDef5.ingestible.preferability < this.disallowWorsePreferability)
                    {
                        this.SetAllow(thingDef5, false);
                    }
                }
            }
            if (this.disallowInedibleByHuman)
            {
                List <ThingDef> allDefsListForReading6 = DefDatabase <ThingDef> .AllDefsListForReading;
                for (int num12 = 0; num12 < allDefsListForReading6.Count; num12++)
                {
                    ThingDef thingDef6 = allDefsListForReading6[num12];
                    if (thingDef6.IsIngestible && !ThingDefOf.Human.race.CanEverEat(thingDef6))
                    {
                        this.SetAllow(thingDef6, false);
                    }
                }
            }
            if (this.allowWithComp != null)
            {
                List <ThingDef> allDefsListForReading7 = DefDatabase <ThingDef> .AllDefsListForReading;
                for (int num13 = 0; num13 < allDefsListForReading7.Count; num13++)
                {
                    ThingDef thingDef7 = allDefsListForReading7[num13];
                    if (thingDef7.HasComp(this.allowWithComp))
                    {
                        this.SetAllow(thingDef7, true);
                    }
                }
            }
            if (this.disallowWithComp != null)
            {
                List <ThingDef> allDefsListForReading8 = DefDatabase <ThingDef> .AllDefsListForReading;
                for (int num14 = 0; num14 < allDefsListForReading8.Count; num14++)
                {
                    ThingDef thingDef8 = allDefsListForReading8[num14];
                    if (thingDef8.HasComp(this.disallowWithComp))
                    {
                        this.SetAllow(thingDef8, false);
                    }
                }
            }
            if (this.disallowCheaperThan != -3.40282347E+38f)
            {
                List <ThingDef> list = new List <ThingDef>();
                foreach (ThingDef thingDef9 in this.allowedDefs)
                {
                    if (thingDef9.BaseMarketValue < this.disallowCheaperThan)
                    {
                        list.Add(thingDef9);
                    }
                }
                for (int num15 = 0; num15 < list.Count; num15++)
                {
                    this.SetAllow(list[num15], false);
                }
            }
            if (this.disallowedThingDefs != null)
            {
                for (int num16 = 0; num16 < this.disallowedThingDefs.Count; num16++)
                {
                    if (this.disallowedThingDefs[num16] != null)
                    {
                        this.SetAllow(this.disallowedThingDefs[num16], false);
                    }
                    else
                    {
                        Log.Error("ThingFilter could not find excepted thing def named " + this.disallowedThingDefs[num16], false);
                    }
                }
            }
            this.RecalculateDisplayRootCategory();
        }
Beispiel #3
0
        public void ResolveReferences()
        {
            for (int i = 0; i < DefDatabase <SpecialThingFilterDef> .AllDefsListForReading.Count; i++)
            {
                SpecialThingFilterDef specialThingFilterDef = DefDatabase <SpecialThingFilterDef> .AllDefsListForReading[i];
                if (!specialThingFilterDef.allowedByDefault)
                {
                    SetAllow(specialThingFilterDef, allow: false);
                }
            }
            if (thingDefs != null)
            {
                for (int j = 0; j < thingDefs.Count; j++)
                {
                    if (thingDefs[j] != null)
                    {
                        SetAllow(thingDefs[j], allow: true);
                    }
                    else
                    {
                        Log.Error("ThingFilter could not find thing def named " + thingDefs[j]);
                    }
                }
            }
            if (categories != null)
            {
                for (int k = 0; k < categories.Count; k++)
                {
                    ThingCategoryDef named = DefDatabase <ThingCategoryDef> .GetNamed(categories[k]);

                    if (named != null)
                    {
                        SetAllow(named, allow: true);
                    }
                }
            }
            if (tradeTagsToAllow != null)
            {
                for (int l = 0; l < tradeTagsToAllow.Count; l++)
                {
                    List <ThingDef> allDefsListForReading = DefDatabase <ThingDef> .AllDefsListForReading;
                    for (int m = 0; m < allDefsListForReading.Count; m++)
                    {
                        ThingDef thingDef = allDefsListForReading[m];
                        if (thingDef.tradeTags != null && thingDef.tradeTags.Contains(tradeTagsToAllow[l]))
                        {
                            SetAllow(thingDef, allow: true);
                        }
                    }
                }
            }
            if (tradeTagsToDisallow != null)
            {
                for (int n = 0; n < tradeTagsToDisallow.Count; n++)
                {
                    List <ThingDef> allDefsListForReading2 = DefDatabase <ThingDef> .AllDefsListForReading;
                    for (int num = 0; num < allDefsListForReading2.Count; num++)
                    {
                        ThingDef thingDef2 = allDefsListForReading2[num];
                        if (thingDef2.tradeTags != null && thingDef2.tradeTags.Contains(tradeTagsToDisallow[n]))
                        {
                            SetAllow(thingDef2, allow: false);
                        }
                    }
                }
            }
            if (thingSetMakerTagsToAllow != null)
            {
                for (int num2 = 0; num2 < thingSetMakerTagsToAllow.Count; num2++)
                {
                    List <ThingDef> allDefsListForReading3 = DefDatabase <ThingDef> .AllDefsListForReading;
                    for (int num3 = 0; num3 < allDefsListForReading3.Count; num3++)
                    {
                        ThingDef thingDef3 = allDefsListForReading3[num3];
                        if (thingDef3.thingSetMakerTags != null && thingDef3.thingSetMakerTags.Contains(thingSetMakerTagsToAllow[num2]))
                        {
                            SetAllow(thingDef3, allow: true);
                        }
                    }
                }
            }
            if (thingSetMakerTagsToDisallow != null)
            {
                for (int num4 = 0; num4 < thingSetMakerTagsToDisallow.Count; num4++)
                {
                    List <ThingDef> allDefsListForReading4 = DefDatabase <ThingDef> .AllDefsListForReading;
                    for (int num5 = 0; num5 < allDefsListForReading4.Count; num5++)
                    {
                        ThingDef thingDef4 = allDefsListForReading4[num5];
                        if (thingDef4.thingSetMakerTags != null && thingDef4.thingSetMakerTags.Contains(thingSetMakerTagsToDisallow[num4]))
                        {
                            SetAllow(thingDef4, allow: false);
                        }
                    }
                }
            }
            if (disallowedCategories != null)
            {
                for (int num6 = 0; num6 < disallowedCategories.Count; num6++)
                {
                    ThingCategoryDef named2 = DefDatabase <ThingCategoryDef> .GetNamed(disallowedCategories[num6]);

                    if (named2 != null)
                    {
                        SetAllow(named2, allow: false);
                    }
                }
            }
            if (specialFiltersToAllow != null)
            {
                for (int num7 = 0; num7 < specialFiltersToAllow.Count; num7++)
                {
                    SetAllow(SpecialThingFilterDef.Named(specialFiltersToAllow[num7]), allow: true);
                }
            }
            if (specialFiltersToDisallow != null)
            {
                for (int num8 = 0; num8 < specialFiltersToDisallow.Count; num8++)
                {
                    SetAllow(SpecialThingFilterDef.Named(specialFiltersToDisallow[num8]), allow: false);
                }
            }
            if (stuffCategoriesToAllow != null)
            {
                for (int num9 = 0; num9 < stuffCategoriesToAllow.Count; num9++)
                {
                    SetAllow(stuffCategoriesToAllow[num9], allow: true);
                }
            }
            if (allowAllWhoCanMake != null)
            {
                for (int num10 = 0; num10 < allowAllWhoCanMake.Count; num10++)
                {
                    SetAllowAllWhoCanMake(allowAllWhoCanMake[num10]);
                }
            }
            if (disallowWorsePreferability != 0)
            {
                List <ThingDef> allDefsListForReading5 = DefDatabase <ThingDef> .AllDefsListForReading;
                for (int num11 = 0; num11 < allDefsListForReading5.Count; num11++)
                {
                    ThingDef thingDef5 = allDefsListForReading5[num11];
                    if (thingDef5.IsIngestible && thingDef5.ingestible.preferability != 0 && (int)thingDef5.ingestible.preferability < (int)disallowWorsePreferability)
                    {
                        SetAllow(thingDef5, allow: false);
                    }
                }
            }
            if (disallowInedibleByHuman)
            {
                List <ThingDef> allDefsListForReading6 = DefDatabase <ThingDef> .AllDefsListForReading;
                for (int num12 = 0; num12 < allDefsListForReading6.Count; num12++)
                {
                    ThingDef thingDef6 = allDefsListForReading6[num12];
                    if (thingDef6.IsIngestible && !ThingDefOf.Human.race.CanEverEat(thingDef6))
                    {
                        SetAllow(thingDef6, allow: false);
                    }
                }
            }
            if (allowWithComp != null)
            {
                List <ThingDef> allDefsListForReading7 = DefDatabase <ThingDef> .AllDefsListForReading;
                for (int num13 = 0; num13 < allDefsListForReading7.Count; num13++)
                {
                    ThingDef thingDef7 = allDefsListForReading7[num13];
                    if (thingDef7.HasComp(allowWithComp))
                    {
                        SetAllow(thingDef7, allow: true);
                    }
                }
            }
            if (disallowWithComp != null)
            {
                List <ThingDef> allDefsListForReading8 = DefDatabase <ThingDef> .AllDefsListForReading;
                for (int num14 = 0; num14 < allDefsListForReading8.Count; num14++)
                {
                    ThingDef thingDef8 = allDefsListForReading8[num14];
                    if (thingDef8.HasComp(disallowWithComp))
                    {
                        SetAllow(thingDef8, allow: false);
                    }
                }
            }
            if (disallowCheaperThan != float.MinValue)
            {
                List <ThingDef> list = new List <ThingDef>();
                foreach (ThingDef allowedDef in allowedDefs)
                {
                    if (allowedDef.BaseMarketValue < disallowCheaperThan)
                    {
                        list.Add(allowedDef);
                    }
                }
                for (int num15 = 0; num15 < list.Count; num15++)
                {
                    SetAllow(list[num15], allow: false);
                }
            }
            if (disallowedThingDefs == null)
            {
                return;
            }
            for (int num16 = 0; num16 < disallowedThingDefs.Count; num16++)
            {
                if (disallowedThingDefs[num16] != null)
                {
                    SetAllow(disallowedThingDefs[num16], allow: false);
                }
                else
                {
                    Log.Error("ThingFilter could not find excepted thing def named " + disallowedThingDefs[num16]);
                }
            }
        }