package org.dynmap.hdmap.renderer;
import java.util.ArrayList;
import java.util.Map;
import java.util.Random;
import org.dynmap.renderer.CustomRenderer;
import org.dynmap.renderer.MapDataContext;
import org.dynmap.renderer.RenderPatch;
import org.dynmap.renderer.RenderPatchFactory;
public class TFCLooseRockRenderer extends CustomRenderer {
@Override
public boolean initializeRenderer(RenderPatchFactory rpf, int blkid, int blockdatamask, Map<String,String> custparm) {
if(!super.initializeRenderer(rpf, blkid, blockdatamask, custparm))
return false;
return true;
}
@Override
public int getMaximumTextureCount() {
return 1;
}
private int[] patches = { 0, 0, 0, 0, 0, 0 };
@Override
public RenderPatch[] getRenderPatchList(MapDataContext ctx) {
ArrayList<RenderPatch> list = new ArrayList<RenderPatch>();
/* Generate seed from coordinates */
int seed = (ctx.getX() * ctx.getZ()) + ctx.getY();
Random R = new Random(seed);
/* Generate rock dimension */
float xOffset = (R.nextInt(5) - 2) * 0.05F;
float zOffset = (R.nextInt(5) - 2) * 0.05F;
float xOffset2 = (R.nextInt(5) - 2) * 0.05F;
float yOffset2 = (R.nextInt(5) - 2) * 0.05F;
float zOffset2 = (R.nextInt(5) - 2) * 0.05F;
CustomRenderer.addBox(ctx.getPatchFactory(), list, 0.35 + xOffset, 0.65 + xOffset2, 0.0, 0.15 + yOffset2, 0.35 + zOffset, 0.65 + zOffset2, patches);
return list.toArray(new RenderPatch[6]);
}
}