Exemple #1
0
        public static void FixStartingOutfits(OutfitDatabase __instance)
        {
            Outfit outfit = __instance.MakeNewOutfit();

            outfit.label = "OutfitAnything".Translate();
            Outfit outfit2 = __instance.MakeNewOutfit();

            outfit2.label = "OutfitWorker".Translate();
            ThingFilterPatch.thingFilterCallerStack.Push(outfit2);
            outfit2.filter.SetDisallowAll(null, null);
            outfit2.filter.SetAllow(SpecialThingFilterDefOf.AllowDeadmansApparel, false);
            foreach (ThingDef thingDef in DefDatabase <ThingDef> .AllDefs)
            {
                if (thingDef.apparel != null && thingDef.apparel.defaultOutfitTags != null && thingDef.apparel.defaultOutfitTags.Contains("Worker"))
                {
                    outfit2.filter.SetAllow(thingDef, true);
                }
            }
            ThingFilterPatch.thingFilterCallerStack.Pop();
            Outfit outfit3 = __instance.MakeNewOutfit();

            outfit3.label = "OutfitSoldier".Translate();
            ThingFilterPatch.thingFilterCallerStack.Push(outfit3);
            outfit3.filter.SetDisallowAll(null, null);
            outfit3.filter.SetAllow(SpecialThingFilterDefOf.AllowDeadmansApparel, false);
            foreach (ThingDef thingDef2 in DefDatabase <ThingDef> .AllDefs)
            {
                if (thingDef2.apparel != null && thingDef2.apparel.defaultOutfitTags != null && thingDef2.apparel.defaultOutfitTags.Contains("Soldier"))
                {
                    outfit3.filter.SetAllow(thingDef2, true);
                }
            }
            ThingFilterPatch.thingFilterCallerStack.Pop();
            Outfit outfit4 = __instance.MakeNewOutfit();

            outfit4.label = "OutfitNudist".Translate();
            ThingFilterPatch.thingFilterCallerStack.Push(outfit4);
            outfit4.filter.SetDisallowAll(null, null);
            outfit4.filter.SetAllow(SpecialThingFilterDefOf.AllowDeadmansApparel, false);
            foreach (ThingDef thingDef3 in DefDatabase <ThingDef> .AllDefs)
            {
                if (thingDef3.apparel != null && !thingDef3.apparel.bodyPartGroups.Contains(BodyPartGroupDefOf.Legs) && !thingDef3.apparel.bodyPartGroups.Contains(BodyPartGroupDefOf.Torso))
                {
                    outfit4.filter.SetAllow(thingDef3, true);
                }
            }
            ThingFilterPatch.thingFilterCallerStack.Pop();
        }
Exemple #2
0
        static Outfit MakeOutfit(OutfitDatabase database, string name)
        {
            var outfit = database.MakeNewOutfit();

            outfit.label = ("Outfit" + name).Translate();
            return(outfit);
        }
Exemple #3
0
        static ExtendedOutfit MakeOutfit(OutfitDatabase database, string name, bool autoWorkPriorities = false)
        {
            var outfit = database.MakeNewOutfit() as ExtendedOutfit;

            outfit.label = ("Outfit" + name).Translate();
            outfit.AutoWorkPriorities = autoWorkPriorities;
            return(outfit);
        }
 private static ExtendedOutfit MakeOutfit(OutfitDatabase database, string name)
 {
     #if DEBUG
     Log.Message($"Outfit Manager: Creating outfit {name}");
     #endif
     if (!(database.MakeNewOutfit() is ExtendedOutfit outfit))
     {
         Log.Error("Outfit Manager: outfit is not of type ExtendedOutfit");
         return(null);
     }
     outfit.label = ("Outfit" + name).Translate();
     return(outfit);
 }
        internal static void _GenerateStartingOutfits(this OutfitDatabase outfitDatabase)
        {
            outfitDatabase.MakeNewOutfit().label = "Anything";

            Outfit outfit = outfitDatabase.MakeNewOutfit();

            outfit.label = "Nothing";
            outfit.filter.SetDisallowAll();

            Outfit outfit1 = outfitDatabase.MakeNewOutfit();

            outfit1.label = "Worker";
            outfit1.filter.SetDisallowAll();
            foreach (ThingDef allDef in DefDatabase <ThingDef> .AllDefs)
            {
                if (allDef.apparel != null && allDef.apparel.defaultOutfitTags != null && allDef.apparel.defaultOutfitTags.Contains("Worker"))
                {
                    outfit1.filter.SetAllow(allDef, true);
                }
            }

            Outfit outfit2 = outfitDatabase.MakeNewOutfit();

            outfit2.label = "Soldier";
            outfit2.filter.SetDisallowAll();
            foreach (ThingDef allDef in DefDatabase <ThingDef> .AllDefs)
            {
                if (allDef.apparel != null && allDef.apparel.defaultOutfitTags != null && allDef.apparel.defaultOutfitTags.Contains("Soldier"))
                {
                    outfit2.filter.SetAllow(allDef, true);
                }
            }

            Outfit outfit3 = outfitDatabase.MakeNewOutfit();

            outfit3.label = "Nudist";
            outfit3.filter.SetDisallowAll();
            foreach (ThingDef allDef in DefDatabase <ThingDef> .AllDefs)
            {
                if (allDef.apparel != null && !allDef.apparel.bodyPartGroups.Contains(BodyPartGroupDefOf.Legs) && !allDef.apparel.bodyPartGroups.Contains(BodyPartGroupDefOf.Torso))
                {
                    outfit3.filter.SetAllow(allDef, true);
                }
            }

            // do my stuff here
            foreach (OutfitDef outfitDef in OutfitDefs)
            {
                Outfit newOutfit = outfitDatabase.MakeNewOutfit();
                newOutfit.label  = outfitDef.label;
                newOutfit.filter = outfitDef.filter;
            }
        }