Esempio n. 1
0
        public void Decode(RailBitBuffer buffer, Func <RailBitBuffer, T> decode)
        {
            IEnumerable <T> decoded = buffer.UnpackAll(decode);

            foreach (T delta in decoded)
            {
                received.Add(delta);
            }
        }
Esempio n. 2
0
        private void DecodeView(RailBitBuffer buffer)
        {
            IEnumerable <KeyValuePair <EntityId, RailViewEntry> > decoded = buffer.UnpackAll(
                buf => new KeyValuePair <EntityId, RailViewEntry>(
                    buf.ReadEntityId(),  // Read: [EntityId]
                    new RailViewEntry(
                        buf.ReadTick(),  // Read: [LastReceivedTick]
                        Tick.INVALID,    // (Local tick not transmitted)
                        buf.ReadBool())) // Read: [IsFrozen]
                );

            foreach (KeyValuePair <EntityId, RailViewEntry> pair in decoded)
            {
                View.RecordUpdate(pair.Key, pair.Value);
            }
        }
Esempio n. 3
0
        private static void DecodeEvents(
            RailPacketIncoming packet,
            IRailEventConstruction eventCreator,
            RailBitBuffer buffer)
        {
            IEnumerable <RailEvent> decoded = buffer.UnpackAll(
                buf => RailEvent.Decode(
                    eventCreator,
                    eventCreator.EventTypeCompressor,
                    buf,
                    packet.SenderTick));

            foreach (RailEvent evnt in decoded)
            {
                packet.Events.Add(evnt);
            }
        }
Esempio n. 4
0
    public void DecodeView(RailBitBuffer buffer)
    {
      IEnumerable<KeyValuePair<EntityId, RailViewEntry>> decoded =
        buffer.UnpackAll(
          () =>
          {
            return new KeyValuePair<EntityId, RailViewEntry>(
              buffer.ReadEntityId(),  // Read: [EntityId] 
              new RailViewEntry(
                buffer.ReadTick(),    // Read: [Tick]
                buffer.ReadBool()));  // Read: [IsFrozen]
          });

      foreach (var pair in decoded)
        this.view.RecordUpdate(pair.Key, pair.Value);
#endif
    }