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);
 }