memoscan
← all memos

Memo 0x19824e3f…e22284 on Ethereum

function wallR(e,r,t){let o=M.walls.clone();rainbowWalls&&o.color.set(ethpal[prng(ethpal.length)]);for(let n=0;n<=t;n++){for(let t=0;t<e.x;t++)(n%3==2||n%3==0&&0==prng(6))&&(G.add(B([1,n%3==2?1:2,1],[t+r.x,n+r.y+1,r.z],o)),t<3&&G.add(B([1,n%3==2?1:2,1],[t+r.x,n+r.y+1,r.z+e.z-1],o)));for(let t=0;t<e.z;t++)(n%3==2||n%3==0&&0==prng(6))&&(G.add(B([1,n%3==2?1:2,1],[r.x,n+r.y+1,t+r.z],o)),t<3&&G.add(B([1,n%3==2?1:2,1],[r.x+e.x-1,n+r.y+1,t+r.z],o)))}G.add(B([e.x,1,e.z],[r.x,2+r.y+t,r.z],o))}function s3D(e,r,t,o,n,a){let d=new THREE.Mesh(new THREE.SphereGeometry(r*grid,t,o),a);return d.position.set(e.x*grid,e.y*grid,e.z*grid),d.scale.set(1,n,1),d}function B(e,r,t,o=0){let n=e[o?2:0],a=e[1],d=e[o?0:2],i=r[o?2:0],l=r[1],s=r[o?0:2],p=new THREE.BoxGeometry(n*grid+.1,a*grid+.1,d*grid+.1),x=new THREE.Mesh(p,t);x.position.set((i+n/2)*grid,(l+a/2)*grid,(s+d/2)*grid),n/=5;var g=[d/=4,0,d,a/=4,0,a,0,0,...o?[d,n,0,n,0,0,d,0]:[0,d,0,0,n,0,n,d],n,0,n,a,0,a,0,0];p.faceVertexUvs[0]=[];for(let e=0;e<3;e++){let r=8*e;for(let e=0;e<2;e++)p.faceVertexUvs[0].push([V2(g[r],g[r+1]),V2(g[r+2],g[r+3]),V2(g[r+6],g[r+7])]),p.faceVertexUvs[0].push([V2(g[r+2],g[r+3]),V2(g[r+4],g[r+5]),V2(g[r+6],g[r+7])])}return p.uvsNeedUpdate=!0,x}var mH=0,mouseD=!1;document.addEventListener("mousedown",e=>{mouseD=!0}),document.addEventListener("mouseup",e=>{mouseD=!1,rotX=RX,rotY=RY}),document.addEventListener("mousemove",e=>{mH=0,mouseD&&(rotX=Math.max(Math.min(rotX+.004*e.movementY,RX+.4),RX-.4),rotY=Math.max(Math.min(rotY+.004*e.movementX,RY+.4),RY-.4))}),document.addEventListener("keypress",e=>{"1"==e.key?(rotX=0,rotY=PI):"2"==e.key?(rotX=0,rotY=.75*PI):"3"==e.key?(rotX=0,rotY=PI/2):(rotX=RX,rotY=RY),"0"==e.key&&(R.setClearColor(0,0),bgplane.visible=!bgplane.visible)}),window.addEventListener("resize",function(){let e=window.innerWidth,r=window.innerHeight;C.left=-e/2,C.right=e/2,C.top=r/2,C.bottom=-r/2,C.zoom=Math.min(e,r)/scale,C.updateProjectionMatrix(),R.setSize(e,r),post.resize()});var vaspa=10;function animate(){let e=clock.getDelta();mH+=e,R.domElement.style.cursor=mH>3?"none":"default";for(let e of lights)e.emissiveIntensity=prng(16)?2:0;if(e<.3){moveCar(e),m.uniforms.dt.value+=.5*e;for(let r of ele)r.delay<=0?(r.stop-=e,r.stop<=0&&(r.stop=4+prng(4),r.dir=prng(2)?5:-5,r.delay=2+prng(3)),r.model.position.y+=e*r.dir,(r.model.position.y>r.maxy||r.model.position.y<r.miny)&&(r.model.position.y=r.model.position.y>r.maxy?r.maxy:r.miny,r.dir*=-1)):r.delay-=e;for(let r of trains)r.d-=e,r.broken-=e,r.broken<=0&&(r.broken=r.w?1+prng(3):prand(20,120),r.w=!r.w),r.w&&r.d<=0?(r.w&&(r.m.emissiveIntensity=2),r.z?r.t.position.z+=r.v*e:r.t.position.x+=r.v*e,!r.z&&(r.t.position.x>(gx-r.l)*grid||r.t.position.x<10)&&(r.v=-r.v,r.t.position.x+=r.v*e,r.d=prng(3)),r.z&&(r.t.position.z>(gz-r.l)*grid||r.t.position.z<10)&&(r.v=-r.v,r.t.position.z+=r.v*e,r.d=prng(3))):r.w||(r.m.emissiveIntensity=prng(10)/10);if(H)if(H.p-=e,H.a.rotation.y+=vaspa*e,H.ac.rotation.x-=1.3*vaspa*e,H.p<=0){if((vaspa=Math.min(10,vaspa+e))>=10){let r=Math.min(1,.1+(H.h.position.y-H.py)/40);H.h.rotation.y+=.2*r*e,H.h.position.y+=r*H.v*e,H.h.position.y>400&&(H.v*=-1),H.h.position.y<=H.py&&(H.h.position.y=H.py,H.v*=-1,H.p=10)}}else vaspa=Math.max(0,vaspa-4*e);eth&&(eth.rotation.y+=e),tex1.offset.y-=e,city.rotation.x+=(rotX-city.rotation.x)/5,city.rotation.y+=(rotY-city.rotation.y)/5}post.render(SC,C),requestAnimationFrame(animate)}function generateTexture(){let e=32,r=document.createElement("canvas");r.width=r.height=e;let t=r.getContext("2d");t.fillStyle="#ffffff",t.fillRect(0,0,e,e),t.fillStyle="#aaaaaa99";for(let r=0;r<=e;r+=4)t.fillRect(r,prng(e/3+ABS(16-r)),2,8),t.fillRect(r,prng(e+ABS(16-r)),1,8);return r}animate();