示例#1
0
        public Rail_Test()
        {
            RailSynchronizedFactory.Detect(Assembly.GetAssembly(typeof(RailBitBufferExtensions)));

            RailRegistry registryClient = new RailRegistry(Component.Client);

            registryClient.AddEntityType <RailEntityClient <SomeState>, SomeState>();

            RailRegistry registryServer = new RailRegistry(Component.Server);

            registryServer.AddEntityType <RailEntityServer <SomeState>, SomeState>();

            m_Client = new RailClient(registryClient);
            m_Server = new RailServer(registryServer);

            m_PeerClientSide = new Mock <RailNetPeerWrapper>(m_ConClientSide)
            {
                CallBase = true
            };
            m_PeerServerSide = new Mock <RailNetPeerWrapper>(m_ConServerSide)
            {
                CallBase = true
            };

            m_ConClientSide.OnSend += m_PeerServerSide.Object.Receive;
            m_ConServerSide.OnSend += m_PeerClientSide.Object.Receive;
        }
示例#2
0
        public NetServerWrapper(NetCore network, RailServer server)
        {
            this.server = server;

            this.network           = network;
            network.PeerConnected += OnPeerConnected;
            network.PeerClosed    += OnPeerClosed;
        }
示例#3
0
        public EntityManager(RailServer server)
        {
            m_Server = server ?? throw new ArgumentNullException(nameof(server));
            m_Room   = m_Server.StartRoom();
            InitRoom(m_Room);

            // Setup callbacks
            m_Server.ClientAdded   += OnClientAdded;
            m_Server.ClientRemoved += OnClientRemoved;
        }
示例#4
0
        public Server(int port, float updateRate)
        {
            this.port = port;

            this.network = new NetCore("NetDemo1.0", true);
            this.server  = new RailServer();

            this.wrapper = new NetServerWrapper(network, server);
            this.arena   = new Arena(this.server);

            this.clock = new Clock(updateRate);
            this.clock.OnFixedUpdate += this.FixedUpdate;
        }
示例#5
0
        public Arena(RailServer server)
        {
            this.server = server;

            server.ControllerJoined += this.OnControllerAdded;
            server.ControllerLeft   += this.OnControllerLeft;

            for (int i = 0; i < 15; i++)
            {
                for (int j = 0; j < 15; j++)
                {
                    DummyEntity dummy = this.server.AddNewEntity <DummyEntity>();
                    dummy.State.ArchetypeId = 1;
                    dummy.State.X           = i * 5.0f;
                    dummy.State.Y           = j * 5.0f;
                }
            }
        }
示例#6
0
 public CoopServerRail(Server server, IEnvironmentServer environment)
 {
     m_Server        = server;
     m_Instance      = new RailServer(Registry.Server(environment));
     m_EntityManager = new EntityManager(m_Instance);
 }