GameBootstrap.cs
namespace PixelPusher;

public sealed class GameBootstrap : Component
{
	protected override void OnStart()
	{
		Log.Info( $"[PIXEL PUSHER] {GameInfo.Package} {GameInfo.VersionLabel} boot" );
		Lesson.Boot();
	}

	protected override void OnUpdate()
	{
		if ( !Desk.Ready && GameFlow.Screen != GameScreen.Title )
			Desk.Boot();

		GameFlow.Tick();
		Desk.Tick();
		StageStudio.TickCamera();
		WorldStudio.TickCamera();
		PixelStudio.Tick();
		ChipStudio.Tick();
		StudioMouse.Tick();
		DeskNet.Tick();

		if ( GameFlow.Screen is GameScreen.Play2D or GameScreen.Play3D )
			PlaySim.Tick();
	}
}