static void Prefix(Pawn_WorkSettings __instance, WorkTypeDef w, ref int priority) { __instance.Pawn().SetPriority(w, priority, null); // TODO: find a more elegant way to stop RW complaining about bad priorities. priority = Mathf.Min(priority, 4); }
static void Prefix(Pawn_WorkSettings __instance) { //clean favourite in case of pawn reccurect to avoid overriding var pawn = __instance.Pawn(); FavouriteManager.Get[pawn] = null; }
public static void ForcePriority(this Pawn_WorkSettings p, WorkTypeDef w, int priority) { p.ConfirmInitializedDebug(); if ( (priority < 0) || (priority > 4) ) { Log.Message("Trying to set work to invalid priority " + (object)priority); } var priorities = p.Priorities(); priorities[w] = priority; if (priority == 0) { p.Pawn().mindState.Notify_WorkPriorityDisabled(w); } p.WorkGiversDirtySet(true); }
static void Prefix(Pawn_WorkSettings __instance, WorkTypeDef w, int priority) { __instance.Pawn().SetPriority(w, priority, null); }
public static void Prefix(Pawn_WorkSettings __instance) { __instance.Pawn().DisableAll(); }
static bool Prefix(WorkTypeDef w, Pawn_WorkSettings __instance, ref int __result) { __result = __instance.Pawn().GetPriority(w, -1); return(false); }