public void Decode(Lidgren.Network.NetIncomingMessage msg)
        {
            this.Visible = true;
            cursorPosition.X = msg.ReadInt16();
            cursorPosition.Y = msg.ReadInt16();
            //if (msg.ReadBoolean())
            status = msg.ReadByte();

            byte remotePuzzleType = msg.ReadByte();
            if (puzzle.ID() != remotePuzzleType && remotePuzzleType != 0)
            {
                if (puzzle != null)
                    Game.Components.Remove(puzzle);
                puzzle = remotePuzzleType.CreateFromID(Game, player);
                puzzle.Visible = true;
            }

            puzzle.Decode(msg);
        }