public override bool HasJobOnThing(Pawn pawn, Thing t, bool forced = false) { if (t.Faction != pawn.Faction) { return(false); } Building_LaserFenceConsole console = t as Building_LaserFenceConsole; if (console == null) { return(false); } if (console.IsForbidden(pawn) || console.IsBurning() || (console.manualSwitchIsPending == false) || (pawn.CanReserveAndReach(console, this.PathEndMode, pawn.NormalMaxDanger()) == false) || (console.Map.designationManager.DesignationOn(console, DesignationDefOf.Uninstall) != null)) { return(false); } CompPowerTrader compPowerTrader = console.TryGetComp <CompPowerTrader>(); if ((compPowerTrader != null) && (compPowerTrader.PowerOn == false)) { return(false); } return(true); }
public override Job JobOnThing(Pawn pawn, Thing t, bool forced = false) { Building_LaserFenceConsole console = t as Building_LaserFenceConsole; return(new Job(Util_LaserFence.SwitchLaserFenceConsoleDef, console)); }