0xd743b27d…c43fsent to0x0a1bbd57…3676·#19,270,770·view on Etherscan
let U;const L=function(t){const e=N(t.hash);globalThis.X31=new z([e(),e(),e(),e()]);const i=X31.X3e(M);let s,r;if(U=i.data,3==U.X4f){const t=X31.X58(0,1,2);0==t&&(s=X31.X58(8,10,12),r=s),s=X31.X58(10,12,14,16),r=X31.X58(6,8),2==t&&([s,r]=[r,s])}else{0==X31.X58(0,1)?(s=8,r=8):(s=10,r=6)}return{Direction:X31.X3e([[1,"↑"],[30,"↓"]]),Simmetry:X31.X58(0,.6,.9),Width:s,Depth:r,Palette:X31.X58(Object.keys(n)),ColorFN:X31.X58(Object.keys(F)),Tiles:i.name,VoxelWidth:3,VoxelHeight:3,Texture:X31.X58(["▓░▒","N.|","B;!","░╱║","*/.","#7;","+-,","W?|","Xo.","$<v","12x","A-B"])}}(tokenData);globalThis.NOISE=((t=0)=>{function e(e,i,s){return e=50*v(.3283079*e+.7091),i=50*v(.3283079*i+.1131),s=50*v(.3283079*s+.3291),2*v(1.36959861*t+e*i*s*(e+i+s))-1}return{noise3d:function(t,i,s){const r=Math.floor(t),n=Math.floor(i),h=Math.floor(s),o=v(t),a=v(i),A=v(s),l=o*o*(3-2*o),c=a*a*(3-2*a);return B(B(B(e(r+0,n+0,h+0),e(r+1,n+0,h+0),l),B(e(r+0,n+1,h+0),e(r+1,n+1,h+0),l),c),B(B(e(r+0,n+0,h+1),e(r+1,n+0,h+1),l),B(e(r+0,n+1,h+1),e(r+1,n+1,h+1),l),c),A*A*(3-2*A))}}})(X31.float()).noise3d;const Q=new URLSearchParams(location.search),k={scale:parseInt(Q.get("scale"))||0,fps:parseInt(Q.get("fps"))||0,canvasWidth:parseInt(Q.get("canvasWidth"))||0,canvasHeight:parseInt(Q.get("canvasHeight"))||0,noShading:parseInt(Q.get("noShading"))||0,noNoise:parseInt(Q.get("noNoise"))||0,noColor:parseInt(Q.get("noColor"))||0,X3d:parseInt(Q.get("X3d"))||0,voxelWidth:parseInt(Q.get("voxelWidth"))||0,voxelHeight:parseInt(Q.get("voxelHeight"))||0,texture:Q.get("texture")};L.VoxelWidth=k.voxelWidth||L.VoxelWidth,L.VoxelHeight=k.voxelHeight||L.VoxelHeight,null!==k.texture&&k.texture.length>=3&&(L.Texture=k.texture);const W=document.body.appendChild(document.createElement("canvas")),K=W.getContext("webgl2");if(!K)throw new Error("WebGL error, program halted.");document.body.style.backgroundColor="black",W.style.fontSmooth="none",W.style.fontSmooth="never",W.style["-webkitFontSmoothing"]="none",W.style.imageRendering="crisp-edges",W.style.imageRendering="pixelated";let V=!1,X=!0,Z=0,q=!1,J=!1,$=!1,tt=!k.noShading,et=!k.noNoise,it=!k.noColor,st=k.scale||0,rt=k.fps||20;const nt="Descent",ht=65536,ot=r(k.X3d),at=r(3276),At={base:r(X31.X58(2730,3276,3822)),accent:n[L.Palette].map(r),base_LUT:[],accent_LUT:[]};{const t=At.accent;X31.probability(.5)&&t.reverse();const e=X31.X55(0,t.length);for(let i=0;i<e;i++)t.push(t.shift())}const lt=F[L.ColorFN](X31),ct=new class{gl;program;uniforms;constructor(t,e){this.gl=t,this.program=e,this.uniforms=[],this.locations=[];const i=t.getProgramParameter(e,t.ACTIVE_UNIFORMS);for(let s=0;s<i;++s){const i=t.getActiveUniform(e,s),r=i.name,n=t.getUniformLocation(e,r);this.uniforms[r]=this.#t(i.type,n),this.locations[r]=n}const s=t.getProgramParameter(e,t.ACTIVE_ATTRIBUTES);for(let i=0;i<s;++i){const s=t.getActiveAttrib(e,i).name,r=t.getAttribLocation(e,s);this.locations[s]=r}}set(t,...e){this.uniforms[t]&&this.uniforms[t](...e)}#t(t,e){const i=this.gl;switch(t){case i.BOOL:case i.INT:case i.SAMPLER_2D:case i.SAMPLER_2D_RECT:case i.SAMPLER_CUBE:return function(t){return i.uniform1i(e,t),this};case i.FLOAT:return function(t){return i.uniform1f(e,t),this};case i.FLOAT_VEC2:return function(t,s){i.uniform2f(e,t,s)};case i.FLOAT_VEC3:return function(t,s,r){i.uniform3f(e,t,s,r)};case i.FLOAT_VEC4:return function(t,s,r,n){i.uniform4f(e,t,s,r,n)};case i.FLOAT_MAT3:return function(t){i.uniformMatrix3fv(e,!1,t.toFloat32Array())};case i.FLOAT_MAT4:return function(t){i.uniformMatrix4fv(e,!1,t.toFloat32Array())}}return function(){throw"Don’t know how to set type: "+t}}use(){this.gl.useProgram(this.program)}relink(){const t=this.gl,e=this.program;if(t.linkProgram(e),!0!==t.getProgramParameter(e,t.LINK_STATUS))throw t.getProgramInfoLog(e);return!0}}(K,function(t,e,i){const r=s(t,e,t.VERTEX_SHADER),n=s(t,i,t.FRAGMENT_SHADER),h=t.createProgram();if(t.attachShader(h,r),t.attachShader(h,n),t.linkProgram(h),!0!==t.getProgramParameter(h,t.LINK_STATUS))throw t.getProgramInfoLog(h);return h}(K,"#version 300 es\nprecision highp float;uniform vec2 X34;in float a_fontOffset,a_dither;in vec3 a_X3c;in vec2 a_position,a_uv;uniform float X36;uniform vec2 X37,X38;out vec4 X3c,X3d;out vec2 st;vec2 v;void main(){vec4 f=vec4(2./X34.s,-2./X34.t,-1,1);gl_Position=vec4(a_position.st*f.st+f.pq,0,1);X3c=vec4(a_X3c,1);float u=X38.s;v.s=mod(a_fontOffset,u);v.t=floor(a_fontOffset/u);st=(a_uv+v)/X38;}\n","#version 300 es\nprecision highp float;uniform sampler2D X35;uniform vec4 X33;in vec4 X3c;in vec2 st;out vec4 color;void main(){color=mix(X33,X3c,texture(X35,st).s);}\n")),dt={X3cs:new e(K,"a_X3c",3,393216),X61:new e(K,"a_fontOffset",1,393216),positions:new e(K,"a_position",2,393216),uvs:new e(K,"a_uv",2,393216)},gt=new y(0,0,Array),ft=K.createTexture();{K.bindTexture(K.TEXTURE_2D,ft),K.pixelStorei(K.UNPACK_ALIGNMENT,1);const t=0,e=K.LUMINANCE,i=H.X25*H.X21,s=H.X26*H.X22,r=0,n=K.LUMINANCE,h=K.UNSIGNED_BYTE,o=function(t,e){const i=function(t){return new Uint8Array(atob(t).split("").map((t=>t.charCodeAt(0))))}(t),s=new Uint8Array(e);for(let t=0;t<e;t++){const e=Math.floor(t%8),r=Math.floor(t/8);s[t]=b(i[r],e)}return s}(H.X24.join(""),i*s).map((t=>255*t));K.texImage2D(K.TEXTURE_2D,t,e,i,s,r,n,h,o),K.texParameteri(K.TEXTURE_2D,K.TEXTURE_WRAP_S,K.CLAMP_TO_EDGE),K.texParameteri(K.TEXTURE_2D,K.TEXTURE_WRAP_T,K.CLAMP_TO_EDGE),K.texParameteri(K.TEXTURE_2D,K.TEXTURE_MIN_FILTER,K.NEAREST),K.texParameteri(K.TEXTURE_2D,K.TEXTURE_MAG_FILTER,K.NEAREST)}function ut(t){t>0?st++:st=t<0?Math.max(1,st-1):0,X=!0}globalThis.addEventListener("keydown",(t=>{"i"==t.key?V=!V:"n"==t.key?et=!et:"f"==t.key?it=!it:"s"==t.key?tt=!tt:"t"==t.key?q=!0:"v"==t.key?J=!0:"p"==t.key?Z=1:"P"==t.key?Z=4:"0"==t.key?ut(0):"ArrowUp"==t.key?ut(1):"ArrowDown"==t.key?ut(-1):"c"==t.key?document.body.style.cursor="none"==document.body.style.cursor?"auto":"none":"f"==t.key?document.body.requestFullscreen&&document.body.requestFullscreen().catch((t=>console.warn(t))):"d"==t.key&&($=!$)}));{let t;globalThis.addEventListener("resize",(e=>{clearTimeout(t),W.style.visibility="hidden",W.width=0,W.height=0,t=setTimeout((t=>{X=!0,W.style.visibility="visible"}),100)}))}let pt=!0;const wt=new Worker(URL.createObjectURL(new Blob([""+N+T+z+O+G+y+C+j+R+"("+I.toString()+")()"])));wt.postMessage({op:"init",hash:(X31.float()+1).toString(16).substring(2),X14:U,X1f:L}),wt.onmessage=function(t){"X1e"==t.data.op&&(xt.writeData(t.data.data),pt=!0)};const mt=function(t,e,i){const s=Math.max(1,t),r=Math.max(1,e),n=Math.max(1,Math.floor(s/2)),h=new y(s+n,r+n);h.data.fill(0),h.X1(0,n,s,r,i[0]);for(let t=0;t<n;t++){for(let e=0;e<s;e++)h.set(h.width-e-t-1,t,i[1]);for(let e=0;e<r;e++)h.set(h.width-t-1,e+1+t,i[2])}return{width:s+n,height:r+n,w:s,h:r,sx:-n,sy:n,data:h.data}}(L.VoxelWidth,L.VoxelHeight,L.Texture),xt=new class{constructor(t){this.X12=0,this.X1e=[new C(0,0,0,Uint8Array),new C(0,0,0,Uint8Array)],this.box=t,this.ALIGN_TOP=Symbol(),this.ALIGN_BOTOM=Symbol()}writeData(t){this.X1e[(this.X12+1)%2].X6(t)}X11(){this.X12=(this.X12+1)%2}copy(){this.X1e[(this.X12+1)%2].X6(this.X1e[this.X12].data)}X13(){return this.X1e[this.X12]}getSize(){const t=this.X1e[this.X12];return{width:t.width,height:t.height,depth:t.depth}}resize(t,e,i){this.X1e.forEach((s=>s.resize(t,e,i)))}X65(t,e,i,s,r,n=!0){const o=this.X1e[this.X12],a=this.box,A=o.width*a.w-o.depth*a.sx,l=-(o.depth-1)*a.sx,c=(o.height-1)*a.h,d=Math.floor((t.width-A)/2)+l,g=r+c+i,f=o.width/o.height,u=o.width/o.depth;if(n){const i=.001*-e,r=3*Math.cos(.01*e),n=h(Math.cos(.02*e),-1,1,.5,2),A=h(Math.cos(.01*e),-1,1,.2,.6),l=A+.1;for(let e=0;e<o.height;e++){const h=((e+s)/o.height*2-1)/f;for(let c=0;c<o.depth;c++){const f=(c/o.depth*2-1)/u;for(let u=0;u<o.width;u++){if(1===o.get(u,e,c)){const p=u/o.width*2-1,w=(NOISE(p*n,h*n+i,f*n+r)+1)/2;if(w>A){const i=w<l;Y(t,u*a.w+c*a.sx+d,-e*a.h+c*a.sy+g,a.width,a.height,a.data,u,Math.floor(e+s),c,i)}}}}}}else for(let e=0;e<o.height;e++)for(let i=0;i<o.depth;i++)for(let r=0;r<o.width;r++)if(1===o.get(r,e,i)){Y(t,r*a.w+i*a.sx+d,-e*a.h+i*a.sy+g,a.width,a.height,a.data,r,Math.floor(e+s),i,!1)}}}(mt),Mt=new class{constructor(t=1e3){this.X5a=t,this.fps=0,this.X59=0,this.X68=0}tick(t){return t>=this.X68+this.X5a&&(this.fps=this.X59*this.X5a/(t-this.X68),this.X68=t,this.X59=0),this.X59++,this.fps}}(1e3);let yt=0,Et=-1e3,Dt=0;function _t(t,e){const i=String(t);return i.length>e?"..."+i.substring(i.length-e+3):i}requestAnimationFrame((function e(s){requestAnimationFrame(e);const r=s-Et,n=1e3/rt;if(r<n)return;if(Et=s-r%n,X){X=!1;const e=k.canvasWidth||innerWidth,i=k.canvasHeight||innerHeight;let s;W.width=e,W.height=i,s=0==st?e<1400?1:2:st;const r=0,n=0,o=0,a=0;let A,l;A=Math.floor((e-2*r)/((H.X21+o)*s)),l=Math.floor((i-2*n)/((H.X22+a)*s)),A=2*Math.floor(A/2),l=2*Math.floor(l/2),(A+2)*(l+2)>=ht&&(l=Math.floor(ht/(A+2))-2),A=Math.max(2,A),l=Math.max(2,l);const c=Math.floor((e-(A*H.X21*s+(A-1)*o))/2),d=Math.floor((i-(l*H.X22*s+(l-1)*a))/2),g=H.X21*s,f=H.X22*s,u=H.X21*s+o,p=H.X22*s+a;let w=0;for(let e=0;e<l;e++)for(let i=0;i<A;i++){const s=c+i*u,r=d+e*p;t(w++,dt.positions.data,dt.uvs.data,s,r,g,f)}dt.uvs.enable(ct.program),dt.uvs.bufferData(K.STATIC_DRAW),dt.uvs.X4a=!0,dt.positions.enable(ct.program),dt.positions.bufferData(K.STATIC_DRAW),dt.positions.X4a=!0,gt.resize(A,l,(()=>new S));const m=U.X4f,x=L.Width,M=L.Depth,y=m*M*mt.sy+mt.h,E=m*mt.h,D=l+y+2*E+1,_=Math.ceil(D/E),b=m*x,T=m*M,z=m*_;xt.resize(b,z,T),wt.postMessage({op:"resize",size:{w:x,h:_,d:M}});for(let t=0;t<T;t++){const e=At.base.map((e=>h(t,0,T-1,.05,e)));At.base_LUT[t]=e,At.accent_LUT[t]=[];for(let i=0;i<At.accent.length;i++){const s=At.accent[i];At.accent_LUT[t][i]=[s[0]+e[0],s[1]+e[1],s[2]+e[2]].map((t=>Math.min(t,1)))}}yt=0,pt=!0,Dt=0}const o=U.X4f*mt.h*2,a="↓"==L.Direction?1:-1;let A,l,c=-yt%o*a;if(1==a)A=-c/mt.h,l=-(xt.getSize().depth+1)*mt.sy+1;else{A=xt.getSize().height-c/mt.h-1;l=-(xt.getSize().depth*mt.sy+mt.h)-2*(U.X4f*mt.h)}let d=!0;0==Math.abs(c)?pt?(xt.X11(),wt.postMessage({op:"shiftY",dir:a,X56:2}),pt=!1,d=!1):(console.log("Couldn’t compute X67 in X69… skipping."),d=!0):d=!1;if(gt.data.forEach((t=>{t.index=_[" "],t.fg=[0,0,0],t.z=-1})),xt.X65(gt,Dt++,c,A,l,et),$)gt.data.forEach((t=>{-1!==t.z&&(t.fg=[h(t.x,0,xt.getSize().width-1,0,1),h(t.y,0,xt.getSize().height-1,0,1),h(t.z,0,xt.getSize().depth-1,0,1)])}));else{const t=At.accent.length,e=Math.floor(.66*At.accent_LUT.length);gt.data.forEach((i=>{if(-1!==i.z){const s=tt?i.z:e,r=tt?i.z:t-1;if(i.accent&&it){const e=lt(i,t);i.fg=At.accent_LUT[r][e]}else i.fg=At.base_LUT[s]}}))}if(V){const t=Math.round(Mt.tick(s)),e="~F~",i=15;let r="";r+=e+"\n",r+="fps".padEnd(i)+t+"←"+rt+"\n",r+="frame".padEnd(i)+yt+"\n",r+=e+"\n",r+="cols".padEnd(i)+gt.width+"\n",r+="rows".padEnd(i)+gt.height+"\n",r+="width".padEnd(i)+K.canvas.width+"\n",r+="height".padEnd(i)+K.canvas.height+"\n",r+="scale".padEnd(i)+st+"\n",r+="pixel".padEnd(i)+devicePixelRatio+"\n",r+=e+"\n",r+="hash".padEnd(i)+_t(tokenData.hash,14)+"\n",r+="tokenId".padEnd(i)+_t(tokenData.tokenId,14)+"\n",r+=e+"\n";for(const t in L)r+=t.padEnd(i)+_t(L[t],i)+"\n";r+=e+"\n",r+="i".padEnd(2).padStart(i)+"toggle info\n",r+=e+"\n",r+="t".padEnd(2).padStart(i)+"save TXT\n",r+="p".padEnd(2).padStart(i)+"save PNG∙1\n",r+="P".padEnd(2).padStart(i)+"save PNG∙4\n",r+=e+"\n",r+="↓↑".padEnd(3).padStart(i)+"change scale\n",r+="0".padEnd(2).padStart(i)+"reset scale\n",r+="s".padEnd(2).padStart(i)+"toggle shading\n",r+=e+"\n",r+="c".padEnd(2).padStart(i)+"hide cursor\n",r+="f".padEnd(2).padStart(i)+"fullscreen\n",r+=e+"\n";const n=2*i;r.trim().replaceAll(e,"".padEnd(n,"─")).split("\n").forEach(((t,e)=>{t.padEnd(n," ").split("").map((t=>D.indexOf(t))).forEach(((t,i)=>{const s=gt.get(i,e);null!==s&&(s.index=t,s.fg=at)}))}))}0==d&&yt++;gt.data.forEach(((t,e)=>{!function(t,e,i){let s=2*t*3;for(let t=0;t<6;t++)e[s++]=i}(e,dt.X61.data,t.index),function(t,e,i){let s=6*t*3;for(let t=0;t<6;t++)e[s++]=i[0],e[s++]=i[1],e[s++]=i[2]}(e,dt.X3cs.data,t.fg)})),dt.X61.X4a=!0,dt.X3cs.X4a=!0,K.bindTexture(K.TEXTURE_2D,null),K.bindFramebuffer(K.FRAMEBUFFER,null),K.viewport(0,0,K.canvas.width,K.canvas.height);K.activeTexture(K.TEXTURE0+0),K.bindTexture(K.TEXTURE_2D,ft),ct.use(),ct.set("X34",K.canvas.width,K.canvas.height),ct.set("X38",H.X25,H.X26),ct.set("X35",0),ct.set("X33",...ot,1),Object.keys(dt).forEach((t=>{dt[t].X4a&&(dt[t].enable(ct.program),dt[t].bufferData(K.DYNAMIC_DRAW),dt[t].X4a=!1)}));const g=gt.width*gt.height;if(K.clearColor(...ot,1),K.clear(K.COLOR_BUFFER_BIT),K.drawArrays(K.TRIANGLES,0,6*g),Z>0){const t=W.width*Z,e=W.height*Z,s=function(){if(!document.querySelector("#export_canvas")){const t=document.createElement("canvas");t.id="export_canvas",t.style.display="none",t.style.imageRendering="pixelated",document.body.appendChild(t)}return document.querySelector("#export_canvas")}();s.width=t,s.height=e;const r=s.getContext("2d");r.imageSmoothingEnabled=!1,r.drawImage(W,0,0,t,e);!function(t,e){e.toBlob((e=>i(e,t)))}(nt+"_"+Date.now()+"_×"+Z+".png",s),Z=0}if(q){let t="";gt.loop(((e,i,s,r,n)=>{t+=D[e.index]+(i==n-1?"\n":"")})),i(new Blob([t],{type:"text/plain;charset=utf-8"}),nt+"_"+Date.now()+"_scene.txt"),q=!1}if(J){const{width:t,height:e,depth:s}=xt.getSize();let r="";r+=t+" "+e+" "+s+"\n",xt.X13().loop(((t,e,i,s,n,h,o,a)=>{r+=t+(e==h-1?"\n":"")})),i(new Blob([r],{type:"text/plain;charset=utf-8"}),nt+"_"+Date.now()+"_X1e.txt"),J=!1}}))}();