public override bool HasJobOnThing(Pawn pawn, Thing t, bool forced = false) { if (t.Faction != pawn.Faction) { return(false); } Building building = t as Building; if (building == null) { return(false); } if (building.IsForbidden(pawn)) { return(false); } if (building.IsBurning()) { return(false); } LocalTargetInfo target = building.InteractionCell; //Reserve Interaction Cell, so that this job wouldn't affect refueling job or updation job if (!pawn.CanReserve(target, 1, -1, null, forced)) { return(false); } CompDetection_ManualDevice comp = building.TryGetComp <CompDetection_ManualDevice>(); return(comp.CanUseNow); }
public override bool HasJobOnThing(Pawn pawn, Thing t, bool forced = false) { if (t.Faction != pawn.Faction) { return(false); } Building building = t as Building; if (building == null) { return(false); } if (building.IsForbidden(pawn)) { return(false); } if (building.IsBurning()) { return(false); } LocalTargetInfo target = building; if (!pawn.CanReserve(target, 1, -1, null, forced)) { return(false); } CompDetection_ManualDevice comp = building.TryGetComp <CompDetection_ManualDevice>(); return(comp.CanUseNow); }
public override bool ShouldSkip(Pawn pawn, bool forced = false) { List <Building> allBuildingsColonist = pawn.Map.listerBuildings.allBuildingsColonist; for (int i = 0; i < allBuildingsColonist.Count; i++) { if (allBuildingsColonist[i].def == PESDefOf.PES_watchtower) { CompDetection_ManualDevice comp = allBuildingsColonist[i].GetComp <CompDetection_ManualDevice>(); if (comp != null && comp.CanUseNow) { return(false); } } } return(true); }