is there way to distribute foliage on static mesh based on texture like landscape

This node

image

I think you need the geometry script plugin enable for that.

Another thing you can do is write the texture to a render target, and read that