|
|
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.Networking;
-
- namespace Multiplayer
- {
-
- public class ClientLoginManager
- {
-
- private ClientManager ClientManager;
-
- public ClientLoginManager(ClientManager ClientManager)
- {
- this.ClientManager = ClientManager;
- RegisterHandlers();
- }
-
- private void RegisterHandlers()
- {
- ClientManager.Client.RegisterHandler(MsgType.Connect, OnConnected);
- ClientManager.Client.RegisterHandler(MsgType.Disconnect, OnDisconnected);
- ClientManager.Client.RegisterHandler(LoginMsgID.QueryName, OnRecieveID);
- ClientManager.Client.RegisterHandler(PlayerMsgID.Lobby, StartLobby);
- ClientManager.Client.RegisterHandler(PlayerMsgID.GameStart, StartGame);
- ClientManager.Client.RegisterHandler(LoginMsgID.Seed, SetSeed);
- }
-
- private void OnConnected(NetworkMessage msg)
- {
- ClientManager.IsConnected = true;
- Debug.Log("Successfully connected to server");
- }
-
- private void OnDisconnected(NetworkMessage msg)
- {
- ClientManager.IsConnected = false;
- Debug.Log("Disconnected from Server");
- }
-
- private void OnRecieveID(NetworkMessage msg)
- {
- PlayerMsg playerMsg;
- if (!Utility.ReadMessage<PlayerMsg>(msg, out playerMsg))
- return;
-
- Debug.Log("Recieved ID from server: " + playerMsg.ID);
-
- ClientManager.ID = playerMsg.ID;
- ClientManager.SendMessage(LoginMsgID.Name, new StringMsg(ClientManager.ID, ClientManager.Name));
- StartLobby();
- }
-
- private void StartLobby(NetworkMessage msg)
- {
- StartLobby();
- }
-
- private void StartLobby()
- {
- if (PlayersManager.Instance != null)
- PlayersManager.Instance.DestroyPlayers();
-
- UnityEngine.SceneManagement.SceneManager.LoadScene(ClientManager.LobbyScene);
- }
-
- private void StartGame(NetworkMessage msg)
- {
- PlayersManager.Instance.InstantiatePlayers();
- UnityEngine.SceneManagement.SceneManager.LoadScene(ClientManager.GameScene);
- }
-
- private void SetSeed(NetworkMessage msg)
- {
- longMsg longMsg;
- if (!Utility.ReadMessage<longMsg>(msg, out longMsg))
- return;
-
- Random.InitState((int)longMsg.Long);
- }
-
-
-
-
- }
-
- }
|