Skip to content
Snippets Groups Projects
WaitingForLocalMMT.cs 2.14 KiB
Newer Older
  • Learn to ignore specific revisions
  • using UnityEngine;
    
    MaZiFAU's avatar
    MaZiFAU committed
    using UnityEngine.SceneManagement;
    
    using static CommunicationEvents;
    
    
    public class WaitingForLocalMMT : MonoBehaviour
    {
    
        private void OnEnable()
        {
            StartCoroutine(ServerRoutine());
        }
    
        private void OnDisable()
        {
            StopCoroutine(ServerRoutine());
        }
    
        void PrepareGame()
        {
    
            //This condition should always be true if PrepareGame gets called, but it never hurts to make sure.
            if (CommunicationEvents.ServerRunning)
    
                CommunicationEvents.ServerAdress = "http://" + CommunicationEvents.ServerAddressLocal; //ServerAddress needs the "http://"
    
    Stefan Richter's avatar
    Stefan Richter committed
                //UnityEngine.Debug.Log("StartMainMenu");
    
                // TODO: Display "Loading in progress" to the player
    
    Stefan Richter's avatar
    Stefan Richter committed
                SceneManager.LoadScene("MainMenu");
    
            yield return ServerSlots[ServerSlot.localServer].UpdateServerStatus(skipIfAlreadyChecked: false);
    
            // The address of the localServer currently cannot change, so it is never empty/illegal
            // If this can happen in the future, this condition may not suffice
            while (ServerSlots[ServerSlot.localServer].currentStatus != ServerStatus.online)
            {
                Debug.Log("Local MMT Server not ready yet\n Will try again in 2 sec.");
    
                yield return new WaitForSecondsRealtime(2f);
    
                yield return ServerSlots[ServerSlot.localServer].UpdateServerStatus(skipIfAlreadyChecked: false);
    
            Debug.Log("Preparing game now");
            CommunicationEvents.ServerRunning = true;
            // Give Unity time to flush the debug log
            yield return new WaitForSecondsRealtime(0.1f);
            PrepareGame();
    
    
        public UnityWebRequest pingL()
        {
            //UnityWebRequest request = UnityWebRequest.Get("http://" + NetwAddress + "/scroll/list");
            //using UnityWebRequest request = UnityWebRequest.Get(CommunicationEvents.ServerAddressLocal + "/scroll/list");
    
            UnityWebRequest request = UnityWebRequest.Get("http://" + CommunicationEvents.ServerAddressLocal + "/fact/list");