用户:龙的传人_查看:7 回复:14 评论:7 创建时间:2021-04-26T21:17:30
以前我是做过关于扩建技术的哈,
我又改进了亿下,
跟MC和尹子差远了()
不喜勿喷!
function hill(x1,y1,z1,width){
var l=[[[-1,0],[-2,0],[-1,-1],[-1,1]],[[1,0],[2,0],[1,-1],[1,1]],[[0,-1],[0,-2],[-1,-1],[1,-1]],[[0,1],[0,2],[-1,1],[1,1]]]
for(y2=y1;y2<=Infinity;y2++){
var b=0;
for(i1=0;i1<=3;i1++){
if(voxels.getVoxelId(x1+l[i1][0][0],y2-1,z1+l[i1][0][1])!=0){
b+=1;
}
}
if(b==4){
voxels.setVoxelId(x1,y2,z1,127);
}else{
break;
}
for(i2=0;i2<=width*2-y2**1.3;i2++){
for(x2=0;x2<=254;x2++){
for(z2=0;z2<=254;z2++){
if(voxels.getVoxelId(x2,y2,z2)==127){
for(i3=0;i3<=3;i3++){
if(voxels.getVoxelId(x2+l[i3][0][0],y2,z2+l[i3][0][1])!=127){
var b=0;
for(i4=1;i4<=3;i4++){
if(voxels.getVoxelId(x2+l[i3][i4][0],y2-2,z2+l[i3][i4][1])==0||voxels.getVoxelId(x2+l[i3][i4][0],y2-1,z2+l[i3][i4][1])!=0){
b+=1;
}
}
if(b==3&&Math.random()>=0.5){
voxels.setVoxelId(x2+l[i3][0][0],y2,z2+l[i3][0][1],125);
}
}
}
}
}
}
for(x2=0;x2<=254;x2++){
for(z2=0;z2<=254;z2++){
if(voxels.getVoxelId(x2,y2,z2)==125){
voxels.setVoxelId(x2,y2,z2,127);
}
}
}
}
for(x2=0;x2<=254;x2++){
for(z2=0;z2<=254;z2++){
if(voxels.getVoxelId(x2,y2,z2)==127){
voxels.setVoxelId(x2,y2,z2,317);
}
}
}
}
}
(async function(){
var num=Math.round(Math.random()*30+20);
for(i=1;i<=num;i++){
var x=Math.round(Math.random()*254);
var y=9;
var z=Math.round(Math.random()*254);
var w=Math.round(Math.random()*20+30);
hill(x,y,z,w);
await sleep(1000);
}
for(x=0;x<=254;x++){
for(z=0;z<=254;z++){
for(y=0;y<=254;y++){
if(voxels.getVoxelId(x,y,z)==317){
voxels.setVoxelId(x,y,z,127);
}
if(voxels.getVoxel(x,y,z)==127&&voxels.getVoxel(x,y+1,z)!=0){
voxels.setVoxel(x,y,z,'dirt');
}
}
}
}
})();
YDS尹子这个可以稍微解决一下噪点的问题
多运行几次就好了
(async function(){
var waterLevel=14;/*水平面高度 */
var d=[
[1,0,0],
[0,0,1],
[-1,0,0],
[0,0,-1]
];
var 喵sReadyBreak=[];
world.say("消噪初始化...");
for(let i=0;i<257;i++){
for(let j=0;j<257;j++){
for(let k=0;k<60;k++){
if([127,125].includes(voxels.getVoxel(i,k,j))){
var cnt=0,cnt2=0;
for(let s=0;s<d.length;s++){
if([0,3喵].includes(voxels.getVoxel(i+d[s][0],k+d[s][1],j+d[s][2]))){
cnt++;
}else{
cnt2++;
}
}
var 喵s=0;
if(k<=waterLevel)喵s=3喵;
if(cnt>=3)喵sReadyBreak.push([i,k,j,喵s]);
}
}
}
await sleep(5);
if(i%10==0)world.say(i+"/257");
}
world.say("清除中...");
for(let i=0;i<喵sReadyBreak.length;i++){
voxels.setVoxel(喵sReadyBreak[i][0],喵sReadyBreak[i][1],喵sReadyBreak[i][2],喵sReadyBreak[i][3])
}
world.say("地形正常化...");
for(let i=0;i<257;i++){for(let j=0;j<257;j++)for(let k=0;k<55;k++){if(voxels.getVoxel(i,k,j)==voxels.id("dirt")&&voxels.getVoxel(i,k+1,j)==0){voxels.setVoxel(i,k,j,"grass")}}};
for(let i=0;i<257;i++){for(let j=0;j<257;j++)for(let k=0;k<55;k++){if(voxels.getVoxel(i,k,j)==voxels.id("grass")&&voxels.getVoxel(i,k+1,j)!=0){voxels.setVoxel(i,k,j,"dirt")}}}
})();点赞2
评论
七式草莓用这个更好:
function hill(x1,y1,z1,width){
var l=[[[-1,0],[-2,0],[-1,-1],[-1,1]],[[1,0],[2,0],[1,-1],[1,1]],[[0,-1],[0,-2],[-1,-1],[1,-1]],[[0,1],[0,2],[-1,1],[1,1]]];
for(y2=y1;y2<=Infinity;y2++){
var b=0;
for(i1=0;i1<=3;i1++){
if(voxels.getVoxelId(x1+l[i1][0][0],y2-1,z1+l[i1][0][1])!=0){
b+=1;
};
};
if(b==4){
voxels.setVoxelId(x1,y2,z1,127);
}else{
break;
};
for(i2=0;i2<=width*2-y2**1.3;i2++){
for(x2=0;x2<=254;x2++){
for(z2=0;z2<=254;z2++){
if(voxels.getVoxelId(x2,y2,z2)==127){
for(i3=0;i3<=3;i3++){
if(voxels.getVoxelId(x2+l[i3][0][0],y2,z2+l[i3][0][1])!=127){
var b=0;
for(i4=1;i4<=3;i4++){
if(voxels.getVoxelId(x2+l[i3][i4][0],y2-2,z2+l[i3][i4][1])==0||voxels.getVoxelId(x2+l[i3][i4][0],y2-1,z2+l[i3][i4][1])!=0){
b+=1;
};
};
if(b==3&&Math.random()>=0.5){
voxels.setVoxelId(x2+l[i3][0][0],y2,z2+l[i3][0][1],125);
};
};
};
};
};
};
for(x2=0;x2<=254;x2++){
for(z2=0;z2<=254;z2++){
if(voxels.getVoxelId(x2,y2,z2)==125){
voxels.setVoxelId(x2,y2,z2,127);
};
};
};
};
for(x2=0;x2<=254;x2++){
for(z2=0;z2<=254;z2++){
if(voxels.getVoxelId(x2,y2,z2)==127){
voxels.setVoxelId(x2,y2,z2,317);
};
};
};
};
};
(async function(){
var num=Math.round(Math.random()*30+20);
for(i=1;i<=num;i++){
var x=Math.round(Math.random()*254);
var y=9;
var z=Math.round(Math.random()*254);
var w=Math.round(Math.random()*20+30);
hill(x,y,z,w);
await sleep(1000);
};
for(x=0;x<=254;x++){
for(z=0;z<=254;z++){
for(y=0;y<=254;y++){
if(voxels.getVoxelId(x,y,z)==317){
voxels.setVoxelId(x,y,z,127);
};
if(voxels.getVoxel(x,y,z)==127&&voxels.getVoxel(x,y+1,z)!=0){
voxels.setVoxel(x,y,z,'dirt');
};
};
};
};
})();点赞0
评论