Merge pull request #195 from vis2k/remove_networkserverclient_networkconnectionclass_magic

Remove networkserverclient networkconnectionclass magic
This commit is contained in:
vis2k 2018-12-31 15:56:49 +01:00 committed by GitHub
commit aa7ba82064
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 9 additions and 25 deletions

View File

@ -11,9 +11,8 @@ class ULocalConnectionToClient : NetworkConnection
public LocalClient localClient { get { return m_LocalClient; } } public LocalClient localClient { get { return m_LocalClient; } }
public ULocalConnectionToClient(LocalClient localClient) public ULocalConnectionToClient(LocalClient localClient) : base ("localClient")
{ {
address = "localClient";
m_LocalClient = localClient; m_LocalClient = localClient;
} }
@ -28,9 +27,8 @@ protected override bool SendBytes(byte[] bytes, int channelId = Channels.Default
// send messages on this connection causes the server's handler function to be invoked directly. // send messages on this connection causes the server's handler function to be invoked directly.
internal class ULocalConnectionToServer : NetworkConnection internal class ULocalConnectionToServer : NetworkConnection
{ {
public ULocalConnectionToServer() public ULocalConnectionToServer() : base("localServer")
{ {
address = "localServer";
} }
protected override bool SendBytes(byte[] bytes, int channelId = Channels.DefaultReliable) protected override bool SendBytes(byte[] bytes, int channelId = Channels.DefaultReliable)

View File

@ -8,8 +8,6 @@ namespace Mirror
{ {
public class NetworkClient public class NetworkClient
{ {
Type m_NetworkConnectionClass = typeof(NetworkConnection);
static bool s_IsActive; static bool s_IsActive;
public static List<NetworkClient> allClients = new List<NetworkClient>(); public static List<NetworkClient> allClients = new List<NetworkClient>();
@ -47,13 +45,6 @@ internal void SetHandlers(NetworkConnection conn)
public bool isConnected { get { return connectState == ConnectState.Connected; } } public bool isConnected { get { return connectState == ConnectState.Connected; } }
public Type networkConnectionClass { get { return m_NetworkConnectionClass; } }
public void SetNetworkConnectionClass<T>() where T : NetworkConnection
{
m_NetworkConnectionClass = typeof(T);
}
public NetworkClient() public NetworkClient()
{ {
if (LogFilter.Debug) { Debug.Log("Client created version " + Version.Current); } if (LogFilter.Debug) { Debug.Log("Client created version " + Version.Current); }
@ -86,9 +77,8 @@ public void Connect(string serverIp, ushort serverPort)
Transport.layer.ClientConnect(serverIp, serverPort); Transport.layer.ClientConnect(serverIp, serverPort);
// setup all the handlers // setup all the handlers
m_Connection = (NetworkConnection)Activator.CreateInstance(m_NetworkConnectionClass); m_Connection = new NetworkConnection(m_ServerIp, m_ClientId, 0);
m_Connection.SetHandlers(m_MessageHandlers); m_Connection.SetHandlers(m_MessageHandlers);
m_Connection.Initialize(m_ServerIp, m_ClientId, 0);
} }
void PrepareForConnect() void PrepareForConnect()

View File

@ -23,7 +23,11 @@ public class NetworkConnection : IDisposable
public bool logNetworkMessages; public bool logNetworkMessages;
public bool isConnected { get { return hostId != -1; }} public bool isConnected { get { return hostId != -1; }}
public virtual void Initialize(string networkAddress, int networkHostId, int networkConnectionId) public NetworkConnection(string networkAddress)
{
address = networkAddress;
}
public NetworkConnection(string networkAddress, int networkHostId, int networkConnectionId)
{ {
address = networkAddress; address = networkAddress;
hostId = networkHostId; hostId = networkHostId;

View File

@ -34,13 +34,6 @@ public sealed class NetworkServer
public static bool active { get { return s_Active; } } public static bool active { get { return s_Active; } }
public static bool localClientActive { get { return s_LocalClientActive; } } public static bool localClientActive { get { return s_LocalClientActive; } }
static Type s_NetworkConnectionClass = typeof(NetworkConnection);
public static Type networkConnectionClass { get { return s_NetworkConnectionClass; } }
public static void SetNetworkConnectionClass<T>() where T : NetworkConnection
{
s_NetworkConnectionClass = typeof(T);
}
public static void Reset() public static void Reset()
{ {
s_Active = false; s_Active = false;
@ -359,8 +352,7 @@ static void HandleConnect(int connectionId, byte error)
Transport.layer.GetConnectionInfo(connectionId, out address); Transport.layer.GetConnectionInfo(connectionId, out address);
// add player info // add player info
NetworkConnection conn = (NetworkConnection)Activator.CreateInstance(s_NetworkConnectionClass); NetworkConnection conn = new NetworkConnection(address, s_ServerHostId, connectionId);
conn.Initialize(address, s_ServerHostId, connectionId);
AddConnection(conn); AddConnection(conn);
OnConnected(conn); OnConnected(conn);
} }