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