Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function placeTree(x, y, z, height, array)
- {
- var leavesColor = 0x1C9C3E;
- for (var i = 0; i < height; i++)
- {
- array.push([x,y,z+i,0x825E41]);
- }
- for (var xx = -2; xx < 3; xx++)
- for (var yy = -2; yy < 3; yy++)
- for (var zz = 0; zz < 2; zz++)
- array.push([x + xx, y +yy, z + height + zz, leavesColor]);
- for (var xx = -1; xx < 2; xx++)
- for (var yy = -1; yy < 2; yy++)
- for (var zz = 0; zz < 2; zz++)
- {
- if (zz == 1)
- {
- if (!((xx == -1 && yy == -1) || (xx == 1 && yy == -1) || (xx == -1 && yy == 1) || (xx == 1 && yy == 1)))
- array.push([x + xx, y + yy, z + height + 2 + zz, leavesColor]);
- }
- else
- array.push([x + xx, y + yy, z + height + 2 + zz, leavesColor]);
- }
- }
- function getColor(x, y)
- {
- return Math.round(80 + 100 * colorPerlin.noise(x/colorSmoothness,y/colorSmoothness,5)) << 8;
- }
- var b=[];
- var size = 258;
- var height = 5;
- var waveHeight = 10;
- var terrainPerlin = new Perlin('A seed!');
- var terrainSmoothness = 30;
- var colorPerlin = new Perlin('Another seed!');
- var colorSmoothness = 60;
- for(var x = 0; x < size; x++)
- {
- for(var y = 0; y < size ; y++)
- {
- for(var z = 0; z < height + waveHeight + 1; z++)
- {
- var h = height + Math.round(waveHeight * terrainPerlin.noise(x/terrainSmoothness,y/terrainSmoothness,5));
- if (z < h)
- {
- b.push([x,y,z,0x777777]);
- }
- else if (z < h + 1)
- {
- var color = getColor(x, y);
- b.push([x,y,z,color]);
- if (Math.random() < 0.001)
- {
- placeTree(x, y, z, 3 + Math.round(Math.random() * 3), b);
- }
- }
- }
- }
- }
- gProject.putBlocks(b);
- gEditor.requestRender();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement