private void SendHitResponsePacket(int shooter) { Logger.Log("S: Sending las processed = " + _clients[shooter].ClientInput.LastShootProcessed, false, "lime"); var packet = Packet.Obtain(); var buffer = packet.Buffer; EventSerializer.SerializeIntoBuffer(buffer, Event.Hit); buffer.PutInt(_clients[shooter].ClientInput.LastShootProcessed); buffer.Flush(); _channel.Send(packet, _clients[shooter].EndPoint); packet.Free(); }
private void BroadcastNewJoin(int joinedClientId) { var packet = Packet.Obtain(); var buffer = packet.Buffer; EventSerializer.SerializeIntoBuffer(buffer, Event.JoinBroadcast); _clients[joinedClientId].SerializeIntoBuffer(buffer); buffer.Flush(); foreach (var client in _clients.Where(client => client.Id != joinedClientId)) { _channel.Send(packet, client.EndPoint); } packet.Free(); }
private Packet GenerateSnapshotPacket() { var packet = Packet.Obtain(); var buffer = packet.Buffer; var clientsThatChanged = _clients; //_clients.Where(client => client.Entity.transform.hasChanged).ToList(); EventSerializer.SerializeIntoBuffer(buffer, Event.Snapshot); buffer.PutInt(clientsThatChanged.Count); foreach (var client in clientsThatChanged) { client.SerializeIntoBuffer(buffer); //client.Entity.transform.hasChanged = false; } buffer.Flush(); return(packet); }
private Packet GenerateJoinedPacket(int id) { var packet = Packet.Obtain(); var buffer = packet.Buffer; EventSerializer.SerializeIntoBuffer(buffer, Event.Join); _clients[id].SerializeIntoBuffer(buffer); buffer.PutInt(_clients.Count - 1); foreach (var clientInfo in _clients.Where(clientInfo => clientInfo.Id != id)) { clientInfo.SerializeIntoBuffer(buffer); } buffer.Flush(); return(packet); }