예제 #1
0
        private void ProcessPacket(byte[] bytes, IPEndPoint source)
        {
            try {
                int    packetEnd = bytes.Length - 1;
                int    i         = 0;
                Header h         = BuildHeader(bytes, ref packetEnd, zeroBuffer, ref i);
                Packet p         = null;
                switch (h.ID)
                {
                ///TODO: Add other custom packet types here
                case 427: p = new SetCameraPacket(h, bytes, ref i); break;

                default: p = Packet.BuildPacket(bytes, ref i, zeroBuffer); break;
                }

                Logger.Info("Received " + p.Type + " packet from " + source + ".");
                try {
                    receivedPackets++;
                    if (OnPacketReceived != null)
                    {
                        OnPacketReceived(p, source);
                    }
                } catch (Exception e) {
                    Logger.Info("Problem in packet received delegate.", e);
                }
            } catch (Exception e) {
                Logger.Info("Problem unpacking packet from " + source + ".", e);
            }
        }
 public void CameraReset(float interpolationTime)
 {
     Field.BroadcastPacket(SetCameraPacket.Set(interpolationTime));
 }