package amidst.map.layers;
import java.util.Random;
import amidst.Options;
import amidst.map.Fragment;
import amidst.map.ImageLayer;
public class SlimeLayer extends ImageLayer {
private static int size = Fragment.SIZE >> 4;
private Random random = new Random();
public SlimeLayer() {
super(size);
}
@Override
public boolean isVisible() {
return Options.instance.showSlimeChunks.get();
}
@Override
public void drawToCache(Fragment fragment) {
int[] dataCache = Fragment.getIntArray();
for (int y = 0; y < size; y++) {
for (int x = 0; x < size; x++) {
int xPosition = fragment.getChunkX() + x;
int yPosition = fragment.getChunkY() + y;
random.setSeed(Options.instance.seed +
xPosition * xPosition * 0x4c1906 +
xPosition * 0x5ac0db +
yPosition * yPosition * 0x4307a7L +
yPosition * 0x5f24f ^ 0x3ad8025f);
dataCache[y * size + x] = (random.nextInt(10) == 0) ? 0xA0FF00FF : 0x00000000;
}
}
fragment.setImageData(layerId, dataCache);
}
}