74 lines
2.2 KiB
C#
74 lines
2.2 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using Mirror;
|
|
using TTTSC.Player.NetworkCharacter;
|
|
|
|
public class TTTSC_NetworkManager : NetworkManager
|
|
{
|
|
[SerializeField]
|
|
NetworkManagerValuieHolder _networkManagerValuieHolder;
|
|
|
|
[SerializeField]
|
|
NetworkPresenceUtilities _networkPresenceUtilities;
|
|
|
|
|
|
public override void OnClientConnect(NetworkConnection conn)
|
|
{
|
|
base.OnClientConnect(conn);
|
|
|
|
Debug.Log("Client connected to server");
|
|
|
|
_networkPresenceUtilities.ClientEnterGame("Classic", networkSceneName, numPlayers.ToString(), "16");
|
|
}
|
|
|
|
public override void OnServerAddPlayer(NetworkConnection conn)
|
|
{
|
|
base.OnServerAddPlayer(conn);
|
|
|
|
Debug.Log($"Server added a new player, there is now {numPlayers} players");
|
|
|
|
AddPlayerObject(conn);
|
|
|
|
//update player count
|
|
_networkPresenceUtilities.UpdatePresence("presence_playersInGame", numPlayers.ToString());
|
|
|
|
Debug.Log("ther is " + numPlayers + " players in game");
|
|
}
|
|
|
|
private void AddPlayerObject(NetworkConnection conn)
|
|
{
|
|
_networkManagerValuieHolder.AddPlayerObject(conn.connectionId, null, null);
|
|
Debug.Log($"Added player object with connection id {conn.connectionId}");
|
|
}
|
|
|
|
public override void OnServerDisconnect(NetworkConnection conn)
|
|
{
|
|
base.OnServerDisconnect(conn);
|
|
|
|
//update player count
|
|
_networkPresenceUtilities.UpdatePresence("presence_playersInGame", numPlayers.ToString());
|
|
|
|
RemovePlayerObject(conn);
|
|
|
|
for (int playerObject = 0; playerObject < _networkManagerValuieHolder.playerObjectList.Count; playerObject++)
|
|
{
|
|
if (_networkManagerValuieHolder.playerObjectList[playerObject].connectionId == conn.connectionId)
|
|
{
|
|
_networkManagerValuieHolder.playerObjectList.RemoveAt(playerObject);
|
|
break;
|
|
}
|
|
}
|
|
|
|
Debug.Log("Server disconnected");
|
|
}
|
|
|
|
private void RemovePlayerObject(NetworkConnection conn)
|
|
{
|
|
_networkManagerValuieHolder.RemovePlayerObject(conn.connectionId);
|
|
Debug.Log($"Removed player object with connection id {conn.connectionId}");
|
|
}
|
|
|
|
|
|
|
|
}
|