用户:Alex79查看:10 回复:6 评论:10 创建时间:2020-09-20T18:03:30
效果:

代码:
function tree(x,y,z){
if(voxels.getVoxel(x,y,z)!=voxels.id("water")){
var rand=1;
for(let i=y+rand;i<y+4+rand;i++){
voxels.setVoxel(x,i,z,"acacia");
}
for(let i=3+rand;i<5+rand;i++){
for(let j=-2;j<3;j++){
for(let k=-2;k<3;k++){
voxels.setVoxel(x+j,y+i,z+k,"green_leaf");
}
}
}
for(let j=-1;j<2;j++){
for(let k=-1;k<2;k++){
voxels.setVoxel(x+j,y+5+rand,z+k,"green_leaf");
}
}
voxels.setVoxel(x-1,y+6+rand,z,"green_leaf");
voxels.setVoxel(x,y+6+rand,z,"green_leaf");
voxels.setVoxel(x+1,y+6+rand,z,"green_leaf");
voxels.setVoxel(x,y+6+rand,z-1,"green_leaf");
voxels.setVoxel(x,y+6+rand,z+1,"green_leaf");
}
};
var seaLevel=20;
var xzZoom=10;
var yZoom=5;
var exZ1=5;
var exZ2=5;
var exZ3=20;
var base=15;
(async function(){
for(let i=0;i<127;i+=0.1){
var xh=Math.sin(i/xzZoom)*yZoom;
for(let j=0;j<127;j+=0.1){
var zh=Math.sin(Math.cos(j/xzZoom),3)*yZoom*exZ1;
if(xh+zh+base<seaLevel){
voxels.setVoxel(i,xh+zh+base,j,"dirt");
for(let k=0;k<xh+zh+base-1;k++){
voxels.setVoxel(i,k,j,"dirt");
}
}else if(Math.round(xh+zh+base)==seaLevel){
voxels.setVoxel(i,xh+zh+base,j,"sand");
for(let k=0;k<xh+zh+base-1;k++){
voxels.setVoxel(i,k,j,"dirt");
}
}else{
voxels.setVoxel(i,xh+zh+base,j,"grass");
for(let k=0;k<xh+zh+base-1;k++){
voxels.setVoxel(i,k,j,"dirt");
}
}
}
await sleep(10);
}
for(let i=0;i<127;i++){
for(let j=0;j<127;j++){
for(let k=0;k<=seaLevel;k++){
if(voxels.getVoxel(i,k,j)==0){
voxels.setVoxel(i,k,j,"water");
}
}
}
}
await sleep(1000);
world.say("开始生成树木");
for(let i=0;i<127;i++){
for(let j=0;j<127;j++){
for(let k=0;k<100;k++){
if(voxels.getVoxel(i,k,j)==voxels.id("grass")){
if(Math.random()*90<=1){
tree(i,k,j);
}
}
}
}
await sleep(10);
}
})()