Finalize networking service
This commit is contained in:
@@ -47,7 +47,7 @@ partial class NetworkingService : INetworkingService, IEventConnectedToServer, I
|
|||||||
|
|
||||||
WriteOnlyMessage message = new WriteOnlyMessage();
|
WriteOnlyMessage message = new WriteOnlyMessage();
|
||||||
message.WriteByte((byte)ClientPacketHeader.LUA_NET_MESSAGE);
|
message.WriteByte((byte)ClientPacketHeader.LUA_NET_MESSAGE);
|
||||||
message.WriteByte((byte)ClientToServer.RequestAllNetIds);
|
message.WriteByte((byte)ClientToServer.RequestSync);
|
||||||
GameMain.Client.ClientPeer.Send(message, DeliveryMethod.Reliable);
|
GameMain.Client.ClientPeer.Send(message, DeliveryMethod.Reliable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -56,8 +56,8 @@ partial class NetworkingService : INetworkingService, IEventClientRawNetMessageR
|
|||||||
HandleNetMessageId(netMessage, client);
|
HandleNetMessageId(netMessage, client);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ClientToServer.RequestAllNetIds:
|
case ClientToServer.RequestSync:
|
||||||
WriteAllIds(client);
|
WriteSync(client);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ClientToServer.RequestSingleNetId:
|
case ClientToServer.RequestSingleNetId:
|
||||||
@@ -144,7 +144,7 @@ partial class NetworkingService : INetworkingService, IEventClientRawNetMessageR
|
|||||||
SendToClient(message, null, DeliveryMethod.Reliable);
|
SendToClient(message, null, DeliveryMethod.Reliable);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void WriteAllIds(Client client)
|
private void WriteSync(Client client)
|
||||||
{
|
{
|
||||||
WriteOnlyMessage message = new WriteOnlyMessage();
|
WriteOnlyMessage message = new WriteOnlyMessage();
|
||||||
message.WriteByte((byte)ServerPacketHeader.LUA_NET_MESSAGE);
|
message.WriteByte((byte)ServerPacketHeader.LUA_NET_MESSAGE);
|
||||||
@@ -158,6 +158,12 @@ partial class NetworkingService : INetworkingService, IEventClientRawNetMessageR
|
|||||||
}
|
}
|
||||||
|
|
||||||
SendToClient(message, client.Connection, DeliveryMethod.Reliable);
|
SendToClient(message, client.Connection, DeliveryMethod.Reliable);
|
||||||
|
|
||||||
|
// TODO: when we move to using GUIDs for everything, this should combined into a single message
|
||||||
|
foreach (INetworkSyncVar netVar in netVars.Keys)
|
||||||
|
{
|
||||||
|
SendNetVar(netVar, client.Connection);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendToClient(IWriteMessage netMessage, NetworkConnection connection = null, DeliveryMethod deliveryMethod = DeliveryMethod.Reliable)
|
public void SendToClient(IWriteMessage netMessage, NetworkConnection connection = null, DeliveryMethod deliveryMethod = DeliveryMethod.Reliable)
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ internal partial class NetworkingService : INetworkingService
|
|||||||
NetMessageInternalId,
|
NetMessageInternalId,
|
||||||
NetMessageNetId,
|
NetMessageNetId,
|
||||||
RequestSingleNetId,
|
RequestSingleNetId,
|
||||||
RequestAllNetIds,
|
RequestSync,
|
||||||
}
|
}
|
||||||
|
|
||||||
private enum ServerToClient
|
private enum ServerToClient
|
||||||
@@ -184,11 +184,19 @@ internal partial class NetworkingService : INetworkingService
|
|||||||
}
|
}
|
||||||
|
|
||||||
netVar.ReadNetMessage(message);
|
netVar.ReadNetMessage(message);
|
||||||
|
|
||||||
|
// Sync back to all clients
|
||||||
|
if (netVar.SyncType != NetSync.ClientOneWay)
|
||||||
|
{
|
||||||
|
SendNetVar(netVar);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendNetVar(INetworkSyncVar netVar)
|
public void SendNetVar(INetworkSyncVar netVar) => SendNetVar(netVar);
|
||||||
|
|
||||||
|
public void SendNetVar(INetworkSyncVar netVar, NetworkConnection connection = null)
|
||||||
{
|
{
|
||||||
if (!netVars.TryGetValue(netVar, out NetId netId))
|
if (!netVars.TryGetValue(netVar, out NetId netId))
|
||||||
{
|
{
|
||||||
|
|||||||
+1
@@ -34,4 +34,5 @@ public interface IEntityNetworkingService
|
|||||||
Guid GetNetworkIdForInstance(INetworkSyncVar var);
|
Guid GetNetworkIdForInstance(INetworkSyncVar var);
|
||||||
void RegisterNetVar(INetworkSyncVar netVar);
|
void RegisterNetVar(INetworkSyncVar netVar);
|
||||||
void SendNetVar(INetworkSyncVar netVar);
|
void SendNetVar(INetworkSyncVar netVar);
|
||||||
|
void SendNetVar(INetworkSyncVar netVar, NetworkConnection connection);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user