We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
I have this issue with blocks with transparency like glass or leaaves: There its my code:
createGame = require('voxel-engine') voxelGlass = require('voxel-glass') voxel = require("voxel") rnd1=()=>{ return Math.random() } noise2d=(i,k)=>{ return noise.simplex2(i,k) } noise3d=(i,j,k)=>{ return noise.simplex3(i,j,k) } getSurfaceAt=(i,k)=>{ return Math.floor(noise2d(i/10000,k/10000)*625+noise.simplex2(i/1000,k/1000)*125+noise.simplex2(i/100,k/100)*25) } getBiomeAt=(i,k)=>{ noise1=noise2d(i/10**4,k/10**4)*100 if( 33 <noise1&&noise1<=100){return "forest"} if(-33 <noise1&&noise1<= 33){return "meadows"} if(-100<noise1&&noise1<=-33){return "desert"} } initx=Math.random()*10**5 initz=Math.random()*10**5 var game = createGame({ texturePath: 'textures/', generate: function(i, j, k) { let biome=getBiomeAt(i,k); let surface=getSurfaceAt(i,k) let target2d=noise2d(i/10, k/10) let target3d=noise3d(i/10,j/10,k/10) if(biome=="forest"){ //Forest. if( j<surface-10&& target3d< 0.00) {return 3}//Stone. else if(surface-10<j&&j<surface&& target3d< 0.50) {return 2}//Dirt. else if(surface===j&& target3d< 0.50) {return 1}//Grass. else if(j===surface+1&&rnd1()<0.1&& target3d< 0.00) {return 5}//Bushes. else if(j>surface-100&&j<surface+15&&i%4<1&&k%4<1&& target2d<-0.50) {return 4}//Trunks. else if(j>surface+10&&j<surface+15 ) {return 5}//Leaves. }else if(biome=="meadows"){ //Meadows. if( j<surface-10&& target3d< 0.00) {return 3}//Stone. else if(surface-10<j&&j<surface&& target3d< 0.50) {return 2}//Dirt. else if(surface===j&& target3d< 0.50) {return 1}//Grass. else if(j===surface+1&&i%3!=1&&k%3!=1&&noise3d((i+1000)/10,j/10,k/10)<0&& target3d< 0.00) {return 5}//Bushes. }else if(biome=="desert"){ //Desert. if( j<surface-10&& target3d< 0.25) {return 11}//Sandstone. else if(surface-10<j&&j<surface&& target3d< 0.25) {return 8}//Sand. else if(j<surface+4&&i%2<1&&k%2<1&& target2d<-0.50) {return 9}//Cactus body. else if(j===surface+4&&i%2<1&&k%2<1&& target2d<-0.50) {return 10}//Cactus head. } }, plugins:[voxelGlass], materials: [ ['grass', 'dirt', 'grass_dirt'], 'dirt', 'stone', ['trunk_top', 'trunk_top', 'trunk_side'], 'leaves', 'planks', 'bricks', 'sand', ['cactus_bottom', 'cactus_bottom', 'cactus_side'], ['cactus_top', 'cactus_bottom', 'cactus_side'], ['sandstone'], ['stone_pickaxe'], ['stone_axe'], ['stone_shovel'], ['stone_hoe'], ['glass'] ], meshers:[ voxel.meshers.greedy, voxel.meshers.transgreedy, ], lightsDisabled: false, fogDisabled: true, chunkDistance: 2, chunkSize: 16 }); game.materials.doubleSided = true container=document.body game.appendTo(container) createPlayer=require('voxel-player')(game) fawful=createPlayer('fawful.png') fawful.possess() fawful.yaw.position.set(initx,getSurfaceAt(initx,initz)+10,initz) totalBlocks1Sum=0 currentBlock=12 blocks1={} for(i=1;i<=11;i++){//A bunch of blocks. blocks1[i]={c:0,dur:0,space:1} } for(i=12;i<=15;i++){//Tools. blocks1[i]={c:1,dur:100,space:32} } for(i=16;i<=16;i++){//Glass. blocks1[i]={c:0,dur:0,space:1} } crafting=false health={current:100,max:100} food={current:100,max:100} energy={current:100,max:100} currentCraft=1 document.addEventListener("keydown",(e)=>{ if(e.key=='g'){ } if(e.key=='q'&¤tBlock>1){ currentBlock-- while(blocks1[currentBlock].c==0&¤tBlock>1){ currentBlock-- } }else if(e.key=='q'&¤tBlock==1){ currentBlock=16 while(blocks1[currentBlock].c==0&¤tBlock>1){ currentBlock-- } } if(e.key=='e'&¤tBlock<16){ currentBlock++ while(blocks1[currentBlock].c==0&¤tBlock<16){ currentBlock++ } }else if(e.key=='e'&¤tBlock==16){ currentBlock=1 while(blocks1[currentBlock].c==0&¤tBlock<16){ currentBlock++ } } if(e.key=='z'){ if(currentCraft>0){ currentCraft-- } } if(e.key=='x'){ //1 wood + 1 stone => stone pickaxe. if(currentCraft==1&&totalBlocks1Sum<512-32&&blocks1[3].c>=1&&blocks1[4].c>=1){ crafting=true setTimeout(()=>{ crafting=false blocks1[12].c++;blocks1[3].c--;blocks1[4].c-- },3000) } //1 wood + 1 stone => stone axe. if(currentCraft==2&&totalBlocks1Sum<512-32&&blocks1[3].c>=1&&blocks1[4].c>=1){ crafting=true setTimeout(()=>{ crafting=false blocks1[13].c++;blocks1[3].c--;blocks1[4].c-- },3000) } //1 wood + 1 stone => stone shovel. if(currentCraft==3&&totalBlocks1Sum<512-32&&blocks1[3].c>=1&&blocks1[4].c>=1){ crafting=true setTimeout(()=>{ crafting=false blocks1[14].c++;blocks1[3].c--;blocks1[4].c-- },3000) } //1 wood + 1 stone => stone höe. if(currentCraft==4&&totalBlocks1Sum<512-32&&blocks1[3].c>=1&&blocks1[4].c>=1){ crafting=true setTimeout(()=>{ crafting=false blocks1[15].c++;blocks1[3].c--;blocks1[4].c-- },3000) } //1 fuel + 1 sand => glass. if(currentCraft==5&&totalBlocks1Sum<512-1&&blocks1[8].c>0&&(blocks1[9].c>0||blocks1[10].c>0||blocks1[5].c>0||blocks1[4].c>0)){ crafting=true setTimeout(()=>{ blocks1[8].c-- if(blocks1[9].c>0){ blocks1[9].c-- }else if(blocks1[10].c>0){ blocks1[10].c-- }else if(blocks1[5].c>0){ blocks1[5].c-- }else if(blocks1[4].c>0){ blocks1[4].c-- } blocks1[16].c++ crafting=false },10000) } } if(e.key=='c'){ if(currentCraft<5){ currentCraft++ } } }) document.addEventListener("mousedown",(e)=>{ if(e.button==0){ //Destroy. raycastResults=game.raycastVoxels() if(totalBlocks1Sum<512){ if( blocks1[currentBlock].dur>0 && energy.current>50 && ( (game.getBlock(raycastResults.voxel)==1&¤tBlock==14)//Grass. || (game.getBlock(raycastResults.voxel)==2&¤tBlock==14)//Dirt. || (game.getBlock(raycastResults.voxel)==3&¤tBlock==12)//Stone. || (game.getBlock(raycastResults.voxel)==4&¤tBlock==13)//Trunk. || (game.getBlock(raycastResults.voxel)==5&¤tBlock==15)//Leaves. || (game.getBlock(raycastResults.voxel)==6&¤tBlock==13)//Planks. || (game.getBlock(raycastResults.voxel)==7&¤tBlock==12)//Bricks. || (game.getBlock(raycastResults.voxel)==8&¤tBlock==14)//Sand. || (game.getBlock(raycastResults.voxel)==9&¤tBlock==13)//Cactus bottom. || (game.getBlock(raycastResults.voxel)==10&¤tBlock==13)//Cactus top. || (game.getBlock(raycastResults.voxel)==11&¤tBlock==12)//Sandstone. ||//11 to 15 Bother Inclusive are tools. (game.getBlock(raycastResults.voxel)==16&¤tBlock==12)//Glass. ) ){ energy.current-=5 blocks1[game.getBlock(raycastResults.voxel)].c++ blocks1[currentBlock].dur-- game.setBlock(raycastResults.voxel,0) console.log("Destroying block.") }else if( blocks1[currentBlock].c>0 && energy.current>50 && ( (game.getBlock(raycastResults.voxel)==1&¤tBlock==14)//Grass. || (game.getBlock(raycastResults.voxel)==2&¤tBlock==14)//Dirt. || (game.getBlock(raycastResults.voxel)==3&¤tBlock==12)//Stone. || (game.getBlock(raycastResults.voxel)==4&¤tBlock==13)//Trunk. || (game.getBlock(raycastResults.voxel)==5&¤tBlock==15)//Leaves. || (game.getBlock(raycastResults.voxel)==6&¤tBlock==13)//Planks. || (game.getBlock(raycastResults.voxel)==7&¤tBlock==12)//Bricks. || (game.getBlock(raycastResults.voxel)==8&¤tBlock==14)//Sand. || (game.getBlock(raycastResults.voxel)==9&¤tBlock==13)//Cactus bottom. || (game.getBlock(raycastResults.voxel)==10&¤tBlock==13)//Cactus top. || (game.getBlock(raycastResults.voxel)==11&¤tBlock==12)//Sandstone. ||//11 to 15 Bother Inclusive are tools. (game.getBlock(raycastResults.voxel)==16&¤tBlock==12)//Glass. ) ){ blocks1[currentBlock].c-- blocks1[currentBlock].dur=100 } } }else{ //Place. raycastResults=game.raycastVoxels() if( energy.current>50 &&blocks1[currentBlock].c>0 &&game.getBlock(raycastResults.adjacent)==0 &¤tBlock!==12 &¤tBlock!==13 &¤tBlock!==14 &¤tBlock!==15 ){ game.setBlock(raycastResults.adjacent,currentBlock) energy.current-=5 blocks1[currentBlock].c-- console.log("Placing block.") } } }) fawful.yaw.cameraInside.position.set(0,5,0) render=()=>{ if(crafting==true){ countCraftDIV.innerHTML="Crafting." countCraftDIV.color="rgb(0,255,0)" }else if(currentCraft==1&&blocks1[3].c>0&&blocks1[4].c>0){ countCraftDIV.innerHTML="1 wood + 1 stone => 1 stone pickaxe." countCraftDIV.color="rgb(255,255,255)" }else if(currentCraft==2&&blocks1[3].c>0&&blocks1[4].c>0){ countCraftDIV.innerHTML="1 wood + 1 stone => 1 stone axe." countCraftDIV.color="rgb(255,255,255)" }else if(currentCraft==3&&blocks1[3].c>0&&blocks1[4].c>0){ countCraftDIV.innerHTML="1 wood + 1 stone => 1 stone shovel." countCraftDIV.color="rgb(255,255,255)" }else if(currentCraft==4&&blocks1[3].c>0&&blocks1[4].c>0){ countCraftDIV.innerHTML="1 wood + 1 stone => 1 stone hoe." countCraftDIV.color="rgb(255,255,255)" }else if(currentCraft==5&&blocks1[8].c>0&&(blocks1[9].c>0||blocks1[10].c>0||blocks1[5].c>0||blocks1[4].c>0)){ countCraftDIV.innerHTML="1 sand + 1 fuel => 1 glass." countCraftDIV.color="rgb(255,255,255)" }else{ countCraftDIV.innerHTML="Nothing for craft." currentCraft=Math.floor(Math.random()*6+1) } food.current-=0.0001 //Muerte de hambre. if(food.current<25&&health.current>0){ health.current-- } //Cualquier muerte. if(Math.floor(health.current)==0){ location.reload() } //Descansar. if(energy.current<100){ energy.current+=0.08 } //Esforzarse. if(10<food.current&&energy.current<50){ food.current-=0.0025 } countHealthDIV.innerHTML="Health: "+Math.floor(health.current)+"%" countFoodDIV.innerHTML="Food: "+Math.floor(food.current)+"%" if(energy.current<50){ countEnergyDIV.innerHTML="Energy: "+Math.floor(energy.current)+"%!!!" countEnergyDIV.style.color="red" }else{ countEnergyDIV.innerHTML="Energy: "+Math.floor(energy.current)+"%" countEnergyDIV.style.color="white" } cactus_collide=false for(x=-1;x<1;x++){ for(y=-1;y<1;y++){ for(z=-1;z<1;z++){ if(game.getBlock( Math.floor(fawful.yaw.position.x)+x, Math.floor(fawful.yaw.position.y)+y, Math.floor(fawful.yaw.position.z)+z )==9 ||game.getBlock( Math.floor(fawful.yaw.position.x)+x, Math.floor(fawful.yaw.position.y)+y, Math.floor(fawful.yaw.position.z)+z )==10 ){ cactus_collide=true } } } } if(cactus_collide==true){ countHealthDIV.style.color="rgb(255,0,0)" health.current-=0.05 }else if((blocks1[9].c>0||blocks1[10].c>0)&&health.current>0){ health.current-=0.05 countHealthDIV.style.color="rgb(255,0,0)" }else{ countHealthDIV.style.color="rgb(255,255,255)" } requestAnimationFrame(render) totalBlocks1Sum=0 for(i=1;i<=16;i++){ totalBlocks1Sum+=blocks1[i].c*blocks1[i].space } if(currentBlock!==12 &¤tBlock!==13 &¤tBlock!==14 &¤tBlock!==15 ){ countBlockDIV.innerHTML=blocks1[currentBlock].c+" => "+totalBlocks1Sum+"/512" }else{ countBlockDIV.innerHTML=blocks1[currentBlock].c+" => "+totalBlocks1Sum+"/512 "+blocks1[currentBlock].dur+"%" } if(blocks1[currentBlock].c!=0){ if(currentBlock==1){ IMGPlaceBlock.src="textures/grass_dirt.png" }else if(currentBlock==2){ IMGPlaceBlock.src="textures/dirt.png" }else if(currentBlock==3){ IMGPlaceBlock.src="textures/stone.png" }else if(currentBlock==4){ IMGPlaceBlock.src="textures/trunk_side.png" }else if(currentBlock==5){ IMGPlaceBlock.src="textures/leaves.png" }else if(currentBlock==6){ IMGPlaceBlock.src="textures/planks.png" }else if(currentBlock==7){ IMGPlaceBlock.src="textures/bricks.png" }else if(currentBlock==8){ IMGPlaceBlock.src="textures/sand.png" }else if(currentBlock==9){ IMGPlaceBlock.src="textures/cactus_side.png" }else if(currentBlock==10){ IMGPlaceBlock.src="textures/cactus_top.png" }else if(currentBlock==11){ IMGPlaceBlock.src="textures/sandstone.png" }else if(currentBlock==12){ IMGPlaceBlock.src="textures/stone_pickaxe.png" }else if(currentBlock==13){ IMGPlaceBlock.src="textures/stone_axe.png" }else if(currentBlock==14){ IMGPlaceBlock.src="textures/stone_shovel.png" }else if(currentBlock==15){ IMGPlaceBlock.src="textures/stone_hoe.png" }else if(currentBlock==16){ IMGPlaceBlock.src="textures/glass.png" }else{ IMGPlaceBlock.src="textures/question_block.png" countBlockDIV.innerHTML="Empty." } }else{ IMGPlaceBlock.src="textures/question_block.png" countBlockDIV.innerHTML="Empty." } } render()
And the result is this:
The text was updated successfully, but these errors were encountered:
No branches or pull requests
I have this issue with blocks with transparency like glass or leaaves:
There its my code:
And the result is this:
The text was updated successfully, but these errors were encountered: