using System.Collections;
using UnityEngine;
using SanAndreasUnity.Utilities;

namespace SanAndreasUnity.Net
{
    public class NetCmdLineHandler : MonoBehaviour
    {

        public int numFramesToWait = 5;


        IEnumerator Start()
        {
            if (!Mirror.NetworkManager.isHeadless)
                yield break;
            
            for (int i=0; i < this.numFramesToWait; i++)
                yield return null;

            ushort portNum = (ushort) NetManager.defaultListenPortNumber;
            CmdLineUtils.GetUshortArgument("portNum", ref portNum);

            string sceneName = "Main";
            CmdLineUtils.GetArgument("scene", ref sceneName);

            ushort maxNumPlayers = (ushort) NetManager.maxNumPlayers;
            CmdLineUtils.GetUshortArgument("maxNumPlayers", ref maxNumPlayers);

            string serverIp = "127.0.0.1";
            CmdLineUtils.GetArgument("serverIp", ref serverIp);

            if (CmdLineUtils.HasArgument("startServer"))
            {
                Debug.LogFormat("Starting server in headless mode, params: {0}, {1}, {2}", portNum, sceneName, maxNumPlayers);
                NetManager.StartServer(portNum, sceneName, maxNumPlayers, true, false);
            }
            else if (CmdLineUtils.HasArgument("startClient"))
            {
                Debug.LogFormat("Starting client in headless mode, params: {0}, {1}", serverIp, portNum);
                NetManager.StartClient(serverIp, portNum);
            }
            
        }

        
    }

}
