Exemplo n.º 1
0
        protected override void FirstInitSetup()
        {
            OrbCatalog.indexToType = Array.Empty <Type>();
            OrbCatalog.typeToIndex = new();
            OrbCatalog.GenerateCatalog();

            VanillaOrbSerializers.AddAll();
            NetworkCore.RegisterMessageType <OrbMessage>();
            base.FirstInitSetup();
        }
Exemplo n.º 2
0
        public static void Send <T>(this T message, NetworkDestination destination, Int32 recievedFrom = -1)
            where T : INetMessage
        {
            if (destination.ShouldRun())
            {
                message.OnRecieved();
            }

            if (destination.ShouldSend())
            {
                Header header = destination.GetHeader(NetworkCore.GetNetworkCoreHash(typeof(T)));

                if (NetworkServer.active)
                {
                    for (Int32 i = 0; i < NetworkServer.connections.Count; ++i)
                    {
                        if (i == recievedFrom)
                        {
                            continue;
                        }

                        NetworkConnection conn = NetworkServer.connections[i];
                        if (conn == null)
                        {
                            continue;
                        }

                        if (NetworkServer.localClientActive && NetworkServer.localConnections.Contains(conn))
                        {
                            continue;
                        }

                        using (Writer netWriter = NetworkCore.GetWriter(NetworkCore.messageIndex, conn, NetworkCore.qos))
                        {
                            NetworkWriter writer = netWriter;
                            writer.Write(header);
                            writer.Write(message);
                        }
                    }
                }
                else if (NetworkClient.active)
                {
                    using (Writer netWriter = NetworkCore.GetWriter(NetworkCore.messageIndex, ClientScene.readyConnection, NetworkCore.qos))
                    {
                        NetworkWriter writer = netWriter;
                        writer.Write(header);
                        writer.Write(message);
                    }
                }
            }
        }
Exemplo n.º 3
0
        public static void Send <TRequest, TReply>(this TRequest request, NetworkDestination destination, Int32 recievedFrom = -1)
            where TRequest : INetRequest <TRequest, TReply>
            where TReply : INetRequestReply <TRequest, TReply>
        {
            if (destination.ShouldRun())
            {
                request.OnRequestRecieved().OnReplyRecieved();
            }

            if (destination.ShouldSend())
            {
                Header header = destination.GetHeader(NetworkCore.GetNetworkCoreHash(request.GetType()));

                if (NetworkServer.active)
                {
                    for (Int32 i = 0; i < NetworkServer.connections.Count; ++i)
                    {
                        if (i == recievedFrom)
                        {
                            continue;
                        }

                        NetworkConnection conn = NetworkServer.connections[i];
                        if (conn == null)
                        {
                            continue;
                        }

                        using (Writer netWriter = NetworkCore.GetWriter(NetworkCore.messageIndex, conn, NetworkCore.qos))
                        {
                            NetworkWriter writer = netWriter;
                            writer.Write(header);
                            writer.Write(request);
                        }
                    }
                }

                if (NetworkClient.active)
                {
                    using (Writer netWriter = NetworkCore.GetWriter(NetworkCore.messageIndex, ClientScene.readyConnection, NetworkCore.qos))
                    {
                        NetworkWriter writer = netWriter;
                        writer.Write(header);
                        writer.Write(request);
                    }
                }
            }
        }
Exemplo n.º 4
0
 protected override void FirstInitSetup()
 {
     NetworkCore.RegisterMessageType <DotMessage>();
     NetworkCore.RegisterMessageType <CleanseMessage>();
     base.FirstInitSetup();
 }