public GameClient(NetPeer peer, bool isServer) { Peer = peer ?? throw new ArgumentNullException(nameof(peer)); Replication = new ReplicationSystem(); List <IPacketStreamReader> streamReaders = new List <IPacketStreamReader>(); List <IPacketStreamWriter> streamWriters = new List <IPacketStreamWriter>(); List <IPacketTransmissionNotificationReceiver> notificationReceivers = new List <IPacketTransmissionNotificationReceiver>(); // PacketStreams and Transmission notifications will be given to these systems in // the order they appear in this list so the stream has to be read in the same order it was written if (isServer) { ControlledObjectSys = new ControlledObjectedSystemServer(); streamWriters.Add(ControlledObjectSys); streamWriters.Add(Replication); streamReaders.Add(ControlledObjectSys); notificationReceivers.Add(Replication); } else { ControlledObjectSys = new ControlledObjectSystemClient(); streamWriters.Add(ControlledObjectSys); streamReaders.Add(ControlledObjectSys); streamReaders.Add(Replication); } PacketStream = new PacketStreamSystem(Peer, streamReaders, streamWriters, notificationReceivers); }
private ReplicationSystem CreateSystem() { var system = new ReplicationSystem(); system.AddType(1, typeof(Protobuf.TestObject)); system.AddType(2, typeof(Protobuf.CallTestObject)); return(system); }