You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

56 lines
1.6 KiB

  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.Networking;
  5. namespace Multiplayer
  6. {
  7. public class ClientLoginManager
  8. {
  9. private ClientManager ClientManager;
  10. public ClientLoginManager(ClientManager ClientManager)
  11. {
  12. this.ClientManager = ClientManager;
  13. RegisterHandlers();
  14. }
  15. private void RegisterHandlers()
  16. {
  17. ClientManager.Client.RegisterHandler(MsgType.Connect, OnConnected);
  18. ClientManager.Client.RegisterHandler(MsgType.Disconnect, OnDisconnected);
  19. ClientManager.Client.RegisterHandler(LoginMsgID.QueryName, OnRecieveID);
  20. }
  21. private void OnConnected(NetworkMessage msg)
  22. {
  23. ClientManager.IsConnected = true;
  24. Debug.Log("Successfully connected to server");
  25. }
  26. private void OnDisconnected(NetworkMessage msg)
  27. {
  28. ClientManager.IsConnected = false;
  29. Debug.Log("Disconnected from Server");
  30. }
  31. private void OnRecieveID(NetworkMessage msg)
  32. {
  33. PlayerMsg playerMsg;
  34. if (!Utility.ReadMessage<PlayerMsg>(msg, out playerMsg))
  35. return;
  36. Debug.Log("Recieved ID from server: " + playerMsg.ID);
  37. ClientManager.ID = playerMsg.ID;
  38. ClientManager.SendMessage(LoginMsgID.Name, new StringMsg(ClientManager.ID, ClientManager.Name));
  39. }
  40. private void GoToLobby()
  41. {
  42. UnityEngine.SceneManagement.SceneManager.LoadScene(ClientManager.LobbyScene);
  43. }
  44. }
  45. }