public override IEnumerable <FloatMenuOption> GetFloatMenuOptions(Pawn myPawn) { foreach (FloatMenuOption o in base.GetFloatMenuOptions(myPawn)) { yield return(o); } if (this.innerContainer.Count < maxCount) { if (Toils_bunker.getEnterOutLoc(this) == null)//!myPawn.CanReach(this, PathEndMode.InteractionCell, Danger.Deadly, false, TraverseMode.ByPawn)) { FloatMenuOption failer = new FloatMenuOption("CannotUseNoPath".Translate(), null, MenuOptionPriority.Default, null, null, 0f, null, null); yield return(failer); } else { JobDef jobDef = DefDatabase <JobDef> .GetNamed("EnterRa2Bunker", true); //JobDefOf.EnterCryptosleepCasket; string jobStr = "EnterRa2Bunker".Translate(); Action jobAction = delegate { Job job = new Job(jobDef, this); myPawn.jobs.TryTakeOrderedJob(job, JobTag.Misc); }; yield return(FloatMenuUtility.DecoratePrioritizedTask(new FloatMenuOption(jobStr, jobAction, MenuOptionPriority.Default, null, null, 0f, null, null), myPawn, this, "ReservedBy")); } } yield break; }
public virtual void EjectContents() { (this.AttackVerb as Verb_Bunker).resetVerb(); this.innerContainer.TryDropAll(Toils_bunker.getEnterOutLoc(this), base.Map, ThingPlaceMode.Near, null, null); }