No idea about what will be a suitable texture for it. I've never used this effect myself. I've written it as a test case for the ITextureEffect-implementation and included it because i thought "why not...?". If you are interested in modifying it, here's the code:
public class WaterTextureEffect implements ITextureEffect, java.io.Serializable{
private int[] buffer1;
private int[] buffer2;
private int width=0;
private int height=0;
private byte shifter=0;
private int ripples=0;
public WaterTextureEffect(int intensity) {
ripples=intensity;
}
public void init(Texture tex) {
buffer1=new int[tex.getArraySize()];
buffer2=new int[tex.getArraySize()];
width=tex.getWidth();
height=tex.getHeight();
shifter=tex.shifter;
}
public void apply(int[] dest, int[] source) {
int pos=(int) (Math.random()*width*height);
buffer1[pos]=ripples;
int end=height<<shifter-width;
for (int i=width; i<end; i++) {
pos=(((buffer1[i-1]+
buffer1[i+1]+
buffer1[i-width]+
buffer1[i+width])>>1)-buffer2[i]);
buffer2[i]=pos-(pos>>5);
}
end=height<<shifter;
int size=width*height;
for (int i=width; i<size; i++) {
int offsetX=buffer2[i-1]-buffer2[i+1];
int offsetY=buffer2[i-width]-buffer2[i+width];
int first=i+offsetX+(offsetY<<shifter);
if (first<0) {
first=0;
} else {
if (first>size) {
first=size;
}
}
dest[i]=source[first];
}
int[] tmp=buffer1;
buffer1=buffer2;
buffer2=tmp;
}
}