/// <summary> /// When the telnet client connects but is not associated with a particular kOSProcessor at the moment, /// this will attach the welcome menu to it instead of having it attached to a kOSProcessor. This should /// occur BOTH when the telnet client first connects, and whenever it detaches from a kOSProcessor. /// (It should go back to this menu, rather than get disconnected). /// <br/> /// The purpose of the welcome menu is to let the user pick which kOSProcessor to attach to. /// </summary> private void SpawnWelcomeMenu() { var gObj = new GameObject( "TelnetWelcomeMenu_" + MySpawnOrder, typeof(TelnetWelcomeMenu) ); Object.DontDestroyOnLoad(gObj); welcomeMenu = (TelnetWelcomeMenu)gObj.GetComponent(typeof(TelnetWelcomeMenu)); welcomeMenu.Setup(this); }
private void ContinuousChecks() { // Detect if the client closed from its end: if ( (!client.Connected) || IsHung() || deadSocket) { deadSocket = true; StopListening(); } if (welcomeMenu == null) { if (ConnectedProcessor == null) SpawnWelcomeMenu(); } else if (ConnectedProcessor != null) // welcome menu is attached but we now have a processor picked, so detach it. { welcomeMenu.enabled = false; // turn it off so it stops trying to read the input in its Update(). welcomeMenu.Detach(); welcomeMenu = null ; // let it get garbage collected. Now it's the ConnectedProcessor's turn to do the work. // If ConnectedProcessor gets disconnected again, a new welcomeMenu instance should get spawned by the check above. } }