コード例 #1
0
        void ServerReceive(NetIncomingMessage msg)
        {
            ClientHeaders header = (ClientHeaders)msg.ReadByte();

            switch (header)
            {
            case ClientHeaders.SET_TILE:
                int sX   = msg.ReadInt32();
                int sY   = msg.ReadInt32();
                int sSet = msg.ReadInt32();

                world.SetTile(new Tile(sSet), sX, sY, false, true);

                break;

            case ClientHeaders.INPUT:
                int  hor  = msg.ReadInt32();
                bool jump = msg.ReadBoolean();

                OtherInput.hor = hor;
                OtherInput.PushJump(jump);

                break;

            case ClientHeaders.CHUNK_REQUEST:
                int cX = msg.ReadInt32();
                int cY = msg.ReadInt32();

                var newMsg = Networking.CreateMessage();

                newMsg.Write((byte)ServerHeaders.SEND_CHUNK);
                newMsg.Write(cX);
                newMsg.Write(cY);
                newMsg.Write(world.chunks[cX, cY].ToBytes());

                Networking.SendMessage(newMsg, NetDeliveryMethod.ReliableOrdered, 2);

                break;
            }
        }