2019-04-23 20:19:26 +00:00
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
using SanAndreasUnity.Utilities;
|
|
|
|
|
using SanAndreasUnity.Net;
|
|
|
|
|
|
|
|
|
|
namespace SanAndreasUnity.UI
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
public class StartGameWindow : PauseMenuWindow
|
|
|
|
|
{
|
2019-06-25 20:54:28 +00:00
|
|
|
|
string m_portStr = NetManager.defaultListenPortNumber.ToString();
|
2019-04-23 20:19:26 +00:00
|
|
|
|
bool m_dontListen = false;
|
|
|
|
|
bool m_dedicatedServer = false;
|
2019-06-25 20:54:03 +00:00
|
|
|
|
string m_maxNumPlayersStr = "40";
|
2019-06-25 21:03:03 +00:00
|
|
|
|
[SerializeField] string[] m_availableScenes = new string[0];
|
2019-04-23 20:19:26 +00:00
|
|
|
|
int m_selectedSceneIndex = 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
StartGameWindow()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
// set default parameters
|
|
|
|
|
|
|
|
|
|
this.windowName = "Start Game";
|
|
|
|
|
this.useScrollView = true;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Start ()
|
|
|
|
|
{
|
|
|
|
|
// adjust rect
|
2019-06-25 23:12:49 +00:00
|
|
|
|
this.windowRect = GUIUtils.GetCenteredRect(new Vector2(550, 320));
|
2019-04-23 20:19:26 +00:00
|
|
|
|
}
|
|
|
|
|
|
2019-04-24 22:31:23 +00:00
|
|
|
|
void Update()
|
|
|
|
|
{
|
|
|
|
|
if (PauseMenu.IsOpened)
|
|
|
|
|
this.IsOpened = false;
|
|
|
|
|
}
|
|
|
|
|
|
2019-04-23 20:19:26 +00:00
|
|
|
|
|
|
|
|
|
protected override void OnWindowGUI ()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
GUILayout.Label ("Port:");
|
2019-06-25 20:54:28 +00:00
|
|
|
|
m_portStr = GUILayout.TextField(m_portStr, GUILayout.Width(100));
|
2019-04-23 20:19:26 +00:00
|
|
|
|
|
2019-04-23 21:21:41 +00:00
|
|
|
|
m_dontListen = GUILayout.Toggle(m_dontListen, "Don't listen");
|
2019-04-23 20:19:26 +00:00
|
|
|
|
|
2019-04-23 21:21:41 +00:00
|
|
|
|
m_dedicatedServer = GUILayout.Toggle(m_dedicatedServer, "Dedicated server");
|
2019-04-23 20:19:26 +00:00
|
|
|
|
|
2019-06-25 20:54:03 +00:00
|
|
|
|
GUILayout.Label("Max num players:");
|
|
|
|
|
m_maxNumPlayersStr = GUILayout.TextField(m_maxNumPlayersStr, GUILayout.Width(100));
|
|
|
|
|
|
2019-04-23 20:19:26 +00:00
|
|
|
|
GUILayout.Label("Map:");
|
|
|
|
|
m_selectedSceneIndex = GUILayout.SelectionGrid(m_selectedSceneIndex, m_availableScenes, 4);
|
|
|
|
|
|
2019-07-28 17:40:28 +00:00
|
|
|
|
}
|
2019-04-23 20:19:26 +00:00
|
|
|
|
|
2019-07-28 17:40:28 +00:00
|
|
|
|
protected override void OnWindowGUIAfterContent()
|
|
|
|
|
{
|
|
|
|
|
GUILayout.Space(40);
|
2019-04-23 20:19:26 +00:00
|
|
|
|
|
2019-07-28 22:26:56 +00:00
|
|
|
|
if (GUIUtils.ButtonWithCalculatedSize("Start", 80, 30))
|
2019-07-28 17:40:28 +00:00
|
|
|
|
StartGame();
|
2019-04-23 20:19:26 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void StartGame()
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
2019-06-25 20:56:13 +00:00
|
|
|
|
ushort port = ushort.Parse(m_portStr);
|
2019-04-23 20:19:26 +00:00
|
|
|
|
string scene = m_availableScenes[m_selectedSceneIndex];
|
2019-06-25 20:54:03 +00:00
|
|
|
|
ushort maxNumPlayers = ushort.Parse(m_maxNumPlayersStr);
|
2019-04-23 20:19:26 +00:00
|
|
|
|
|
2019-07-05 21:03:57 +00:00
|
|
|
|
NetManager.StartServer(port, scene, maxNumPlayers, m_dedicatedServer, m_dontListen);
|
2019-04-23 20:19:26 +00:00
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
catch (System.Exception ex)
|
|
|
|
|
{
|
2019-06-25 20:56:59 +00:00
|
|
|
|
Debug.LogException(ex);
|
2019-04-23 20:19:26 +00:00
|
|
|
|
MessageBox.Show("Error", ex.ToString());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|