internal static void SaveCurrentState(List <Pawn> pawns) { int currentMap = Find.CurrentMap.uniqueID; //Save current state foreach (Pawn p in pawns) { //find colonist on the current zone in the current map AssignLink link = AssignManager.links.Find( x => p.Equals(x.colonist) && x.zone == AssignManager.GetActivePolicy().id&& x.mapId == currentMap); if (link != null) { //colonist found! save link.outfit = p.outfits.CurrentOutfit; link.drugPolicy = p.drugs.CurrentPolicy; link.hostilityResponse = p.playerSettings.hostilityResponse; link.foodPolicy = p.foodRestriction.CurrentFoodRestriction; if (Widget_CombatExtended.CombatExtendedAvailable) { link.loadoutId = Widget_CombatExtended.GetLoadoutId(p); } } else { //colonist not found. So add it to the AssignLink list int loadoutId = 0; if (Widget_CombatExtended.CombatExtendedAvailable) { loadoutId = Widget_CombatExtended.GetLoadoutId(p); } Outfit outfit = p.outfits.CurrentOutfit; if (outfit == Current.Game.outfitDatabase.DefaultOutfit()) { outfit = AssignManager.DefaultOutfit; } DrugPolicy drug = p.drugs.CurrentPolicy; if (drug == Current.Game.drugPolicyDatabase.DefaultDrugPolicy()) { drug = AssignManager.DefaultDrugPolicy; } FoodRestriction food = p.foodRestriction.CurrentFoodRestriction; if (food == Current.Game.foodRestrictionDatabase.DefaultFoodRestriction()) { food = AssignManager.DefaultFoodPolicy; } AssignManager.links.Add( new AssignLink( AssignManager.GetActivePolicy().id, p, outfit, food, drug, p.playerSettings.hostilityResponse, loadoutId, currentMap)); } } }
static TaggedString asText(this FoodRestriction restriction) { return(restriction == null ? "AnimalControlsDefault".Translate() : (TaggedString)restriction.label); }
public LoadRestrictionDialog(string type, FoodRestriction restriction) : base(type) { Restriction = restriction; }
public Dialog_ManageFoodRestrictions_(FoodRestriction selectedFoodRestriction) : base(selectedFoodRestriction) { }
public static bool Prefix(ref FoodRestriction __result, FoodRestrictionDatabase __instance, ref List <FoodRestriction> ___foodRestrictions) { FixFoodRestruction(__instance, ref __result, ref ___foodRestrictions); return(false); }
private static void SetSelectedRestriction(Dialog_ManageFoodRestrictions dialog, FoodRestriction selectedRestriction) { typeof(Dialog_ManageFoodRestrictions).GetProperty("SelectedFoodRestriction", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.GetProperty).SetValue(dialog, selectedRestriction, null); }
static void Postfix(ref FoodRestriction __result) { __result.filter.SetAllow(AnimalControlsDefOf.Plants, true, null, null); }
public void GetObjectData(object obj, SerializationInfo info, StreamingContext context) { FoodRestriction fs = (FoodRestriction)obj; info.AddValue("food_restr_id", fs.id); }