// Token: 0x0600004D RID: 77 RVA: 0x000043D8 File Offset: 0x000025D8
        public static bool CompatPatch_ShouldBeDeadFromRequiredCapacity(ref Pawn_HealthTracker __instance, ref PawnCapacityDef __result)
        {
            Pawn pawn = HarmonyPatches.Pawn_HealthTracker_GetPawn(__instance);
            bool flag = pawn.def.HasModExtension <MechanicalPawnProperties>();
            bool result;

            if (flag)
            {
                List <PawnCapacityDef> allDefsListForReading = DefDatabase <PawnCapacityDef> .AllDefsListForReading;
                for (int i = 0; i < allDefsListForReading.Count; i++)
                {
                    PawnCapacityDef pawnCapacityDef = allDefsListForReading[i];
                    bool            flag2           = allDefsListForReading[i] == PawnCapacityDefOf.Consciousness && !__instance.capacities.CapableOf(pawnCapacityDef);
                    if (flag2)
                    {
                        __result = pawnCapacityDef;
                        return(false);
                    }
                }
                __result = null;
                result   = false;
            }
            else
            {
                result = true;
            }
            return(result);
        }
        // Token: 0x06000043 RID: 67 RVA: 0x0000419C File Offset: 0x0000239C
        public static bool CompatPatch_InteractionsTrackerTick(ref Pawn_InteractionsTracker __instance)
        {
            Pawn pawn = HarmonyPatches.Pawn_InteractionsTracker_GetPawn(__instance);
            bool flag = pawn.def.HasModExtension <MechanicalPawnProperties>();

            return(!flag);
        }
        // Token: 0x0600005B RID: 91 RVA: 0x00004948 File Offset: 0x00002B48
        public static void Patch_Need_Food_Starving_Get(ref Need_Food __instance, ref bool __result)
        {
            Pawn pawn = HarmonyPatches.Need_Food_Starving_GetPawn(__instance);
            bool flag = pawn != null && pawn.def == ThingDefOf.ChjAndroid;

            if (flag)
            {
                __result = false;
            }
        }
        // Token: 0x06000045 RID: 69 RVA: 0x000041F8 File Offset: 0x000023F8
        public static bool CompatPatch_SocialFightChance(ref Pawn_InteractionsTracker __instance, ref float __result, ref InteractionDef interaction, ref Pawn initiator)
        {
            Pawn pawn = HarmonyPatches.Pawn_InteractionsTracker_GetPawn(__instance);
            bool flag = pawn.def.HasModExtension <MechanicalPawnProperties>() || initiator.def.HasModExtension <MechanicalPawnProperties>();
            bool result;

            if (flag)
            {
                __result = 0f;
                result   = false;
            }
            else
            {
                result = true;
            }
            return(result);
        }
        // Token: 0x06000057 RID: 87 RVA: 0x00004634 File Offset: 0x00002834
        public static bool Patch_ThinkNode_ConditionalNeedPercentageAbove_Satisfied(ref ThinkNode_ConditionalNeedPercentageAbove __instance, ref bool __result, ref Pawn pawn)
        {
            NeedDef def   = HarmonyPatches.ThinkNode_ConditionalNeedPercentageAbove_GetNeed(__instance);
            bool    flag  = pawn.needs.TryGetNeed(def) != null;
            bool    flag2 = !flag;
            bool    result;

            if (flag2)
            {
                __result = false;
                result   = false;
            }
            else
            {
                result = true;
            }
            return(result);
        }
        // Token: 0x06000059 RID: 89 RVA: 0x000046A8 File Offset: 0x000028A8
        public static void Patch_Pawn_NeedsTracker_ShouldHaveNeed(ref Pawn_NeedsTracker __instance, ref bool __result, ref NeedDef nd)
        {
            Pawn pawn = HarmonyPatches.Pawn_NeedsTracker_GetPawn(__instance);
            bool flag = NeedsDefOf.ChJEnergy != null;

            if (flag)
            {
                bool flag2 = nd == NeedsDefOf.ChJEnergy;
                if (flag2)
                {
                    bool flag3 = pawn.def == ThingDefOf.ChjAndroid || pawn.def.HasModExtension <MechanicalPawnProperties>();
                    if (flag3)
                    {
                        __result = true;
                    }
                    else
                    {
                        __result = false;
                    }
                }
            }
            bool flag4 = !AndroidsModSettings.Instance.droidCompatibilityMode;

            if (flag4)
            {
                bool flag5 = nd == NeedDefOf.Food || nd == NeedDefOf.Rest || nd == NeedDefOf.Joy || nd == NeedsDefOf.Beauty || nd == NeedsDefOf.Comfort || nd == NeedsDefOf.Space || (HarmonyPatches.Need_Bladder != null && nd == HarmonyPatches.Need_Bladder) || (HarmonyPatches.Need_Hygiene != null && nd == HarmonyPatches.Need_Hygiene);
                if (flag5)
                {
                    bool flag6 = pawn.def.HasModExtension <MechanicalPawnProperties>();
                    if (flag6)
                    {
                        __result = false;
                    }
                }
            }
        }
        // Token: 0x0600005A RID: 90 RVA: 0x00004798 File Offset: 0x00002998
        public static void Patch_PawnRenderer_RenderPawnInternal(ref PawnRenderer __instance, Vector3 rootLoc, Quaternion quat, bool renderBody, Rot4 bodyFacing, Rot4 headFacing, RotDrawMode bodyDrawType, bool portrait, bool headStump)
        {
            bool flag = __instance != null && AndroidsModSettings.Instance.androidEyeGlow;

            if (flag)
            {
                Pawn pawn = HarmonyPatches.PawnRenderer_GetPawn_GetPawn(__instance);
                bool flag4;
                if (pawn != null && pawn.def == ThingDefOf.ChjAndroid && !pawn.Dead && !headStump)
                {
                    bool flag3;
                    if (!portrait)
                    {
                        bool flag2;
                        if (pawn == null)
                        {
                            flag2 = (null != null);
                        }
                        else
                        {
                            Pawn_JobTracker jobs = pawn.jobs;
                            flag2 = (((jobs != null) ? jobs.curDriver : null) != null);
                        }
                        if (flag2)
                        {
                            flag3 = !pawn.jobs.curDriver.asleep;
                            goto IL_73;
                        }
                    }
                    flag3 = portrait;
IL_73:
                    flag4 = (flag3 || portrait);
                }
                else
                {
                    flag4 = false;
                }
                bool flag5 = flag4;
                if (flag5)
                {
                    Vector3 a     = rootLoc;
                    bool    flag6 = bodyFacing != Rot4.North;
                    if (flag6)
                    {
                        a.y       += 0.0281250011f;
                        rootLoc.y += 0.0234375f;
                    }
                    else
                    {
                        a.y       += 0.0234375f;
                        rootLoc.y += 0.0281250011f;
                    }
                    Vector3 b     = quat * __instance.BaseHeadOffsetAt(headFacing);
                    Vector3 loc   = a + b + new Vector3(0f, 0.01f, 0f);
                    bool    flag7 = headFacing != Rot4.North;
                    if (flag7)
                    {
                        Mesh mesh         = MeshPool.humanlikeHeadSet.MeshAt(headFacing);
                        bool isHorizontal = headFacing.IsHorizontal;
                        if (isHorizontal)
                        {
                            GenDraw.DrawMeshNowOrLater(mesh, loc, quat, EffectTextures.GetEyeGraphic(false, pawn.story.hairColor.SaturationChanged(0.6f)).MatSingle, portrait);
                        }
                        else
                        {
                            GenDraw.DrawMeshNowOrLater(mesh, loc, quat, EffectTextures.GetEyeGraphic(true, pawn.story.hairColor.SaturationChanged(0.6f)).MatSingle, portrait);
                        }
                    }
                }
            }
        }