public static void Postfix(Pawn_JobTracker __instance, ThinkResult __result, ThinkTreeDef thinkTree)
            {
                FieldInfo info  = __instance.GetType().GetField("pawn", BindingFlags.GetField | BindingFlags.NonPublic | BindingFlags.Instance);
                Pawn      actor = info.GetValue(__instance) as Pawn;

                if (actor.Faction != Faction.OfPlayer)
                {
                    return;
                }

                RestrictedEntityManager manager = actor.Map.GetComponent <RestrictedEntityManager>();

                manager.EndForbiddenSection(actor);
            }
            public static void Postfix(Pawn_JobTracker __instance, ThinkResult __result, ThinkTreeDef thinkTree)
            {
                FieldInfo info  = AccessTools.Field(typeof(Pawn_JobTracker), "pawn");
                Pawn      actor = info.GetValue(__instance) as Pawn;

                if (actor.Faction != Faction.OfPlayer)
                {
                    return;
                }

                RestrictedEntityManager manager = actor.Map.GetComponent <RestrictedEntityManager>();

                manager.EndForbiddenSection(actor);
            }
            public static void Prefix(Pawn_JobTracker __instance, ThinkResult __result)
            {
                FieldInfo info  = __instance.GetType().GetField("pawn", BindingFlags.GetField | BindingFlags.NonPublic | BindingFlags.Instance);
                Pawn      actor = info.GetValue(__instance) as Pawn;

                if (actor.Faction != Faction.OfPlayer)
                {
                    return;
                }
#if DEBUG
                Log.Message(DebugLog.GetMethodName(2) + MethodBase.GetCurrentMethod().Name + " actor:" + actor.NameStringShort);
#endif
                RestrictedEntityManager manager = actor.Map.GetComponent <RestrictedEntityManager>();
                manager.StartForbiddenSection(actor);
            }