public void Startup()
 {
     if (State != HibernatableStateDefOf.Hibernating)
     {
         Log.ErrorOnce("Attempted to start a non-hibernating object", 34361223);
         return;
     }
     State          = HibernatableStateDefOf.Starting;
     endStartupTick = Mathf.RoundToInt((float)Find.TickManager.TicksGame + Props.startupDays * 60000f);
 }
 public override void CompTick()
 {
     if (State == HibernatableStateDefOf.Starting && Find.TickManager.TicksGame > endStartupTick)
     {
         State          = HibernatableStateDefOf.Running;
         endStartupTick = 0;
         string str = (parent.Map.Parent.GetComponent <EscapeShipComp>() == null) ? ((string)"LetterHibernateCompleteStandalone".Translate()) : ((string)"LetterHibernateComplete".Translate());
         Find.LetterStack.ReceiveLetter("LetterLabelHibernateComplete".Translate(), str, LetterDefOf.PositiveEvent, new GlobalTargetInfo(parent));
     }
 }
 public override void CompTick()
 {
     if (State == HibernatableStateDefOf.Starting && Find.TickManager.TicksGame > endStartupTick)
     {
         State          = HibernatableStateDefOf.Running;
         endStartupTick = 0;
         string str = ((parent.Map.Parent.GetComponent <EscapeShipComp>() == null) ? ((string)"LetterHibernateCompleteStandalone".Translate()) : ((string)"LetterHibernateComplete".Translate()));
         Find.LetterStack.ReceiveLetter("LetterLabelHibernateComplete".Translate(), str, LetterDefOf.PositiveEvent, new GlobalTargetInfo(parent));
     }
     if (State != HibernatableStateDefOf.Hibernating)
     {
         if (sustainer == null || sustainer.Ended)
         {
             sustainer = Props.sustainerActive.TrySpawnSustainer(SoundInfo.InMap(parent));
         }
         sustainer.Maintain();
     }
     else if (sustainer != null && !sustainer.Ended)
     {
         sustainer.End();
     }
 }