Example #1
0
 public RailController(
     IRailStateConstruction stateCreator,
     ExternalEntityVisibility eVisibility,
     [CanBeNull] IRailNetPeer netPeer)
 {
     controlledEntities = new HashSet <RailEntityBase>();
     NetPeer            = netPeer;
     Scope = eVisibility == ExternalEntityVisibility.Scoped ?
             new RailScope(this, stateCreator) :
             null;
 }
Example #2
0
        protected RailPeer(
            RailResource resource,
            IRailNetPeer netPeer,
            ExternalEntityVisibility visibility,
            uint remoteSendRate,
            RailInterpreter interpreter,
            RailPacketIncoming reusableIncoming,
            RailPacketOutgoing reusableOutgoing) : base(resource, visibility, netPeer)
        {
            Resource         = resource;
            RemoteClock      = new RailClock(remoteSendRate);
            this.interpreter = interpreter;

            outgoingEvents        = new Queue <RailEvent>();
            this.reusableIncoming = reusableIncoming;
            this.reusableOutgoing = reusableOutgoing;
            lastQueuedEventId     = SequenceId.Start.Next;
            eventHistory          = new RailHistory(RailConfig.HISTORY_CHUNKS);

            LocalTick = Tick.START;
            netPeer.PayloadReceived += OnPayloadReceived;
        }