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(); }
static Outfit MakeOutfit(OutfitDatabase database, string name) { var outfit = database.MakeNewOutfit(); outfit.label = ("Outfit" + name).Translate(); return(outfit); }
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; } }