diff --git a/app-de.js b/app-de.js index 974d09a..1eb6414 100644 --- a/app-de.js +++ b/app-de.js @@ -1,87 +1,87 @@ -function ba(a){function b(d){return a.next(d)}function c(d){return a.throw(d)}return new Promise(function(d,e){function l(m){m.done?d(m.value):Promise.resolve(m.value).then(b,c).then(l,e)}l(a.next())})} -const n=lui,ca=n.defer,ha=n.defer_end,ia=n.hook_async,A=n.hook_dom,D=n.hook_effect,ja=n.hook_memo,ka=n.hook_model,oa=n.hook_rerender,pa=n.hook_state,F=n.hook_static,qa=n.init,G=n.node,H=n.node_dom,ra=n.node_map,va=n.now,wa=window,xa=document,za=navigator,K=Math,Aa=K.PI,Ba=.5*Aa,Fa=180/Aa,Ga=K.random,L=K.floor,Ha=K.ceil,Ia=K.round,M=K.min,Ja=K.max,Ka=K.cos,La=K.sin,Ma=K.sqrt,Na=K.log2,Oa=String.fromCharCode,Pa=BroadcastChannel,Qa=Date,Ya=JSON,Za=Promise,$a=Ya.stringify,ab=Ya.parse,N=localStorage,bb= -N.setItem.bind(N),cb=N.removeItem.bind(N),db=wa.indexedDB,eb=fetch,fb=Uint8Array,gb=Uint32Array,hb=Set,lb=Map,P=Number,mb=Object,nb=mb.keys,ob=mb.entries,pb=setTimeout,qb=setInterval,rb=clearTimeout,sb=clearInterval,tb=addEventListener,ub=removeEventListener,vb=za.userAgent.includes("WebKit"),wb=a=>a*a,xb=()=>!1,yb=(a,b)=>{const c=new Qa;a=new Qa(a);var d=c-a;if(59E3>d)return Ia(d/1E3)+"s";if(3E6>d)return Ia(d/6E4)+"m";d=a.getFullYear();const e=a.getMonth(),l=a.getDate();let m="";d"minicraft.world."+b.id));for(const b of nb(N))b.startsWith("minicraft.world.")&&!a.has(b.split(":")[0])&&cb(b)} -const Eb={init:()=>{let a=!1;var b={ka:!1,xa:1,ua:3,Y:4,T:1,Da:120,ga:64,Ea:0,worlds:[]};if(Q){let c=Q.pixel_grouping;null!=c&&(b.xa=c);null!=(c=Q.mouse_sensitivity)&&(b.ua=c);b.Y=Q.resolution_scaling;null!=(c=Q.textures)?b.T=c:b.T=Q.flag_textures?1:0;b.Da=Q.view_angle;b.ga=Q.view_distance;null!=(c=Q.world_last)&&(b.Ea=c);null!=(c=Q.worlds)?b.worlds=c:N.getItem("minicraft.world.0:meta")&&(b.worlds[0]={id:0,label:(prompt("Es wurde eine namenlose lokale Welt gefunden. Wie soll sie hei\u00dfen?","")|| -"Unbekannte Welt").substring(0,16),mod_l:Qa.now(),mod_r:0},a=!0);Q=null}b={account:{label:"",rank:0},config:b,Ya:b};return a?(b.Ya=null,Eb.Xa(b)):b},Xa:a=>{const b=a.config;if(b===a.Ya)return a;bb("minicraft.config",$a({version:"0.11.3",pixel_grouping:b.xa,mouse_sensitivity:b.ua,resolution_scaling:b.Y,textures:b.T,view_angle:b.Da,view_distance:b.ga,world_last:b.Ea,worlds:b.worlds}));return Object.assign({},a,{Ya:b})},xb:(a,b)=>Object.assign({},a,{account:b}),Gb:(a,b)=>Eb.ia(a,b(a.config)),ia:(a,b)=> -Object.assign({},a,{config:Object.assign({},a.config,b)}),Ja:(a,b)=>a.config.ka===b?a:Eb.ia(a,{ka:b}),gb:(a,b)=>Object.assign({},a,{config:Object.assign({},a.config,{worlds:[...a.config.worlds,b]})}),hb:(a,b)=>Object.assign({},a,{config:Object.assign({},a.config,{worlds:a.config.worlds.filter(c=>c.id!==b)})}),U:(a,b,c)=>Object.assign({},a,{config:Object.assign({},a.config,{worlds:a.config.worlds.map(d=>d.id===b?Object.assign({},d,c):d)})})},Fb="air stone grass dirt cobble planks bedrock log leaves bricks wool sand gravel glass bookshelf obsidian stone_bricks sandstone lapis_block iron_block gold_block diamond_block emerald_block redstone_block quartz_block".split(" "), -Gb="Luft Stein Grasblock Erde Bruchstein Holzbretter Grundgestein Stamm Laub Ziegelsteine Wolle Sand Kies Glas B\u00fccherregal Obsidian Steinziegel Sandstein Lapislazuliblock Eisenblock Goldblock Diamantblock Smaragdblock Redstoneblock Quarzblock".split(" "),Hb=[0,8487297,4305266,4349313,8092539,5342114,7039851,3561583,4172910,6384533,15526888,10671324,8092798,16447200,4151672,1970708,8092539,9686227,9126695,15198183,5567485,14541182,7920469,662956,14936813],Ib=(a,b=1,c=null)=>({amount:b,data:c, -id:a}),Jb=(a,b,c=a.c.amount)=>{if(b.c)a.c.id===b.c.id?(c=M(c,b.W-b.c.amount),a.c.amount-=c,b.c.amount+=c,0>=a.c.amount&&(a.c=null)):!(a.c.amount<=c&&a.c.amount<=b.W&&b.c.amount<=a.W)||a.filter&&!a.filter(b.c.id)||b.filter&&!b.filter(a.c.id)||([b.c,a.c]=[a.c,b.c]);else if(!b.filter||b.filter(a.c.id))a.c.amount<=c&&a.c.amount<=b.W?[b.c,a.c]=[a.c,b.c]:(c=M(c,b.W),a.c.amount-=c,b.c=Ib(a.c.id,c),0>=a.c.amount&&(a.c=null))},Kb=(a,b)=>{for(const c of a)if(c.c&&c.c.id===b.id){const d=M(b.amount,c.W-c.c.amount); -c.c.amount+=d;if(0>=(b.amount-=d))return null}for(const c of a)if(!c.c&&(!c.filter||c.filter(b.id)))if(a=M(b.amount,c.W),a<=b.amount){if(c.c=Ib(b.id,a),0>=(b.amount-=a))return null}else return c.c=b,null;return b},Lb=(a,b)=>({Ua:0,ib:0,Va:0,O:0,ha:0,pa:0,aa:0,V:-1,ba:0,qa:null,ra:null,l:1,rb:20,B:Array(36).fill(null).map(()=>({c:null,filter:null,W:64})),Oa:0,name:b.label||"Spieler",G:a.Aa,H:a.Ba,J:a.Ca,vb:0,wb:0,L:0,ma:0,da:0,ea:0,fa:0}),Mb=(a,b,c)=>{a.O=(a.O+b+100*Aa)%(2*Aa);a.ha=Ja(-Ba,M(Ba,a.ha+ -c))},Nb=a=>{a+=32;33a?a++:38a?a+=2:43a?a+=3:126a?a+=37:55295a-(63743a?35:40a?34:34a?33:32),Qb=()=>{var a=Pb;const b=a.length,c=new lb,d=u=>{g=g<<1|u&1;15===++p&&(w+=Nb(g),g=p=0)},e=()=>{for(let u=0;u{d(u);d(u>>1);d(u>>2);d(u>>3);d(u>>4);d(u>>5);d(u>>6);d(u>>7)},m=()=>{0===--z&&(z=1<{if(C)C=!1;else{let u=q.id;for(let E=0;E>E)}};let f=a[0],w="",g=0,p=2, -v=2,z=2,h=2,q={id:h++,Ha:new lb},C=!0;l(f);c.set(f,q);for(let u=1;u{var b=Pb;if(!a)return null;const c=a.length,d=()=>{p+=(h>>--q&1)<v;)d();f=[p];e[2]=f;for(b[g++]=p;z<=c;){w=k;for(p=v=0;vv;)d();e[m]=[p];p=m++;0===--l&&(l=1<{d=d.target.result.createObjectStore("chunks",{keyPath:["world","coords"]});for(const e of nb(N))if(e.startsWith("minicraft.world.")){const [l,m]=e.substr(16).split(":");"meta"!==m&&(d.add({world:P(l),coords:m,data:N.getItem(e)}),cb(e))}};c.onsuccess=d=>{U=d.target.result}} -const Sb=(a,b)=>ba(function*(){if(!U)return N.getItem(`minicraft.world.${a}:${b}`);const c=U.transaction("chunks","readonly").objectStore("chunks").get([a,b]);return new Za(d=>{c.onsuccess=()=>{let e;d(null==(e=c.result)?void 0:e.data)}})}()),Tb=(a,b)=>{var c=Qb();return ba(function*(){if(!U)return bb(`minicraft.world.${a}:${b}`,c);const d=U.transaction("chunks","readwrite").objectStore("chunks").put({world:a,coords:b,data:c});return new Za((e,l)=>{d.onsuccess=()=>{e()};d.onerror=()=>{l(d.error)}})}())}, -Ub=(a,b)=>ba(function*(){if(!U)return cb(`minicraft.world.${a}:${b}`);const c=U.transaction("chunks","readwrite").objectStore("chunks").delete([a,b]);return new Za(d=>{c.onsuccess=()=>{d()}})}()),Vb=a=>ba(function*(){const b=`minicraft.world.${a}:`;if(!U){const e={},l=b.length;for(const m of nb(N))m.startsWith(b)&&(e[m.substr(l)]=N.getItem(m));return e}const c=U.transaction("chunks","readonly").objectStore("chunks").openCursor(),d={meta:N.getItem(b+"meta")};return new Za(e=>{c.onsuccess=()=>{const l= -c.result;l?(l.value.world===a&&(d[l.value.coords]=l.value.data),l.continue()):e(d)}})}()),Wb=(a,b)=>ba(function*(){if(U){var c=U.transaction("chunks","readwrite"),d=c.objectStore("chunks");for(const [e,l]of ob(b))"meta"!==e?d.put({world:a,coords:e,data:l}):bb(`minicraft.world.${a}:meta`,l);return new Za((e,l)=>{c.oncomplete=()=>{e()};c.onerror=()=>{l(c.error)}})}for(const [e,l]of ob(b))bb(`minicraft.world.${a}:${e}`,l);bb("__margin",Array(257).join("x"));cb("__margin")}()),Xb=a=>{if(U){cb(`minicraft.world.${a}:meta`); -var b=U.transaction("chunks","readwrite").objectStore("chunks").openCursor();b.onsuccess=()=>{const c=b.result;c&&(c.value.world===a&&c.delete(),c.continue())}}else{const c=`minicraft.world.${a}:`;for(const d of nb(N))d.startsWith(c)&&cb(d)}},Yb=(a,b)=>{if(U){bb(`minicraft.world.${b}:meta`,N.getItem(`minicraft.world.${a}:meta`));cb(`minicraft.world.${a}:meta`);var c=U.transaction("chunks","readwrite").objectStore("chunks"),d=c.openCursor();d.onsuccess=()=>{const e=d.result;e&&(e.value.world===a&& -(e.value.world=b,c.put(e.value)),e.continue())}}else{const e=`minicraft.world.${a}:`,l=e.length,m=`minicraft.world.${b}:`;for(const k of nb(N))if(k.startsWith(e)){const f=N.getItem(k);cb(k);bb(m+k.substr(l),f)}}},Zb=new gb(1024),Pb=new fb(Zb.buffer),$b=new lb,ac=(a,b,c,d)=>0>c||63{const e=a.K;a.Z[(b<>4<>4)<<2|c>>4].ja=!0},cc=(a,b,c,d,e)=>{const l=a.K,m=(b<>4<>4)<<2|c>> -4].ja=!0},fc=(a,b,c)=>{const d=Ja(M(b.H,63),0)>>4,e=L(b.G)>>4;b=L(b.J)>>4;if(c||a.Ma!==d||a.va+a.La!==e||a.wa+a.Na!==b)c=1<{const b=a.La,c=a.Ma,d=a.Na,e=a.K,l=`${e} ${b} ${d} ${c}`;let m=$b.get(l);if(null==m){const k=1<{let z=wb(w-b),h=wb(p-d),q=wb(w-b-k),C=0,u=0;qw<=f).sort((w,g)=>w.Za-g.Za))}a.Ia=m;a.sa=0},hc=(a,b)=>{if(!a.pb){for(var c=b.B.map(({c:d})=>d&&[d.id,d.amount,d.data]);0d.ja).map(d=>gc(a,d)))}},jc=(a,b)=>{const c=N.getItem(`minicraft.world.${a.id}:meta`);if(c){const {p:d,s:e,t:l,v:m}=ab(c);null!=m&&(d.i.forEach((k, -f)=>{k&&(b.B[f].c=Ib(k[0],k[1],k[2]))}),b.rb=d.h,b.l=d.m,b.G=d.p[0],b.H=d.p[1],b.J=d.p[2],b.O=d.p[3],b.ha=d.p[4],a.Aa=e[0],a.Ba=e[1],a.Ca=e[2],null!=l&&ic(a,l))}},ic=(a,b)=>{a.time=b%24E3;a.eb=(b+6E3)/24E3%1},vc=a=>ba(function*(){const b=a.$[a.Ia[a.sa=0].lb];var c=b.y;yield Ub(a.id,`${b.Fa}/${b.Ta}`+(0{const c=a.Ga;var d=a.K;const e=b.y,l=(256<m;++m){for(d=0;16>d;++d)Zb[++k]=c[f],Zb[++k]= -c[++f],Zb[++k]=c[++f],Zb[++k]=c[++f],f+=13;f+=l}b.ja=!1;return Tb(a.id,`${b.Fa}/${b.Ta}`+(0ba(function*(){const c=a.$,d=a.Ia,e=a.va,l=a.wa,m=d.length;for(;a.saC;++C){for(w=0;16>w;++w)k[g]=Zb[++u],k[++g]=Zb[++u],k[++g]=Zb[++u],k[++g]=Zb[++u],g+=13;g+=z}else for(p=0;16>p;++p){for(f=0;16>f;++f)k[g]=0{if(a){const b=xc=new Image;b.onload=()=>{if(xc===b){var c=xa.createElement("canvas");c.width=16;c.height=416;c=c.getContext("2d");c.scale(1,-1);for(let d=0;26>d;++d)c.drawImage(b,0,d<<4,16,16,0,-(d<<4)-16,16,16);wc=new gb(c.getImageData(0,0,16,416).data.buffer);for(const d of yc)d.P=!0;xc=null}};b.src=`${"/static/minicraft/"}textures/${a}.png`}else wc=null},Bc=(a,b)=>{const c={yb:b,Wa:b.getContext("2d",{alpha:!1,desynchronized:!0}),jb:null,kb:null,ob:"",P:!1,qb:0,$a:0,zb:qb(()=> -(c.qb=c.$a,c.$a=0),1E3),o:a};yc.add(c);Ac(c);return c},Ac=a=>{const b=a.yb,c=a.o;a.kb=new gb((a.jb=a.Wa.createImageData(b.width=c.ya,b.height=c.za)).data.buffer);const d=c.ya*c.config.Y/c.la,e=c.za*c.config.Y/c.la;b.style.width=d+"px";b.style.height=e+"px";b.style.left=Ia((c.Pa-d)/2)+"px";b.style.top=Ia((c.Qa-e)/2)+"px";a.Wa.fillStyle="rgba(255,255,255,.5)"};let Cc=0; -const Fc=(a,b,c,d)=>{const e={Z:null,Ga:null,busy:!1,$:null,Ia:null,sa:0,pb:!1,La:0,Ma:0,Na:0,id:c.Ea,va:0,wa:0,K:0,Aa:.5,Ba:8.5,Ca:.5,time:0,eb:0},l=Lb(e,d);jc(e,l);const m={a,config:c,mb:0,nb:0,Ka:!1,ta:!0,A:!0,Ab:b,ca:0,X:new hb,ab:"",j:0,N:[],g:l,bb:null,u:null,la:1,Pa:1,Qa:1,ya:0,za:0,Ra:0,ub:0,Sa:0,Cb:qb(()=>{var k;(k=m.A)||(ic(e,e.time+1),fc(e,l,!1),k=void 0);return k},50),world:e};Dc(m,null);Ec(m);return m},Gc=a=>{a.world.pb||(hc(a.world,a.g),a.a.U(a.world.id,{mod_l:Qa.now()}))},Ec=a=>{ba(function*(){if(!a.config.ka)try{yield a.Ab.requestPointerLock()}catch(b){}}())}, -Hc=(a,b)=>a===b?0:.1-.2*a,Ic=a=>{a.g.Ua=Hc((a=a.X).has(-12)||a.has(65),a.has(-13)||a.has(68))},Jc=a=>{a.g.ib=Hc((a=a.X).has(-15)||a.has(16),a.has(-14)||a.has(32))},Kc=a=>{a.g.Va=Hc((a=a.X).has(-11)||a.has(83),a.has(-10)||a.has(87))},Lc=a=>{a.g.vb=Hc(a.X.has(-18),a.X.has(-19))},Mc=a=>{a.g.wb=Hc(a.X.has(-17),a.X.has(-16))},Oc=(a,b,c)=>{if(!a.world)return!1;const d=a.X;var e=a.g;if(c){if(d.has(b))return!1;d.add(b);var l=e.aa,m=e.V;c=e.ba;switch(b){case -18:case -19:Lc(a);break;case -17:case -16:Mc(a); -break;case -1:2!==e.l&&0<=m&&(0===e.Oa?0===e.l&&(b=ac(a.world,l,m,c),2===b?b=3:1===b&&(b=4),6===b||8!==b&&13!==b&&null!==Kb(e.B,Ib(b,1)))||(bc(a.world,l,m,c),e.V=-1):Nc(a,[l,m,c],!1));break;case -2:case 71:if(0<=m){const k=ac(a.world,l,m,c);c=e.B.slice(0,9);m=c.findIndex(f=>null!==f.c&&f.c.id===k);0<=m?e.L=m:1===e.l&&(c[e.L].c&&(c=c.findIndex(f=>null===f.c),0<=c&&(e.L=c)),e.B[e.L].c=Ib(k));e.ma=a.ca}break;case -3:if(2!==e.l&&0<=m)if(0===e.Oa){if(b=e.B[e.L],b.c){switch(e.pa){case 0:--l;break;case 1:++l; -break;case 2:--m;break;case 3:++m;break;case 4:--c;break;case 5:++c}0<=m&&64>m&&cc(a.world,l&(1<<4+a.world.K)-1,m,c&(1<<4+a.world.K)-1,b.c.id)&&1!==e.l&&0>=--b.c.amount&&(b.c=null)}}else Nc(a,[l,m,c],!0);break;case -4:e.L=(e.L+9-1)%9;e.ma=a.ca;break;case -5:e.L=(e.L+1)%9;e.ma=a.ca;break;case 27:0===a.j&&(a.A=!0,a.j=1);break;case -15:case -14:case 16:case 32:Jc(a);break;case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:e.L=b-49;e.ma=a.ca;break;case -12:case -13:case 65:case 68:Ic(a); -break;case 69:if(0===a.j){a.j=3;for(const k of d)Oc(a,k,!1)}break;case 80:a.world&&(a.A=!0);break;case 81:e=e.B[e.L];if(d.has(17)||e.c&&0>=--e.c.amount)e.c=null;break;case -11:case -10:case 83:case 87:Kc(a);break;case 84:if(0===a.j){a.j=2;for(const k of d)Oc(a,k,!1)}break;case 112:a.ta=!a.ta;break;case 114:a.Ka=!a.Ka;case 116:case 122:case 123:break;default:return!1}}else{if(!d.delete(b))return!1;switch(b){case -15:case -14:case 16:case 32:Jc(a);break;case -12:case -13:case 65:case 68:Ic(a);break; -case -11:case -10:case 83:case 87:Kc(a);break;case -18:case -19:Lc(a);break;case -17:case -16:Mc(a)}}a.ab=[...d].join();return!0},Pc=(a,b)=>(b=b.startsWith("~")?a+P(b.substr(1)):P(b),isNaN(b)?a:b),Rc=(a,b)=>{var c=a.g,d=a.world;if(b)if("/"===b.charAt(0)){b=b.substr(1).split(" ");const e=b.shift();switch(e){case "clear":a.N=[];break;case "clearinv":for(const l of c.B)l.c=null;Z(a,"Inventar geleert",!0);break;case "gamemode":case "gm":b=P(b[0]);!isNaN(b)&&0<=b&&3>b&&0===b%1?(c.l=b,Z(a,"Spielmodus gesetzt auf: "+ -b,!0)):Z(a,"Spielmodus muss in 0..2 sein!");break;case "give":if(0===b.length){Z(a,"/give [Anzahl]\n"+Fb.join(" "));break}d=Fb.indexOf((b[0]||"").toLowerCase());d=0<=d?d:P(b[0]);b=P(b[1]||1);!isNaN(d)&&0d&&0===d%1?!isNaN(b)&&0{a.u.P=!0;Z(a,"Chunks geladen.",!0)});break;case "me":Z(a,c.name+" "+b.join(" "),!0);break;case "save":Gc(a);Z(a,"Spiel gespeichert.",!0);break;case "spawn":d.Aa=c.G;d.Ba=c.H;d.Ca=c.J;Z(a,"Startpunkt aktualisiert.",!0);break;case "teleport":case "tp":0===b.length?(c.G=d.Aa,c.H=d.Ba,c.J=d.Ca,a.u.P=!0,Z(a,"Zum Startpunkt teleportiert.",!0)):3===b.length?(Z(a,"Teleportiert zu"+` ${c.G=Pc(c.G,b[0])} ${c.H=Pc(c.H,b[1])} ${c.J=Pc(c.J,b[2])}`,!0),a.u.P=!0):Z(a,"Pech!"); -c.da=0;c.ea=0;c.fa=0;break;case "time":c=b[1];if(!c){Z(a,"Parameter fehlt!");break}if("day"===c)c=1E3;else if("night"===c)c=13E3;else if(isNaN(c=L(P(c))))break;switch(b[0]){case "add":c+=d.time;case "set":ic(d,c);Z(a,"Zeit gesetzt auf: "+d.time,!0);break;default:Z(a,"Ung\u00fcltiger Befehl: time "+b[0])}break;case "version":Z(a,"minicraft 0.11.3");break;case "/exit":c.Oa=0;Z(a,"Normaler Mausmodus.",!0);break;case "/expand":a.g.qa&&a.g.ra?d=!0:(Z(a,"Auswahl erforderlich!"),d=!1);d&&("vert"===b[0]? -(c.qa[1]=0,c.ra[1]=63,Z(a,"Auswahl erweitert.",!0)):Z(a,'Nur "vert" wird unterst\u00fctzt!'));break;case "/pos1":case "/pos2":Nc(a,[L(c.G),L(c.H),L(c.J)],"/pos2"===e);break;case "/regen":vc(d).then(()=>{a.u.P=!0;Z(a,"Chunk neu generiert.",!0)});break;case "/show":Z(a,`${"Erster"}: ${c.qa?c.qa.join(" "):"nichts"}, ${"Zweiter"}: ${c.ra?c.ra.join(" "):"nichts"}`);break;case "/wand":c.Oa=1;Z(a,"Auswahl mit Maustasten.",!0);break;default:Z(a,"Ung\u00fcltiger Befehl: "+e)}}else{const e=Z(a,`<${c.name}> `+ -b);Dc(a,b).then(l=>{l&&Qc(a,e)})}},Z=(a,b,c=!1)=>{const d=++Cc;(a.N=a.N.slice(-49)).push({id:d,tb:c,time:va(),value:b});return d},Qc=(a,b)=>{const c=a.N.findIndex(d=>d.id===b);0<=c&&a.N.splice(c,1)},Nc=(a,b,c)=>{c?a.g.ra=b:a.g.qa=b;Z(a,`${c?"Zweiter Auswahlpunkt":"Erster Auswahlpunkt"}: ${b.join(" ")}`,!0)},Dc=(a,b)=>(rb(a.bb),(b?eb("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:$a({msg:b})}):eb("/api/chat")).then(c=>{if(c.ok)return c.text()}).then(c=>{if(c){c=c.split("\n").filter(Boolean); -for(const d of c)d.startsWith("<")&&Z(a,d);return 0!1).then(c=>{a.bb=pb(()=>{Dc(a,null)},5E3);return c})),Sc=({id:a,M:b})=>(A("div[className=bitmap]",{S:{backgroundImage:`url(${"/static/minicraft/"}textures/${b}.png)`,backgroundPositionY:`-${2*(a-1)}rem`}}),null);function Tc({amount:a,l:b,id:c,M:d}){A("div[className=stack]",{title:Gb[c]+(1===b?` (${Fb[c]}, ${c})`:"")});return[G(Sc,{id:c,M:d}),1!==a&&H("div[className=amount]",{innerText:a})]} -function Uc({g:a,M:b,na:c}){A("div[className=bar]",{ontouchstart:F(e=>{a.L=Number(e.target.closest("[data-slot]").dataset.slot);a.ma=e.timeStamp}),S:{opacity:Ja(.5,M(1,1-5E-4*(c-a.ma-5E3)))}});const d=a.l;return a.B.slice(0,9).map(({c:e},l)=>H("div",{D:{slot:l},F:{active:l===a.L}},[e&&G(Tc,{amount:e.amount,data:e.data,l:d,id:e.id,M:b})]))} -function Vc({Bb:a,M:b}){A("div[className=grid]",{onclick:({target:c})=>{(c=c.closest("[data-id]"))&&Jb({c:Ib(P(c.dataset.id)),filter:null,W:64},a)}});return Fb.map((c,d)=>0({c:null,filter:null,W:64})),d=a.g.l;A("div[className=menu overlay inventory]",ja(()=>({onclick:({target:e})=>{if("menu overlay inventory"===e.className)c.c?c.c=null:(a.j=0,a.A=!1,Ec(a));else if(e=e.closest("[data-slot]"))e=a.g.B[P(e.dataset.slot)],c.c?Jb(c,e):e.c&&Jb(e,c)},oncontextmenu:({target:e})=>{if("menu overlay inventory"===e.className)c.c?0>=--c.c.amount&&(c.c=null):(a.j=0,a.A=!1,Ec(a));else if(e=e.closest("[data-slot]"))e=a.g.B[P(e.dataset.slot)],c.c? -Jb(c,e,1):e.c&&Jb(e,c,Ha(e.c.amount/2))}})));return[H("div[className=window]",null,[H("h2[innerText=Inventar]"),1===d&&G(Vc,{Bb:c,M:b}),H("div[className=grid]",null,a.g.B.map(({c:e},l)=>H("div",{D:{slot:l},F:{first:9>l}},[e&&G(Tc,{amount:e.amount,data:e.data,l:d,id:e.id,M:b})])))]),c.c&&H("div[className=hand]",{S:{transform:`translate(${a.mb}px, ${a.nb}px)`}},[G(Tc,{amount:c.c.amount,data:c.c.data,l:0,id:c.c.id,M:b})])]} -const Xc=({I:{tb:a,time:b,value:c},na:d})=>(A(a?"div[className=minor]":"div",{innerText:c,S:{opacity:M(1,1-.001*(d-b-4500))}}),null);function Yc({N:a,na:b}){A("div[className=messages]");const c=b-5E3;return[ra(Xc,a.slice(-10).filter(d=>d.time>c),{na:b})]}function Zc({I:a,ia:b,current:c}){A("button",{disabled:a.id===c,innerText:`${a.label} (${a.owner})`,onclick:()=>{b({T:a.id})}});return null} -function $c({a:{ia:a},config:b,o:c,oa:d}){c&&D(()=>Gc(c));const [e,l]=pa(!1),m=ia(()=>e?eb("/static/minicraft/textures.json").then(k=>k.ok?k.json():null).catch(()=>null):Za.resolve(null),[e],null);A("div[className=menu overlay]");return[H("h1",{innerText:e?"Oberfl\u00e4chen":"Einstellungen"}),H("center",null,[H("button",{innerText:c&&!e?"Zur\u00fcck zum Spiel":"Zur\u00fcck",onclick:()=>{e?l(!1):c?(c.j=0,c.A=!1,Ec(c)):d(2)}})]),!e&&H("div[className=settings]",null,[H("button[innerText=Oberfl\u00e4chen...]", +function aa(a){function b(d){return a.next(d)}function c(d){return a.throw(d)}return new Promise(function(d,e){function l(m){m.done?d(m.value):Promise.resolve(m.value).then(b,c).then(l,e)}l(a.next())})} +const n=lui,ba=n.defer,fa=n.defer_end,ha=n.hook_async,A=n.hook_dom,D=n.hook_effect,ia=n.hook_memo,ja=n.hook_model,na=n.hook_rerender,oa=n.hook_state,F=n.hook_static,pa=n.init,G=n.node,H=n.node_dom,qa=n.node_map,ua=n.now,va=window,wa=document,ya=navigator,K=Math,za=K.PI,Aa=.5*za,Ea=180/za,Fa=K.random,L=K.floor,Ga=K.ceil,Ha=K.round,M=K.min,Ia=K.max,Ja=K.cos,Ka=K.sin,La=K.sqrt,Ma=K.log2,Na=String.fromCharCode,Oa=BroadcastChannel,Pa=Date,Xa=JSON,Ya=Promise,Za=Xa.stringify,$a=Xa.parse,N=localStorage,ab= +N.setItem.bind(N),bb=N.removeItem.bind(N),cb=va.indexedDB,db=fetch,eb=Uint8Array,fb=Uint32Array,gb=Set,kb=Map,P=Number,lb=Object,mb=lb.keys,nb=lb.entries,ob=setTimeout,pb=setInterval,qb=clearTimeout,rb=clearInterval,sb=addEventListener,tb=removeEventListener,ub=ya.userAgent.includes("WebKit"),vb=a=>a*a,wb=()=>!1,xb=(a,b)=>{const c=new Pa;a=new Pa(a);var d=c-a;if(59E3>d)return Ha(d/1E3)+"s";if(3E6>d)return Ha(d/6E4)+"m";d=a.getFullYear();const e=a.getMonth(),l=a.getDate();let m="";d"minicraft.world."+b.id));for(const b of mb(N))b.startsWith("minicraft.world.")&&!a.has(b.split(":")[0])&&bb(b)} +const Db={init:()=>{let a=!1;var b={ka:!1,xa:1,ua:3,Y:4,T:1,Da:120,ga:64,Ea:0,worlds:[]};if(Q){let c=Q.pixel_grouping;null!=c&&(b.xa=c);null!=(c=Q.mouse_sensitivity)&&(b.ua=c);b.Y=Q.resolution_scaling;null!=(c=Q.textures)?b.T=c:b.T=Q.flag_textures?1:0;b.Da=Q.view_angle;b.ga=Q.view_distance;null!=(c=Q.world_last)&&(b.Ea=c);null!=(c=Q.worlds)?b.worlds=c:N.getItem("minicraft.world.0:meta")&&(b.worlds[0]={id:0,label:(prompt("Es wurde eine namenlose lokale Welt gefunden. Wie soll sie hei\u00dfen?","")|| +"Unbekannte Welt").substring(0,16),mod_l:Pa.now(),mod_r:0},a=!0);Q=null}b={account:{label:"",rank:0},config:b,Ya:b};return a?(b.Ya=null,Db.Xa(b)):b},Xa:a=>{const b=a.config;if(b===a.Ya)return a;ab("minicraft.config",Za({version:"0.11.4",pixel_grouping:b.xa,mouse_sensitivity:b.ua,resolution_scaling:b.Y,textures:b.T,view_angle:b.Da,view_distance:b.ga,world_last:b.Ea,worlds:b.worlds}));return Object.assign({},a,{Ya:b})},xb:(a,b)=>Object.assign({},a,{account:b}),Gb:(a,b)=>Db.ia(a,b(a.config)),ia:(a,b)=> +Object.assign({},a,{config:Object.assign({},a.config,b)}),Ja:(a,b)=>a.config.ka===b?a:Db.ia(a,{ka:b}),gb:(a,b)=>Object.assign({},a,{config:Object.assign({},a.config,{worlds:[...a.config.worlds,b]})}),hb:(a,b)=>Object.assign({},a,{config:Object.assign({},a.config,{worlds:a.config.worlds.filter(c=>c.id!==b)})}),U:(a,b,c)=>Object.assign({},a,{config:Object.assign({},a.config,{worlds:a.config.worlds.map(d=>d.id===b?Object.assign({},d,c):d)})})},Eb="air stone grass dirt cobble planks bedrock log leaves bricks wool sand gravel glass bookshelf obsidian stone_bricks sandstone lapis_block iron_block gold_block diamond_block emerald_block redstone_block quartz_block".split(" "), +Fb="Luft Stein Grasblock Erde Bruchstein Holzbretter Grundgestein Stamm Laub Ziegelsteine Wolle Sand Kies Glas B\u00fccherregal Obsidian Steinziegel Sandstein Lapislazuliblock Eisenblock Goldblock Diamantblock Smaragdblock Redstoneblock Quarzblock".split(" "),Gb=[0,8487297,4305266,4349313,8092539,5342114,7039851,3561583,4172910,6384533,15526888,10671324,8092798,16447200,4151672,1970708,8092539,9686227,9126695,15198183,5567485,14541182,7920469,662956,14936813],Hb=(a,b=1,c=null)=>({amount:b,data:c, +id:a}),Ib=(a,b,c=a.c.amount)=>{if(b.c)a.c.id===b.c.id?(c=M(c,b.W-b.c.amount),a.c.amount-=c,b.c.amount+=c,0>=a.c.amount&&(a.c=null)):!(a.c.amount<=c&&a.c.amount<=b.W&&b.c.amount<=a.W)||a.filter&&!a.filter(b.c.id)||b.filter&&!b.filter(a.c.id)||([b.c,a.c]=[a.c,b.c]);else if(!b.filter||b.filter(a.c.id))a.c.amount<=c&&a.c.amount<=b.W?[b.c,a.c]=[a.c,b.c]:(c=M(c,b.W),a.c.amount-=c,b.c=Hb(a.c.id,c),0>=a.c.amount&&(a.c=null))},Jb=(a,b)=>{for(const c of a)if(c.c&&c.c.id===b.id){const d=M(b.amount,c.W-c.c.amount); +c.c.amount+=d;if(0>=(b.amount-=d))return null}for(const c of a)if(!c.c&&(!c.filter||c.filter(b.id)))if(a=M(b.amount,c.W),a<=b.amount){if(c.c=Hb(b.id,a),0>=(b.amount-=a))return null}else return c.c=b,null;return b},Kb=(a,b)=>({Ua:0,ib:0,Va:0,O:0,ha:0,pa:0,aa:0,V:-1,ba:0,qa:null,ra:null,l:1,rb:20,B:Array(36).fill(null).map(()=>({c:null,filter:null,W:64})),Oa:0,name:b.label||"Spieler",G:a.Aa,H:a.Ba,J:a.Ca,vb:0,wb:0,L:0,ma:0,da:0,ea:0,fa:0}),Lb=(a,b,c)=>{a.O=(a.O+b+100*za)%(2*za);a.ha=Ia(-Aa,M(Aa,a.ha+ +c))},Mb=a=>{a+=32;33a?a++:38a?a+=2:43a?a+=3:126a?a+=37:55295a-(63743a?35:40a?34:34a?33:32),Pb=()=>{var a=Ob;const b=a.length,c=new kb,d=u=>{h=h<<1|u&1;15===++p&&(w+=Mb(h),h=p=0)},e=()=>{for(let u=0;u{d(u);d(u>>1);d(u>>2);d(u>>3);d(u>>4);d(u>>5);d(u>>6);d(u>>7)},m=()=>{0===--z&&(z=1<{if(C)C=!1;else{let u=r.id;for(let E=0;E>E)}};let f=a[0],w="",h=0,p=2, +v=2,z=2,g=2,r={id:g++,Ha:new kb},C=!0;l(f);c.set(f,r);for(let u=1;u{var b=Ob;if(!a)return null;const c=a.length,d=()=>{p+=(g>>--r&1)<v;)d();f=[p];e[2]=f;for(b[h++]=p;z<=c;){w=k;for(p=v=0;vv;)d();e[m]=[p];p=m++;0===--l&&(l=1<{d=d.target.result.createObjectStore("chunks",{keyPath:["world","coords"]});for(const e of mb(N))if(e.startsWith("minicraft.world.")){const [l,m]=e.substr(16).split(":");"meta"!==m&&(d.add({world:P(l),coords:m,data:N.getItem(e)}),bb(e))}};c.onsuccess=d=>{T=d.target.result}} +const Rb=(a,b)=>aa(function*(){if(!T)return N.getItem(`minicraft.world.${a}:${b}`);const c=T.transaction("chunks","readonly").objectStore("chunks").get([a,b]);return new Ya(d=>{c.onsuccess=()=>{let e;d(null==(e=c.result)?void 0:e.data)}})}()),Sb=(a,b)=>{var c=Pb();return aa(function*(){if(!T)return ab(`minicraft.world.${a}:${b}`,c);const d=T.transaction("chunks","readwrite").objectStore("chunks").put({world:a,coords:b,data:c});return new Ya((e,l)=>{d.onsuccess=()=>{e()};d.onerror=()=>{l(d.error)}})}())}, +Tb=(a,b)=>aa(function*(){if(!T)return bb(`minicraft.world.${a}:${b}`);const c=T.transaction("chunks","readwrite").objectStore("chunks").delete([a,b]);return new Ya(d=>{c.onsuccess=()=>{d()}})}()),Ub=a=>aa(function*(){const b=`minicraft.world.${a}:`;if(!T){const e={},l=b.length;for(const m of mb(N))m.startsWith(b)&&(e[m.substr(l)]=N.getItem(m));return e}const c=T.transaction("chunks","readonly").objectStore("chunks").openCursor(),d={meta:N.getItem(b+"meta")};return new Ya(e=>{c.onsuccess=()=>{const l= +c.result;l?(l.value.world===a&&(d[l.value.coords]=l.value.data),l.continue()):e(d)}})}()),Vb=(a,b)=>aa(function*(){if(T){var c=T.transaction("chunks","readwrite"),d=c.objectStore("chunks");for(const [e,l]of nb(b))"meta"!==e?d.put({world:a,coords:e,data:l}):ab(`minicraft.world.${a}:meta`,l);return new Ya((e,l)=>{c.oncomplete=()=>{e()};c.onerror=()=>{l(c.error)}})}for(const [e,l]of nb(b))ab(`minicraft.world.${a}:${e}`,l);ab("__margin",Array(257).join("x"));bb("__margin")}()),Wb=a=>{if(T){bb(`minicraft.world.${a}:meta`); +var b=T.transaction("chunks","readwrite").objectStore("chunks").openCursor();b.onsuccess=()=>{const c=b.result;c&&(c.value.world===a&&c.delete(),c.continue())}}else{const c=`minicraft.world.${a}:`;for(const d of mb(N))d.startsWith(c)&&bb(d)}},Xb=(a,b)=>{if(T){ab(`minicraft.world.${b}:meta`,N.getItem(`minicraft.world.${a}:meta`));bb(`minicraft.world.${a}:meta`);var c=T.transaction("chunks","readwrite").objectStore("chunks"),d=c.openCursor();d.onsuccess=()=>{const e=d.result;e&&(e.value.world===a&& +(e.value.world=b,c.put(e.value)),e.continue())}}else{const e=`minicraft.world.${a}:`,l=e.length,m=`minicraft.world.${b}:`;for(const k of mb(N))if(k.startsWith(e)){const f=N.getItem(k);bb(k);ab(m+k.substr(l),f)}}},Yb=new fb(1024),Ob=new eb(Yb.buffer),Zb=new kb,$b=(a,b,c,d)=>0>c||63{const e=a.K;a.Z[(b<>4<>4)<<2|c>>4].ja=!0},bc=(a,b,c,d,e)=>{const l=a.K,m=(b<>4<>4)<<2|c>> +4].ja=!0},ec=(a,b,c)=>{const d=Ia(M(b.H,63),0)>>4,e=L(b.G)>>4;b=L(b.J)>>4;if(c||a.Ma!==d||a.va+a.La!==e||a.wa+a.Na!==b)c=1<{const b=a.La,c=a.Ma,d=a.Na,e=a.K,l=`${e} ${b} ${d} ${c}`;let m=Zb.get(l);if(null==m){const k=1<{let z=vb(w-b),g=vb(p-d),r=vb(w-b-k),C=0,u=0;rw<=f).sort((w,h)=>w.Za-h.Za))}a.Ia=m;a.sa=0},gc=(a,b)=>{if(!a.pb){for(var c=b.B.map(({c:d})=>d&&[d.id,d.amount,d.data]);0d.ja).map(d=>fc(a,d)))}},ic=(a,b)=>{const c=N.getItem(`minicraft.world.${a.id}:meta`);if(c){const {p:d,s:e,t:l,v:m}=$a(c);null!=m&&(d.i.forEach((k, +f)=>{k&&(b.B[f].c=Hb(k[0],k[1],k[2]))}),b.rb=d.h,b.l=d.m,b.G=d.p[0],b.H=d.p[1],b.J=d.p[2],b.O=d.p[3],b.ha=d.p[4],a.Aa=e[0],a.Ba=e[1],a.Ca=e[2],null!=l&&hc(a,l))}},hc=(a,b)=>{a.time=b%24E3;a.eb=(b+6E3)/24E3%1},uc=a=>aa(function*(){const b=a.$[a.Ia[a.sa=0].lb];var c=b.y;yield Tb(a.id,`${b.Fa}/${b.Ta}`+(0{const c=a.Ga;var d=a.K;const e=b.y,l=(256<m;++m){for(d=0;16>d;++d)Yb[++k]=c[f],Yb[++k]= +c[++f],Yb[++k]=c[++f],Yb[++k]=c[++f],f+=13;f+=l}b.ja=!1;return Sb(a.id,`${b.Fa}/${b.Ta}`+(0aa(function*(){const c=a.$,d=a.Ia,e=a.va,l=a.wa,m=d.length;for(;a.saC;++C){for(w=0;16>w;++w)k[h]=Yb[++u],k[++h]=Yb[++u],k[++h]=Yb[++u],k[++h]=Yb[++u],h+=13;h+=z}else for(p=0;16>p;++p){for(f=0;16>f;++f)k[h]=0{if(a){const b=wc=new Image;b.onload=()=>{if(wc===b){var c=wa.createElement("canvas");c.width=16;c.height=416;c=c.getContext("2d");c.scale(1,-1);for(let d=0;26>d;++d)c.drawImage(b,0,d<<4,16,16,0,-(d<<4)-16,16,16);vc=new fb(c.getImageData(0,0,16,416).data.buffer);for(const d of xc)d.P=!0;wc=null}};b.src=`${"/static/minicraft/"}textures/${a}.png`}else vc=null},Ac=(a,b)=>{const c={yb:b,Wa:b.getContext("2d",{alpha:!1,desynchronized:!0}),jb:null,kb:null,ob:"",P:!1,qb:0,$a:0,zb:pb(()=> +(c.qb=c.$a,c.$a=0),1E3),o:a};xc.add(c);zc(c);return c},zc=a=>{const b=a.yb,c=a.o;a.kb=new fb((a.jb=a.Wa.createImageData(b.width=c.ya,b.height=c.za)).data.buffer);const d=c.ya*c.config.Y/c.la,e=c.za*c.config.Y/c.la;b.style.width=d+"px";b.style.height=e+"px";b.style.left=Ha((c.Pa-d)/2)+"px";b.style.top=Ha((c.Qa-e)/2)+"px";a.Wa.fillStyle="rgba(255,255,255,.5)"};let Bc=0; +const Ec=(a,b,c,d)=>{const e={Z:null,Ga:null,busy:!1,$:null,Ia:null,sa:0,pb:!1,La:0,Ma:0,Na:0,id:c.Ea,va:0,wa:0,K:0,Aa:.5,Ba:8.5,Ca:.5,time:0,eb:0},l=Kb(e,d);ic(e,l);const m={a,config:c,mb:0,nb:0,Ka:!1,ta:!0,A:!0,Ab:b,ca:0,X:new gb,ab:"",j:0,N:[],g:l,bb:null,u:null,la:1,Pa:1,Qa:1,ya:0,za:0,Ra:0,ub:0,Sa:0,Cb:pb(()=>{var k;(k=m.A)||(hc(e,e.time+1),ec(e,l,!1),k=void 0);return k},50),world:e};Cc(m,null);Dc(m);return m},Fc=a=>{a.world.pb||(gc(a.world,a.g),a.a.U(a.world.id,{mod_l:Pa.now()}))},Dc=a=>{aa(function*(){if(!a.config.ka)try{yield a.Ab.requestPointerLock()}catch(b){}}())}, +Gc=(a,b)=>a===b?0:.1-.2*a,Hc=a=>{a.g.Ua=Gc((a=a.X).has(-12)||a.has(65),a.has(-13)||a.has(68))},Ic=a=>{a.g.ib=Gc((a=a.X).has(-15)||a.has(16),a.has(-14)||a.has(32))},Jc=a=>{a.g.Va=Gc((a=a.X).has(-11)||a.has(83),a.has(-10)||a.has(87))},Kc=a=>{a.g.vb=Gc(a.X.has(-18),a.X.has(-19))},Lc=a=>{a.g.wb=Gc(a.X.has(-17),a.X.has(-16))},Nc=(a,b,c)=>{if(!a.world)return!1;const d=a.X;var e=a.g;if(c){if(d.has(b))return!1;d.add(b);var l=e.aa,m=e.V;c=e.ba;switch(b){case -18:case -19:Kc(a);break;case -17:case -16:Lc(a); +break;case -1:2!==e.l&&0<=m&&(0===e.Oa?0===e.l&&(b=$b(a.world,l,m,c),2===b?b=3:1===b&&(b=4),6===b||8!==b&&13!==b&&null!==Jb(e.B,Hb(b,1)))||(ac(a.world,l,m,c),e.V=-1):Mc(a,[l,m,c],!1));break;case -2:case 71:if(0<=m){const k=$b(a.world,l,m,c);c=e.B.slice(0,9);m=c.findIndex(f=>null!==f.c&&f.c.id===k);0<=m?e.L=m:1===e.l&&(c[e.L].c&&(c=c.findIndex(f=>null===f.c),0<=c&&(e.L=c)),e.B[e.L].c=Hb(k));e.ma=a.ca}break;case -3:if(2!==e.l&&0<=m)if(0===e.Oa){if(b=e.B[e.L],b.c){switch(e.pa){case 0:--l;break;case 1:++l; +break;case 2:--m;break;case 3:++m;break;case 4:--c;break;case 5:++c}0<=m&&64>m&&bc(a.world,l&(1<<4+a.world.K)-1,m,c&(1<<4+a.world.K)-1,b.c.id)&&1!==e.l&&0>=--b.c.amount&&(b.c=null)}}else Mc(a,[l,m,c],!0);break;case -4:e.L=(e.L+9-1)%9;e.ma=a.ca;break;case -5:e.L=(e.L+1)%9;e.ma=a.ca;break;case 27:0===a.j&&(a.A=!0,a.j=1);break;case -15:case -14:case 16:case 32:Ic(a);break;case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:e.L=b-49;e.ma=a.ca;break;case -12:case -13:case 65:case 68:Hc(a); +break;case 69:if(0===a.j){a.j=3;for(const k of d)Nc(a,k,!1)}break;case 80:a.world&&(a.A=!0);break;case 81:e=e.B[e.L];if(d.has(17)||e.c&&0>=--e.c.amount)e.c=null;break;case -11:case -10:case 83:case 87:Jc(a);break;case 84:if(0===a.j){a.j=2;for(const k of d)Nc(a,k,!1)}break;case 112:a.ta=!a.ta;break;case 114:a.Ka=!a.Ka;case 116:case 122:case 123:break;default:return!1}}else{if(!d.delete(b))return!1;switch(b){case -15:case -14:case 16:case 32:Ic(a);break;case -12:case -13:case 65:case 68:Hc(a);break; +case -11:case -10:case 83:case 87:Jc(a);break;case -18:case -19:Kc(a);break;case -17:case -16:Lc(a)}}a.ab=[...d].join();return!0},Oc=(a,b)=>(b=b.startsWith("~")?a+P(b.substr(1)):P(b),isNaN(b)?a:b),Qc=(a,b)=>{var c=a.g,d=a.world;if(b)if("/"===b.charAt(0)){b=b.substr(1).split(" ");const e=b.shift();switch(e){case "clear":a.N=[];break;case "clearinv":for(const l of c.B)l.c=null;Y(a,"Inventar geleert",!0);break;case "gamemode":case "gm":b=P(b[0]);!isNaN(b)&&0<=b&&3>b&&0===b%1?(c.l=b,Y(a,"Spielmodus gesetzt auf: "+ +b,!0)):Y(a,"Spielmodus muss in 0..2 sein!");break;case "give":if(0===b.length){Y(a,"/give [Anzahl]\n"+Eb.join(" "));break}d=Eb.indexOf((b[0]||"").toLowerCase());d=0<=d?d:P(b[0]);b=P(b[1]||1);!isNaN(d)&&0d&&0===d%1?!isNaN(b)&&0{a.u.P=!0;Y(a,"Chunks geladen.",!0)});break;case "me":Y(a,c.name+" "+b.join(" "),!0);break;case "save":Fc(a);Y(a,"Spiel gespeichert.",!0);break;case "spawn":d.Aa=c.G;d.Ba=c.H;d.Ca=c.J;Y(a,"Startpunkt aktualisiert.",!0);break;case "teleport":case "tp":0===b.length?(c.G=d.Aa,c.H=d.Ba,c.J=d.Ca,a.u.P=!0,Y(a,"Zum Startpunkt teleportiert.",!0)):3===b.length?(Y(a,"Teleportiert zu"+` ${c.G=Oc(c.G,b[0])} ${c.H=Oc(c.H,b[1])} ${c.J=Oc(c.J,b[2])}`,!0),a.u.P=!0):Y(a,"Pech!"); +c.da=0;c.ea=0;c.fa=0;break;case "time":c=b[1];if(!c){Y(a,"Parameter fehlt!");break}if("day"===c)c=1E3;else if("night"===c)c=13E3;else if(isNaN(c=L(P(c))))break;switch(b[0]){case "add":c+=d.time;case "set":hc(d,c);Y(a,"Zeit gesetzt auf: "+d.time,!0);break;default:Y(a,"Ung\u00fcltiger Befehl: time "+b[0])}break;case "version":Y(a,"minicraft 0.11.4");break;case "/exit":c.Oa=0;Y(a,"Normaler Mausmodus.",!0);break;case "/expand":a.g.qa&&a.g.ra?d=!0:(Y(a,"Auswahl erforderlich!"),d=!1);d&&("vert"===b[0]? +(c.qa[1]=0,c.ra[1]=63,Y(a,"Auswahl erweitert.",!0)):Y(a,'Nur "vert" wird unterst\u00fctzt!'));break;case "/pos1":case "/pos2":Mc(a,[L(c.G),L(c.H),L(c.J)],"/pos2"===e);break;case "/regen":uc(d).then(()=>{a.u.P=!0;Y(a,"Chunk neu generiert.",!0)});break;case "/show":Y(a,`${"Erster"}: ${c.qa?c.qa.join(" "):"nichts"}, ${"Zweiter"}: ${c.ra?c.ra.join(" "):"nichts"}`);break;case "/wand":c.Oa=1;Y(a,"Auswahl mit Maustasten.",!0);break;default:Y(a,"Ung\u00fcltiger Befehl: "+e)}}else{const e=Y(a,`<${c.name}> `+ +b);Cc(a,b).then(l=>{l&&Pc(a,e)})}},Y=(a,b,c=!1)=>{const d=++Bc;(a.N=a.N.slice(-49)).push({id:d,tb:c,time:ua(),value:b});return d},Pc=(a,b)=>{const c=a.N.findIndex(d=>d.id===b);0<=c&&a.N.splice(c,1)},Mc=(a,b,c)=>{c?a.g.ra=b:a.g.qa=b;Y(a,`${c?"Zweiter Auswahlpunkt":"Erster Auswahlpunkt"}: ${b.join(" ")}`,!0)},Cc=(a,b)=>(qb(a.bb),(b?db("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:Za({msg:b})}):db("/api/chat")).then(c=>{if(c.ok)return c.text()}).then(c=>{if(c){c=c.split("\n").filter(Boolean); +for(const d of c)d.startsWith("<")&&Y(a,d);return 0!1).then(c=>{a.bb=ob(()=>{Cc(a,null)},5E3);return c})),Rc=({id:a,M:b})=>(A("div[className=bitmap]",{S:{backgroundImage:`url(${"/static/minicraft/"}textures/${b}.png)`,backgroundPositionY:`-${2*(a-1)}rem`}}),null);function Sc({amount:a,l:b,id:c,M:d}){A("div[className=stack]",{title:Fb[c]+(1===b?` (${Eb[c]}, ${c})`:"")});return[G(Rc,{id:c,M:d}),1!==a&&H("div[className=amount]",{innerText:a})]} +function Tc({g:a,M:b,na:c}){A("div[className=bar]",{ontouchstart:F(e=>{a.L=Number(e.target.closest("[data-slot]").dataset.slot);a.ma=e.timeStamp}),S:{opacity:Ia(.5,M(1,1-5E-4*(c-a.ma-5E3)))}});const d=a.l;return a.B.slice(0,9).map(({c:e},l)=>H("div",{D:{slot:l},F:{active:l===a.L}},[e&&G(Sc,{amount:e.amount,data:e.data,l:d,id:e.id,M:b})]))} +function Uc({Bb:a,M:b}){A("div[className=grid]",{onclick:({target:c})=>{(c=c.closest("[data-id]"))&&Ib({c:Hb(P(c.dataset.id)),filter:null,W:64},a)}});return Eb.map((c,d)=>0({c:null,filter:null,W:64})),d=a.g.l;A("div[className=menu overlay inventory]",ia(()=>({onclick:({target:e})=>{if("menu overlay inventory"===e.className)c.c?c.c=null:(a.j=0,a.A=!1,Dc(a));else if(e=e.closest("[data-slot]"))e=a.g.B[P(e.dataset.slot)],c.c?Ib(c,e):e.c&&Ib(e,c)},oncontextmenu:({target:e})=>{if("menu overlay inventory"===e.className)c.c?0>=--c.c.amount&&(c.c=null):(a.j=0,a.A=!1,Dc(a));else if(e=e.closest("[data-slot]"))e=a.g.B[P(e.dataset.slot)],c.c? +Ib(c,e,1):e.c&&Ib(e,c,Ga(e.c.amount/2))}})));return[H("div[className=window]",null,[H("h2[innerText=Inventar]"),1===d&&G(Uc,{Bb:c,M:b}),H("div[className=grid]",null,a.g.B.map(({c:e},l)=>H("div",{D:{slot:l},F:{first:9>l}},[e&&G(Sc,{amount:e.amount,data:e.data,l:d,id:e.id,M:b})])))]),c.c&&H("div[className=hand]",{S:{transform:`translate(${a.mb}px, ${a.nb}px)`}},[G(Sc,{amount:c.c.amount,data:c.c.data,l:0,id:c.c.id,M:b})])]} +const Wc=({I:{tb:a,time:b,value:c},na:d})=>(A(a?"div[className=minor]":"div",{innerText:c,S:{opacity:M(1,1-.001*(d-b-4500))}}),null);function Xc({N:a,na:b}){A("div[className=messages]");const c=b-5E3;return[qa(Wc,a.slice(-10).filter(d=>d.time>c),{na:b})]}function Yc({I:a,ia:b,current:c}){A("button",{disabled:a.id===c,innerText:`${a.label} (${a.owner})`,onclick:()=>{b({T:a.id})}});return null} +function Zc({a:{ia:a},config:b,o:c,oa:d}){c&&D(()=>Fc(c));const [e,l]=oa(!1),m=ha(()=>e?db("/static/minicraft/textures.json").then(k=>k.ok?k.json():null).catch(()=>null):Ya.resolve(null),[e],null);A("div[className=menu overlay]");return[H("h1",{innerText:e?"Oberfl\u00e4chen":"Einstellungen"}),H("center",null,[H("button",{innerText:c&&!e?"Zur\u00fcck zum Spiel":"Zur\u00fcck",onclick:()=>{e?l(!1):c?(c.j=0,c.A=!1,Dc(c)):d(2)}})]),!e&&H("div[className=settings]",null,[H("button[innerText=Oberfl\u00e4chen...]", {onclick:()=>{l(!0)}}),H("label[innerText=Aufl\u00f6sung:]",null,[H("input[type=range][min=1][max=100][step=1]",{value:101-b.Y,onchange:k=>a({Y:101-Number(k.target.value)})})]),H("label[innerText=Blickwinkel:]",null,[H("input[type=range][min=1][max=180][step=1]",{value:b.Da,onchange:k=>a({Da:Number(k.target.value)})})]),H("label[innerText=Sichtweite:]",null,[H("input[type=range][min=1][max=128][step=1]",{value:b.ga,onchange:k=>a({ga:Number(k.target.value)})})]),H("label[innerText=Pixelgruppierung:]", null,[H("input[type=range][min=1][max=8][step=1]",{value:b.xa,onchange:k=>a({xa:Number(k.target.value)})})]),H("label[innerText=Mausempfindlichkeit:]",null,[H("input[type=range][min=1][max=15][step=1]",{value:b.ua,onchange:k=>a({ua:Number(k.target.value)})})]),H("button[innerText=Projektseite]",{onclick:()=>{open("//github.com/L3P3/minicraft")}})]),c&&!e&&H("center",null,[H("button[innerText=Welt verlassen]",{onclick:()=>{d(2)}})]),e&&H("div[className=settings]",null,[H("button[innerText=Einfarbig]", -{disabled:0===b.T,onclick:()=>{a({T:0})}}),m&&ra(Zc,m,{ia:a,current:b.T})])]}const ad=({I:{tb:a,value:b}})=>(A(a?"div[className=minor]":"div",{innerText:b}),null); -function bd({o:a,N:b}){const c=F({history:null,input:null});A("div[className=menu overlay terminal]",{onclick:d=>{d.target!==c.input&&c.input.focus()}});D(d=>{d&&pb(()=>c.history.scrollTop=1E9,0)},[b.length&&b[b.length-1].id]);return[F(H("div[className=toolbar]",null,[H("button[innerText=\u274c]",{onclick:()=>{a.j=0;a.A=!1;Ec(a)}})])),H("div[className=history]",{R:F(d=>{c.history=d})},[ra(ad,b)]),F(H("input[enterkeyhint=send][mozactionhint=send][name=message][required]",{onkeydown:d=>{const e=d.keyCode; -d=d.target;13===e?(Rc(a,d.value),d.value=""):27===e&&(a.j=0,a.A=!1,Ec(a))},R:d=>{c.input=d;pb(()=>d.focus(),0)}}))]}const cd=[["pick",-2],["up",-14],["down",-15],["E",69],["T",84],["F1",112],["F3",114],["...",27]],dd=[["up",-10],["down",-11],["left",-12],["right",-13],["center",-1]],ed=[["up",-16],["down",-17],["left",-18],["right",-19],["center",-3]]; -function fd({o:a}){const b=a.X,c=([d,e])=>H("div",{D:{code:e},F:{button:!0,[d]:!0,active:b.has(e)}});A("div[className=touch]",F({ontouchstart:d=>{let {code:e}=d.target.dataset;if(null!=e&&Oc(a,e=P(e),!0)){const l=d.changedTouches[0].identifier,m=k=>{k.changedTouches[0].identifier===l&&(ub("touchend",m),Oc(a,e,!1))};tb("touchend",m)}return!1}}));return[H("div[className=top]",null,cd.map(([d,e])=>H(`div[innerText=${d}]`,{D:{code:e},F:{button:!0,active:b.has(e)}}))),H("div[className=move]",null,dd.map(c)), -H("div[className=move sec]",null,ed.map(c))]} -function gd({account:a,a:b,config:c,frame:d,cb:e,oa:l}){const m=va(),k=xa.pointerLockElement===d,f=ja(()=>e.o=Fc(b,d,c,a));D(()=>{const g=h=>{if(0!==f.j)return!0;xa.pointerLockElement===d?Oc(f,-1-h.button,"mousedown"===h.type):Ec(f);return!1},p=h=>{if(xa.pointerLockElement===d){const q=f.config.ua*Aa/(Ja(f.Pa,f.Qa)*f.la);vb&&(f.ub=h.timeStamp);Mb(f.g,f.Ra=h.movementX*q,f.Sa=-h.movementY*q)}else f.mb=h.clientX,f.nb=h.clientY},v=h=>{b.Ja(!1);if(0===f.j&&!f.A&&5{d.removeEventListener("mousedown",g);d.removeEventListener("mouseup",g);d.removeEventListener("mousemove",p,z);d.removeEventListener("wheel",v,z);rb(f.bb);sb(f.Cb);hc(f.world,f.g);var h=f.u;yc.delete(h);sb(h.zb);e.o=null}});D(()=>{f.config=c;f.u&&(f.u.P=!0);const g=f.world;var p=Ha(Na(f.config.ga/16*2+2));if(g.K!== -p){var v=f.g;g.$&&hc(g,v);const z=1<<(g.K=p),h=g.$=[];for(let q=0;qu;++u)h.push({ja:!1,l:!1,x:q,y:u,z:C,Fa:0,Ta:0});p=z<{f.la=v;f.Pa=Ja(1,g);f.Qa=Ja(1,p);p=f.config.Y;g=Ha(f.Pa*f.la/p);p=Ha(f.Qa*f.la/p);if(g!==f.ya||p!==f.za)f.ya=g,f.za=p,f.u&&(f.u.P=!0,Ac(f.u))},[d.offsetWidth,d.offsetHeight,wa.devicePixelRatio||1,c.Y]);D(g=>{g||f.A||0!==f.j||(f.j= -1,vb&&f.Ra|f.Sa&&f.ub>m-100&&(Mb(f.g,-f.Ra,-f.Sa),f.Ra=f.Sa=0,f.u.P=!0));f.A=!g},[c.ka&&0===f.j||k]);D(g=>k&&g&&xa.exitPointerLock(),[f.A||0!==f.j]);D(()=>{if(f.world){if(f.ca&&!f.A){var g=f.g,p=M(5,.01*(m-f.ca));g.da-=.1*g.da*p;g.ea-=.1*g.ea*p;g.fa-=.1*g.fa*p;g.da+=(Ka(g.O)*g.Ua+La(g.O)*g.Va)*p;g.ea+=g.ib*p;g.fa+=(-La(g.O)*g.Ua+Ka(g.O)*g.Va)*p;Mb(g,g.vb*p*1.5,g.wb*p*1.5);g.G+=g.da*p;g.H+=g.ea*p;g.J+=g.fa*p}if(f.u){g=f.u;++g.$a;p=g.Wa;var v=g.jb;const aa=g.kb,la=g.o,Ra=la.config,zb=la.ta,y=la.g,O= -la.ya,sa=la.za,R=la.world;var z=0;if(!la.A||g.P){g.P=!1;z=Ra.xa;const kd=Ra.ga;var h=y.O,q=y.ha;const ld=y.aa,md=y.ba,Sa=y.l;var C=y.G,u=y.H,E=y.J;const nd=zb?y.V:-1,od=R.Z;var S=R.K;const pd=null!==wc;var t=1/O,r=1/sa;const ma=O>>1,ta=sa>>1,kc=M(O,sa),lc=32T)var I=V;else if(0===V)I=0===ea?0:1===ea?T:ea-1,Ea=1===ea;else if(V=O)break a;Ea=!1}var W=(I-ma)*qd;da=B+mc*W;const rc=Da-h*W,td=pc;W=16757124;let ib=1,sc=kd,jb=0;2=== -Sa&&0Ab;++Ab){const X=(td+Ab)%3;let fa=rc;var J=rd;0===X&&(fa=da,J=r);1===X&&(fa=qc,J=x);var ua=-1/fa;0fa|0),Wa=u+ya*J-(1===X&0>fa|0),Xa=E+ua*J-(2===X&0>fa|0);J*=tc;for(let Bb,Cb,Db,Y;JWa){if(0>ya)break}else if(65600<=Wa){if(0fa|X<<1,oc=J);if(pd){--Y;1===X?6===Y?Y=25:13===Y?Y=4:1===Y&&0>>24)continue;W=uc&16777215}else W=Hb[Y];sc=J;ib=(0===X?.8:2===X?.6:0>16)*ib,255)<<16|M((W>>8&255)*ib,255)<<8|M((W&255)*ib,255);if(da=(Ea=Ea&&(Ua!==ta||Ima+T))&& -na===W){if(6T)break;aa[++I]=na;if(4>T)break;aa[++I]=na;if(5>T)break;aa[++I]=na;if(6>T)break;aa[++I]=na;break}if(Ea||0===I)na=W;aa[Ta+I]=W}Ta+=O}zb&&!lc&&(aa[O*ta+ma]^=16777215)}p.putImageData(v,0,0);zb&&lc&&(v=M(Ha(.05*kc),8),p.fillRect(ma-v,ta-1,v<<1,2),p.fillRect(ma-1,ta-v,2,v-1),p.fillRect(ma-1,ta+1,2,v-1))}g.ob=la.Ka?`minicraft ${"0.11.3"} ${L(g.qb).toString().padStart(2,"\u00a0")} fps, T: ${L(24*R.eb).toString().padStart(2, -"0")}:${L(24*R.eb%1*60).toString().padStart(2,"0")}; ${la.A&&500>m%1E3?"":R.time} -R: ${O}x${sa} (x${Ra.Y}), D: ${Ra.ga}, C: ${R.sa}/${R.Ia.length}, M: ${64*wb(1<<4+R.K)>>10}k +{disabled:0===b.T,onclick:()=>{a({T:0})}}),m&&qa(Yc,m,{ia:a,current:b.T})])]}const $c=({I:{tb:a,value:b}})=>(A(a?"div[className=minor]":"div",{innerText:b}),null); +function ad({o:a,N:b}){const c=F({history:null,input:null});A("div[className=menu overlay terminal]",{onclick:d=>{d.target!==c.input&&c.input.focus()}});D(d=>{d&&ob(()=>c.history.scrollTop=1E9,0)},[b.length&&b[b.length-1].id]);return[F(H("div[className=toolbar]",null,[H("button[innerText=\u274c]",{onclick:()=>{a.j=0;a.A=!1;Dc(a)}})])),H("div[className=history]",{R:F(d=>{c.history=d})},[qa($c,b)]),F(H("input[enterkeyhint=send][mozactionhint=send][name=message][required]",{onkeydown:d=>{const e=d.keyCode; +d=d.target;13===e?(Qc(a,d.value),d.value=""):27===e&&(a.j=0,a.A=!1,Dc(a))},R:d=>{c.input=d;ob(()=>d.focus(),0)}}))]}const bd=[["pick",-2],["up",-14],["down",-15],["E",69],["T",84],["F1",112],["F3",114],["...",27]],cd=[["up",-10],["down",-11],["left",-12],["right",-13],["center",-1]],dd=[["up",-16],["down",-17],["left",-18],["right",-19],["center",-3]]; +function ed({o:a}){const b=a.X,c=([d,e])=>H("div",{D:{code:e},F:{button:!0,[d]:!0,active:b.has(e)}});A("div[className=touch]",F({ontouchstart:d=>{let {code:e}=d.target.dataset;if(null!=e&&Nc(a,e=P(e),!0)){const l=d.changedTouches[0].identifier,m=k=>{k.changedTouches[0].identifier===l&&(tb("touchend",m),Nc(a,e,!1))};sb("touchend",m)}return!1}}));return[H("div[className=top]",null,bd.map(([d,e])=>H(`div[innerText=${d}]`,{D:{code:e},F:{button:!0,active:b.has(e)}}))),H("div[className=move]",null,cd.map(c)), +H("div[className=move sec]",null,dd.map(c))]} +function fd({account:a,a:b,config:c,frame:d,cb:e,oa:l}){const m=ua(),k=wa.pointerLockElement===d,f=ia(()=>e.o=Ec(b,d,c,a));D(()=>{const h=g=>{if(0!==f.j)return!0;wa.pointerLockElement===d?Nc(f,-1-g.button,"mousedown"===g.type):Dc(f);return!1},p=g=>{if(wa.pointerLockElement===d){const r=f.config.ua*za/(Ia(f.Pa,f.Qa)*f.la);ub&&(f.ub=g.timeStamp);Lb(f.g,f.Ra=g.movementX*r,f.Sa=-g.movementY*r)}else f.mb=g.clientX,f.nb=g.clientY},v=g=>{b.Ja(!1);if(0===f.j&&!f.A&&5{d.removeEventListener("mousedown",h);d.removeEventListener("mouseup",h);d.removeEventListener("mousemove",p,z);d.removeEventListener("wheel",v,z);qb(f.bb);rb(f.Cb);gc(f.world,f.g);var g=f.u;xc.delete(g);rb(g.zb);e.o=null}});D(()=>{f.config=c;f.u&&(f.u.P=!0);const h=f.world;var p=Ga(Ma(f.config.ga/16*2+2));if(h.K!== +p){var v=f.g;h.$&&gc(h,v);const z=1<<(h.K=p),g=h.$=[];for(let r=0;ru;++u)g.push({ja:!1,l:!1,x:r,y:u,z:C,Fa:0,Ta:0});p=z<{f.la=v;f.Pa=Ia(1,h);f.Qa=Ia(1,p);p=f.config.Y;h=Ga(f.Pa*f.la/p);p=Ga(f.Qa*f.la/p);if(h!==f.ya||p!==f.za)f.ya=h,f.za=p,f.u&&(f.u.P=!0,zc(f.u))},[d.offsetWidth,d.offsetHeight,va.devicePixelRatio||1,c.Y]);D(h=>{h||f.A||0!==f.j||(f.j= +1,ub&&f.Ra|f.Sa&&f.ub>m-100&&(Lb(f.g,-f.Ra,-f.Sa),f.Ra=f.Sa=0,f.u.P=!0));f.A=!h},[c.ka&&0===f.j||k]);D(h=>k&&h&&wa.exitPointerLock(),[f.A||0!==f.j]);D(()=>{if(f.world){if(f.ca&&!f.A){var h=f.g,p=M(5,.01*(m-f.ca));h.da-=.1*h.da*p;h.ea-=.1*h.ea*p;h.fa-=.1*h.fa*p;h.da+=(Ja(h.O)*h.Ua+Ka(h.O)*h.Va)*p;h.ea+=h.ib*p;h.fa+=(-Ka(h.O)*h.Ua+Ja(h.O)*h.Va)*p;Lb(h,h.vb*p*1.5,h.wb*p*1.5);h.G+=h.da*p;h.H+=h.ea*p;h.J+=h.fa*p}if(f.u){h=f.u;++h.$a;p=h.Wa;var v=h.jb;const Z=h.kb,ka=h.o,Qa=ka.config,yb=ka.ta,y=ka.g,O= +ka.ya,ra=ka.za,R=ka.world;var z=0;if(!ka.A||h.P){h.P=!1;var g=Qa.xa;const jd=Qa.ga;var r=y.O,C=y.ha;const kd=y.aa,ld=y.ba,Ra=y.l;var u=y.G;z=y.H;var E=y.J;const md=yb?y.V:-1,nd=R.Z;var S=R.K;const od=null!==vc;var t=1/O,q=1/ra;const la=O>>1,sa=ra>>1,jc=M(O,ra),kc=32z||64<=z?0:$b(R,u&Ba,q&63,E&Ba);if(2!==Ra&&0g)var I=U;else if(0===U)I=0===da?0:1===da?g:da-1,Da=1===da;else if(U=O)break a;Da=!1}var V=(I-la)*pd;ca=B+lc*V;const qc=Ca-r*V,td=oc;V=16757124; +let hb=1,rc=jd,ib=0;2===Ra&&0zb;++zb){const W=(td+zb)%3;let ea=qc;var J=rd;0===W&&(ea=ca,J=x);1===W&&(ea=pc,J=qd);var ta=-1/ea;0ea|0),Va=q+xa*J-(1===W&0>ea|0),Wa=E+ta*J-(2===W&0>ea|0);J*=sc;for(let Ab,Bb,Cb,X;JVa){if(0>xa)break}else if(65600<=Va){if(0ea|W<<1,nc=J);if(od){--X;1===W?6===X?X=25:13===X?X=4:1===X&&0>>24)continue;V=tc&16777215}else V=Gb[X];rc=J;hb=(0===W?.8:2===W?.6:0>16)*hb,255)<<16|M((V>>8&255)*hb,255)<<8|M((V&255)*hb,255);if(ca=(Da=Da&&(Ta!== +sa||Ila+g))&&ma===V){if(6g)break;Z[++I]=ma;if(4>g)break;Z[++I]=ma;if(5>g)break;Z[++I]=ma;if(6>g)break;Z[++I]=ma;break}if(Da||0===I)ma=V;Z[Sa+I]=V}Sa+=O}yb&&!kc&&(Z[O*sa+la]^=16777215)}p.putImageData(v,0,0);yb&&kc&&(v=M(Ga(.05*jc),8),p.fillRect(la-v,sa-1,v<<1,2),p.fillRect(la-1,sa-v,2,v-1),p.fillRect(la-1,sa+1,2,v-1))}h.ob=ka.Ka?`minicraft ${"0.11.4"} ${L(h.qb).toString().padStart(2,"\u00a0")} fps, T: ${L(24*R.eb).toString().padStart(2, +"0")}:${L(24*R.eb%1*60).toString().padStart(2,"0")}; ${ka.A&&500>m%1E3?"":R.time} +R: ${O}x${ra} (x${Qa.Y}), D: ${Qa.ga}, C: ${R.sa}/${R.Ia.length}, M: ${64*vb(1<<4+R.K)>>10}k E: 0/0, M: ${y.l}, I: ${z} Position: ${y.G.toFixed(2)} ${y.H.toFixed(2)} ${y.J.toFixed(2)} -Angle: ${(y.O*Fa).toFixed(2)} ${(y.ha*Fa).toFixed(2)} -Focus: ${0>y.V?"":y.aa+" "+y.V+" "+y.ba+" "+"WEBTSNI"[y.pa]+": "+Fb[ac(R,y.aa,y.V,y.ba)]} -Chunk abs: ${L(y.G)>>4} ${L(y.J)>>4} ${L(y.H)>>4} rel: ${R.La} ${R.Na} ${R.Ma}`:""}}f.ca=m},[m]);oa();const w=F({fb:1});c.T&&(w.fb=c.T);return[H("canvas",{R:F(g=>{f.u=Bc(f,g)})}),f.ta&&2!==f.j&&G(Yc,{N:f.N,na:m}),f.u&&f.Ka&&H("div[className=diagnostics]",{innerText:f.u.ob}),c.ka&&G(fd,{o:f,ab:f.ab}),f.ta&&3!==f.j&&2!==f.g.l&&G(Uc,{g:f.g,M:w.fb,na:m}),3===f.j&&G(Wc,{o:f,M:w.fb,na:m}),1===f.j&&G($c,{a:b,config:c,o:f,oa:l}),2===f.j&&G(bd,{o:f,N:f.N})]} -function hd({I:a,Db:b,Eb:c,Fb:d}){A("div",{F:{selected:a===c},onclick:()=>{d(a.id)}});c=`${a.local?"L":"_"}${a.local&&a.remote?a.local>a.remote?">":a.local{l(m()+1)}),f=F({value:null}),w=ia(()=>ba(function*(){try{const t=!f.value&&!e,r=yield eb(`${"/api/minicraft/"}world?what=${t?"initial":"meta_all"}`);if(!r.ok)throw Error("Verbindungsfehler.");const x=yield r.json();if(!t)return x;if("0.11.3"!==x.version_latest)return location.reload(!0),null;ca();b.xb(x.account);return x.worlds}catch(t){return alert("Fehler beim Laden der Weltenliste: "+t.message),[]}}()), -[e],null),g=ja(()=>{w&&(f.value=w);const t=[];f.value&&t.push(...f.value.map(r=>({account_name:r.account_name,hash:r.hash,id:r.id,label:r.label,local:0,public:r.public,remote:r.modified,writable:r.writable})));for(const r of c.worlds){const x=t.find(B=>B.id===r.id);if(x){const B=x.local=r.mod_l,Da=x.remote,da=r.mod_r;B>da&&Da>da&&(confirm('Konflikt! Die Welt "'+r.label+'" wurde sowohl hier als auch woanders ge\u00e4ndert.\nOK: Die vom Server \u00fcbernehmen ('+yb(Da,!1)+") | Abbrechen: Die hier hochladen ("+ -yb(B,!1)+")")?b.U(r.id,{mod_l:x.local=da}):b.U(r.id,{mod_r:x.remote=da}))}else 1Ja(x.local,x.remote)-Ja(r.local,r.remote))},[w,c.worlds]),[p,v,z]=pa(c.Ea),h=ja(()=>g.find(t=>t.id===p)||null,[p,g]),q=ja(()=>{let t,r;return null!= -(r=null==g?void 0:null==(t=g.find(x=>0{if(null!==q){var t=!1,r=g.find(x=>x.id===q);if(r.localx.json()).then(x=>{if(!t)return Wb(q,x).then(()=>{b.U(q,{mod_l:r.remote,mod_r:r.remote})})}).catch(x=>{t||("QuotaExceededError"===x.name?(alert("Der Speicherplatz reicht nicht!"),b.hb(q),Xb(q)):alert("Fehler beim Herunterladen der Welt: "+x.message))});else{if(!r.writable){b.U(q, -{mod_l:c.worlds.find(B=>B.id===q).mod_r});return}let x=q;(1===r.remote?eb("/api/minicraft/world",Object.assign({},id,{body:$a({what:"meta",label:r.label})})).then(B=>{if(!B.ok)throw Error(403===B.status?"Keine Berechtigung. Angemeldet?":"Verbindungsfehler.");return B.json()}).then(B=>{x=B.id}):Za.resolve()).then(()=>{if(t)throw null;return Vb(q)}).then(B=>{if(t)throw null;return eb("/api/minicraft/world",Object.assign({},id,{body:$a({what:"data",world:x,data:B})}))}).then(B=>{if(!B.ok)throw Error(403=== -B.status?"Keine Berechtigung. Angemeldet?":"Verbindungsfehler.");return B.json()}).then(B=>{ca();x===q?b.U(q,{mod_l:B.modified,mod_r:B.modified}):(Yb(q,x),b.hb(q),b.gb({id:x,label:r.label,mod_l:B.modified,mod_r:B.modified}),t||z()!==q||v(x));t||k();ha()}).catch(B=>{t||(alert("Fehler beim Hochladen der Welt: "+B.message),ca(),b.U(q,{mod_r:0}),ha())})}return()=>{t=!0}}},[q]);const [C,u]=pa(!1);h||u(!1);const [E,S]=pa(!1);return[H("h1[innerText=Welten]"),H("button[innerText=Aktualisieren][style=position:absolute;left:0;top:0;height:2rem][title=Liste neu laden]", -{disabled:!w,onclick:k}),H("button[style=position:absolute;right:0;top:0;height:2rem]",{disabled:0{location.href="/account?redir=minicraft"}}),H("div[className=worlds]",null,[ra(hd,g,{Hb:e,Db:q,Eb:h,Fb:v})]),H("center",null,[H("button[innerText=\u00d6ffnen]",{disabled:!h||!h.local||h.remote>h.local,onclick:()=>{ca();b.ia({Ea:h.id});d(0);ha()},title:h?h.local?h.remote>h.local?"Die Welt wird noch geladen!":"Ausgew\u00e4hlte Welt betreten":"Die Welt ist noch nicht heruntergeladen!": -"Keine Welt ausgew\u00e4hlt!"}),H("button[innerText=Welt...]",{disabled:!h||C,onclick:()=>{u(!0)},title:h?"Aktionen/Einstellungen zur Welt anzeigen":"Keine Welt ausgew\u00e4hlt!"})]),H("hr"),H("center",null,[H("button[innerText=Neue Welt]",{onclick:()=>{const t=prompt("Name der neuen Welt:\n(max. 16 Zeichen)","Neue Welt");t&&(16r.id))-1,label:t,mod_l:Qa.now(),mod_r:0}))}}),H("button[innerText=Einstellungen]",{onclick:()=>{d(1)}})]), -H("center",null,[H("small[innerText=Version 0.11.3 von L3P3]")]),C&&h&&H("div",{F:{"menu overlay advanced":!0,busy:E},onclick:t=>{"menu overlay advanced"===t.target.className&&u(!1)}},[H("div[className=window]",null,[H("h2",{innerText:`"${h.label}"`,title:h.id}),H("table",null,[!!h.account_name&&H("tr",null,[H("td[innerText=Besitzer:]"),H("td",{innerText:h.account_name})]),H("tr",null,[H("td[innerText=\u00c4nderung:]"),H("td",{innerText:yb(Ja(h.local,h.remote),!1)})])]),H("center",null,[H("button[innerText=Umbenennen]", -{disabled:E||!h.writable,onclick:()=>{const t=prompt("Neuer Name der Welt:\n(max. 16 Zeichen)",h.label);!t||t===h.label||16{if(!r.ok)throw Error(403===r.status?"Keine Berechtigung. Angemeldet?":"Verbindungsfehler.");return r.json()}).catch(r=>{alert("Fehler beim Bearbeiten der Welt: "+r.message)}).then(()=> -{S(!1)})))},title:h.writable?"Welt-Namen \u00e4ndern":"Fehlende Berechtigung!"}),H("button",{disabled:E||!h.local&&!h.writable,innerText:h.local?"L\u00f6schen (lokal)":"L\u00f6schen",onclick:()=>{confirm('Welt "'+h.label+'" wirklich l\u00f6schen?')&&(h.local?(b.hb(h.id),Xb(h.id)):(S(!0),eb("/api/minicraft/world",{method:"DELETE",headers:{"Content-Type":"application/json"},body:$a({what:"world",world:h.id})}).then(t=>{if(!t.ok)throw Error(403===t.status?"Keine Berechtigung. Angemeldet?":"Verbindungsfehler."); -ca();v(null);u(!1);k();S(!1);ha();return t.json()}).catch(t=>{alert("Fehler beim L\u00f6schen der Welt: "+t.message);S(!1)})))},title:h.local||h.writable?"Welt l\u00f6schen":"Fehlende Berechtigung!"})]),H("center",null,[H("button",{disabled:E||!h.remote||!h.writable,innerText:`${"\u00d6ffentlich"}: ${h.public?"Ja":"Nein"}`,onclick:()=>{S(!0);eb("/api/minicraft/world",{method:"POST",headers:{"Content-Type":"application/json"},body:$a({what:"meta",world:h.id,public:!h.public})}).then(t=>{if(!t.ok)throw Error(403=== -t.status?"Keine Berechtigung. Angemeldet?":"Verbindungsfehler.");ca();k();S(!1);ha();return t.json()}).catch(t=>{alert("Fehler beim Bearbeiten der Welt: "+t.message);S(!1)})},title:h.remote?h.writable?h.public?"Welt privat machen":"Welt ver\u00f6ffentlichen":"Fehlende Berechtigung!":"Die Welt ist nicht hochgeladen!"}),H("button",{disabled:E||!w||0{h.local?h.remote|| -b.U(h.id,{mod_r:1}):b.gb({id:h.id,label:h.label,mod_l:1,mod_r:h.remote})},title:w?h.local?h.remote?"Die Welt ist schon auf beiden Seiten vorhanden!":a.rank?"Welt auf den Server hochladen":"Nicht angemeldet!":"Welt von Server herunterladen":"Liste wird noch geladen!"})])])])]} -function ud({account:a,a:b,config:c,cb:d}){const [e,l]=pa(2),m=A("div[className=game]");return[(2===e||1===e)&&G(jd,{account:a,a:b,config:c,oa:l}),1===e&&G($c,{a:b,config:c,o:null,oa:l}),0===e&&G(gd,{account:a,a:b,config:c,frame:m,cb:d,oa:l})]} -function vd(){const [a,b]=ka(Eb),c=F({o:null,sb:0});D(()=>{let k=!1;onbeforeunload=onunload=onpagehide=onblur=()=>{k||(k=!0,c.o&&Gc(c.o),b.Xa())};onpageshow=onfocus=()=>{k=!1};setInterval(()=>(b.Xa(),!Pa&&bb("minicraft.lock",Qa.now())),500);tb("touchend",f=>{c.sb=f.timeStamp},!0)});const d=F(k=>{if("INPUT"===k.target.tagName||!c.o)return!0;b.Ja(!1);Oc(c.o,k.keyCode,"keydown"===k.type);return!1}),e=F(()=>{b.Ja(!0)}),l=F(k=>{999{m?(tb("mousedown",l, -!0),tb("mouseup",l,!0),ub("touchstart",e,!0)):(ub("mousedown",l,!0),ub("mouseup",l,!0),tb("touchstart",e,!0))},[m]);D(zc,[a.config.T]);A("",{onkeydown:d,onkeyup:d,oncontextmenu:xb,ondragstart:xb});return[G(ud,{account:a.account,a:b,config:a.config,cb:c})]}function wd(){close();return[H("h1[innerText=minicraft l\u00e4uft schon!]")]} -if(window.SSR)qa(vd);else if(Pa){const a=new Pa("minicraft.lock"),b=pb(()=>{qa(vd)},100);a.addEventListener("message",c=>{"yes"===c.data?(rb(b),a.close(),qa(wd)):(a.postMessage("yes"),focus())});a.postMessage("anyone there?")}else{const a=P(N.getItem("minicraft.lock")),b=Qa.now()-1E3;a{qa(P(N.getItem("minicraft.lock"))===a?vd:wd)},a-b)}; +Angle: ${(y.O*Ea).toFixed(2)} ${(y.ha*Ea).toFixed(2)} +Focus: ${0>y.V?"":y.aa+" "+y.V+" "+y.ba+" "+"WEBTSNI"[y.pa]+": "+Eb[$b(R,y.aa,y.V,y.ba)]} +Chunk abs: ${L(y.G)>>4} ${L(y.J)>>4} ${L(y.H)>>4} rel: ${R.La} ${R.Na} ${R.Ma}`:""}}f.ca=m},[m]);na();const w=F({fb:1});c.T&&(w.fb=c.T);return[H("canvas",{R:F(h=>{f.u=Ac(f,h)})}),f.ta&&2!==f.j&&G(Xc,{N:f.N,na:m}),f.u&&f.Ka&&H("div[className=diagnostics]",{innerText:f.u.ob}),c.ka&&G(ed,{o:f,ab:f.ab}),f.ta&&3!==f.j&&2!==f.g.l&&G(Tc,{g:f.g,M:w.fb,na:m}),3===f.j&&G(Vc,{o:f,M:w.fb,na:m}),1===f.j&&G(Zc,{a:b,config:c,o:f,oa:l}),2===f.j&&G(ad,{o:f,N:f.N})]} +function gd({I:a,Db:b,Eb:c,Fb:d}){A("div",{F:{selected:a===c},onclick:()=>{d(a.id)}});c=`${a.local?"L":"_"}${a.local&&a.remote?a.local>a.remote?">":a.local{l(m()+1)}),f=F({value:null}),w=ha(()=>aa(function*(){try{const t=!f.value&&!e,q=yield db(`${"/api/minicraft/"}world?what=${t?"initial":"meta_all"}`);if(!q.ok)throw Error("Verbindungsfehler.");const x=yield q.json();if(!t)return x;if("0.11.4"!==x.version_latest)return location.reload(!0),null;ba();b.xb(x.account);return x.worlds}catch(t){return alert("Fehler beim Laden der Weltenliste: "+t.message),[]}}()), +[e],null),h=ia(()=>{w&&(f.value=w);const t=[];f.value&&t.push(...f.value.map(q=>({account_name:q.account_name,hash:q.hash,id:q.id,label:q.label,local:0,public:q.public,remote:q.modified,writable:q.writable})));for(const q of c.worlds){const x=t.find(B=>B.id===q.id);if(x){const B=x.local=q.mod_l,Ca=x.remote,ca=q.mod_r;B>ca&&Ca>ca&&(confirm('Konflikt! Die Welt "'+q.label+'" wurde sowohl hier als auch woanders ge\u00e4ndert.\nOK: Die vom Server \u00fcbernehmen ('+xb(Ca,!1)+") | Abbrechen: Die hier hochladen ("+ +xb(B,!1)+")")?b.U(q.id,{mod_l:x.local=ca}):b.U(q.id,{mod_r:x.remote=ca}))}else 1Ia(x.local,x.remote)-Ia(q.local,q.remote))},[w,c.worlds]),[p,v,z]=oa(c.Ea),g=ia(()=>h.find(t=>t.id===p)||null,[p,h]),r=ia(()=>{let t,q;return null!= +(q=null==h?void 0:null==(t=h.find(x=>0{if(null!==r){var t=!1,q=h.find(x=>x.id===r);if(q.localx.json()).then(x=>{if(!t)return Vb(r,x).then(()=>{b.U(r,{mod_l:q.remote,mod_r:q.remote})})}).catch(x=>{t||("QuotaExceededError"===x.name?(alert("Der Speicherplatz reicht nicht!"),b.hb(r),Wb(r)):alert("Fehler beim Herunterladen der Welt: "+x.message))});else{if(!q.writable){b.U(r, +{mod_l:c.worlds.find(B=>B.id===r).mod_r});return}let x=r;(1===q.remote?db("/api/minicraft/world",Object.assign({},hd,{body:Za({what:"meta",label:q.label})})).then(B=>{if(!B.ok)throw Error(403===B.status?"Keine Berechtigung. Angemeldet?":"Verbindungsfehler.");return B.json()}).then(B=>{x=B.id}):Ya.resolve()).then(()=>{if(t)throw null;return Ub(r)}).then(B=>{if(t)throw null;return db("/api/minicraft/world",Object.assign({},hd,{body:Za({what:"data",world:x,data:B})}))}).then(B=>{if(!B.ok)throw Error(403=== +B.status?"Keine Berechtigung. Angemeldet?":"Verbindungsfehler.");return B.json()}).then(B=>{ba();x===r?b.U(r,{mod_l:B.modified,mod_r:B.modified}):(Xb(r,x),b.hb(r),b.gb({id:x,label:q.label,mod_l:B.modified,mod_r:B.modified}),t||z()!==r||v(x));t||k();fa()}).catch(B=>{t||(alert("Fehler beim Hochladen der Welt: "+B.message),ba(),b.U(r,{mod_r:0}),fa())})}return()=>{t=!0}}},[r]);const [C,u]=oa(!1);g||u(!1);const [E,S]=oa(!1);return[H("h1[innerText=Welten]"),H("button[innerText=Aktualisieren][style=position:absolute;left:0;top:0;height:2rem][title=Liste neu laden]", +{disabled:!w,onclick:k}),H("button[style=position:absolute;right:0;top:0;height:2rem]",{disabled:0{location.href="/account?redir=minicraft"}}),H("div[className=worlds]",null,[qa(gd,h,{Hb:e,Db:r,Eb:g,Fb:v})]),H("center",null,[H("button[innerText=\u00d6ffnen]",{disabled:!g||!g.local||g.remote>g.local,onclick:()=>{ba();b.ia({Ea:g.id});d(0);fa()},title:g?g.local?g.remote>g.local?"Die Welt wird noch geladen!":"Ausgew\u00e4hlte Welt betreten":"Die Welt ist noch nicht heruntergeladen!": +"Keine Welt ausgew\u00e4hlt!"}),H("button[innerText=Welt...]",{disabled:!g||C,onclick:()=>{u(!0)},title:g?"Aktionen/Einstellungen zur Welt anzeigen":"Keine Welt ausgew\u00e4hlt!"})]),H("hr"),H("center",null,[H("button[innerText=Neue Welt]",{onclick:()=>{const t=prompt("Name der neuen Welt:\n(max. 16 Zeichen)","Neue Welt");t&&(16q.id))-1,label:t,mod_l:Pa.now(),mod_r:0}))}}),H("button[innerText=Einstellungen]",{onclick:()=>{d(1)}})]), +H("center",null,[H("small[innerText=Version 0.11.4 von L3P3]")]),C&&g&&H("div",{F:{"menu overlay advanced":!0,busy:E},onclick:t=>{"menu overlay advanced"===t.target.className&&u(!1)}},[H("div[className=window]",null,[H("h2",{innerText:`"${g.label}"`,title:g.id}),H("table",null,[!!g.account_name&&H("tr",null,[H("td[innerText=Besitzer:]"),H("td",{innerText:g.account_name})]),H("tr",null,[H("td[innerText=\u00c4nderung:]"),H("td",{innerText:xb(Ia(g.local,g.remote),!1)})])]),H("center",null,[H("button[innerText=Umbenennen]", +{disabled:E||!g.writable,onclick:()=>{const t=prompt("Neuer Name der Welt:\n(max. 16 Zeichen)",g.label);!t||t===g.label||16{if(!q.ok)throw Error(403===q.status?"Keine Berechtigung. Angemeldet?":"Verbindungsfehler.");return q.json()}).catch(q=>{alert("Fehler beim Bearbeiten der Welt: "+q.message)}).then(()=> +{S(!1)})))},title:g.writable?"Welt-Namen \u00e4ndern":"Fehlende Berechtigung!"}),H("button",{disabled:E||!g.local&&!g.writable,innerText:g.local?"L\u00f6schen (lokal)":"L\u00f6schen",onclick:()=>{confirm('Welt "'+g.label+'" wirklich l\u00f6schen?')&&(g.local?(b.hb(g.id),Wb(g.id)):(S(!0),db("/api/minicraft/world",{method:"DELETE",headers:{"Content-Type":"application/json"},body:Za({what:"world",world:g.id})}).then(t=>{if(!t.ok)throw Error(403===t.status?"Keine Berechtigung. Angemeldet?":"Verbindungsfehler."); +ba();v(null);u(!1);k();S(!1);fa();return t.json()}).catch(t=>{alert("Fehler beim L\u00f6schen der Welt: "+t.message);S(!1)})))},title:g.local||g.writable?"Welt l\u00f6schen":"Fehlende Berechtigung!"})]),H("center",null,[H("button",{disabled:E||!g.remote||!g.writable,innerText:`${"\u00d6ffentlich"}: ${g.public?"Ja":"Nein"}`,onclick:()=>{S(!0);db("/api/minicraft/world",{method:"POST",headers:{"Content-Type":"application/json"},body:Za({what:"meta",world:g.id,public:!g.public})}).then(t=>{if(!t.ok)throw Error(403=== +t.status?"Keine Berechtigung. Angemeldet?":"Verbindungsfehler.");ba();k();S(!1);fa();return t.json()}).catch(t=>{alert("Fehler beim Bearbeiten der Welt: "+t.message);S(!1)})},title:g.remote?g.writable?g.public?"Welt privat machen":"Welt ver\u00f6ffentlichen":"Fehlende Berechtigung!":"Die Welt ist nicht hochgeladen!"}),H("button",{disabled:E||!w||0{g.local?g.remote|| +b.U(g.id,{mod_r:1}):b.gb({id:g.id,label:g.label,mod_l:1,mod_r:g.remote})},title:w?g.local?g.remote?"Die Welt ist schon auf beiden Seiten vorhanden!":a.rank?"Welt auf den Server hochladen":"Nicht angemeldet!":"Welt von Server herunterladen":"Liste wird noch geladen!"})])])])]} +function ud({account:a,a:b,config:c,cb:d}){const [e,l]=oa(2),m=A("div[className=game]");return[(2===e||1===e)&&G(id,{account:a,a:b,config:c,oa:l}),1===e&&G(Zc,{a:b,config:c,o:null,oa:l}),0===e&&G(fd,{account:a,a:b,config:c,frame:m,cb:d,oa:l})]} +function vd(){const [a,b]=ja(Db),c=F({o:null,sb:0});D(()=>{let k=!1;onbeforeunload=onunload=onpagehide=onblur=()=>{k||(k=!0,c.o&&Fc(c.o),b.Xa())};onpageshow=onfocus=()=>{k=!1};setInterval(()=>(b.Xa(),!Oa&&ab("minicraft.lock",Pa.now())),500);sb("touchend",f=>{c.sb=f.timeStamp},!0)});const d=F(k=>{if("INPUT"===k.target.tagName||!c.o)return!0;b.Ja(!1);Nc(c.o,k.keyCode,"keydown"===k.type);return!1}),e=F(()=>{b.Ja(!0)}),l=F(k=>{999{m?(sb("mousedown",l, +!0),sb("mouseup",l,!0),tb("touchstart",e,!0)):(tb("mousedown",l,!0),tb("mouseup",l,!0),sb("touchstart",e,!0))},[m]);D(yc,[a.config.T]);A("",{onkeydown:d,onkeyup:d,oncontextmenu:wb,ondragstart:wb});return[G(ud,{account:a.account,a:b,config:a.config,cb:c})]}function wd(){close();return[H("h1[innerText=minicraft l\u00e4uft schon!]")]} +if(window.SSR)pa(vd);else if(Oa){const a=new Oa("minicraft.lock"),b=ob(()=>{pa(vd)},100);a.addEventListener("message",c=>{"yes"===c.data?(qb(b),a.close(),pa(wd)):(a.postMessage("yes"),focus())});a.postMessage("anyone there?")}else{const a=P(N.getItem("minicraft.lock")),b=Pa.now()-1E3;a{pa(P(N.getItem("minicraft.lock"))===a?vd:wd)},a-b)}; diff --git a/app-en.js b/app-en.js index e011c00..47c6246 100644 --- a/app-en.js +++ b/app-en.js @@ -1,85 +1,85 @@ -function ba(a){function b(d){return a.next(d)}function c(d){return a.throw(d)}return new Promise(function(d,e){function l(m){m.done?d(m.value):Promise.resolve(m.value).then(b,c).then(l,e)}l(a.next())})} -const n=lui,ca=n.defer,ha=n.defer_end,ia=n.hook_async,A=n.hook_dom,D=n.hook_effect,ja=n.hook_memo,ka=n.hook_model,oa=n.hook_rerender,pa=n.hook_state,F=n.hook_static,qa=n.init,G=n.node,H=n.node_dom,ra=n.node_map,va=n.now,wa=window,xa=document,za=navigator,K=Math,Aa=K.PI,Ba=.5*Aa,Ca=180/Aa,Ga=K.random,L=K.floor,Ha=K.ceil,Ia=K.round,M=K.min,Ja=K.max,Ka=K.cos,La=K.sin,Ma=K.sqrt,Na=K.log2,Oa=String.fromCharCode,Pa=BroadcastChannel,Qa=Date,Ya=JSON,Za=Promise,$a=Ya.stringify,ab=Ya.parse,N=localStorage,bb= -N.setItem.bind(N),cb=N.removeItem.bind(N),db=wa.indexedDB,eb=fetch,fb=Uint8Array,gb=Uint32Array,hb=Set,lb=Map,P=Number,mb=Object,nb=mb.keys,ob=mb.entries,pb=setTimeout,qb=setInterval,rb=clearTimeout,sb=clearInterval,tb=addEventListener,ub=removeEventListener,vb=za.userAgent.includes("WebKit"),wb=a=>a*a,xb=()=>!1,yb=(a,b)=>{const c=new Qa;a=new Qa(a);var d=c-a;if(59E3>d)return Ia(d/1E3)+"s";if(3E6>d)return Ia(d/6E4)+"m";d=a.getFullYear();const e=a.getMonth(),l=a.getDate();let m="";d"minicraft.world."+b.id));for(const b of nb(N))b.startsWith("minicraft.world.")&&!a.has(b.split(":")[0])&&cb(b)} -const Eb={init:()=>{let a=!1;var b={ka:!1,xa:1,ua:3,Y:4,T:1,Da:120,ga:64,Ea:0,worlds:[]};if(Q){let c=Q.pixel_grouping;null!=c&&(b.xa=c);null!=(c=Q.mouse_sensitivity)&&(b.ua=c);b.Y=Q.resolution_scaling;null!=(c=Q.textures)?b.T=c:b.T=Q.flag_textures?1:0;b.Da=Q.view_angle;b.ga=Q.view_distance;null!=(c=Q.world_last)&&(b.Ea=c);null!=(c=Q.worlds)?b.worlds=c:N.getItem("minicraft.world.0:meta")&&(b.worlds[0]={id:0,label:(prompt("There was an unnamed world found. How should it be called?","")||"Unknown world").substring(0, -16),mod_l:Qa.now(),mod_r:0},a=!0);Q=null}b={account:{label:"",rank:0},config:b,Ya:b};return a?(b.Ya=null,Eb.Xa(b)):b},Xa:a=>{const b=a.config;if(b===a.Ya)return a;bb("minicraft.config",$a({version:"0.11.3",pixel_grouping:b.xa,mouse_sensitivity:b.ua,resolution_scaling:b.Y,textures:b.T,view_angle:b.Da,view_distance:b.ga,world_last:b.Ea,worlds:b.worlds}));return Object.assign({},a,{Ya:b})},xb:(a,b)=>Object.assign({},a,{account:b}),Gb:(a,b)=>Eb.ia(a,b(a.config)),ia:(a,b)=>Object.assign({},a,{config:Object.assign({}, -a.config,b)}),Ja:(a,b)=>a.config.ka===b?a:Eb.ia(a,{ka:b}),gb:(a,b)=>Object.assign({},a,{config:Object.assign({},a.config,{worlds:[...a.config.worlds,b]})}),hb:(a,b)=>Object.assign({},a,{config:Object.assign({},a.config,{worlds:a.config.worlds.filter(c=>c.id!==b)})}),U:(a,b,c)=>Object.assign({},a,{config:Object.assign({},a.config,{worlds:a.config.worlds.map(d=>d.id===b?Object.assign({},d,c):d)})})},Fb="air stone grass dirt cobble planks bedrock log leaves bricks wool sand gravel glass bookshelf obsidian stone_bricks sandstone lapis_block iron_block gold_block diamond_block emerald_block redstone_block quartz_block".split(" "), -Gb=[0,8487297,4305266,4349313,8092539,5342114,7039851,3561583,4172910,6384533,15526888,10671324,8092798,16447200,4151672,1970708,8092539,9686227,9126695,15198183,5567485,14541182,7920469,662956,14936813],Hb=(a,b=1,c=null)=>({amount:b,data:c,id:a}),Ib=(a,b,c=a.c.amount)=>{if(b.c)a.c.id===b.c.id?(c=M(c,b.W-b.c.amount),a.c.amount-=c,b.c.amount+=c,0>=a.c.amount&&(a.c=null)):!(a.c.amount<=c&&a.c.amount<=b.W&&b.c.amount<=a.W)||a.filter&&!a.filter(b.c.id)||b.filter&&!b.filter(a.c.id)||([b.c,a.c]=[a.c,b.c]); -else if(!b.filter||b.filter(a.c.id))a.c.amount<=c&&a.c.amount<=b.W?[b.c,a.c]=[a.c,b.c]:(c=M(c,b.W),a.c.amount-=c,b.c=Hb(a.c.id,c),0>=a.c.amount&&(a.c=null))},Jb=(a,b)=>{for(const c of a)if(c.c&&c.c.id===b.id){const d=M(b.amount,c.W-c.c.amount);c.c.amount+=d;if(0>=(b.amount-=d))return null}for(const c of a)if(!c.c&&(!c.filter||c.filter(b.id)))if(a=M(b.amount,c.W),a<=b.amount){if(c.c=Hb(b.id,a),0>=(b.amount-=a))return null}else return c.c=b,null;return b},Kb=(a,b)=>({Ua:0,ib:0,Va:0,O:0,ha:0,pa:0,aa:0, -V:-1,ba:0,qa:null,ra:null,l:1,rb:20,B:Array(36).fill(null).map(()=>({c:null,filter:null,W:64})),Oa:0,name:b.label||"Player",G:a.Aa,H:a.Ba,J:a.Ca,vb:0,wb:0,L:0,ma:0,da:0,ea:0,fa:0}),Lb=(a,b,c)=>{a.O=(a.O+b+100*Aa)%(2*Aa);a.ha=Ja(-Ba,M(Ba,a.ha+c))},Mb=a=>{a+=32;33a?a++:38a?a+=2:43a?a+=3:126a?a+=37:55295a-(63743a?35:40a?34:34a?33:32),Pb=()=>{var a=Ob;const b=a.length,c=new lb,d=u=>{g=g<<1|u&1;15=== -++p&&(w+=Mb(g),g=p=0)},e=()=>{for(let u=0;u{d(u);d(u>>1);d(u>>2);d(u>>3);d(u>>4);d(u>>5);d(u>>6);d(u>>7)},m=()=>{0===--z&&(z=1<{if(C)C=!1;else{let u=q.id;for(let E=0;E>E)}};let f=a[0],w="",g=0,p=2,v=2,z=2,h=2,q={id:h++,Ha:new lb},C=!0;l(f);c.set(f,q);for(let u=1;u{var b=Ob;if(!a)return null;const c=a.length,d=()=>{p+=(h>>--q&1)<v;)d();f=[p];e[2]=f;for(b[g++]=p;z<=c;){w=k;for(p=v=0;vv;)d();e[m]=[p];p=m++;0===--l&&(l=1<{d=d.target.result.createObjectStore("chunks",{keyPath:["world","coords"]});for(const e of nb(N))if(e.startsWith("minicraft.world.")){const [l,m]=e.substr(16).split(":");"meta"!==m&&(d.add({world:P(l),coords:m,data:N.getItem(e)}),cb(e))}};c.onsuccess=d=>{U=d.target.result}} -const Rb=(a,b)=>ba(function*(){if(!U)return N.getItem(`minicraft.world.${a}:${b}`);const c=U.transaction("chunks","readonly").objectStore("chunks").get([a,b]);return new Za(d=>{c.onsuccess=()=>{let e;d(null==(e=c.result)?void 0:e.data)}})}()),Sb=(a,b)=>{var c=Pb();return ba(function*(){if(!U)return bb(`minicraft.world.${a}:${b}`,c);const d=U.transaction("chunks","readwrite").objectStore("chunks").put({world:a,coords:b,data:c});return new Za((e,l)=>{d.onsuccess=()=>{e()};d.onerror=()=>{l(d.error)}})}())}, -Tb=(a,b)=>ba(function*(){if(!U)return cb(`minicraft.world.${a}:${b}`);const c=U.transaction("chunks","readwrite").objectStore("chunks").delete([a,b]);return new Za(d=>{c.onsuccess=()=>{d()}})}()),Ub=a=>ba(function*(){const b=`minicraft.world.${a}:`;if(!U){const e={},l=b.length;for(const m of nb(N))m.startsWith(b)&&(e[m.substr(l)]=N.getItem(m));return e}const c=U.transaction("chunks","readonly").objectStore("chunks").openCursor(),d={meta:N.getItem(b+"meta")};return new Za(e=>{c.onsuccess=()=>{const l= -c.result;l?(l.value.world===a&&(d[l.value.coords]=l.value.data),l.continue()):e(d)}})}()),Vb=(a,b)=>ba(function*(){if(U){var c=U.transaction("chunks","readwrite"),d=c.objectStore("chunks");for(const [e,l]of ob(b))"meta"!==e?d.put({world:a,coords:e,data:l}):bb(`minicraft.world.${a}:meta`,l);return new Za((e,l)=>{c.oncomplete=()=>{e()};c.onerror=()=>{l(c.error)}})}for(const [e,l]of ob(b))bb(`minicraft.world.${a}:${e}`,l);bb("__margin",Array(257).join("x"));cb("__margin")}()),Wb=a=>{if(U){cb(`minicraft.world.${a}:meta`); -var b=U.transaction("chunks","readwrite").objectStore("chunks").openCursor();b.onsuccess=()=>{const c=b.result;c&&(c.value.world===a&&c.delete(),c.continue())}}else{const c=`minicraft.world.${a}:`;for(const d of nb(N))d.startsWith(c)&&cb(d)}},Xb=(a,b)=>{if(U){bb(`minicraft.world.${b}:meta`,N.getItem(`minicraft.world.${a}:meta`));cb(`minicraft.world.${a}:meta`);var c=U.transaction("chunks","readwrite").objectStore("chunks"),d=c.openCursor();d.onsuccess=()=>{const e=d.result;e&&(e.value.world===a&& -(e.value.world=b,c.put(e.value)),e.continue())}}else{const e=`minicraft.world.${a}:`,l=e.length,m=`minicraft.world.${b}:`;for(const k of nb(N))if(k.startsWith(e)){const f=N.getItem(k);cb(k);bb(m+k.substr(l),f)}}},Yb=new gb(1024),Ob=new fb(Yb.buffer),Zb=new lb,$b=(a,b,c,d)=>0>c||63{const e=a.K;a.Z[(b<>4<>4)<<2|c>>4].ja=!0},bc=(a,b,c,d,e)=>{const l=a.K,m=(b<>4<>4)<<2|c>> -4].ja=!0},ec=(a,b,c)=>{const d=Ja(M(b.H,63),0)>>4,e=L(b.G)>>4;b=L(b.J)>>4;if(c||a.Ma!==d||a.va+a.La!==e||a.wa+a.Na!==b)c=1<{const b=a.La,c=a.Ma,d=a.Na,e=a.K,l=`${e} ${b} ${d} ${c}`;let m=Zb.get(l);if(null==m){const k=1<{let z=wb(w-b),h=wb(p-d),q=wb(w-b-k),C=0,u=0;qw<=f).sort((w,g)=>w.Za-g.Za))}a.Ia=m;a.sa=0},gc=(a,b)=>{if(!a.pb){for(var c=b.B.map(({c:d})=>d&&[d.id,d.amount,d.data]);0d.ja).map(d=>fc(a,d)))}},ic=(a,b)=>{const c=N.getItem(`minicraft.world.${a.id}:meta`);if(c){const {p:d,s:e,t:l,v:m}=ab(c);null!=m&&(d.i.forEach((k, -f)=>{k&&(b.B[f].c=Hb(k[0],k[1],k[2]))}),b.rb=d.h,b.l=d.m,b.G=d.p[0],b.H=d.p[1],b.J=d.p[2],b.O=d.p[3],b.ha=d.p[4],a.Aa=e[0],a.Ba=e[1],a.Ca=e[2],null!=l&&hc(a,l))}},hc=(a,b)=>{a.time=b%24E3;a.eb=(b+6E3)/24E3%1},uc=a=>ba(function*(){const b=a.$[a.Ia[a.sa=0].lb];var c=b.y;yield Tb(a.id,`${b.Fa}/${b.Ta}`+(0{const c=a.Ga;var d=a.K;const e=b.y,l=(256<m;++m){for(d=0;16>d;++d)Yb[++k]=c[f],Yb[++k]= -c[++f],Yb[++k]=c[++f],Yb[++k]=c[++f],f+=13;f+=l}b.ja=!1;return Sb(a.id,`${b.Fa}/${b.Ta}`+(0ba(function*(){const c=a.$,d=a.Ia,e=a.va,l=a.wa,m=d.length;for(;a.saC;++C){for(w=0;16>w;++w)k[g]=Yb[++u],k[++g]=Yb[++u],k[++g]=Yb[++u],k[++g]=Yb[++u],g+=13;g+=z}else for(p=0;16>p;++p){for(f=0;16>f;++f)k[g]=0{if(a){const b=wc=new Image;b.onload=()=>{if(wc===b){var c=xa.createElement("canvas");c.width=16;c.height=416;c=c.getContext("2d");c.scale(1,-1);for(let d=0;26>d;++d)c.drawImage(b,0,d<<4,16,16,0,-(d<<4)-16,16,16);vc=new gb(c.getImageData(0,0,16,416).data.buffer);for(const d of xc)d.P=!0;wc=null}};b.src=`${"/static/minicraft/"}textures/${a}.png`}else vc=null},Ac=(a,b)=>{const c={yb:b,Wa:b.getContext("2d",{alpha:!1,desynchronized:!0}),jb:null,kb:null,ob:"",P:!1,qb:0,$a:0,zb:qb(()=> -(c.qb=c.$a,c.$a=0),1E3),o:a};xc.add(c);zc(c);return c},zc=a=>{const b=a.yb,c=a.o;a.kb=new gb((a.jb=a.Wa.createImageData(b.width=c.ya,b.height=c.za)).data.buffer);const d=c.ya*c.config.Y/c.la,e=c.za*c.config.Y/c.la;b.style.width=d+"px";b.style.height=e+"px";b.style.left=Ia((c.Pa-d)/2)+"px";b.style.top=Ia((c.Qa-e)/2)+"px";a.Wa.fillStyle="rgba(255,255,255,.5)"};let Bc=0; -const Ec=(a,b,c,d)=>{const e={Z:null,Ga:null,busy:!1,$:null,Ia:null,sa:0,pb:!1,La:0,Ma:0,Na:0,id:c.Ea,va:0,wa:0,K:0,Aa:.5,Ba:8.5,Ca:.5,time:0,eb:0},l=Kb(e,d);ic(e,l);const m={a,config:c,mb:0,nb:0,Ka:!1,ta:!0,A:!0,Ab:b,ca:0,X:new hb,ab:"",j:0,N:[],g:l,bb:null,u:null,la:1,Pa:1,Qa:1,ya:0,za:0,Ra:0,ub:0,Sa:0,Cb:qb(()=>{var k;(k=m.A)||(hc(e,e.time+1),ec(e,l,!1),k=void 0);return k},50),world:e};Cc(m,null);Dc(m);return m},Fc=a=>{a.world.pb||(gc(a.world,a.g),a.a.U(a.world.id,{mod_l:Qa.now()}))},Dc=a=>{ba(function*(){if(!a.config.ka)try{yield a.Ab.requestPointerLock()}catch(b){}}())}, -Gc=(a,b)=>a===b?0:.1-.2*a,Hc=a=>{a.g.Ua=Gc((a=a.X).has(-12)||a.has(65),a.has(-13)||a.has(68))},Ic=a=>{a.g.ib=Gc((a=a.X).has(-15)||a.has(16),a.has(-14)||a.has(32))},Jc=a=>{a.g.Va=Gc((a=a.X).has(-11)||a.has(83),a.has(-10)||a.has(87))},Kc=a=>{a.g.vb=Gc(a.X.has(-18),a.X.has(-19))},Lc=a=>{a.g.wb=Gc(a.X.has(-17),a.X.has(-16))},Nc=(a,b,c)=>{if(!a.world)return!1;const d=a.X;var e=a.g;if(c){if(d.has(b))return!1;d.add(b);var l=e.aa,m=e.V;c=e.ba;switch(b){case -18:case -19:Kc(a);break;case -17:case -16:Lc(a); -break;case -1:2!==e.l&&0<=m&&(0===e.Oa?0===e.l&&(b=$b(a.world,l,m,c),2===b?b=3:1===b&&(b=4),6===b||8!==b&&13!==b&&null!==Jb(e.B,Hb(b,1)))||(ac(a.world,l,m,c),e.V=-1):Mc(a,[l,m,c],!1));break;case -2:case 71:if(0<=m){const k=$b(a.world,l,m,c);c=e.B.slice(0,9);m=c.findIndex(f=>null!==f.c&&f.c.id===k);0<=m?e.L=m:1===e.l&&(c[e.L].c&&(c=c.findIndex(f=>null===f.c),0<=c&&(e.L=c)),e.B[e.L].c=Hb(k));e.ma=a.ca}break;case -3:if(2!==e.l&&0<=m)if(0===e.Oa){if(b=e.B[e.L],b.c){switch(e.pa){case 0:--l;break;case 1:++l; -break;case 2:--m;break;case 3:++m;break;case 4:--c;break;case 5:++c}0<=m&&64>m&&bc(a.world,l&(1<<4+a.world.K)-1,m,c&(1<<4+a.world.K)-1,b.c.id)&&1!==e.l&&0>=--b.c.amount&&(b.c=null)}}else Mc(a,[l,m,c],!0);break;case -4:e.L=(e.L+9-1)%9;e.ma=a.ca;break;case -5:e.L=(e.L+1)%9;e.ma=a.ca;break;case 27:0===a.j&&(a.A=!0,a.j=1);break;case -15:case -14:case 16:case 32:Ic(a);break;case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:e.L=b-49;e.ma=a.ca;break;case -12:case -13:case 65:case 68:Hc(a); -break;case 69:if(0===a.j){a.j=3;for(const k of d)Nc(a,k,!1)}break;case 80:a.world&&(a.A=!0);break;case 81:e=e.B[e.L];if(d.has(17)||e.c&&0>=--e.c.amount)e.c=null;break;case -11:case -10:case 83:case 87:Jc(a);break;case 84:if(0===a.j){a.j=2;for(const k of d)Nc(a,k,!1)}break;case 112:a.ta=!a.ta;break;case 114:a.Ka=!a.Ka;case 116:case 122:case 123:break;default:return!1}}else{if(!d.delete(b))return!1;switch(b){case -15:case -14:case 16:case 32:Ic(a);break;case -12:case -13:case 65:case 68:Hc(a);break; -case -11:case -10:case 83:case 87:Jc(a);break;case -18:case -19:Kc(a);break;case -17:case -16:Lc(a)}}a.ab=[...d].join();return!0},Oc=(a,b)=>(b=b.startsWith("~")?a+P(b.substr(1)):P(b),isNaN(b)?a:b),Qc=(a,b)=>{var c=a.g,d=a.world;if(b)if("/"===b.charAt(0)){b=b.substr(1).split(" ");const e=b.shift();switch(e){case "clear":a.N=[];break;case "clearinv":for(const l of c.B)l.c=null;Z(a,"Inventory cleared.",!0);break;case "gamemode":case "gm":b=P(b[0]);!isNaN(b)&&0<=b&&3>b&&0===b%1?(c.l=b,Z(a,"Game mode set to: "+ -b,!0)):Z(a,"Game mode must be in 0..2!");break;case "give":if(0===b.length){Z(a,"/give [Amount]\n"+Fb.join(" "));break}d=Fb.indexOf((b[0]||"").toLowerCase());d=0<=d?d:P(b[0]);b=P(b[1]||1);!isNaN(d)&&0d&&0===d%1?!isNaN(b)&&0{a.u.P=!0;Z(a,"Chunks l.",!0)});break;case "me":Z(a,c.name+" "+b.join(" "),!0);break;case "save":Fc(a);Z(a,"Game saved.",!0);break;case "spawn":d.Aa=c.G;d.Ba=c.H;d.Ca=c.J;Z(a,"Spawn updated.",!0);break;case "teleport":case "tp":0===b.length?(c.G=d.Aa,c.H=d.Ba,c.J=d.Ca,a.u.P=!0,Z(a,"Teleported to spawn.",!0)):3===b.length?(Z(a,"Teleported to"+` ${c.G=Oc(c.G,b[0])} ${c.H=Oc(c.H,b[1])} ${c.J=Oc(c.J,b[2])}`,!0),a.u.P=!0):Z(a,"Pitch!");c.da=0;c.ea=0;c.fa=0;break;case "time":c= -b[1];if(!c){Z(a,"Parameter missing!");break}if("day"===c)c=1E3;else if("night"===c)c=13E3;else if(isNaN(c=L(P(c))))break;switch(b[0]){case "add":c+=d.time;case "set":hc(d,c);Z(a,"Time set to: "+d.time,!0);break;default:Z(a,"Unknown command: time "+b[0])}break;case "version":Z(a,"minicraft 0.11.3");break;case "/exit":c.Oa=0;Z(a,"Normal mouse mode.",!0);break;case "/expand":a.g.qa&&a.g.ra?d=!0:(Z(a,"Selection required!"),d=!1);d&&("vert"===b[0]?(c.qa[1]=0,c.ra[1]=63,Z(a,"Expanded selection.",!0)):Z(a, -'Only "vert" supported!'));break;case "/pos1":case "/pos2":Mc(a,[L(c.G),L(c.H),L(c.J)],"/pos2"===e);break;case "/regen":uc(d).then(()=>{a.u.P=!0;Z(a,"Chunk regenerated.",!0)});break;case "/show":Z(a,`${"Primary"}: ${c.qa?c.qa.join(" "):"none"}, ${"Secondary"}: ${c.ra?c.ra.join(" "):"none"}`);break;case "/wand":c.Oa=1;Z(a,"Select using mouse buttons.",!0);break;default:Z(a,"Unknown command: "+e)}}else{const e=Z(a,`<${c.name}> `+b);Cc(a,b).then(l=>{l&&Pc(a,e)})}},Z=(a,b,c=!1)=>{const d=++Bc;(a.N=a.N.slice(-49)).push({id:d, -tb:c,time:va(),value:b});return d},Pc=(a,b)=>{const c=a.N.findIndex(d=>d.id===b);0<=c&&a.N.splice(c,1)},Mc=(a,b,c)=>{c?a.g.ra=b:a.g.qa=b;Z(a,`${c?"Secondary point":"Primary point"}: ${b.join(" ")}`,!0)},Cc=(a,b)=>(rb(a.bb),(b?eb("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:$a({msg:b})}):eb("/api/chat")).then(c=>{if(c.ok)return c.text()}).then(c=>{if(c){c=c.split("\n").filter(Boolean);for(const d of c)d.startsWith("<")&&Z(a,d);return 0!1).then(c=> -{a.bb=pb(()=>{Cc(a,null)},5E3);return c})),Rc=({id:a,M:b})=>(A("div[className=bitmap]",{S:{backgroundImage:`url(${"/static/minicraft/"}textures/${b}.png)`,backgroundPositionY:`-${2*(a-1)}rem`}}),null);function Sc({amount:a,l:b,id:c,M:d}){A("div[className=stack]",{title:Fb[c]+(1===b?` (${c})`:"")});return[G(Rc,{id:c,M:d}),1!==a&&H("div[className=amount]",{innerText:a})]} -function Tc({g:a,M:b,na:c}){A("div[className=bar]",{ontouchstart:F(e=>{a.L=Number(e.target.closest("[data-slot]").dataset.slot);a.ma=e.timeStamp}),S:{opacity:Ja(.5,M(1,1-5E-4*(c-a.ma-5E3)))}});const d=a.l;return a.B.slice(0,9).map(({c:e},l)=>H("div",{D:{slot:l},F:{active:l===a.L}},[e&&G(Sc,{amount:e.amount,data:e.data,l:d,id:e.id,M:b})]))} -function Uc({Bb:a,M:b}){A("div[className=grid]",{onclick:({target:c})=>{(c=c.closest("[data-id]"))&&Ib({c:Hb(P(c.dataset.id)),filter:null,W:64},a)}});return Fb.map((c,d)=>0({c:null,filter:null,W:64})),d=a.g.l;A("div[className=menu overlay inventory]",ja(()=>({onclick:({target:e})=>{if("menu overlay inventory"===e.className)c.c?c.c=null:(a.j=0,a.A=!1,Dc(a));else if(e=e.closest("[data-slot]"))e=a.g.B[P(e.dataset.slot)],c.c?Ib(c,e):e.c&&Ib(e,c)},oncontextmenu:({target:e})=>{if("menu overlay inventory"===e.className)c.c?0>=--c.c.amount&&(c.c=null):(a.j=0,a.A=!1,Dc(a));else if(e=e.closest("[data-slot]"))e=a.g.B[P(e.dataset.slot)],c.c? -Ib(c,e,1):e.c&&Ib(e,c,Ha(e.c.amount/2))}})));return[H("div[className=window]",null,[H("h2[innerText=Inventory]"),1===d&&G(Uc,{Bb:c,M:b}),H("div[className=grid]",null,a.g.B.map(({c:e},l)=>H("div",{D:{slot:l},F:{first:9>l}},[e&&G(Sc,{amount:e.amount,data:e.data,l:d,id:e.id,M:b})])))]),c.c&&H("div[className=hand]",{S:{transform:`translate(${a.mb}px, ${a.nb}px)`}},[G(Sc,{amount:c.c.amount,data:c.c.data,l:0,id:c.c.id,M:b})])]} -const Wc=({I:{tb:a,time:b,value:c},na:d})=>(A(a?"div[className=minor]":"div",{innerText:c,S:{opacity:M(1,1-.001*(d-b-4500))}}),null);function Xc({N:a,na:b}){A("div[className=messages]");const c=b-5E3;return[ra(Wc,a.slice(-10).filter(d=>d.time>c),{na:b})]}function Yc({I:a,ia:b,current:c}){A("button",{disabled:a.id===c,innerText:`${a.label} (${a.owner})`,onclick:()=>{b({T:a.id})}});return null} -function Zc({a:{ia:a},config:b,o:c,oa:d}){c&&D(()=>Fc(c));const [e,l]=pa(!1),m=ia(()=>e?eb("/static/minicraft/textures.json").then(k=>k.ok?k.json():null).catch(()=>null):Za.resolve(null),[e],null);A("div[className=menu overlay]");return[H("h1",{innerText:e?"Surfaces":"Settings"}),H("center",null,[H("button",{innerText:c&&!e?"Back to game":"Back",onclick:()=>{e?l(!1):c?(c.j=0,c.A=!1,Dc(c)):d(2)}})]),!e&&H("div[className=settings]",null,[H("button[innerText=Surfaces...]",{onclick:()=>{l(!0)}}),H("label[innerText=Resolution:]", +function aa(a){function b(d){return a.next(d)}function c(d){return a.throw(d)}return new Promise(function(d,e){function l(m){m.done?d(m.value):Promise.resolve(m.value).then(b,c).then(l,e)}l(a.next())})} +const n=lui,ba=n.defer,fa=n.defer_end,ha=n.hook_async,A=n.hook_dom,D=n.hook_effect,ia=n.hook_memo,ja=n.hook_model,na=n.hook_rerender,oa=n.hook_state,F=n.hook_static,pa=n.init,G=n.node,H=n.node_dom,qa=n.node_map,ua=n.now,va=window,wa=document,ya=navigator,K=Math,za=K.PI,Aa=.5*za,Ba=180/za,Fa=K.random,L=K.floor,Ga=K.ceil,Ha=K.round,M=K.min,Ia=K.max,Ja=K.cos,Ka=K.sin,La=K.sqrt,Ma=K.log2,Na=String.fromCharCode,Oa=BroadcastChannel,Pa=Date,Xa=JSON,Ya=Promise,Za=Xa.stringify,$a=Xa.parse,N=localStorage,ab= +N.setItem.bind(N),bb=N.removeItem.bind(N),cb=va.indexedDB,db=fetch,eb=Uint8Array,fb=Uint32Array,gb=Set,kb=Map,P=Number,lb=Object,mb=lb.keys,nb=lb.entries,ob=setTimeout,pb=setInterval,qb=clearTimeout,rb=clearInterval,sb=addEventListener,tb=removeEventListener,ub=ya.userAgent.includes("WebKit"),vb=a=>a*a,wb=()=>!1,xb=(a,b)=>{const c=new Pa;a=new Pa(a);var d=c-a;if(59E3>d)return Ha(d/1E3)+"s";if(3E6>d)return Ha(d/6E4)+"m";d=a.getFullYear();const e=a.getMonth(),l=a.getDate();let m="";d"minicraft.world."+b.id));for(const b of mb(N))b.startsWith("minicraft.world.")&&!a.has(b.split(":")[0])&&bb(b)} +const Db={init:()=>{let a=!1;var b={ka:!1,xa:1,ua:3,Y:4,T:1,Da:120,ga:64,Ea:0,worlds:[]};if(Q){let c=Q.pixel_grouping;null!=c&&(b.xa=c);null!=(c=Q.mouse_sensitivity)&&(b.ua=c);b.Y=Q.resolution_scaling;null!=(c=Q.textures)?b.T=c:b.T=Q.flag_textures?1:0;b.Da=Q.view_angle;b.ga=Q.view_distance;null!=(c=Q.world_last)&&(b.Ea=c);null!=(c=Q.worlds)?b.worlds=c:N.getItem("minicraft.world.0:meta")&&(b.worlds[0]={id:0,label:(prompt("There was an unnamed world found. How should it be called?","")||"Unknown world").substring(0, +16),mod_l:Pa.now(),mod_r:0},a=!0);Q=null}b={account:{label:"",rank:0},config:b,Ya:b};return a?(b.Ya=null,Db.Xa(b)):b},Xa:a=>{const b=a.config;if(b===a.Ya)return a;ab("minicraft.config",Za({version:"0.11.4",pixel_grouping:b.xa,mouse_sensitivity:b.ua,resolution_scaling:b.Y,textures:b.T,view_angle:b.Da,view_distance:b.ga,world_last:b.Ea,worlds:b.worlds}));return Object.assign({},a,{Ya:b})},xb:(a,b)=>Object.assign({},a,{account:b}),Gb:(a,b)=>Db.ia(a,b(a.config)),ia:(a,b)=>Object.assign({},a,{config:Object.assign({}, +a.config,b)}),Ja:(a,b)=>a.config.ka===b?a:Db.ia(a,{ka:b}),gb:(a,b)=>Object.assign({},a,{config:Object.assign({},a.config,{worlds:[...a.config.worlds,b]})}),hb:(a,b)=>Object.assign({},a,{config:Object.assign({},a.config,{worlds:a.config.worlds.filter(c=>c.id!==b)})}),U:(a,b,c)=>Object.assign({},a,{config:Object.assign({},a.config,{worlds:a.config.worlds.map(d=>d.id===b?Object.assign({},d,c):d)})})},Eb="air stone grass dirt cobble planks bedrock log leaves bricks wool sand gravel glass bookshelf obsidian stone_bricks sandstone lapis_block iron_block gold_block diamond_block emerald_block redstone_block quartz_block".split(" "), +Fb=[0,8487297,4305266,4349313,8092539,5342114,7039851,3561583,4172910,6384533,15526888,10671324,8092798,16447200,4151672,1970708,8092539,9686227,9126695,15198183,5567485,14541182,7920469,662956,14936813],Gb=(a,b=1,c=null)=>({amount:b,data:c,id:a}),Hb=(a,b,c=a.c.amount)=>{if(b.c)a.c.id===b.c.id?(c=M(c,b.W-b.c.amount),a.c.amount-=c,b.c.amount+=c,0>=a.c.amount&&(a.c=null)):!(a.c.amount<=c&&a.c.amount<=b.W&&b.c.amount<=a.W)||a.filter&&!a.filter(b.c.id)||b.filter&&!b.filter(a.c.id)||([b.c,a.c]=[a.c,b.c]); +else if(!b.filter||b.filter(a.c.id))a.c.amount<=c&&a.c.amount<=b.W?[b.c,a.c]=[a.c,b.c]:(c=M(c,b.W),a.c.amount-=c,b.c=Gb(a.c.id,c),0>=a.c.amount&&(a.c=null))},Ib=(a,b)=>{for(const c of a)if(c.c&&c.c.id===b.id){const d=M(b.amount,c.W-c.c.amount);c.c.amount+=d;if(0>=(b.amount-=d))return null}for(const c of a)if(!c.c&&(!c.filter||c.filter(b.id)))if(a=M(b.amount,c.W),a<=b.amount){if(c.c=Gb(b.id,a),0>=(b.amount-=a))return null}else return c.c=b,null;return b},Jb=(a,b)=>({Ua:0,ib:0,Va:0,O:0,ha:0,pa:0,aa:0, +V:-1,ba:0,qa:null,ra:null,l:1,rb:20,B:Array(36).fill(null).map(()=>({c:null,filter:null,W:64})),Oa:0,name:b.label||"Player",G:a.Aa,H:a.Ba,J:a.Ca,vb:0,wb:0,L:0,ma:0,da:0,ea:0,fa:0}),Kb=(a,b,c)=>{a.O=(a.O+b+100*za)%(2*za);a.ha=Ia(-Aa,M(Aa,a.ha+c))},Lb=a=>{a+=32;33a?a++:38a?a+=2:43a?a+=3:126a?a+=37:55295a-(63743a?35:40a?34:34a?33:32),Ob=()=>{var a=Nb;const b=a.length,c=new kb,d=u=>{h=h<<1|u&1;15=== +++p&&(w+=Lb(h),h=p=0)},e=()=>{for(let u=0;u{d(u);d(u>>1);d(u>>2);d(u>>3);d(u>>4);d(u>>5);d(u>>6);d(u>>7)},m=()=>{0===--z&&(z=1<{if(C)C=!1;else{let u=r.id;for(let E=0;E>E)}};let f=a[0],w="",h=0,p=2,v=2,z=2,g=2,r={id:g++,Ha:new kb},C=!0;l(f);c.set(f,r);for(let u=1;u{var b=Nb;if(!a)return null;const c=a.length,d=()=>{p+=(g>>--r&1)<v;)d();f=[p];e[2]=f;for(b[h++]=p;z<=c;){w=k;for(p=v=0;vv;)d();e[m]=[p];p=m++;0===--l&&(l=1<{d=d.target.result.createObjectStore("chunks",{keyPath:["world","coords"]});for(const e of mb(N))if(e.startsWith("minicraft.world.")){const [l,m]=e.substr(16).split(":");"meta"!==m&&(d.add({world:P(l),coords:m,data:N.getItem(e)}),bb(e))}};c.onsuccess=d=>{T=d.target.result}} +const Qb=(a,b)=>aa(function*(){if(!T)return N.getItem(`minicraft.world.${a}:${b}`);const c=T.transaction("chunks","readonly").objectStore("chunks").get([a,b]);return new Ya(d=>{c.onsuccess=()=>{let e;d(null==(e=c.result)?void 0:e.data)}})}()),Rb=(a,b)=>{var c=Ob();return aa(function*(){if(!T)return ab(`minicraft.world.${a}:${b}`,c);const d=T.transaction("chunks","readwrite").objectStore("chunks").put({world:a,coords:b,data:c});return new Ya((e,l)=>{d.onsuccess=()=>{e()};d.onerror=()=>{l(d.error)}})}())}, +Sb=(a,b)=>aa(function*(){if(!T)return bb(`minicraft.world.${a}:${b}`);const c=T.transaction("chunks","readwrite").objectStore("chunks").delete([a,b]);return new Ya(d=>{c.onsuccess=()=>{d()}})}()),Tb=a=>aa(function*(){const b=`minicraft.world.${a}:`;if(!T){const e={},l=b.length;for(const m of mb(N))m.startsWith(b)&&(e[m.substr(l)]=N.getItem(m));return e}const c=T.transaction("chunks","readonly").objectStore("chunks").openCursor(),d={meta:N.getItem(b+"meta")};return new Ya(e=>{c.onsuccess=()=>{const l= +c.result;l?(l.value.world===a&&(d[l.value.coords]=l.value.data),l.continue()):e(d)}})}()),Ub=(a,b)=>aa(function*(){if(T){var c=T.transaction("chunks","readwrite"),d=c.objectStore("chunks");for(const [e,l]of nb(b))"meta"!==e?d.put({world:a,coords:e,data:l}):ab(`minicraft.world.${a}:meta`,l);return new Ya((e,l)=>{c.oncomplete=()=>{e()};c.onerror=()=>{l(c.error)}})}for(const [e,l]of nb(b))ab(`minicraft.world.${a}:${e}`,l);ab("__margin",Array(257).join("x"));bb("__margin")}()),Vb=a=>{if(T){bb(`minicraft.world.${a}:meta`); +var b=T.transaction("chunks","readwrite").objectStore("chunks").openCursor();b.onsuccess=()=>{const c=b.result;c&&(c.value.world===a&&c.delete(),c.continue())}}else{const c=`minicraft.world.${a}:`;for(const d of mb(N))d.startsWith(c)&&bb(d)}},Wb=(a,b)=>{if(T){ab(`minicraft.world.${b}:meta`,N.getItem(`minicraft.world.${a}:meta`));bb(`minicraft.world.${a}:meta`);var c=T.transaction("chunks","readwrite").objectStore("chunks"),d=c.openCursor();d.onsuccess=()=>{const e=d.result;e&&(e.value.world===a&& +(e.value.world=b,c.put(e.value)),e.continue())}}else{const e=`minicraft.world.${a}:`,l=e.length,m=`minicraft.world.${b}:`;for(const k of mb(N))if(k.startsWith(e)){const f=N.getItem(k);bb(k);ab(m+k.substr(l),f)}}},Xb=new fb(1024),Nb=new eb(Xb.buffer),Yb=new kb,Zb=(a,b,c,d)=>0>c||63{const e=a.K;a.Z[(b<>4<>4)<<2|c>>4].ja=!0},ac=(a,b,c,d,e)=>{const l=a.K,m=(b<>4<>4)<<2|c>> +4].ja=!0},dc=(a,b,c)=>{const d=Ia(M(b.H,63),0)>>4,e=L(b.G)>>4;b=L(b.J)>>4;if(c||a.Ma!==d||a.va+a.La!==e||a.wa+a.Na!==b)c=1<{const b=a.La,c=a.Ma,d=a.Na,e=a.K,l=`${e} ${b} ${d} ${c}`;let m=Yb.get(l);if(null==m){const k=1<{let z=vb(w-b),g=vb(p-d),r=vb(w-b-k),C=0,u=0;rw<=f).sort((w,h)=>w.Za-h.Za))}a.Ia=m;a.sa=0},fc=(a,b)=>{if(!a.pb){for(var c=b.B.map(({c:d})=>d&&[d.id,d.amount,d.data]);0d.ja).map(d=>ec(a,d)))}},hc=(a,b)=>{const c=N.getItem(`minicraft.world.${a.id}:meta`);if(c){const {p:d,s:e,t:l,v:m}=$a(c);null!=m&&(d.i.forEach((k, +f)=>{k&&(b.B[f].c=Gb(k[0],k[1],k[2]))}),b.rb=d.h,b.l=d.m,b.G=d.p[0],b.H=d.p[1],b.J=d.p[2],b.O=d.p[3],b.ha=d.p[4],a.Aa=e[0],a.Ba=e[1],a.Ca=e[2],null!=l&&gc(a,l))}},gc=(a,b)=>{a.time=b%24E3;a.eb=(b+6E3)/24E3%1},tc=a=>aa(function*(){const b=a.$[a.Ia[a.sa=0].lb];var c=b.y;yield Sb(a.id,`${b.Fa}/${b.Ta}`+(0{const c=a.Ga;var d=a.K;const e=b.y,l=(256<m;++m){for(d=0;16>d;++d)Xb[++k]=c[f],Xb[++k]= +c[++f],Xb[++k]=c[++f],Xb[++k]=c[++f],f+=13;f+=l}b.ja=!1;return Rb(a.id,`${b.Fa}/${b.Ta}`+(0aa(function*(){const c=a.$,d=a.Ia,e=a.va,l=a.wa,m=d.length;for(;a.saC;++C){for(w=0;16>w;++w)k[h]=Xb[++u],k[++h]=Xb[++u],k[++h]=Xb[++u],k[++h]=Xb[++u],h+=13;h+=z}else for(p=0;16>p;++p){for(f=0;16>f;++f)k[h]=0{if(a){const b=vc=new Image;b.onload=()=>{if(vc===b){var c=wa.createElement("canvas");c.width=16;c.height=416;c=c.getContext("2d");c.scale(1,-1);for(let d=0;26>d;++d)c.drawImage(b,0,d<<4,16,16,0,-(d<<4)-16,16,16);uc=new fb(c.getImageData(0,0,16,416).data.buffer);for(const d of wc)d.P=!0;vc=null}};b.src=`${"/static/minicraft/"}textures/${a}.png`}else uc=null},zc=(a,b)=>{const c={yb:b,Wa:b.getContext("2d",{alpha:!1,desynchronized:!0}),jb:null,kb:null,ob:"",P:!1,qb:0,$a:0,zb:pb(()=> +(c.qb=c.$a,c.$a=0),1E3),o:a};wc.add(c);yc(c);return c},yc=a=>{const b=a.yb,c=a.o;a.kb=new fb((a.jb=a.Wa.createImageData(b.width=c.ya,b.height=c.za)).data.buffer);const d=c.ya*c.config.Y/c.la,e=c.za*c.config.Y/c.la;b.style.width=d+"px";b.style.height=e+"px";b.style.left=Ha((c.Pa-d)/2)+"px";b.style.top=Ha((c.Qa-e)/2)+"px";a.Wa.fillStyle="rgba(255,255,255,.5)"};let Ac=0; +const Dc=(a,b,c,d)=>{const e={Z:null,Ga:null,busy:!1,$:null,Ia:null,sa:0,pb:!1,La:0,Ma:0,Na:0,id:c.Ea,va:0,wa:0,K:0,Aa:.5,Ba:8.5,Ca:.5,time:0,eb:0},l=Jb(e,d);hc(e,l);const m={a,config:c,mb:0,nb:0,Ka:!1,ta:!0,A:!0,Ab:b,ca:0,X:new gb,ab:"",j:0,N:[],g:l,bb:null,u:null,la:1,Pa:1,Qa:1,ya:0,za:0,Ra:0,ub:0,Sa:0,Cb:pb(()=>{var k;(k=m.A)||(gc(e,e.time+1),dc(e,l,!1),k=void 0);return k},50),world:e};Bc(m,null);Cc(m);return m},Ec=a=>{a.world.pb||(fc(a.world,a.g),a.a.U(a.world.id,{mod_l:Pa.now()}))},Cc=a=>{aa(function*(){if(!a.config.ka)try{yield a.Ab.requestPointerLock()}catch(b){}}())}, +Fc=(a,b)=>a===b?0:.1-.2*a,Gc=a=>{a.g.Ua=Fc((a=a.X).has(-12)||a.has(65),a.has(-13)||a.has(68))},Hc=a=>{a.g.ib=Fc((a=a.X).has(-15)||a.has(16),a.has(-14)||a.has(32))},Ic=a=>{a.g.Va=Fc((a=a.X).has(-11)||a.has(83),a.has(-10)||a.has(87))},Jc=a=>{a.g.vb=Fc(a.X.has(-18),a.X.has(-19))},Kc=a=>{a.g.wb=Fc(a.X.has(-17),a.X.has(-16))},Mc=(a,b,c)=>{if(!a.world)return!1;const d=a.X;var e=a.g;if(c){if(d.has(b))return!1;d.add(b);var l=e.aa,m=e.V;c=e.ba;switch(b){case -18:case -19:Jc(a);break;case -17:case -16:Kc(a); +break;case -1:2!==e.l&&0<=m&&(0===e.Oa?0===e.l&&(b=Zb(a.world,l,m,c),2===b?b=3:1===b&&(b=4),6===b||8!==b&&13!==b&&null!==Ib(e.B,Gb(b,1)))||($b(a.world,l,m,c),e.V=-1):Lc(a,[l,m,c],!1));break;case -2:case 71:if(0<=m){const k=Zb(a.world,l,m,c);c=e.B.slice(0,9);m=c.findIndex(f=>null!==f.c&&f.c.id===k);0<=m?e.L=m:1===e.l&&(c[e.L].c&&(c=c.findIndex(f=>null===f.c),0<=c&&(e.L=c)),e.B[e.L].c=Gb(k));e.ma=a.ca}break;case -3:if(2!==e.l&&0<=m)if(0===e.Oa){if(b=e.B[e.L],b.c){switch(e.pa){case 0:--l;break;case 1:++l; +break;case 2:--m;break;case 3:++m;break;case 4:--c;break;case 5:++c}0<=m&&64>m&&ac(a.world,l&(1<<4+a.world.K)-1,m,c&(1<<4+a.world.K)-1,b.c.id)&&1!==e.l&&0>=--b.c.amount&&(b.c=null)}}else Lc(a,[l,m,c],!0);break;case -4:e.L=(e.L+9-1)%9;e.ma=a.ca;break;case -5:e.L=(e.L+1)%9;e.ma=a.ca;break;case 27:0===a.j&&(a.A=!0,a.j=1);break;case -15:case -14:case 16:case 32:Hc(a);break;case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:e.L=b-49;e.ma=a.ca;break;case -12:case -13:case 65:case 68:Gc(a); +break;case 69:if(0===a.j){a.j=3;for(const k of d)Mc(a,k,!1)}break;case 80:a.world&&(a.A=!0);break;case 81:e=e.B[e.L];if(d.has(17)||e.c&&0>=--e.c.amount)e.c=null;break;case -11:case -10:case 83:case 87:Ic(a);break;case 84:if(0===a.j){a.j=2;for(const k of d)Mc(a,k,!1)}break;case 112:a.ta=!a.ta;break;case 114:a.Ka=!a.Ka;case 116:case 122:case 123:break;default:return!1}}else{if(!d.delete(b))return!1;switch(b){case -15:case -14:case 16:case 32:Hc(a);break;case -12:case -13:case 65:case 68:Gc(a);break; +case -11:case -10:case 83:case 87:Ic(a);break;case -18:case -19:Jc(a);break;case -17:case -16:Kc(a)}}a.ab=[...d].join();return!0},Nc=(a,b)=>(b=b.startsWith("~")?a+P(b.substr(1)):P(b),isNaN(b)?a:b),Pc=(a,b)=>{var c=a.g,d=a.world;if(b)if("/"===b.charAt(0)){b=b.substr(1).split(" ");const e=b.shift();switch(e){case "clear":a.N=[];break;case "clearinv":for(const l of c.B)l.c=null;Y(a,"Inventory cleared.",!0);break;case "gamemode":case "gm":b=P(b[0]);!isNaN(b)&&0<=b&&3>b&&0===b%1?(c.l=b,Y(a,"Game mode set to: "+ +b,!0)):Y(a,"Game mode must be in 0..2!");break;case "give":if(0===b.length){Y(a,"/give [Amount]\n"+Eb.join(" "));break}d=Eb.indexOf((b[0]||"").toLowerCase());d=0<=d?d:P(b[0]);b=P(b[1]||1);!isNaN(d)&&0d&&0===d%1?!isNaN(b)&&0{a.u.P=!0;Y(a,"Chunks l.",!0)});break;case "me":Y(a,c.name+" "+b.join(" "),!0);break;case "save":Ec(a);Y(a,"Game saved.",!0);break;case "spawn":d.Aa=c.G;d.Ba=c.H;d.Ca=c.J;Y(a,"Spawn updated.",!0);break;case "teleport":case "tp":0===b.length?(c.G=d.Aa,c.H=d.Ba,c.J=d.Ca,a.u.P=!0,Y(a,"Teleported to spawn.",!0)):3===b.length?(Y(a,"Teleported to"+` ${c.G=Nc(c.G,b[0])} ${c.H=Nc(c.H,b[1])} ${c.J=Nc(c.J,b[2])}`,!0),a.u.P=!0):Y(a,"Pitch!");c.da=0;c.ea=0;c.fa=0;break;case "time":c= +b[1];if(!c){Y(a,"Parameter missing!");break}if("day"===c)c=1E3;else if("night"===c)c=13E3;else if(isNaN(c=L(P(c))))break;switch(b[0]){case "add":c+=d.time;case "set":gc(d,c);Y(a,"Time set to: "+d.time,!0);break;default:Y(a,"Unknown command: time "+b[0])}break;case "version":Y(a,"minicraft 0.11.4");break;case "/exit":c.Oa=0;Y(a,"Normal mouse mode.",!0);break;case "/expand":a.g.qa&&a.g.ra?d=!0:(Y(a,"Selection required!"),d=!1);d&&("vert"===b[0]?(c.qa[1]=0,c.ra[1]=63,Y(a,"Expanded selection.",!0)):Y(a, +'Only "vert" supported!'));break;case "/pos1":case "/pos2":Lc(a,[L(c.G),L(c.H),L(c.J)],"/pos2"===e);break;case "/regen":tc(d).then(()=>{a.u.P=!0;Y(a,"Chunk regenerated.",!0)});break;case "/show":Y(a,`${"Primary"}: ${c.qa?c.qa.join(" "):"none"}, ${"Secondary"}: ${c.ra?c.ra.join(" "):"none"}`);break;case "/wand":c.Oa=1;Y(a,"Select using mouse buttons.",!0);break;default:Y(a,"Unknown command: "+e)}}else{const e=Y(a,`<${c.name}> `+b);Bc(a,b).then(l=>{l&&Oc(a,e)})}},Y=(a,b,c=!1)=>{const d=++Ac;(a.N=a.N.slice(-49)).push({id:d, +tb:c,time:ua(),value:b});return d},Oc=(a,b)=>{const c=a.N.findIndex(d=>d.id===b);0<=c&&a.N.splice(c,1)},Lc=(a,b,c)=>{c?a.g.ra=b:a.g.qa=b;Y(a,`${c?"Secondary point":"Primary point"}: ${b.join(" ")}`,!0)},Bc=(a,b)=>(qb(a.bb),(b?db("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:Za({msg:b})}):db("/api/chat")).then(c=>{if(c.ok)return c.text()}).then(c=>{if(c){c=c.split("\n").filter(Boolean);for(const d of c)d.startsWith("<")&&Y(a,d);return 0!1).then(c=> +{a.bb=ob(()=>{Bc(a,null)},5E3);return c})),Qc=({id:a,M:b})=>(A("div[className=bitmap]",{S:{backgroundImage:`url(${"/static/minicraft/"}textures/${b}.png)`,backgroundPositionY:`-${2*(a-1)}rem`}}),null);function Rc({amount:a,l:b,id:c,M:d}){A("div[className=stack]",{title:Eb[c]+(1===b?` (${c})`:"")});return[G(Qc,{id:c,M:d}),1!==a&&H("div[className=amount]",{innerText:a})]} +function Sc({g:a,M:b,na:c}){A("div[className=bar]",{ontouchstart:F(e=>{a.L=Number(e.target.closest("[data-slot]").dataset.slot);a.ma=e.timeStamp}),S:{opacity:Ia(.5,M(1,1-5E-4*(c-a.ma-5E3)))}});const d=a.l;return a.B.slice(0,9).map(({c:e},l)=>H("div",{D:{slot:l},F:{active:l===a.L}},[e&&G(Rc,{amount:e.amount,data:e.data,l:d,id:e.id,M:b})]))} +function Tc({Bb:a,M:b}){A("div[className=grid]",{onclick:({target:c})=>{(c=c.closest("[data-id]"))&&Hb({c:Gb(P(c.dataset.id)),filter:null,W:64},a)}});return Eb.map((c,d)=>0({c:null,filter:null,W:64})),d=a.g.l;A("div[className=menu overlay inventory]",ia(()=>({onclick:({target:e})=>{if("menu overlay inventory"===e.className)c.c?c.c=null:(a.j=0,a.A=!1,Cc(a));else if(e=e.closest("[data-slot]"))e=a.g.B[P(e.dataset.slot)],c.c?Hb(c,e):e.c&&Hb(e,c)},oncontextmenu:({target:e})=>{if("menu overlay inventory"===e.className)c.c?0>=--c.c.amount&&(c.c=null):(a.j=0,a.A=!1,Cc(a));else if(e=e.closest("[data-slot]"))e=a.g.B[P(e.dataset.slot)],c.c? +Hb(c,e,1):e.c&&Hb(e,c,Ga(e.c.amount/2))}})));return[H("div[className=window]",null,[H("h2[innerText=Inventory]"),1===d&&G(Tc,{Bb:c,M:b}),H("div[className=grid]",null,a.g.B.map(({c:e},l)=>H("div",{D:{slot:l},F:{first:9>l}},[e&&G(Rc,{amount:e.amount,data:e.data,l:d,id:e.id,M:b})])))]),c.c&&H("div[className=hand]",{S:{transform:`translate(${a.mb}px, ${a.nb}px)`}},[G(Rc,{amount:c.c.amount,data:c.c.data,l:0,id:c.c.id,M:b})])]} +const Vc=({I:{tb:a,time:b,value:c},na:d})=>(A(a?"div[className=minor]":"div",{innerText:c,S:{opacity:M(1,1-.001*(d-b-4500))}}),null);function Wc({N:a,na:b}){A("div[className=messages]");const c=b-5E3;return[qa(Vc,a.slice(-10).filter(d=>d.time>c),{na:b})]}function Xc({I:a,ia:b,current:c}){A("button",{disabled:a.id===c,innerText:`${a.label} (${a.owner})`,onclick:()=>{b({T:a.id})}});return null} +function Yc({a:{ia:a},config:b,o:c,oa:d}){c&&D(()=>Ec(c));const [e,l]=oa(!1),m=ha(()=>e?db("/static/minicraft/textures.json").then(k=>k.ok?k.json():null).catch(()=>null):Ya.resolve(null),[e],null);A("div[className=menu overlay]");return[H("h1",{innerText:e?"Surfaces":"Settings"}),H("center",null,[H("button",{innerText:c&&!e?"Back to game":"Back",onclick:()=>{e?l(!1):c?(c.j=0,c.A=!1,Cc(c)):d(2)}})]),!e&&H("div[className=settings]",null,[H("button[innerText=Surfaces...]",{onclick:()=>{l(!0)}}),H("label[innerText=Resolution:]", null,[H("input[type=range][min=1][max=100][step=1]",{value:101-b.Y,onchange:k=>a({Y:101-Number(k.target.value)})})]),H("label[innerText=View angle:]",null,[H("input[type=range][min=1][max=180][step=1]",{value:b.Da,onchange:k=>a({Da:Number(k.target.value)})})]),H("label[innerText=View distance:]",null,[H("input[type=range][min=1][max=128][step=1]",{value:b.ga,onchange:k=>a({ga:Number(k.target.value)})})]),H("label[innerText=Pixel grouping:]",null,[H("input[type=range][min=1][max=8][step=1]",{value:b.xa, -onchange:k=>a({xa:Number(k.target.value)})})]),H("label[innerText=Mouse sensitivity:]",null,[H("input[type=range][min=1][max=15][step=1]",{value:b.ua,onchange:k=>a({ua:Number(k.target.value)})})]),H("button[innerText=Project page]",{onclick:()=>{open("//github.com/L3P3/minicraft")}})]),c&&!e&&H("center",null,[H("button[innerText=Leave world]",{onclick:()=>{d(2)}})]),e&&H("div[className=settings]",null,[H("button[innerText=Plain]",{disabled:0===b.T,onclick:()=>{a({T:0})}}),m&&ra(Yc,m,{ia:a,current:b.T})])]} -const $c=({I:{tb:a,value:b}})=>(A(a?"div[className=minor]":"div",{innerText:b}),null); -function ad({o:a,N:b}){const c=F({history:null,input:null});A("div[className=menu overlay terminal]",{onclick:d=>{d.target!==c.input&&c.input.focus()}});D(d=>{d&&pb(()=>c.history.scrollTop=1E9,0)},[b.length&&b[b.length-1].id]);return[F(H("div[className=toolbar]",null,[H("button[innerText=\u274c]",{onclick:()=>{a.j=0;a.A=!1;Dc(a)}})])),H("div[className=history]",{R:F(d=>{c.history=d})},[ra($c,b)]),F(H("input[enterkeyhint=send][mozactionhint=send][name=message][required]",{onkeydown:d=>{const e=d.keyCode; -d=d.target;13===e?(Qc(a,d.value),d.value=""):27===e&&(a.j=0,a.A=!1,Dc(a))},R:d=>{c.input=d;pb(()=>d.focus(),0)}}))]}const bd=[["pick",-2],["up",-14],["down",-15],["E",69],["T",84],["F1",112],["F3",114],["...",27]],cd=[["up",-10],["down",-11],["left",-12],["right",-13],["center",-1]],dd=[["up",-16],["down",-17],["left",-18],["right",-19],["center",-3]]; -function ed({o:a}){const b=a.X,c=([d,e])=>H("div",{D:{code:e},F:{button:!0,[d]:!0,active:b.has(e)}});A("div[className=touch]",F({ontouchstart:d=>{let {code:e}=d.target.dataset;if(null!=e&&Nc(a,e=P(e),!0)){const l=d.changedTouches[0].identifier,m=k=>{k.changedTouches[0].identifier===l&&(ub("touchend",m),Nc(a,e,!1))};tb("touchend",m)}return!1}}));return[H("div[className=top]",null,bd.map(([d,e])=>H(`div[innerText=${d}]`,{D:{code:e},F:{button:!0,active:b.has(e)}}))),H("div[className=move]",null,cd.map(c)), -H("div[className=move sec]",null,dd.map(c))]} -function fd({account:a,a:b,config:c,frame:d,cb:e,oa:l}){const m=va(),k=xa.pointerLockElement===d,f=ja(()=>e.o=Ec(b,d,c,a));D(()=>{const g=h=>{if(0!==f.j)return!0;xa.pointerLockElement===d?Nc(f,-1-h.button,"mousedown"===h.type):Dc(f);return!1},p=h=>{if(xa.pointerLockElement===d){const q=f.config.ua*Aa/(Ja(f.Pa,f.Qa)*f.la);vb&&(f.ub=h.timeStamp);Lb(f.g,f.Ra=h.movementX*q,f.Sa=-h.movementY*q)}else f.mb=h.clientX,f.nb=h.clientY},v=h=>{b.Ja(!1);if(0===f.j&&!f.A&&5{d.removeEventListener("mousedown",g);d.removeEventListener("mouseup",g);d.removeEventListener("mousemove",p,z);d.removeEventListener("wheel",v,z);rb(f.bb);sb(f.Cb);gc(f.world,f.g);var h=f.u;xc.delete(h);sb(h.zb);e.o=null}});D(()=>{f.config=c;f.u&&(f.u.P=!0);const g=f.world;var p=Ha(Na(f.config.ga/16*2+2));if(g.K!== -p){var v=f.g;g.$&&gc(g,v);const z=1<<(g.K=p),h=g.$=[];for(let q=0;qu;++u)h.push({ja:!1,l:!1,x:q,y:u,z:C,Fa:0,Ta:0});p=z<{f.la=v;f.Pa=Ja(1,g);f.Qa=Ja(1,p);p=f.config.Y;g=Ha(f.Pa*f.la/p);p=Ha(f.Qa*f.la/p);if(g!==f.ya||p!==f.za)f.ya=g,f.za=p,f.u&&(f.u.P=!0,zc(f.u))},[d.offsetWidth,d.offsetHeight,wa.devicePixelRatio||1,c.Y]);D(g=>{g||f.A||0!==f.j||(f.j= -1,vb&&f.Ra|f.Sa&&f.ub>m-100&&(Lb(f.g,-f.Ra,-f.Sa),f.Ra=f.Sa=0,f.u.P=!0));f.A=!g},[c.ka&&0===f.j||k]);D(g=>k&&g&&xa.exitPointerLock(),[f.A||0!==f.j]);D(()=>{if(f.world){if(f.ca&&!f.A){var g=f.g,p=M(5,.01*(m-f.ca));g.da-=.1*g.da*p;g.ea-=.1*g.ea*p;g.fa-=.1*g.fa*p;g.da+=(Ka(g.O)*g.Ua+La(g.O)*g.Va)*p;g.ea+=g.ib*p;g.fa+=(-La(g.O)*g.Ua+Ka(g.O)*g.Va)*p;Lb(g,g.vb*p*1.5,g.wb*p*1.5);g.G+=g.da*p;g.H+=g.ea*p;g.J+=g.fa*p}if(f.u){g=f.u;++g.$a;p=g.Wa;var v=g.jb;const aa=g.kb,la=g.o,Ra=la.config,zb=la.ta,y=la.g,O= -la.ya,sa=la.za,R=la.world;var z=0;if(!la.A||g.P){g.P=!1;z=Ra.xa;const jd=Ra.ga;var h=y.O,q=y.ha;const kd=y.aa,ld=y.ba,Sa=y.l;var C=y.G,u=y.H,E=y.J;const md=zb?y.V:-1,nd=R.Z;var S=R.K;const od=null!==vc;var t=1/O,r=1/sa;const ma=O>>1,ta=sa>>1,jc=M(O,sa),kc=32T)var I=V;else if(0===V)I=0===ea?0:1===ea?T:ea-1,Fa=1===ea;else if(V=O)break a;Fa=!1}var W=(I-ma)*pd;da=B+lc*W;const qc=Ea-h*W,sd=oc;W=16757124;let ib=1,rc=jd,jb=0;2=== -Sa&&0Ab;++Ab){const X=(sd+Ab)%3;let fa=qc;var J=qd;0===X&&(fa=da,J=r);1===X&&(fa=pc,J=x);var ua=-1/fa;0fa|0),Wa=u+ya*J-(1===X&0>fa|0),Xa=E+ua*J-(2===X&0>fa|0);J*=sc;for(let Bb,Cb,Db,Y;JWa){if(0>ya)break}else if(65600<=Wa){if(0fa|X<<1,nc=J);if(od){--Y;1===X?6===Y?Y=25:13===Y?Y=4:1===Y&&0>>24)continue;W=tc&16777215}else W=Gb[Y];rc=J;ib=(0===X?.8:2===X?.6:0>16)*ib,255)<<16|M((W>>8&255)*ib,255)<<8|M((W&255)*ib,255);if(da=(Fa=Fa&&(Ua!==ta||Ima+T))&& -na===W){if(6T)break;aa[++I]=na;if(4>T)break;aa[++I]=na;if(5>T)break;aa[++I]=na;if(6>T)break;aa[++I]=na;break}if(Fa||0===I)na=W;aa[Ta+I]=W}Ta+=O}zb&&!kc&&(aa[O*ta+ma]^=16777215)}p.putImageData(v,0,0);zb&&kc&&(v=M(Ha(.05*jc),8),p.fillRect(ma-v,ta-1,v<<1,2),p.fillRect(ma-1,ta-v,2,v-1),p.fillRect(ma-1,ta+1,2,v-1))}g.ob=la.Ka?`minicraft ${"0.11.3"} ${L(g.qb).toString().padStart(2,"\u00a0")} fps, T: ${L(24*R.eb).toString().padStart(2, -"0")}:${L(24*R.eb%1*60).toString().padStart(2,"0")}; ${la.A&&500>m%1E3?"":R.time} -R: ${O}x${sa} (x${Ra.Y}), D: ${Ra.ga}, C: ${R.sa}/${R.Ia.length}, M: ${64*wb(1<<4+R.K)>>10}k +onchange:k=>a({xa:Number(k.target.value)})})]),H("label[innerText=Mouse sensitivity:]",null,[H("input[type=range][min=1][max=15][step=1]",{value:b.ua,onchange:k=>a({ua:Number(k.target.value)})})]),H("button[innerText=Project page]",{onclick:()=>{open("//github.com/L3P3/minicraft")}})]),c&&!e&&H("center",null,[H("button[innerText=Leave world]",{onclick:()=>{d(2)}})]),e&&H("div[className=settings]",null,[H("button[innerText=Plain]",{disabled:0===b.T,onclick:()=>{a({T:0})}}),m&&qa(Xc,m,{ia:a,current:b.T})])]} +const Zc=({I:{tb:a,value:b}})=>(A(a?"div[className=minor]":"div",{innerText:b}),null); +function $c({o:a,N:b}){const c=F({history:null,input:null});A("div[className=menu overlay terminal]",{onclick:d=>{d.target!==c.input&&c.input.focus()}});D(d=>{d&&ob(()=>c.history.scrollTop=1E9,0)},[b.length&&b[b.length-1].id]);return[F(H("div[className=toolbar]",null,[H("button[innerText=\u274c]",{onclick:()=>{a.j=0;a.A=!1;Cc(a)}})])),H("div[className=history]",{R:F(d=>{c.history=d})},[qa(Zc,b)]),F(H("input[enterkeyhint=send][mozactionhint=send][name=message][required]",{onkeydown:d=>{const e=d.keyCode; +d=d.target;13===e?(Pc(a,d.value),d.value=""):27===e&&(a.j=0,a.A=!1,Cc(a))},R:d=>{c.input=d;ob(()=>d.focus(),0)}}))]}const ad=[["pick",-2],["up",-14],["down",-15],["E",69],["T",84],["F1",112],["F3",114],["...",27]],bd=[["up",-10],["down",-11],["left",-12],["right",-13],["center",-1]],cd=[["up",-16],["down",-17],["left",-18],["right",-19],["center",-3]]; +function dd({o:a}){const b=a.X,c=([d,e])=>H("div",{D:{code:e},F:{button:!0,[d]:!0,active:b.has(e)}});A("div[className=touch]",F({ontouchstart:d=>{let {code:e}=d.target.dataset;if(null!=e&&Mc(a,e=P(e),!0)){const l=d.changedTouches[0].identifier,m=k=>{k.changedTouches[0].identifier===l&&(tb("touchend",m),Mc(a,e,!1))};sb("touchend",m)}return!1}}));return[H("div[className=top]",null,ad.map(([d,e])=>H(`div[innerText=${d}]`,{D:{code:e},F:{button:!0,active:b.has(e)}}))),H("div[className=move]",null,bd.map(c)), +H("div[className=move sec]",null,cd.map(c))]} +function ed({account:a,a:b,config:c,frame:d,cb:e,oa:l}){const m=ua(),k=wa.pointerLockElement===d,f=ia(()=>e.o=Dc(b,d,c,a));D(()=>{const h=g=>{if(0!==f.j)return!0;wa.pointerLockElement===d?Mc(f,-1-g.button,"mousedown"===g.type):Cc(f);return!1},p=g=>{if(wa.pointerLockElement===d){const r=f.config.ua*za/(Ia(f.Pa,f.Qa)*f.la);ub&&(f.ub=g.timeStamp);Kb(f.g,f.Ra=g.movementX*r,f.Sa=-g.movementY*r)}else f.mb=g.clientX,f.nb=g.clientY},v=g=>{b.Ja(!1);if(0===f.j&&!f.A&&5{d.removeEventListener("mousedown",h);d.removeEventListener("mouseup",h);d.removeEventListener("mousemove",p,z);d.removeEventListener("wheel",v,z);qb(f.bb);rb(f.Cb);fc(f.world,f.g);var g=f.u;wc.delete(g);rb(g.zb);e.o=null}});D(()=>{f.config=c;f.u&&(f.u.P=!0);const h=f.world;var p=Ga(Ma(f.config.ga/16*2+2));if(h.K!== +p){var v=f.g;h.$&&fc(h,v);const z=1<<(h.K=p),g=h.$=[];for(let r=0;ru;++u)g.push({ja:!1,l:!1,x:r,y:u,z:C,Fa:0,Ta:0});p=z<{f.la=v;f.Pa=Ia(1,h);f.Qa=Ia(1,p);p=f.config.Y;h=Ga(f.Pa*f.la/p);p=Ga(f.Qa*f.la/p);if(h!==f.ya||p!==f.za)f.ya=h,f.za=p,f.u&&(f.u.P=!0,yc(f.u))},[d.offsetWidth,d.offsetHeight,va.devicePixelRatio||1,c.Y]);D(h=>{h||f.A||0!==f.j||(f.j= +1,ub&&f.Ra|f.Sa&&f.ub>m-100&&(Kb(f.g,-f.Ra,-f.Sa),f.Ra=f.Sa=0,f.u.P=!0));f.A=!h},[c.ka&&0===f.j||k]);D(h=>k&&h&&wa.exitPointerLock(),[f.A||0!==f.j]);D(()=>{if(f.world){if(f.ca&&!f.A){var h=f.g,p=M(5,.01*(m-f.ca));h.da-=.1*h.da*p;h.ea-=.1*h.ea*p;h.fa-=.1*h.fa*p;h.da+=(Ja(h.O)*h.Ua+Ka(h.O)*h.Va)*p;h.ea+=h.ib*p;h.fa+=(-Ka(h.O)*h.Ua+Ja(h.O)*h.Va)*p;Kb(h,h.vb*p*1.5,h.wb*p*1.5);h.G+=h.da*p;h.H+=h.ea*p;h.J+=h.fa*p}if(f.u){h=f.u;++h.$a;p=h.Wa;var v=h.jb;const Z=h.kb,ka=h.o,Qa=ka.config,yb=ka.ta,y=ka.g,O= +ka.ya,ra=ka.za,R=ka.world;var z=0;if(!ka.A||h.P){h.P=!1;var g=Qa.xa;const id=Qa.ga;var r=y.O,C=y.ha;const jd=y.aa,kd=y.ba,Ra=y.l;var u=y.G;z=y.H;var E=y.J;const ld=yb?y.V:-1,md=R.Z;var S=R.K;const nd=null!==uc;var t=1/O,q=1/ra;const la=O>>1,sa=ra>>1,ic=M(O,ra),jc=32z||64<=z?0:Zb(R,u&Ca,q&63,E&Ca);if(2!==Ra&&0g)var I=U;else if(0===U)I=0===da?0:1===da?g:da-1,Ea=1===da;else if(U=O)break a;Ea=!1}var V=(I-la)*od;ca=B+kc*V;const pc=Da-r*V,sd=nc;V=16757124; +let hb=1,qc=id,ib=0;2===Ra&&0zb;++zb){const W=(sd+zb)%3;let ea=pc;var J=qd;0===W&&(ea=ca,J=x);1===W&&(ea=oc,J=pd);var ta=-1/ea;0ea|0),Va=q+xa*J-(1===W&0>ea|0),Wa=E+ta*J-(2===W&0>ea|0);J*=rc;for(let Ab,Bb,Cb,X;JVa){if(0>xa)break}else if(65600<=Va){if(0ea|W<<1,mc=J);if(nd){--X;1===W?6===X?X=25:13===X?X=4:1===X&&0>>24)continue;V=sc&16777215}else V=Fb[X];qc=J;hb=(0===W?.8:2===W?.6:0>16)*hb,255)<<16|M((V>>8&255)*hb,255)<<8|M((V&255)*hb,255);if(ca=(Ea=Ea&&(Ta!== +sa||Ila+g))&&ma===V){if(6g)break;Z[++I]=ma;if(4>g)break;Z[++I]=ma;if(5>g)break;Z[++I]=ma;if(6>g)break;Z[++I]=ma;break}if(Ea||0===I)ma=V;Z[Sa+I]=V}Sa+=O}yb&&!jc&&(Z[O*sa+la]^=16777215)}p.putImageData(v,0,0);yb&&jc&&(v=M(Ga(.05*ic),8),p.fillRect(la-v,sa-1,v<<1,2),p.fillRect(la-1,sa-v,2,v-1),p.fillRect(la-1,sa+1,2,v-1))}h.ob=ka.Ka?`minicraft ${"0.11.4"} ${L(h.qb).toString().padStart(2,"\u00a0")} fps, T: ${L(24*R.eb).toString().padStart(2, +"0")}:${L(24*R.eb%1*60).toString().padStart(2,"0")}; ${ka.A&&500>m%1E3?"":R.time} +R: ${O}x${ra} (x${Qa.Y}), D: ${Qa.ga}, C: ${R.sa}/${R.Ia.length}, M: ${64*vb(1<<4+R.K)>>10}k E: 0/0, M: ${y.l}, I: ${z} Position: ${y.G.toFixed(2)} ${y.H.toFixed(2)} ${y.J.toFixed(2)} -Angle: ${(y.O*Ca).toFixed(2)} ${(y.ha*Ca).toFixed(2)} -Focus: ${0>y.V?"":y.aa+" "+y.V+" "+y.ba+" "+"WEBTSNI"[y.pa]+": "+Fb[$b(R,y.aa,y.V,y.ba)]} -Chunk abs: ${L(y.G)>>4} ${L(y.J)>>4} ${L(y.H)>>4} rel: ${R.La} ${R.Na} ${R.Ma}`:""}}f.ca=m},[m]);oa();const w=F({fb:1});c.T&&(w.fb=c.T);return[H("canvas",{R:F(g=>{f.u=Ac(f,g)})}),f.ta&&2!==f.j&&G(Xc,{N:f.N,na:m}),f.u&&f.Ka&&H("div[className=diagnostics]",{innerText:f.u.ob}),c.ka&&G(ed,{o:f,ab:f.ab}),f.ta&&3!==f.j&&2!==f.g.l&&G(Tc,{g:f.g,M:w.fb,na:m}),3===f.j&&G(Vc,{o:f,M:w.fb,na:m}),1===f.j&&G(Zc,{a:b,config:c,o:f,oa:l}),2===f.j&&G(ad,{o:f,N:f.N})]} -function gd({I:a,Db:b,Eb:c,Fb:d}){A("div",{F:{selected:a===c},onclick:()=>{d(a.id)}});c=`${a.local?"L":"_"}${a.local&&a.remote?a.local>a.remote?">":a.local{l(m()+1)}),f=F({value:null}),w=ia(()=>ba(function*(){try{const t=!f.value&&!e,r=yield eb(`${"/api/minicraft/"}world?what=${t?"initial":"meta_all"}`);if(!r.ok)throw Error("Connection error.");const x=yield r.json();if(!t)return x;if("0.11.3"!==x.version_latest)return location.reload(!0),null;ca();b.xb(x.account);return x.worlds}catch(t){return alert("Error while loading world list: "+t.message),[]}}()), -[e],null),g=ja(()=>{w&&(f.value=w);const t=[];f.value&&t.push(...f.value.map(r=>({account_name:r.account_name,hash:r.hash,id:r.id,label:r.label,local:0,public:r.public,remote:r.modified,writable:r.writable})));for(const r of c.worlds){const x=t.find(B=>B.id===r.id);if(x){const B=x.local=r.mod_l,Ea=x.remote,da=r.mod_r;B>da&&Ea>da&&(confirm('Conflict! The world "'+r.label+'" was modified here and somewhere else.\nOK: Take variant from server ('+yb(Ea,!1)+") | Cancel: Keep local variant ("+yb(B,!1)+ -")")?b.U(r.id,{mod_l:x.local=da}):b.U(r.id,{mod_r:x.remote=da}))}else 1Ja(x.local,x.remote)-Ja(r.local,r.remote))},[w,c.worlds]),[p,v,z]=pa(c.Ea),h=ja(()=>g.find(t=>t.id===p)||null,[p,g]),q=ja(()=>{let t,r;return null!=(r=null==g?void 0: -null==(t=g.find(x=>0{if(null!==q){var t=!1,r=g.find(x=>x.id===q);if(r.localx.json()).then(x=>{if(!t)return Vb(q,x).then(()=>{b.U(q,{mod_l:r.remote,mod_r:r.remote})})}).catch(x=>{t||("QuotaExceededError"===x.name?(alert("Insufficient storage!"),b.hb(q),Wb(q)):alert("Error while downloadedoading world: "+x.message))});else{if(!r.writable){b.U(q,{mod_l:c.worlds.find(B=> -B.id===q).mod_r});return}let x=q;(1===r.remote?eb("/api/minicraft/world",Object.assign({},hd,{body:$a({what:"meta",label:r.label})})).then(B=>{if(!B.ok)throw Error(403===B.status?"Missing permission. Logged in?":"Connection error.");return B.json()}).then(B=>{x=B.id}):Za.resolve()).then(()=>{if(t)throw null;return Ub(q)}).then(B=>{if(t)throw null;return eb("/api/minicraft/world",Object.assign({},hd,{body:$a({what:"data",world:x,data:B})}))}).then(B=>{if(!B.ok)throw Error(403===B.status?"Missing permission. Logged in?": -"Connection error.");return B.json()}).then(B=>{ca();x===q?b.U(q,{mod_l:B.modified,mod_r:B.modified}):(Xb(q,x),b.hb(q),b.gb({id:x,label:r.label,mod_l:B.modified,mod_r:B.modified}),t||z()!==q||v(x));t||k();ha()}).catch(B=>{t||(alert("Error while uploading world: "+B.message),ca(),b.U(q,{mod_r:0}),ha())})}return()=>{t=!0}}},[q]);const [C,u]=pa(!1);h||u(!1);const [E,S]=pa(!1);return[H("h1[innerText=Worlds]"),H("button[innerText=Refresh][style=position:absolute;left:0;top:0;height:2rem][title=Reload list]", -{disabled:!w,onclick:k}),H("button[style=position:absolute;right:0;top:0;height:2rem]",{disabled:0{location.href="/account?redir=minicraft"}}),H("div[className=worlds]",null,[ra(gd,g,{Hb:e,Db:q,Eb:h,Fb:v})]),H("center",null,[H("button[innerText=Enter]",{disabled:!h||!h.local||h.remote>h.local,onclick:()=>{ca();b.ia({Ea:h.id});d(0);ha()},title:h?h.local?h.remote>h.local?"The world is still loading!":"Enter selected world":"The world is not downloaded yet!": -"No world selected!"}),H("button[innerText=World...]",{disabled:!h||C,onclick:()=>{u(!0)},title:h?"Show world settings":"No world selected!"})]),H("hr"),H("center",null,[H("button[innerText=New world]",{onclick:()=>{const t=prompt("New world's label:\n(max. 16 characters)","New world");t&&(16r.id))-1,label:t,mod_l:Qa.now(),mod_r:0}))}}),H("button[innerText=Settings]",{onclick:()=>{d(1)}})]),H("center",null,[H("small[innerText=Version 0.11.3 by L3P3]")]), -C&&h&&H("div",{F:{"menu overlay advanced":!0,busy:E},onclick:t=>{"menu overlay advanced"===t.target.className&&u(!1)}},[H("div[className=window]",null,[H("h2",{innerText:`"${h.label}"`,title:h.id}),H("table",null,[!!h.account_name&&H("tr",null,[H("td[innerText=Owner:]"),H("td",{innerText:h.account_name})]),H("tr",null,[H("td[innerText=Modified:]"),H("td",{innerText:yb(Ja(h.local,h.remote),!1)})])]),H("center",null,[H("button[innerText=Rename]",{disabled:E||!h.writable,onclick:()=>{const t=prompt("World's new label:\n(max. 16 characters)", -h.label);!t||t===h.label||16{if(!r.ok)throw Error(403===r.status?"Missing permission. Logged in?":"Connection error.");return r.json()}).catch(r=>{alert("Error while editing world: "+r.message)}).then(()=>{S(!1)})))},title:h.writable?"Change world name":"No permission!"}),H("button",{disabled:E||!h.local&& -!h.writable,innerText:h.local?"Delete (local)":"Delete",onclick:()=>{confirm('Really delete world "'+h.label+'"?')&&(h.local?(b.hb(h.id),Wb(h.id)):(S(!0),eb("/api/minicraft/world",{method:"DELETE",headers:{"Content-Type":"application/json"},body:$a({what:"world",world:h.id})}).then(t=>{if(!t.ok)throw Error(403===t.status?"Missing permission. Logged in?":"Connection error.");ca();v(null);u(!1);k();S(!1);ha();return t.json()}).catch(t=>{alert("Error while deleting world: "+t.message);S(!1)})))},title:h.local|| -h.writable?"Delete world":"No permission!"})]),H("center",null,[H("button",{disabled:E||!h.remote||!h.writable,innerText:`${"Public"}: ${h.public?"Yes":"No"}`,onclick:()=>{S(!0);eb("/api/minicraft/world",{method:"POST",headers:{"Content-Type":"application/json"},body:$a({what:"meta",world:h.id,public:!h.public})}).then(t=>{if(!t.ok)throw Error(403===t.status?"Missing permission. Logged in?":"Connection error.");ca();k();S(!1);ha();return t.json()}).catch(t=>{alert("Error while editing world: "+t.message); -S(!1)})},title:h.remote?h.writable?h.public?"Unpublish world":"Publish world":"No permission!":"The world is not upl!"}),H("button",{disabled:E||!w||0{h.local?h.remote||b.U(h.id,{mod_r:1}):b.gb({id:h.id,label:h.label,mod_l:1,mod_r:h.remote})},title:w?h.local?h.remote?"The world is present on both sides!":a.rank?"Upload world to server":"Not logged in!":"Download world from server": -"List is loading!"})])])])]}function td({account:a,a:b,config:c,cb:d}){const [e,l]=pa(2),m=A("div[className=game]");return[(2===e||1===e)&&G(id,{account:a,a:b,config:c,oa:l}),1===e&&G(Zc,{a:b,config:c,o:null,oa:l}),0===e&&G(fd,{account:a,a:b,config:c,frame:m,cb:d,oa:l})]} -function ud(){const [a,b]=ka(Eb),c=F({o:null,sb:0});D(()=>{let k=!1;onbeforeunload=onunload=onpagehide=onblur=()=>{k||(k=!0,c.o&&Fc(c.o),b.Xa())};onpageshow=onfocus=()=>{k=!1};setInterval(()=>(b.Xa(),!Pa&&bb("minicraft.lock",Qa.now())),500);tb("touchend",f=>{c.sb=f.timeStamp},!0)});const d=F(k=>{if("INPUT"===k.target.tagName||!c.o)return!0;b.Ja(!1);Nc(c.o,k.keyCode,"keydown"===k.type);return!1}),e=F(()=>{b.Ja(!0)}),l=F(k=>{999{m?(tb("mousedown",l, -!0),tb("mouseup",l,!0),ub("touchstart",e,!0)):(ub("mousedown",l,!0),ub("mouseup",l,!0),tb("touchstart",e,!0))},[m]);D(yc,[a.config.T]);A("",{onkeydown:d,onkeyup:d,oncontextmenu:xb,ondragstart:xb});return[G(td,{account:a.account,a:b,config:a.config,cb:c})]}function vd(){close();return[H("h1[innerText=minicraft already running!]")]} -if(window.SSR)qa(ud);else if(Pa){const a=new Pa("minicraft.lock"),b=pb(()=>{qa(ud)},100);a.addEventListener("message",c=>{"yes"===c.data?(rb(b),a.close(),qa(vd)):(a.postMessage("yes"),focus())});a.postMessage("anyone there?")}else{const a=P(N.getItem("minicraft.lock")),b=Qa.now()-1E3;a{qa(P(N.getItem("minicraft.lock"))===a?ud:vd)},a-b)}; +Angle: ${(y.O*Ba).toFixed(2)} ${(y.ha*Ba).toFixed(2)} +Focus: ${0>y.V?"":y.aa+" "+y.V+" "+y.ba+" "+"WEBTSNI"[y.pa]+": "+Eb[Zb(R,y.aa,y.V,y.ba)]} +Chunk abs: ${L(y.G)>>4} ${L(y.J)>>4} ${L(y.H)>>4} rel: ${R.La} ${R.Na} ${R.Ma}`:""}}f.ca=m},[m]);na();const w=F({fb:1});c.T&&(w.fb=c.T);return[H("canvas",{R:F(h=>{f.u=zc(f,h)})}),f.ta&&2!==f.j&&G(Wc,{N:f.N,na:m}),f.u&&f.Ka&&H("div[className=diagnostics]",{innerText:f.u.ob}),c.ka&&G(dd,{o:f,ab:f.ab}),f.ta&&3!==f.j&&2!==f.g.l&&G(Sc,{g:f.g,M:w.fb,na:m}),3===f.j&&G(Uc,{o:f,M:w.fb,na:m}),1===f.j&&G(Yc,{a:b,config:c,o:f,oa:l}),2===f.j&&G($c,{o:f,N:f.N})]} +function fd({I:a,Db:b,Eb:c,Fb:d}){A("div",{F:{selected:a===c},onclick:()=>{d(a.id)}});c=`${a.local?"L":"_"}${a.local&&a.remote?a.local>a.remote?">":a.local{l(m()+1)}),f=F({value:null}),w=ha(()=>aa(function*(){try{const t=!f.value&&!e,q=yield db(`${"/api/minicraft/"}world?what=${t?"initial":"meta_all"}`);if(!q.ok)throw Error("Connection error.");const x=yield q.json();if(!t)return x;if("0.11.4"!==x.version_latest)return location.reload(!0),null;ba();b.xb(x.account);return x.worlds}catch(t){return alert("Error while loading world list: "+t.message),[]}}()), +[e],null),h=ia(()=>{w&&(f.value=w);const t=[];f.value&&t.push(...f.value.map(q=>({account_name:q.account_name,hash:q.hash,id:q.id,label:q.label,local:0,public:q.public,remote:q.modified,writable:q.writable})));for(const q of c.worlds){const x=t.find(B=>B.id===q.id);if(x){const B=x.local=q.mod_l,Da=x.remote,ca=q.mod_r;B>ca&&Da>ca&&(confirm('Conflict! The world "'+q.label+'" was modified here and somewhere else.\nOK: Take variant from server ('+xb(Da,!1)+") | Cancel: Keep local variant ("+xb(B,!1)+ +")")?b.U(q.id,{mod_l:x.local=ca}):b.U(q.id,{mod_r:x.remote=ca}))}else 1Ia(x.local,x.remote)-Ia(q.local,q.remote))},[w,c.worlds]),[p,v,z]=oa(c.Ea),g=ia(()=>h.find(t=>t.id===p)||null,[p,h]),r=ia(()=>{let t,q;return null!=(q=null==h?void 0: +null==(t=h.find(x=>0{if(null!==r){var t=!1,q=h.find(x=>x.id===r);if(q.localx.json()).then(x=>{if(!t)return Ub(r,x).then(()=>{b.U(r,{mod_l:q.remote,mod_r:q.remote})})}).catch(x=>{t||("QuotaExceededError"===x.name?(alert("Insufficient storage!"),b.hb(r),Vb(r)):alert("Error while downloadedoading world: "+x.message))});else{if(!q.writable){b.U(r,{mod_l:c.worlds.find(B=> +B.id===r).mod_r});return}let x=r;(1===q.remote?db("/api/minicraft/world",Object.assign({},gd,{body:Za({what:"meta",label:q.label})})).then(B=>{if(!B.ok)throw Error(403===B.status?"Missing permission. Logged in?":"Connection error.");return B.json()}).then(B=>{x=B.id}):Ya.resolve()).then(()=>{if(t)throw null;return Tb(r)}).then(B=>{if(t)throw null;return db("/api/minicraft/world",Object.assign({},gd,{body:Za({what:"data",world:x,data:B})}))}).then(B=>{if(!B.ok)throw Error(403===B.status?"Missing permission. Logged in?": +"Connection error.");return B.json()}).then(B=>{ba();x===r?b.U(r,{mod_l:B.modified,mod_r:B.modified}):(Wb(r,x),b.hb(r),b.gb({id:x,label:q.label,mod_l:B.modified,mod_r:B.modified}),t||z()!==r||v(x));t||k();fa()}).catch(B=>{t||(alert("Error while uploading world: "+B.message),ba(),b.U(r,{mod_r:0}),fa())})}return()=>{t=!0}}},[r]);const [C,u]=oa(!1);g||u(!1);const [E,S]=oa(!1);return[H("h1[innerText=Worlds]"),H("button[innerText=Refresh][style=position:absolute;left:0;top:0;height:2rem][title=Reload list]", +{disabled:!w,onclick:k}),H("button[style=position:absolute;right:0;top:0;height:2rem]",{disabled:0{location.href="/account?redir=minicraft"}}),H("div[className=worlds]",null,[qa(fd,h,{Hb:e,Db:r,Eb:g,Fb:v})]),H("center",null,[H("button[innerText=Enter]",{disabled:!g||!g.local||g.remote>g.local,onclick:()=>{ba();b.ia({Ea:g.id});d(0);fa()},title:g?g.local?g.remote>g.local?"The world is still loading!":"Enter selected world":"The world is not downloaded yet!": +"No world selected!"}),H("button[innerText=World...]",{disabled:!g||C,onclick:()=>{u(!0)},title:g?"Show world settings":"No world selected!"})]),H("hr"),H("center",null,[H("button[innerText=New world]",{onclick:()=>{const t=prompt("New world's label:\n(max. 16 characters)","New world");t&&(16q.id))-1,label:t,mod_l:Pa.now(),mod_r:0}))}}),H("button[innerText=Settings]",{onclick:()=>{d(1)}})]),H("center",null,[H("small[innerText=Version 0.11.4 by L3P3]")]), +C&&g&&H("div",{F:{"menu overlay advanced":!0,busy:E},onclick:t=>{"menu overlay advanced"===t.target.className&&u(!1)}},[H("div[className=window]",null,[H("h2",{innerText:`"${g.label}"`,title:g.id}),H("table",null,[!!g.account_name&&H("tr",null,[H("td[innerText=Owner:]"),H("td",{innerText:g.account_name})]),H("tr",null,[H("td[innerText=Modified:]"),H("td",{innerText:xb(Ia(g.local,g.remote),!1)})])]),H("center",null,[H("button[innerText=Rename]",{disabled:E||!g.writable,onclick:()=>{const t=prompt("World's new label:\n(max. 16 characters)", +g.label);!t||t===g.label||16{if(!q.ok)throw Error(403===q.status?"Missing permission. Logged in?":"Connection error.");return q.json()}).catch(q=>{alert("Error while editing world: "+q.message)}).then(()=>{S(!1)})))},title:g.writable?"Change world name":"No permission!"}),H("button",{disabled:E||!g.local&& +!g.writable,innerText:g.local?"Delete (local)":"Delete",onclick:()=>{confirm('Really delete world "'+g.label+'"?')&&(g.local?(b.hb(g.id),Vb(g.id)):(S(!0),db("/api/minicraft/world",{method:"DELETE",headers:{"Content-Type":"application/json"},body:Za({what:"world",world:g.id})}).then(t=>{if(!t.ok)throw Error(403===t.status?"Missing permission. Logged in?":"Connection error.");ba();v(null);u(!1);k();S(!1);fa();return t.json()}).catch(t=>{alert("Error while deleting world: "+t.message);S(!1)})))},title:g.local|| +g.writable?"Delete world":"No permission!"})]),H("center",null,[H("button",{disabled:E||!g.remote||!g.writable,innerText:`${"Public"}: ${g.public?"Yes":"No"}`,onclick:()=>{S(!0);db("/api/minicraft/world",{method:"POST",headers:{"Content-Type":"application/json"},body:Za({what:"meta",world:g.id,public:!g.public})}).then(t=>{if(!t.ok)throw Error(403===t.status?"Missing permission. Logged in?":"Connection error.");ba();k();S(!1);fa();return t.json()}).catch(t=>{alert("Error while editing world: "+t.message); +S(!1)})},title:g.remote?g.writable?g.public?"Unpublish world":"Publish world":"No permission!":"The world is not upl!"}),H("button",{disabled:E||!w||0{g.local?g.remote||b.U(g.id,{mod_r:1}):b.gb({id:g.id,label:g.label,mod_l:1,mod_r:g.remote})},title:w?g.local?g.remote?"The world is present on both sides!":a.rank?"Upload world to server":"Not logged in!":"Download world from server": +"List is loading!"})])])])]}function td({account:a,a:b,config:c,cb:d}){const [e,l]=oa(2),m=A("div[className=game]");return[(2===e||1===e)&&G(hd,{account:a,a:b,config:c,oa:l}),1===e&&G(Yc,{a:b,config:c,o:null,oa:l}),0===e&&G(ed,{account:a,a:b,config:c,frame:m,cb:d,oa:l})]} +function ud(){const [a,b]=ja(Db),c=F({o:null,sb:0});D(()=>{let k=!1;onbeforeunload=onunload=onpagehide=onblur=()=>{k||(k=!0,c.o&&Ec(c.o),b.Xa())};onpageshow=onfocus=()=>{k=!1};setInterval(()=>(b.Xa(),!Oa&&ab("minicraft.lock",Pa.now())),500);sb("touchend",f=>{c.sb=f.timeStamp},!0)});const d=F(k=>{if("INPUT"===k.target.tagName||!c.o)return!0;b.Ja(!1);Mc(c.o,k.keyCode,"keydown"===k.type);return!1}),e=F(()=>{b.Ja(!0)}),l=F(k=>{999{m?(sb("mousedown",l, +!0),sb("mouseup",l,!0),tb("touchstart",e,!0)):(tb("mousedown",l,!0),tb("mouseup",l,!0),sb("touchstart",e,!0))},[m]);D(xc,[a.config.T]);A("",{onkeydown:d,onkeyup:d,oncontextmenu:wb,ondragstart:wb});return[G(td,{account:a.account,a:b,config:a.config,cb:c})]}function vd(){close();return[H("h1[innerText=minicraft already running!]")]} +if(window.SSR)pa(ud);else if(Oa){const a=new Oa("minicraft.lock"),b=ob(()=>{pa(ud)},100);a.addEventListener("message",c=>{"yes"===c.data?(qb(b),a.close(),pa(vd)):(a.postMessage("yes"),focus())});a.postMessage("anyone there?")}else{const a=P(N.getItem("minicraft.lock")),b=Pa.now()-1E3;a{pa(P(N.getItem("minicraft.lock"))===a?ud:vd)},a-b)}; diff --git a/app-ru.js b/app-ru.js index 5a23774..42d3e65 100644 --- a/app-ru.js +++ b/app-ru.js @@ -1,102 +1,102 @@ -function ba(a){function b(d){return a.next(d)}function c(d){return a.throw(d)}return new Promise(function(d,e){function l(m){m.done?d(m.value):Promise.resolve(m.value).then(b,c).then(l,e)}l(a.next())})} -const n=lui,ca=n.defer,ha=n.defer_end,ia=n.hook_async,A=n.hook_dom,D=n.hook_effect,ja=n.hook_memo,ka=n.hook_model,oa=n.hook_rerender,pa=n.hook_state,F=n.hook_static,qa=n.init,G=n.node,H=n.node_dom,ra=n.node_map,va=n.now,wa=window,xa=document,za=navigator,K=Math,Aa=K.PI,Ba=.5*Aa,Fa=180/Aa,Ga=K.random,L=K.floor,Ha=K.ceil,Ia=K.round,M=K.min,Ja=K.max,Ka=K.cos,La=K.sin,Ma=K.sqrt,Na=K.log2,Oa=String.fromCharCode,Pa=BroadcastChannel,Qa=Date,Ya=JSON,Za=Promise,$a=Ya.stringify,ab=Ya.parse,N=localStorage,bb= -N.setItem.bind(N),cb=N.removeItem.bind(N),db=wa.indexedDB,eb=fetch,fb=Uint8Array,gb=Uint32Array,hb=Set,lb=Map,P=Number,mb=Object,nb=mb.keys,ob=mb.entries,pb=setTimeout,qb=setInterval,rb=clearTimeout,sb=clearInterval,tb=addEventListener,ub=removeEventListener,vb=za.userAgent.includes("WebKit"),wb=a=>a*a,xb=()=>!1,yb=(a,b)=>{const c=new Qa;a=new Qa(a);var d=c-a;if(59E3>d)return Ia(d/1E3)+"s";if(3E6>d)return Ia(d/6E4)+"m";d=a.getFullYear();const e=a.getMonth(),l=a.getDate();let m="";d"minicraft.world."+b.id));for(const b of nb(N))b.startsWith("minicraft.world.")&&!a.has(b.split(":")[0])&&cb(b)} -const Eb={init:()=>{let a=!1;var b={ka:!1,xa:1,ua:3,Y:4,T:1,Da:120,ga:64,Ea:0,worlds:[]};if(Q){let c=Q.pixel_grouping;null!=c&&(b.xa=c);null!=(c=Q.mouse_sensitivity)&&(b.ua=c);b.Y=Q.resolution_scaling;null!=(c=Q.textures)?b.T=c:b.T=Q.flag_textures?1:0;b.Da=Q.view_angle;b.ga=Q.view_distance;null!=(c=Q.world_last)&&(b.Ea=c);null!=(c=Q.worlds)?b.worlds=c:N.getItem("minicraft.world.0:meta")&&(b.worlds[0]={id:0,label:(prompt("\u0411\u044b\u043b \u043d\u0430\u0439\u0434\u0435\u043d \u0431\u0435\u0437 \u0438\u043c\u0435\u043d\u0438 \u043b\u043e\u043a\u0430\u043b\u043d\u044b\u0439 \u043c\u0438\u0440. \u041a\u0430\u043a \u0435\u0433\u043e \u043d\u0430\u0437\u0430\u0432\u0451\u0448\u044c? ", -"")||"\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u043c\u0438\u0440").substring(0,16),mod_l:Qa.now(),mod_r:0},a=!0);Q=null}b={account:{label:"",rank:0},config:b,Ya:b};return a?(b.Ya=null,Eb.Xa(b)):b},Xa:a=>{const b=a.config;if(b===a.Ya)return a;bb("minicraft.config",$a({version:"0.11.3",pixel_grouping:b.xa,mouse_sensitivity:b.ua,resolution_scaling:b.Y,textures:b.T,view_angle:b.Da,view_distance:b.ga,world_last:b.Ea,worlds:b.worlds}));return Object.assign({},a,{Ya:b})},xb:(a, -b)=>Object.assign({},a,{account:b}),Gb:(a,b)=>Eb.ia(a,b(a.config)),ia:(a,b)=>Object.assign({},a,{config:Object.assign({},a.config,b)}),Ja:(a,b)=>a.config.ka===b?a:Eb.ia(a,{ka:b}),gb:(a,b)=>Object.assign({},a,{config:Object.assign({},a.config,{worlds:[...a.config.worlds,b]})}),hb:(a,b)=>Object.assign({},a,{config:Object.assign({},a.config,{worlds:a.config.worlds.filter(c=>c.id!==b)})}),U:(a,b,c)=>Object.assign({},a,{config:Object.assign({},a.config,{worlds:a.config.worlds.map(d=>d.id===b?Object.assign({}, -d,c):d)})})},Fb="air stone grass dirt cobble planks bedrock log leaves bricks wool sand gravel glass bookshelf obsidian stone_bricks sandstone lapis_block iron_block gold_block diamond_block emerald_block redstone_block quartz_block".split(" "),Gb="\u0412\u043e\u0437\u0434\u0443\u0445;\u041a\u0430\u043c\u0435\u043d\u044c;\u0411\u043b\u043e\u043a \u0442\u0440\u0430\u0432\u044b;\u0417\u0435\u043c\u043b\u044f;\u0411\u0443\u043b\u044b\u0436\u043d\u0438\u043a;\u0414\u043e\u0441\u043a\u0430;\u0411\u0435\u0434\u0440\u043e\u043a;\u0411\u0440\u0435\u0432\u043d\u043e;\u041b\u0438\u0441\u0442\u044c\u044f;\u041a\u0438\u0440\u043f\u0438\u0447\u0438;\u0428\u0435\u0440\u0441\u0442;\u041f\u0435\u0441\u043e\u043a;\u0413\u0440\u0430\u0432\u0438\u0439;\u0421\u0442\u0435\u043a\u043b\u043e;\u041a\u043d\u0438\u0436\u043d\u044f \u043f\u043e\u043b\u043a\u0430;\u041e\u0431\u0441\u0438\u0434\u0438\u0430\u043d;\u041a\u0430\u043c\u0435\u043d\u044b\u0435 \u043a\u0438\u0440\u043f\u0438\u0447\u0438;\u041f\u0435\u0449\u044f\u043d\u0438\u043a;\u0411\u043b\u043e\u043a \u043b\u0430\u0437\u0443\u0440\u0438\u0442\u0430;\u0411\u043b\u043e\u043a \u0436\u0435\u043b\u0435\u0437\u0430;\u0411\u043b\u043e\u043a \u0437\u043e\u043b\u043e\u0442\u0430;\u0411\u043b\u043e\u043a \u0430\u043b\u043c\u0430\u0437\u0430;\u0411\u043b\u043e\u043a \u0438\u0437\u0443\u043c\u0440\u0443\u0434\u0430;\u0411\u043b\u043e\u043a \u0440\u0435\u0434\u0441\u0442\u043e\u0443\u043d\u0430;\u0411\u043b\u043e\u043a \u043a\u0432\u0430\u0440\u0446\u0430".split(";"), -Hb=[0,8487297,4305266,4349313,8092539,5342114,7039851,3561583,4172910,6384533,15526888,10671324,8092798,16447200,4151672,1970708,8092539,9686227,9126695,15198183,5567485,14541182,7920469,662956,14936813],Ib=(a,b=1,c=null)=>({amount:b,data:c,id:a}),Jb=(a,b,c=a.c.amount)=>{if(b.c)a.c.id===b.c.id?(c=M(c,b.W-b.c.amount),a.c.amount-=c,b.c.amount+=c,0>=a.c.amount&&(a.c=null)):!(a.c.amount<=c&&a.c.amount<=b.W&&b.c.amount<=a.W)||a.filter&&!a.filter(b.c.id)||b.filter&&!b.filter(a.c.id)||([b.c,a.c]=[a.c,b.c]); -else if(!b.filter||b.filter(a.c.id))a.c.amount<=c&&a.c.amount<=b.W?[b.c,a.c]=[a.c,b.c]:(c=M(c,b.W),a.c.amount-=c,b.c=Ib(a.c.id,c),0>=a.c.amount&&(a.c=null))},Kb=(a,b)=>{for(const c of a)if(c.c&&c.c.id===b.id){const d=M(b.amount,c.W-c.c.amount);c.c.amount+=d;if(0>=(b.amount-=d))return null}for(const c of a)if(!c.c&&(!c.filter||c.filter(b.id)))if(a=M(b.amount,c.W),a<=b.amount){if(c.c=Ib(b.id,a),0>=(b.amount-=a))return null}else return c.c=b,null;return b},Lb=(a,b)=>({Ua:0,ib:0,Va:0,O:0,ha:0,pa:0,aa:0, -V:-1,ba:0,qa:null,ra:null,l:1,rb:20,B:Array(36).fill(null).map(()=>({c:null,filter:null,W:64})),Oa:0,name:b.label||"\u0418\u0433\u0440\u043e\u043a",G:a.Aa,H:a.Ba,J:a.Ca,vb:0,wb:0,L:0,ma:0,da:0,ea:0,fa:0}),Mb=(a,b,c)=>{a.O=(a.O+b+100*Aa)%(2*Aa);a.ha=Ja(-Ba,M(Ba,a.ha+c))},Nb=a=>{a+=32;33a?a++:38a?a+=2:43a?a+=3:126a?a+=37:55295a-(63743a?35:40a?34:34a?33:32),Qb=()=>{var a=Pb;const b=a.length,c=new lb, -d=u=>{g=g<<1|u&1;15===++p&&(w+=Nb(g),g=p=0)},e=()=>{for(let u=0;u{d(u);d(u>>1);d(u>>2);d(u>>3);d(u>>4);d(u>>5);d(u>>6);d(u>>7)},m=()=>{0===--z&&(z=1<{if(C)C=!1;else{let u=q.id;for(let E=0;E>E)}};let f=a[0],w="",g=0,p=2,v=2,z=2,h=2,q={id:h++,Ha:new lb},C=!0;l(f);c.set(f,q);for(let u=1;u{var b=Pb;if(!a)return null;const c=a.length,d=()=>{p+=(h>>--q&1)<v;)d();f=[p];e[2]=f;for(b[g++]=p;z<=c;){w=k;for(p=v=0;vv;)d();e[m]=[p];p=m++;0===--l&&(l=1<{d=d.target.result.createObjectStore("chunks",{keyPath:["world","coords"]});for(const e of nb(N))if(e.startsWith("minicraft.world.")){const [l,m]=e.substr(16).split(":");"meta"!==m&&(d.add({world:P(l),coords:m,data:N.getItem(e)}),cb(e))}};c.onsuccess=d=>{U=d.target.result}} -const Sb=(a,b)=>ba(function*(){if(!U)return N.getItem(`minicraft.world.${a}:${b}`);const c=U.transaction("chunks","readonly").objectStore("chunks").get([a,b]);return new Za(d=>{c.onsuccess=()=>{let e;d(null==(e=c.result)?void 0:e.data)}})}()),Tb=(a,b)=>{var c=Qb();return ba(function*(){if(!U)return bb(`minicraft.world.${a}:${b}`,c);const d=U.transaction("chunks","readwrite").objectStore("chunks").put({world:a,coords:b,data:c});return new Za((e,l)=>{d.onsuccess=()=>{e()};d.onerror=()=>{l(d.error)}})}())}, -Ub=(a,b)=>ba(function*(){if(!U)return cb(`minicraft.world.${a}:${b}`);const c=U.transaction("chunks","readwrite").objectStore("chunks").delete([a,b]);return new Za(d=>{c.onsuccess=()=>{d()}})}()),Vb=a=>ba(function*(){const b=`minicraft.world.${a}:`;if(!U){const e={},l=b.length;for(const m of nb(N))m.startsWith(b)&&(e[m.substr(l)]=N.getItem(m));return e}const c=U.transaction("chunks","readonly").objectStore("chunks").openCursor(),d={meta:N.getItem(b+"meta")};return new Za(e=>{c.onsuccess=()=>{const l= -c.result;l?(l.value.world===a&&(d[l.value.coords]=l.value.data),l.continue()):e(d)}})}()),Wb=(a,b)=>ba(function*(){if(U){var c=U.transaction("chunks","readwrite"),d=c.objectStore("chunks");for(const [e,l]of ob(b))"meta"!==e?d.put({world:a,coords:e,data:l}):bb(`minicraft.world.${a}:meta`,l);return new Za((e,l)=>{c.oncomplete=()=>{e()};c.onerror=()=>{l(c.error)}})}for(const [e,l]of ob(b))bb(`minicraft.world.${a}:${e}`,l);bb("__margin",Array(257).join("x"));cb("__margin")}()),Xb=a=>{if(U){cb(`minicraft.world.${a}:meta`); -var b=U.transaction("chunks","readwrite").objectStore("chunks").openCursor();b.onsuccess=()=>{const c=b.result;c&&(c.value.world===a&&c.delete(),c.continue())}}else{const c=`minicraft.world.${a}:`;for(const d of nb(N))d.startsWith(c)&&cb(d)}},Yb=(a,b)=>{if(U){bb(`minicraft.world.${b}:meta`,N.getItem(`minicraft.world.${a}:meta`));cb(`minicraft.world.${a}:meta`);var c=U.transaction("chunks","readwrite").objectStore("chunks"),d=c.openCursor();d.onsuccess=()=>{const e=d.result;e&&(e.value.world===a&& -(e.value.world=b,c.put(e.value)),e.continue())}}else{const e=`minicraft.world.${a}:`,l=e.length,m=`minicraft.world.${b}:`;for(const k of nb(N))if(k.startsWith(e)){const f=N.getItem(k);cb(k);bb(m+k.substr(l),f)}}},Zb=new gb(1024),Pb=new fb(Zb.buffer),$b=new lb,ac=(a,b,c,d)=>0>c||63{const e=a.K;a.Z[(b<>4<>4)<<2|c>>4].ja=!0},cc=(a,b,c,d,e)=>{const l=a.K,m=(b<>4<>4)<<2|c>> -4].ja=!0},fc=(a,b,c)=>{const d=Ja(M(b.H,63),0)>>4,e=L(b.G)>>4;b=L(b.J)>>4;if(c||a.Ma!==d||a.va+a.La!==e||a.wa+a.Na!==b)c=1<{const b=a.La,c=a.Ma,d=a.Na,e=a.K,l=`${e} ${b} ${d} ${c}`;let m=$b.get(l);if(null==m){const k=1<{let z=wb(w-b),h=wb(p-d),q=wb(w-b-k),C=0,u=0;qw<=f).sort((w,g)=>w.Za-g.Za))}a.Ia=m;a.sa=0},hc=(a,b)=>{if(!a.pb){for(var c=b.B.map(({c:d})=>d&&[d.id,d.amount,d.data]);0d.ja).map(d=>gc(a,d)))}},jc=(a,b)=>{const c=N.getItem(`minicraft.world.${a.id}:meta`);if(c){const {p:d,s:e,t:l,v:m}=ab(c);null!=m&&(d.i.forEach((k, -f)=>{k&&(b.B[f].c=Ib(k[0],k[1],k[2]))}),b.rb=d.h,b.l=d.m,b.G=d.p[0],b.H=d.p[1],b.J=d.p[2],b.O=d.p[3],b.ha=d.p[4],a.Aa=e[0],a.Ba=e[1],a.Ca=e[2],null!=l&&ic(a,l))}},ic=(a,b)=>{a.time=b%24E3;a.eb=(b+6E3)/24E3%1},vc=a=>ba(function*(){const b=a.$[a.Ia[a.sa=0].lb];var c=b.y;yield Ub(a.id,`${b.Fa}/${b.Ta}`+(0{const c=a.Ga;var d=a.K;const e=b.y,l=(256<m;++m){for(d=0;16>d;++d)Zb[++k]=c[f],Zb[++k]= -c[++f],Zb[++k]=c[++f],Zb[++k]=c[++f],f+=13;f+=l}b.ja=!1;return Tb(a.id,`${b.Fa}/${b.Ta}`+(0ba(function*(){const c=a.$,d=a.Ia,e=a.va,l=a.wa,m=d.length;for(;a.saC;++C){for(w=0;16>w;++w)k[g]=Zb[++u],k[++g]=Zb[++u],k[++g]=Zb[++u],k[++g]=Zb[++u],g+=13;g+=z}else for(p=0;16>p;++p){for(f=0;16>f;++f)k[g]=0{if(a){const b=xc=new Image;b.onload=()=>{if(xc===b){var c=xa.createElement("canvas");c.width=16;c.height=416;c=c.getContext("2d");c.scale(1,-1);for(let d=0;26>d;++d)c.drawImage(b,0,d<<4,16,16,0,-(d<<4)-16,16,16);wc=new gb(c.getImageData(0,0,16,416).data.buffer);for(const d of yc)d.P=!0;xc=null}};b.src=`${"/static/minicraft/"}textures/${a}.png`}else wc=null},Bc=(a,b)=>{const c={yb:b,Wa:b.getContext("2d",{alpha:!1,desynchronized:!0}),jb:null,kb:null,ob:"",P:!1,qb:0,$a:0,zb:qb(()=> -(c.qb=c.$a,c.$a=0),1E3),o:a};yc.add(c);Ac(c);return c},Ac=a=>{const b=a.yb,c=a.o;a.kb=new gb((a.jb=a.Wa.createImageData(b.width=c.ya,b.height=c.za)).data.buffer);const d=c.ya*c.config.Y/c.la,e=c.za*c.config.Y/c.la;b.style.width=d+"px";b.style.height=e+"px";b.style.left=Ia((c.Pa-d)/2)+"px";b.style.top=Ia((c.Qa-e)/2)+"px";a.Wa.fillStyle="rgba(255,255,255,.5)"};let Cc=0; -const Fc=(a,b,c,d)=>{const e={Z:null,Ga:null,busy:!1,$:null,Ia:null,sa:0,pb:!1,La:0,Ma:0,Na:0,id:c.Ea,va:0,wa:0,K:0,Aa:.5,Ba:8.5,Ca:.5,time:0,eb:0},l=Lb(e,d);jc(e,l);const m={a,config:c,mb:0,nb:0,Ka:!1,ta:!0,A:!0,Ab:b,ca:0,X:new hb,ab:"",j:0,N:[],g:l,bb:null,u:null,la:1,Pa:1,Qa:1,ya:0,za:0,Ra:0,ub:0,Sa:0,Cb:qb(()=>{var k;(k=m.A)||(ic(e,e.time+1),fc(e,l,!1),k=void 0);return k},50),world:e};Dc(m,null);Ec(m);return m},Gc=a=>{a.world.pb||(hc(a.world,a.g),a.a.U(a.world.id,{mod_l:Qa.now()}))},Ec=a=>{ba(function*(){if(!a.config.ka)try{yield a.Ab.requestPointerLock()}catch(b){}}())}, -Hc=(a,b)=>a===b?0:.1-.2*a,Ic=a=>{a.g.Ua=Hc((a=a.X).has(-12)||a.has(65),a.has(-13)||a.has(68))},Jc=a=>{a.g.ib=Hc((a=a.X).has(-15)||a.has(16),a.has(-14)||a.has(32))},Kc=a=>{a.g.Va=Hc((a=a.X).has(-11)||a.has(83),a.has(-10)||a.has(87))},Lc=a=>{a.g.vb=Hc(a.X.has(-18),a.X.has(-19))},Mc=a=>{a.g.wb=Hc(a.X.has(-17),a.X.has(-16))},Oc=(a,b,c)=>{if(!a.world)return!1;const d=a.X;var e=a.g;if(c){if(d.has(b))return!1;d.add(b);var l=e.aa,m=e.V;c=e.ba;switch(b){case -18:case -19:Lc(a);break;case -17:case -16:Mc(a); -break;case -1:2!==e.l&&0<=m&&(0===e.Oa?0===e.l&&(b=ac(a.world,l,m,c),2===b?b=3:1===b&&(b=4),6===b||8!==b&&13!==b&&null!==Kb(e.B,Ib(b,1)))||(bc(a.world,l,m,c),e.V=-1):Nc(a,[l,m,c],!1));break;case -2:case 71:if(0<=m){const k=ac(a.world,l,m,c);c=e.B.slice(0,9);m=c.findIndex(f=>null!==f.c&&f.c.id===k);0<=m?e.L=m:1===e.l&&(c[e.L].c&&(c=c.findIndex(f=>null===f.c),0<=c&&(e.L=c)),e.B[e.L].c=Ib(k));e.ma=a.ca}break;case -3:if(2!==e.l&&0<=m)if(0===e.Oa){if(b=e.B[e.L],b.c){switch(e.pa){case 0:--l;break;case 1:++l; -break;case 2:--m;break;case 3:++m;break;case 4:--c;break;case 5:++c}0<=m&&64>m&&cc(a.world,l&(1<<4+a.world.K)-1,m,c&(1<<4+a.world.K)-1,b.c.id)&&1!==e.l&&0>=--b.c.amount&&(b.c=null)}}else Nc(a,[l,m,c],!0);break;case -4:e.L=(e.L+9-1)%9;e.ma=a.ca;break;case -5:e.L=(e.L+1)%9;e.ma=a.ca;break;case 27:0===a.j&&(a.A=!0,a.j=1);break;case -15:case -14:case 16:case 32:Jc(a);break;case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:e.L=b-49;e.ma=a.ca;break;case -12:case -13:case 65:case 68:Ic(a); -break;case 69:if(0===a.j){a.j=3;for(const k of d)Oc(a,k,!1)}break;case 80:a.world&&(a.A=!0);break;case 81:e=e.B[e.L];if(d.has(17)||e.c&&0>=--e.c.amount)e.c=null;break;case -11:case -10:case 83:case 87:Kc(a);break;case 84:if(0===a.j){a.j=2;for(const k of d)Oc(a,k,!1)}break;case 112:a.ta=!a.ta;break;case 114:a.Ka=!a.Ka;case 116:case 122:case 123:break;default:return!1}}else{if(!d.delete(b))return!1;switch(b){case -15:case -14:case 16:case 32:Jc(a);break;case -12:case -13:case 65:case 68:Ic(a);break; -case -11:case -10:case 83:case 87:Kc(a);break;case -18:case -19:Lc(a);break;case -17:case -16:Mc(a)}}a.ab=[...d].join();return!0},Pc=(a,b)=>(b=b.startsWith("~")?a+P(b.substr(1)):P(b),isNaN(b)?a:b),Rc=(a,b)=>{var c=a.g,d=a.world;if(b)if("/"===b.charAt(0)){b=b.substr(1).split(" ");const e=b.shift();switch(e){case "clear":a.N=[];break;case "clearinv":for(const l of c.B)l.c=null;Z(a,"\u0418\u043d\u0432\u0435\u043d\u0442\u0430\u0440 \u043f\u0443\u0441\u0442",!0);break;case "gamemode":case "gm":b=P(b[0]); -!isNaN(b)&&0<=b&&3>b&&0===b%1?(c.l=b,Z(a,"\u0418\u0433\u0440\u043e\u0432\u043e\u0439 \u0440\u0435\u0436\u0438\u043c \u0441\u043c\u0435\u043d\u0451\u043d \u043d\u0430: "+b,!0)):Z(a,"\u0418\u0433\u0440\u043e\u0432\u043e\u0439 \u0440\u0435\u0436\u0438\u043c \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442 0..2!");break;case "give":if(0===b.length){Z(a,"/give [\u0427\u0438\u0441\u043b\u043e]\n"+Fb.join(" "));break}d=Fb.indexOf((b[0]||"").toLowerCase());d=0<=d?d:P(b[0]);b=P(b[1]||1);!isNaN(d)&& -0d&&0===d%1?!isNaN(b)&&0{a.u.P=!0;Z(a,"\u0427\u0430\u043d\u043a\u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f.",!0)});break;case "me":Z(a,c.name+" "+b.join(" "),!0);break;case "save":Gc(a);Z(a,"\u0418\u0433\u0440\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0430.",!0);break;case "spawn":d.Aa=c.G;d.Ba=c.H;d.Ca=c.J;Z(a,"\u041d\u0430\u0447\u0430\u043b\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0430", -!0);break;case "teleport":case "tp":0===b.length?(c.G=d.Aa,c.H=d.Ba,c.J=d.Ca,a.u.P=!0,Z(a,"\u041f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u0441\u044f \u043a \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u043e\u0439 \u0442\u043e\u0447\u043a\u0438.",!0)):3===b.length?(Z(a,"\u041f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u0441\u044f \u043a"+` ${c.G=Pc(c.G,b[0])} ${c.H=Pc(c.H,b[1])} ${c.J=Pc(c.J,b[2])}`,!0),a.u.P=!0):Z(a,"\u041d\u0435\u043f\u043e\u0432\u0435\u0437\u043b\u043e!"); -c.da=0;c.ea=0;c.fa=0;break;case "time":c=b[1];if(!c){Z(a,"\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442!");break}if("day"===c)c=1E3;else if("night"===c)c=13E3;else if(isNaN(c=L(P(c))))break;switch(b[0]){case "add":c+=d.time;case "set":ic(d,c);Z(a,"\u041d\u043e\u0432\u043e\u0435 \u0432\u0440\u0435\u043c\u044f: "+d.time,!0);break;default:Z(a,"\u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u043d\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430: time "+ -b[0])}break;case "version":Z(a,"minicraft 0.11.3");break;case "/exit":c.Oa=0;Z(a,"\u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0440\u0435\u0436\u0438\u043c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0439 \u043c\u044b\u0448\u043a\u0438.",!0);break;case "/expand":a.g.qa&&a.g.ra?d=!0:(Z(a,"\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u043d\u0430\u0447\u044f\u043b\u043e!"),d=!1);d&&("vert"===b[0]?(c.qa[1]=0,c.ra[1]=63,Z(a,"\u0412\u044b\u0431\u043e\u0440\u044c \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d.", -!0)):Z(a,'\u0422\u043e\u043b\u043a\u043e "vert" \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f!'));break;case "/pos1":case "/pos2":Nc(a,[L(c.G),L(c.H),L(c.J)],"/pos2"===e);break;case "/regen":vc(d).then(()=>{a.u.P=!0;Z(a,"\u0427\u0430\u043d\u043a\u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f ",!0)});break;case "/show":Z(a,`${"\u041f\u0435\u0440\u0432\u044b\u0439"}: ${c.qa?c.qa.join(" "):"\u043d\u0438\u0447\u0435\u0433\u043e"}, ${"\u0412\u0442\u043e\u0440\u043e\u0439"}: ${c.ra? -c.ra.join(" "):"\u043d\u0438\u0447\u0435\u0433\u043e"}`);break;case "/wand":c.Oa=1;Z(a,"\u0412\u044b\u0431\u043e\u0440\u044c \u0441 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0439 \u043c\u044b\u0448\u043a\u0438.",!0);break;default:Z(a,"\u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u043d\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430: "+e)}}else{const e=Z(a,`<${c.name}> `+b);Dc(a,b).then(l=>{l&&Qc(a,e)})}},Z=(a,b,c=!1)=>{const d=++Cc;(a.N=a.N.slice(-49)).push({id:d, -tb:c,time:va(),value:b});return d},Qc=(a,b)=>{const c=a.N.findIndex(d=>d.id===b);0<=c&&a.N.splice(c,1)},Nc=(a,b,c)=>{c?a.g.ra=b:a.g.qa=b;Z(a,`${c?"\u0412\u0442\u043e\u0440\u0430\u044f \u0432\u044b\u0431\u0440\u0430\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430":"\u041f\u0435\u0440\u0432\u0430\u044f \u0432\u044b\u0431\u0440\u0430\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430"}: ${b.join(" ")}`,!0)},Dc=(a,b)=>(rb(a.bb),(b?eb("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"}, -body:$a({msg:b})}):eb("/api/chat")).then(c=>{if(c.ok)return c.text()}).then(c=>{if(c){c=c.split("\n").filter(Boolean);for(const d of c)d.startsWith("<")&&Z(a,d);return 0!1).then(c=>{a.bb=pb(()=>{Dc(a,null)},5E3);return c})),Sc=({id:a,M:b})=>(A("div[className=bitmap]",{S:{backgroundImage:`url(${"/static/minicraft/"}textures/${b}.png)`,backgroundPositionY:`-${2*(a-1)}rem`}}),null); -function Tc({amount:a,l:b,id:c,M:d}){A("div[className=stack]",{title:Gb[c]+(1===b?` (${Fb[c]}, ${c})`:"")});return[G(Sc,{id:c,M:d}),1!==a&&H("div[className=amount]",{innerText:a})]} -function Uc({g:a,M:b,na:c}){A("div[className=bar]",{ontouchstart:F(e=>{a.L=Number(e.target.closest("[data-slot]").dataset.slot);a.ma=e.timeStamp}),S:{opacity:Ja(.5,M(1,1-5E-4*(c-a.ma-5E3)))}});const d=a.l;return a.B.slice(0,9).map(({c:e},l)=>H("div",{D:{slot:l},F:{active:l===a.L}},[e&&G(Tc,{amount:e.amount,data:e.data,l:d,id:e.id,M:b})]))} -function Vc({Bb:a,M:b}){A("div[className=grid]",{onclick:({target:c})=>{(c=c.closest("[data-id]"))&&Jb({c:Ib(P(c.dataset.id)),filter:null,W:64},a)}});return Fb.map((c,d)=>0({c:null,filter:null,W:64})),d=a.g.l;A("div[className=menu overlay inventory]",ja(()=>({onclick:({target:e})=>{if("menu overlay inventory"===e.className)c.c?c.c=null:(a.j=0,a.A=!1,Ec(a));else if(e=e.closest("[data-slot]"))e=a.g.B[P(e.dataset.slot)],c.c?Jb(c,e):e.c&&Jb(e,c)},oncontextmenu:({target:e})=>{if("menu overlay inventory"===e.className)c.c?0>=--c.c.amount&&(c.c=null):(a.j=0,a.A=!1,Ec(a));else if(e=e.closest("[data-slot]"))e=a.g.B[P(e.dataset.slot)],c.c? -Jb(c,e,1):e.c&&Jb(e,c,Ha(e.c.amount/2))}})));return[H("div[className=window]",null,[H("h2[innerText=\u0418\u043d\u0432\u0435\u043d\u0442\u0430\u0440]"),1===d&&G(Vc,{Bb:c,M:b}),H("div[className=grid]",null,a.g.B.map(({c:e},l)=>H("div",{D:{slot:l},F:{first:9>l}},[e&&G(Tc,{amount:e.amount,data:e.data,l:d,id:e.id,M:b})])))]),c.c&&H("div[className=hand]",{S:{transform:`translate(${a.mb}px, ${a.nb}px)`}},[G(Tc,{amount:c.c.amount,data:c.c.data,l:0,id:c.c.id,M:b})])]} -const Xc=({I:{tb:a,time:b,value:c},na:d})=>(A(a?"div[className=minor]":"div",{innerText:c,S:{opacity:M(1,1-.001*(d-b-4500))}}),null);function Yc({N:a,na:b}){A("div[className=messages]");const c=b-5E3;return[ra(Xc,a.slice(-10).filter(d=>d.time>c),{na:b})]}function Zc({I:a,ia:b,current:c}){A("button",{disabled:a.id===c,innerText:`${a.label} (${a.owner})`,onclick:()=>{b({T:a.id})}});return null} -function $c({a:{ia:a},config:b,o:c,oa:d}){c&&D(()=>Gc(c));const [e,l]=pa(!1),m=ia(()=>e?eb("/static/minicraft/textures.json").then(k=>k.ok?k.json():null).catch(()=>null):Za.resolve(null),[e],null);A("div[className=menu overlay]");return[H("h1",{innerText:e?"\u041f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u044c":"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438"}),H("center",null,[H("button",{innerText:c&&!e?"\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u0432 \u0438\u0433\u0440\u0443": -"\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f",onclick:()=>{e?l(!1):c?(c.j=0,c.A=!1,Ec(c)):d(2)}})]),!e&&H("div[className=settings]",null,[H("button[innerText=\u041f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u044c...]",{onclick:()=>{l(!0)}}),H("label[innerText=\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e:]",null,[H("input[type=range][min=1][max=100][step=1]",{value:101-b.Y,onchange:k=>a({Y:101-Number(k.target.value)})})]),H("label[innerText=\u0420\u0430\u0434\u0438\u0443\u0441 \u0437\u0440\u0435\u043d\u0438\u044f:]", +function aa(a){function b(d){return a.next(d)}function c(d){return a.throw(d)}return new Promise(function(d,e){function l(m){m.done?d(m.value):Promise.resolve(m.value).then(b,c).then(l,e)}l(a.next())})} +const n=lui,ba=n.defer,fa=n.defer_end,ha=n.hook_async,A=n.hook_dom,D=n.hook_effect,ia=n.hook_memo,ja=n.hook_model,na=n.hook_rerender,oa=n.hook_state,F=n.hook_static,pa=n.init,G=n.node,H=n.node_dom,qa=n.node_map,ua=n.now,va=window,wa=document,ya=navigator,K=Math,za=K.PI,Aa=.5*za,Ea=180/za,Fa=K.random,L=K.floor,Ga=K.ceil,Ha=K.round,M=K.min,Ia=K.max,Ja=K.cos,Ka=K.sin,La=K.sqrt,Ma=K.log2,Na=String.fromCharCode,Oa=BroadcastChannel,Pa=Date,Xa=JSON,Ya=Promise,Za=Xa.stringify,$a=Xa.parse,N=localStorage,ab= +N.setItem.bind(N),bb=N.removeItem.bind(N),cb=va.indexedDB,db=fetch,eb=Uint8Array,fb=Uint32Array,gb=Set,kb=Map,P=Number,lb=Object,mb=lb.keys,nb=lb.entries,ob=setTimeout,pb=setInterval,qb=clearTimeout,rb=clearInterval,sb=addEventListener,tb=removeEventListener,ub=ya.userAgent.includes("WebKit"),vb=a=>a*a,wb=()=>!1,xb=(a,b)=>{const c=new Pa;a=new Pa(a);var d=c-a;if(59E3>d)return Ha(d/1E3)+"s";if(3E6>d)return Ha(d/6E4)+"m";d=a.getFullYear();const e=a.getMonth(),l=a.getDate();let m="";d"minicraft.world."+b.id));for(const b of mb(N))b.startsWith("minicraft.world.")&&!a.has(b.split(":")[0])&&bb(b)} +const Db={init:()=>{let a=!1;var b={ka:!1,xa:1,ua:3,Y:4,T:1,Da:120,ga:64,Ea:0,worlds:[]};if(Q){let c=Q.pixel_grouping;null!=c&&(b.xa=c);null!=(c=Q.mouse_sensitivity)&&(b.ua=c);b.Y=Q.resolution_scaling;null!=(c=Q.textures)?b.T=c:b.T=Q.flag_textures?1:0;b.Da=Q.view_angle;b.ga=Q.view_distance;null!=(c=Q.world_last)&&(b.Ea=c);null!=(c=Q.worlds)?b.worlds=c:N.getItem("minicraft.world.0:meta")&&(b.worlds[0]={id:0,label:(prompt("\u0411\u044b\u043b \u043d\u0430\u0439\u0434\u0435\u043d \u0431\u0435\u0437 \u0438\u043c\u0435\u043d\u0438 \u043b\u043e\u043a\u0430\u043b\u043d\u044b\u0439 \u043c\u0438\u0440. \u041a\u0430\u043a \u0435\u0433\u043e \u043d\u0430\u0437\u0430\u0432\u0451\u0448\u044c? ", +"")||"\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u043c\u0438\u0440").substring(0,16),mod_l:Pa.now(),mod_r:0},a=!0);Q=null}b={account:{label:"",rank:0},config:b,Ya:b};return a?(b.Ya=null,Db.Xa(b)):b},Xa:a=>{const b=a.config;if(b===a.Ya)return a;ab("minicraft.config",Za({version:"0.11.4",pixel_grouping:b.xa,mouse_sensitivity:b.ua,resolution_scaling:b.Y,textures:b.T,view_angle:b.Da,view_distance:b.ga,world_last:b.Ea,worlds:b.worlds}));return Object.assign({},a,{Ya:b})},xb:(a, +b)=>Object.assign({},a,{account:b}),Gb:(a,b)=>Db.ia(a,b(a.config)),ia:(a,b)=>Object.assign({},a,{config:Object.assign({},a.config,b)}),Ja:(a,b)=>a.config.ka===b?a:Db.ia(a,{ka:b}),gb:(a,b)=>Object.assign({},a,{config:Object.assign({},a.config,{worlds:[...a.config.worlds,b]})}),hb:(a,b)=>Object.assign({},a,{config:Object.assign({},a.config,{worlds:a.config.worlds.filter(c=>c.id!==b)})}),U:(a,b,c)=>Object.assign({},a,{config:Object.assign({},a.config,{worlds:a.config.worlds.map(d=>d.id===b?Object.assign({}, +d,c):d)})})},Eb="air stone grass dirt cobble planks bedrock log leaves bricks wool sand gravel glass bookshelf obsidian stone_bricks sandstone lapis_block iron_block gold_block diamond_block emerald_block redstone_block quartz_block".split(" "),Fb="\u0412\u043e\u0437\u0434\u0443\u0445;\u041a\u0430\u043c\u0435\u043d\u044c;\u0411\u043b\u043e\u043a \u0442\u0440\u0430\u0432\u044b;\u0417\u0435\u043c\u043b\u044f;\u0411\u0443\u043b\u044b\u0436\u043d\u0438\u043a;\u0414\u043e\u0441\u043a\u0430;\u0411\u0435\u0434\u0440\u043e\u043a;\u0411\u0440\u0435\u0432\u043d\u043e;\u041b\u0438\u0441\u0442\u044c\u044f;\u041a\u0438\u0440\u043f\u0438\u0447\u0438;\u0428\u0435\u0440\u0441\u0442;\u041f\u0435\u0441\u043e\u043a;\u0413\u0440\u0430\u0432\u0438\u0439;\u0421\u0442\u0435\u043a\u043b\u043e;\u041a\u043d\u0438\u0436\u043d\u044f \u043f\u043e\u043b\u043a\u0430;\u041e\u0431\u0441\u0438\u0434\u0438\u0430\u043d;\u041a\u0430\u043c\u0435\u043d\u044b\u0435 \u043a\u0438\u0440\u043f\u0438\u0447\u0438;\u041f\u0435\u0449\u044f\u043d\u0438\u043a;\u0411\u043b\u043e\u043a \u043b\u0430\u0437\u0443\u0440\u0438\u0442\u0430;\u0411\u043b\u043e\u043a \u0436\u0435\u043b\u0435\u0437\u0430;\u0411\u043b\u043e\u043a \u0437\u043e\u043b\u043e\u0442\u0430;\u0411\u043b\u043e\u043a \u0430\u043b\u043c\u0430\u0437\u0430;\u0411\u043b\u043e\u043a \u0438\u0437\u0443\u043c\u0440\u0443\u0434\u0430;\u0411\u043b\u043e\u043a \u0440\u0435\u0434\u0441\u0442\u043e\u0443\u043d\u0430;\u0411\u043b\u043e\u043a \u043a\u0432\u0430\u0440\u0446\u0430".split(";"), +Gb=[0,8487297,4305266,4349313,8092539,5342114,7039851,3561583,4172910,6384533,15526888,10671324,8092798,16447200,4151672,1970708,8092539,9686227,9126695,15198183,5567485,14541182,7920469,662956,14936813],Hb=(a,b=1,c=null)=>({amount:b,data:c,id:a}),Ib=(a,b,c=a.c.amount)=>{if(b.c)a.c.id===b.c.id?(c=M(c,b.W-b.c.amount),a.c.amount-=c,b.c.amount+=c,0>=a.c.amount&&(a.c=null)):!(a.c.amount<=c&&a.c.amount<=b.W&&b.c.amount<=a.W)||a.filter&&!a.filter(b.c.id)||b.filter&&!b.filter(a.c.id)||([b.c,a.c]=[a.c,b.c]); +else if(!b.filter||b.filter(a.c.id))a.c.amount<=c&&a.c.amount<=b.W?[b.c,a.c]=[a.c,b.c]:(c=M(c,b.W),a.c.amount-=c,b.c=Hb(a.c.id,c),0>=a.c.amount&&(a.c=null))},Jb=(a,b)=>{for(const c of a)if(c.c&&c.c.id===b.id){const d=M(b.amount,c.W-c.c.amount);c.c.amount+=d;if(0>=(b.amount-=d))return null}for(const c of a)if(!c.c&&(!c.filter||c.filter(b.id)))if(a=M(b.amount,c.W),a<=b.amount){if(c.c=Hb(b.id,a),0>=(b.amount-=a))return null}else return c.c=b,null;return b},Kb=(a,b)=>({Ua:0,ib:0,Va:0,O:0,ha:0,pa:0,aa:0, +V:-1,ba:0,qa:null,ra:null,l:1,rb:20,B:Array(36).fill(null).map(()=>({c:null,filter:null,W:64})),Oa:0,name:b.label||"\u0418\u0433\u0440\u043e\u043a",G:a.Aa,H:a.Ba,J:a.Ca,vb:0,wb:0,L:0,ma:0,da:0,ea:0,fa:0}),Lb=(a,b,c)=>{a.O=(a.O+b+100*za)%(2*za);a.ha=Ia(-Aa,M(Aa,a.ha+c))},Mb=a=>{a+=32;33a?a++:38a?a+=2:43a?a+=3:126a?a+=37:55295a-(63743a?35:40a?34:34a?33:32),Pb=()=>{var a=Ob;const b=a.length,c=new kb, +d=u=>{h=h<<1|u&1;15===++p&&(w+=Mb(h),h=p=0)},e=()=>{for(let u=0;u{d(u);d(u>>1);d(u>>2);d(u>>3);d(u>>4);d(u>>5);d(u>>6);d(u>>7)},m=()=>{0===--z&&(z=1<{if(C)C=!1;else{let u=r.id;for(let E=0;E>E)}};let f=a[0],w="",h=0,p=2,v=2,z=2,g=2,r={id:g++,Ha:new kb},C=!0;l(f);c.set(f,r);for(let u=1;u{var b=Ob;if(!a)return null;const c=a.length,d=()=>{p+=(g>>--r&1)<v;)d();f=[p];e[2]=f;for(b[h++]=p;z<=c;){w=k;for(p=v=0;vv;)d();e[m]=[p];p=m++;0===--l&&(l=1<{d=d.target.result.createObjectStore("chunks",{keyPath:["world","coords"]});for(const e of mb(N))if(e.startsWith("minicraft.world.")){const [l,m]=e.substr(16).split(":");"meta"!==m&&(d.add({world:P(l),coords:m,data:N.getItem(e)}),bb(e))}};c.onsuccess=d=>{T=d.target.result}} +const Rb=(a,b)=>aa(function*(){if(!T)return N.getItem(`minicraft.world.${a}:${b}`);const c=T.transaction("chunks","readonly").objectStore("chunks").get([a,b]);return new Ya(d=>{c.onsuccess=()=>{let e;d(null==(e=c.result)?void 0:e.data)}})}()),Sb=(a,b)=>{var c=Pb();return aa(function*(){if(!T)return ab(`minicraft.world.${a}:${b}`,c);const d=T.transaction("chunks","readwrite").objectStore("chunks").put({world:a,coords:b,data:c});return new Ya((e,l)=>{d.onsuccess=()=>{e()};d.onerror=()=>{l(d.error)}})}())}, +Tb=(a,b)=>aa(function*(){if(!T)return bb(`minicraft.world.${a}:${b}`);const c=T.transaction("chunks","readwrite").objectStore("chunks").delete([a,b]);return new Ya(d=>{c.onsuccess=()=>{d()}})}()),Ub=a=>aa(function*(){const b=`minicraft.world.${a}:`;if(!T){const e={},l=b.length;for(const m of mb(N))m.startsWith(b)&&(e[m.substr(l)]=N.getItem(m));return e}const c=T.transaction("chunks","readonly").objectStore("chunks").openCursor(),d={meta:N.getItem(b+"meta")};return new Ya(e=>{c.onsuccess=()=>{const l= +c.result;l?(l.value.world===a&&(d[l.value.coords]=l.value.data),l.continue()):e(d)}})}()),Vb=(a,b)=>aa(function*(){if(T){var c=T.transaction("chunks","readwrite"),d=c.objectStore("chunks");for(const [e,l]of nb(b))"meta"!==e?d.put({world:a,coords:e,data:l}):ab(`minicraft.world.${a}:meta`,l);return new Ya((e,l)=>{c.oncomplete=()=>{e()};c.onerror=()=>{l(c.error)}})}for(const [e,l]of nb(b))ab(`minicraft.world.${a}:${e}`,l);ab("__margin",Array(257).join("x"));bb("__margin")}()),Wb=a=>{if(T){bb(`minicraft.world.${a}:meta`); +var b=T.transaction("chunks","readwrite").objectStore("chunks").openCursor();b.onsuccess=()=>{const c=b.result;c&&(c.value.world===a&&c.delete(),c.continue())}}else{const c=`minicraft.world.${a}:`;for(const d of mb(N))d.startsWith(c)&&bb(d)}},Xb=(a,b)=>{if(T){ab(`minicraft.world.${b}:meta`,N.getItem(`minicraft.world.${a}:meta`));bb(`minicraft.world.${a}:meta`);var c=T.transaction("chunks","readwrite").objectStore("chunks"),d=c.openCursor();d.onsuccess=()=>{const e=d.result;e&&(e.value.world===a&& +(e.value.world=b,c.put(e.value)),e.continue())}}else{const e=`minicraft.world.${a}:`,l=e.length,m=`minicraft.world.${b}:`;for(const k of mb(N))if(k.startsWith(e)){const f=N.getItem(k);bb(k);ab(m+k.substr(l),f)}}},Yb=new fb(1024),Ob=new eb(Yb.buffer),Zb=new kb,$b=(a,b,c,d)=>0>c||63{const e=a.K;a.Z[(b<>4<>4)<<2|c>>4].ja=!0},bc=(a,b,c,d,e)=>{const l=a.K,m=(b<>4<>4)<<2|c>> +4].ja=!0},ec=(a,b,c)=>{const d=Ia(M(b.H,63),0)>>4,e=L(b.G)>>4;b=L(b.J)>>4;if(c||a.Ma!==d||a.va+a.La!==e||a.wa+a.Na!==b)c=1<{const b=a.La,c=a.Ma,d=a.Na,e=a.K,l=`${e} ${b} ${d} ${c}`;let m=Zb.get(l);if(null==m){const k=1<{let z=vb(w-b),g=vb(p-d),r=vb(w-b-k),C=0,u=0;rw<=f).sort((w,h)=>w.Za-h.Za))}a.Ia=m;a.sa=0},gc=(a,b)=>{if(!a.pb){for(var c=b.B.map(({c:d})=>d&&[d.id,d.amount,d.data]);0d.ja).map(d=>fc(a,d)))}},ic=(a,b)=>{const c=N.getItem(`minicraft.world.${a.id}:meta`);if(c){const {p:d,s:e,t:l,v:m}=$a(c);null!=m&&(d.i.forEach((k, +f)=>{k&&(b.B[f].c=Hb(k[0],k[1],k[2]))}),b.rb=d.h,b.l=d.m,b.G=d.p[0],b.H=d.p[1],b.J=d.p[2],b.O=d.p[3],b.ha=d.p[4],a.Aa=e[0],a.Ba=e[1],a.Ca=e[2],null!=l&&hc(a,l))}},hc=(a,b)=>{a.time=b%24E3;a.eb=(b+6E3)/24E3%1},uc=a=>aa(function*(){const b=a.$[a.Ia[a.sa=0].lb];var c=b.y;yield Tb(a.id,`${b.Fa}/${b.Ta}`+(0{const c=a.Ga;var d=a.K;const e=b.y,l=(256<m;++m){for(d=0;16>d;++d)Yb[++k]=c[f],Yb[++k]= +c[++f],Yb[++k]=c[++f],Yb[++k]=c[++f],f+=13;f+=l}b.ja=!1;return Sb(a.id,`${b.Fa}/${b.Ta}`+(0aa(function*(){const c=a.$,d=a.Ia,e=a.va,l=a.wa,m=d.length;for(;a.saC;++C){for(w=0;16>w;++w)k[h]=Yb[++u],k[++h]=Yb[++u],k[++h]=Yb[++u],k[++h]=Yb[++u],h+=13;h+=z}else for(p=0;16>p;++p){for(f=0;16>f;++f)k[h]=0{if(a){const b=wc=new Image;b.onload=()=>{if(wc===b){var c=wa.createElement("canvas");c.width=16;c.height=416;c=c.getContext("2d");c.scale(1,-1);for(let d=0;26>d;++d)c.drawImage(b,0,d<<4,16,16,0,-(d<<4)-16,16,16);vc=new fb(c.getImageData(0,0,16,416).data.buffer);for(const d of xc)d.P=!0;wc=null}};b.src=`${"/static/minicraft/"}textures/${a}.png`}else vc=null},Ac=(a,b)=>{const c={yb:b,Wa:b.getContext("2d",{alpha:!1,desynchronized:!0}),jb:null,kb:null,ob:"",P:!1,qb:0,$a:0,zb:pb(()=> +(c.qb=c.$a,c.$a=0),1E3),o:a};xc.add(c);zc(c);return c},zc=a=>{const b=a.yb,c=a.o;a.kb=new fb((a.jb=a.Wa.createImageData(b.width=c.ya,b.height=c.za)).data.buffer);const d=c.ya*c.config.Y/c.la,e=c.za*c.config.Y/c.la;b.style.width=d+"px";b.style.height=e+"px";b.style.left=Ha((c.Pa-d)/2)+"px";b.style.top=Ha((c.Qa-e)/2)+"px";a.Wa.fillStyle="rgba(255,255,255,.5)"};let Bc=0; +const Ec=(a,b,c,d)=>{const e={Z:null,Ga:null,busy:!1,$:null,Ia:null,sa:0,pb:!1,La:0,Ma:0,Na:0,id:c.Ea,va:0,wa:0,K:0,Aa:.5,Ba:8.5,Ca:.5,time:0,eb:0},l=Kb(e,d);ic(e,l);const m={a,config:c,mb:0,nb:0,Ka:!1,ta:!0,A:!0,Ab:b,ca:0,X:new gb,ab:"",j:0,N:[],g:l,bb:null,u:null,la:1,Pa:1,Qa:1,ya:0,za:0,Ra:0,ub:0,Sa:0,Cb:pb(()=>{var k;(k=m.A)||(hc(e,e.time+1),ec(e,l,!1),k=void 0);return k},50),world:e};Cc(m,null);Dc(m);return m},Fc=a=>{a.world.pb||(gc(a.world,a.g),a.a.U(a.world.id,{mod_l:Pa.now()}))},Dc=a=>{aa(function*(){if(!a.config.ka)try{yield a.Ab.requestPointerLock()}catch(b){}}())}, +Gc=(a,b)=>a===b?0:.1-.2*a,Hc=a=>{a.g.Ua=Gc((a=a.X).has(-12)||a.has(65),a.has(-13)||a.has(68))},Ic=a=>{a.g.ib=Gc((a=a.X).has(-15)||a.has(16),a.has(-14)||a.has(32))},Jc=a=>{a.g.Va=Gc((a=a.X).has(-11)||a.has(83),a.has(-10)||a.has(87))},Kc=a=>{a.g.vb=Gc(a.X.has(-18),a.X.has(-19))},Lc=a=>{a.g.wb=Gc(a.X.has(-17),a.X.has(-16))},Nc=(a,b,c)=>{if(!a.world)return!1;const d=a.X;var e=a.g;if(c){if(d.has(b))return!1;d.add(b);var l=e.aa,m=e.V;c=e.ba;switch(b){case -18:case -19:Kc(a);break;case -17:case -16:Lc(a); +break;case -1:2!==e.l&&0<=m&&(0===e.Oa?0===e.l&&(b=$b(a.world,l,m,c),2===b?b=3:1===b&&(b=4),6===b||8!==b&&13!==b&&null!==Jb(e.B,Hb(b,1)))||(ac(a.world,l,m,c),e.V=-1):Mc(a,[l,m,c],!1));break;case -2:case 71:if(0<=m){const k=$b(a.world,l,m,c);c=e.B.slice(0,9);m=c.findIndex(f=>null!==f.c&&f.c.id===k);0<=m?e.L=m:1===e.l&&(c[e.L].c&&(c=c.findIndex(f=>null===f.c),0<=c&&(e.L=c)),e.B[e.L].c=Hb(k));e.ma=a.ca}break;case -3:if(2!==e.l&&0<=m)if(0===e.Oa){if(b=e.B[e.L],b.c){switch(e.pa){case 0:--l;break;case 1:++l; +break;case 2:--m;break;case 3:++m;break;case 4:--c;break;case 5:++c}0<=m&&64>m&&bc(a.world,l&(1<<4+a.world.K)-1,m,c&(1<<4+a.world.K)-1,b.c.id)&&1!==e.l&&0>=--b.c.amount&&(b.c=null)}}else Mc(a,[l,m,c],!0);break;case -4:e.L=(e.L+9-1)%9;e.ma=a.ca;break;case -5:e.L=(e.L+1)%9;e.ma=a.ca;break;case 27:0===a.j&&(a.A=!0,a.j=1);break;case -15:case -14:case 16:case 32:Ic(a);break;case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:e.L=b-49;e.ma=a.ca;break;case -12:case -13:case 65:case 68:Hc(a); +break;case 69:if(0===a.j){a.j=3;for(const k of d)Nc(a,k,!1)}break;case 80:a.world&&(a.A=!0);break;case 81:e=e.B[e.L];if(d.has(17)||e.c&&0>=--e.c.amount)e.c=null;break;case -11:case -10:case 83:case 87:Jc(a);break;case 84:if(0===a.j){a.j=2;for(const k of d)Nc(a,k,!1)}break;case 112:a.ta=!a.ta;break;case 114:a.Ka=!a.Ka;case 116:case 122:case 123:break;default:return!1}}else{if(!d.delete(b))return!1;switch(b){case -15:case -14:case 16:case 32:Ic(a);break;case -12:case -13:case 65:case 68:Hc(a);break; +case -11:case -10:case 83:case 87:Jc(a);break;case -18:case -19:Kc(a);break;case -17:case -16:Lc(a)}}a.ab=[...d].join();return!0},Oc=(a,b)=>(b=b.startsWith("~")?a+P(b.substr(1)):P(b),isNaN(b)?a:b),Qc=(a,b)=>{var c=a.g,d=a.world;if(b)if("/"===b.charAt(0)){b=b.substr(1).split(" ");const e=b.shift();switch(e){case "clear":a.N=[];break;case "clearinv":for(const l of c.B)l.c=null;Y(a,"\u0418\u043d\u0432\u0435\u043d\u0442\u0430\u0440 \u043f\u0443\u0441\u0442",!0);break;case "gamemode":case "gm":b=P(b[0]); +!isNaN(b)&&0<=b&&3>b&&0===b%1?(c.l=b,Y(a,"\u0418\u0433\u0440\u043e\u0432\u043e\u0439 \u0440\u0435\u0436\u0438\u043c \u0441\u043c\u0435\u043d\u0451\u043d \u043d\u0430: "+b,!0)):Y(a,"\u0418\u0433\u0440\u043e\u0432\u043e\u0439 \u0440\u0435\u0436\u0438\u043c \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442 0..2!");break;case "give":if(0===b.length){Y(a,"/give [\u0427\u0438\u0441\u043b\u043e]\n"+Eb.join(" "));break}d=Eb.indexOf((b[0]||"").toLowerCase());d=0<=d?d:P(b[0]);b=P(b[1]||1);!isNaN(d)&& +0d&&0===d%1?!isNaN(b)&&0{a.u.P=!0;Y(a,"\u0427\u0430\u043d\u043a\u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f.",!0)});break;case "me":Y(a,c.name+" "+b.join(" "),!0);break;case "save":Fc(a);Y(a,"\u0418\u0433\u0440\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0430.",!0);break;case "spawn":d.Aa=c.G;d.Ba=c.H;d.Ca=c.J;Y(a,"\u041d\u0430\u0447\u0430\u043b\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0430", +!0);break;case "teleport":case "tp":0===b.length?(c.G=d.Aa,c.H=d.Ba,c.J=d.Ca,a.u.P=!0,Y(a,"\u041f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u0441\u044f \u043a \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u043e\u0439 \u0442\u043e\u0447\u043a\u0438.",!0)):3===b.length?(Y(a,"\u041f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u0441\u044f \u043a"+` ${c.G=Oc(c.G,b[0])} ${c.H=Oc(c.H,b[1])} ${c.J=Oc(c.J,b[2])}`,!0),a.u.P=!0):Y(a,"\u041d\u0435\u043f\u043e\u0432\u0435\u0437\u043b\u043e!"); +c.da=0;c.ea=0;c.fa=0;break;case "time":c=b[1];if(!c){Y(a,"\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442!");break}if("day"===c)c=1E3;else if("night"===c)c=13E3;else if(isNaN(c=L(P(c))))break;switch(b[0]){case "add":c+=d.time;case "set":hc(d,c);Y(a,"\u041d\u043e\u0432\u043e\u0435 \u0432\u0440\u0435\u043c\u044f: "+d.time,!0);break;default:Y(a,"\u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u043d\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430: time "+ +b[0])}break;case "version":Y(a,"minicraft 0.11.4");break;case "/exit":c.Oa=0;Y(a,"\u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0440\u0435\u0436\u0438\u043c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0439 \u043c\u044b\u0448\u043a\u0438.",!0);break;case "/expand":a.g.qa&&a.g.ra?d=!0:(Y(a,"\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u043d\u0430\u0447\u044f\u043b\u043e!"),d=!1);d&&("vert"===b[0]?(c.qa[1]=0,c.ra[1]=63,Y(a,"\u0412\u044b\u0431\u043e\u0440\u044c \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d.", +!0)):Y(a,'\u0422\u043e\u043b\u043a\u043e "vert" \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f!'));break;case "/pos1":case "/pos2":Mc(a,[L(c.G),L(c.H),L(c.J)],"/pos2"===e);break;case "/regen":uc(d).then(()=>{a.u.P=!0;Y(a,"\u0427\u0430\u043d\u043a\u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f ",!0)});break;case "/show":Y(a,`${"\u041f\u0435\u0440\u0432\u044b\u0439"}: ${c.qa?c.qa.join(" "):"\u043d\u0438\u0447\u0435\u0433\u043e"}, ${"\u0412\u0442\u043e\u0440\u043e\u0439"}: ${c.ra? +c.ra.join(" "):"\u043d\u0438\u0447\u0435\u0433\u043e"}`);break;case "/wand":c.Oa=1;Y(a,"\u0412\u044b\u0431\u043e\u0440\u044c \u0441 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0439 \u043c\u044b\u0448\u043a\u0438.",!0);break;default:Y(a,"\u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u043d\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430: "+e)}}else{const e=Y(a,`<${c.name}> `+b);Cc(a,b).then(l=>{l&&Pc(a,e)})}},Y=(a,b,c=!1)=>{const d=++Bc;(a.N=a.N.slice(-49)).push({id:d, +tb:c,time:ua(),value:b});return d},Pc=(a,b)=>{const c=a.N.findIndex(d=>d.id===b);0<=c&&a.N.splice(c,1)},Mc=(a,b,c)=>{c?a.g.ra=b:a.g.qa=b;Y(a,`${c?"\u0412\u0442\u043e\u0440\u0430\u044f \u0432\u044b\u0431\u0440\u0430\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430":"\u041f\u0435\u0440\u0432\u0430\u044f \u0432\u044b\u0431\u0440\u0430\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430"}: ${b.join(" ")}`,!0)},Cc=(a,b)=>(qb(a.bb),(b?db("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"}, +body:Za({msg:b})}):db("/api/chat")).then(c=>{if(c.ok)return c.text()}).then(c=>{if(c){c=c.split("\n").filter(Boolean);for(const d of c)d.startsWith("<")&&Y(a,d);return 0!1).then(c=>{a.bb=ob(()=>{Cc(a,null)},5E3);return c})),Rc=({id:a,M:b})=>(A("div[className=bitmap]",{S:{backgroundImage:`url(${"/static/minicraft/"}textures/${b}.png)`,backgroundPositionY:`-${2*(a-1)}rem`}}),null); +function Sc({amount:a,l:b,id:c,M:d}){A("div[className=stack]",{title:Fb[c]+(1===b?` (${Eb[c]}, ${c})`:"")});return[G(Rc,{id:c,M:d}),1!==a&&H("div[className=amount]",{innerText:a})]} +function Tc({g:a,M:b,na:c}){A("div[className=bar]",{ontouchstart:F(e=>{a.L=Number(e.target.closest("[data-slot]").dataset.slot);a.ma=e.timeStamp}),S:{opacity:Ia(.5,M(1,1-5E-4*(c-a.ma-5E3)))}});const d=a.l;return a.B.slice(0,9).map(({c:e},l)=>H("div",{D:{slot:l},F:{active:l===a.L}},[e&&G(Sc,{amount:e.amount,data:e.data,l:d,id:e.id,M:b})]))} +function Uc({Bb:a,M:b}){A("div[className=grid]",{onclick:({target:c})=>{(c=c.closest("[data-id]"))&&Ib({c:Hb(P(c.dataset.id)),filter:null,W:64},a)}});return Eb.map((c,d)=>0({c:null,filter:null,W:64})),d=a.g.l;A("div[className=menu overlay inventory]",ia(()=>({onclick:({target:e})=>{if("menu overlay inventory"===e.className)c.c?c.c=null:(a.j=0,a.A=!1,Dc(a));else if(e=e.closest("[data-slot]"))e=a.g.B[P(e.dataset.slot)],c.c?Ib(c,e):e.c&&Ib(e,c)},oncontextmenu:({target:e})=>{if("menu overlay inventory"===e.className)c.c?0>=--c.c.amount&&(c.c=null):(a.j=0,a.A=!1,Dc(a));else if(e=e.closest("[data-slot]"))e=a.g.B[P(e.dataset.slot)],c.c? +Ib(c,e,1):e.c&&Ib(e,c,Ga(e.c.amount/2))}})));return[H("div[className=window]",null,[H("h2[innerText=\u0418\u043d\u0432\u0435\u043d\u0442\u0430\u0440]"),1===d&&G(Uc,{Bb:c,M:b}),H("div[className=grid]",null,a.g.B.map(({c:e},l)=>H("div",{D:{slot:l},F:{first:9>l}},[e&&G(Sc,{amount:e.amount,data:e.data,l:d,id:e.id,M:b})])))]),c.c&&H("div[className=hand]",{S:{transform:`translate(${a.mb}px, ${a.nb}px)`}},[G(Sc,{amount:c.c.amount,data:c.c.data,l:0,id:c.c.id,M:b})])]} +const Wc=({I:{tb:a,time:b,value:c},na:d})=>(A(a?"div[className=minor]":"div",{innerText:c,S:{opacity:M(1,1-.001*(d-b-4500))}}),null);function Xc({N:a,na:b}){A("div[className=messages]");const c=b-5E3;return[qa(Wc,a.slice(-10).filter(d=>d.time>c),{na:b})]}function Yc({I:a,ia:b,current:c}){A("button",{disabled:a.id===c,innerText:`${a.label} (${a.owner})`,onclick:()=>{b({T:a.id})}});return null} +function Zc({a:{ia:a},config:b,o:c,oa:d}){c&&D(()=>Fc(c));const [e,l]=oa(!1),m=ha(()=>e?db("/static/minicraft/textures.json").then(k=>k.ok?k.json():null).catch(()=>null):Ya.resolve(null),[e],null);A("div[className=menu overlay]");return[H("h1",{innerText:e?"\u041f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u044c":"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438"}),H("center",null,[H("button",{innerText:c&&!e?"\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u0432 \u0438\u0433\u0440\u0443": +"\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f",onclick:()=>{e?l(!1):c?(c.j=0,c.A=!1,Dc(c)):d(2)}})]),!e&&H("div[className=settings]",null,[H("button[innerText=\u041f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u044c...]",{onclick:()=>{l(!0)}}),H("label[innerText=\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e:]",null,[H("input[type=range][min=1][max=100][step=1]",{value:101-b.Y,onchange:k=>a({Y:101-Number(k.target.value)})})]),H("label[innerText=\u0420\u0430\u0434\u0438\u0443\u0441 \u0437\u0440\u0435\u043d\u0438\u044f:]", null,[H("input[type=range][min=1][max=180][step=1]",{value:b.Da,onchange:k=>a({Da:Number(k.target.value)})})]),H("label[innerText=\u0414\u0430\u043b\u043d\u043e\u0441\u0442\u044c \u0437\u0440\u0435\u043d\u0438\u044f:]",null,[H("input[type=range][min=1][max=128][step=1]",{value:b.ga,onchange:k=>a({ga:Number(k.target.value)})})]),H("label[innerText=\u0413\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0430 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439:]",null,[H("input[type=range][min=1][max=8][step=1]", {value:b.xa,onchange:k=>a({xa:Number(k.target.value)})})]),H("label[innerText=\u0427\u0443\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0439 \u043c\u044b\u0448\u043a\u0438.:]",null,[H("input[type=range][min=1][max=15][step=1]",{value:b.ua,onchange:k=>a({ua:Number(k.target.value)})})]),H("button[innerText=\u0421\u0430\u0439\u0442 \u043f\u0440\u043e\u0435\u043a\u0442\u0430]",{onclick:()=>{open("//github.com/L3P3/minicraft")}})]), -c&&!e&&H("center",null,[H("button[innerText=\u041f\u043e\u043a\u0438\u043d\u0443\u0442 \u043c\u0438\u0440]",{onclick:()=>{d(2)}})]),e&&H("div[className=settings]",null,[H("button[innerText=\u041e\u0434\u043d\u043e\u0446\u0432\u0435\u0442\u043d\u044b\u0439]",{disabled:0===b.T,onclick:()=>{a({T:0})}}),m&&ra(Zc,m,{ia:a,current:b.T})])]}const ad=({I:{tb:a,value:b}})=>(A(a?"div[className=minor]":"div",{innerText:b}),null); -function bd({o:a,N:b}){const c=F({history:null,input:null});A("div[className=menu overlay terminal]",{onclick:d=>{d.target!==c.input&&c.input.focus()}});D(d=>{d&&pb(()=>c.history.scrollTop=1E9,0)},[b.length&&b[b.length-1].id]);return[F(H("div[className=toolbar]",null,[H("button[innerText=\u274c]",{onclick:()=>{a.j=0;a.A=!1;Ec(a)}})])),H("div[className=history]",{R:F(d=>{c.history=d})},[ra(ad,b)]),F(H("input[enterkeyhint=send][mozactionhint=send][name=message][required]",{onkeydown:d=>{const e=d.keyCode; -d=d.target;13===e?(Rc(a,d.value),d.value=""):27===e&&(a.j=0,a.A=!1,Ec(a))},R:d=>{c.input=d;pb(()=>d.focus(),0)}}))]}const cd=[["pick",-2],["up",-14],["down",-15],["E",69],["T",84],["F1",112],["F3",114],["...",27]],dd=[["up",-10],["down",-11],["left",-12],["right",-13],["center",-1]],ed=[["up",-16],["down",-17],["left",-18],["right",-19],["center",-3]]; -function fd({o:a}){const b=a.X,c=([d,e])=>H("div",{D:{code:e},F:{button:!0,[d]:!0,active:b.has(e)}});A("div[className=touch]",F({ontouchstart:d=>{let {code:e}=d.target.dataset;if(null!=e&&Oc(a,e=P(e),!0)){const l=d.changedTouches[0].identifier,m=k=>{k.changedTouches[0].identifier===l&&(ub("touchend",m),Oc(a,e,!1))};tb("touchend",m)}return!1}}));return[H("div[className=top]",null,cd.map(([d,e])=>H(`div[innerText=${d}]`,{D:{code:e},F:{button:!0,active:b.has(e)}}))),H("div[className=move]",null,dd.map(c)), -H("div[className=move sec]",null,ed.map(c))]} -function gd({account:a,a:b,config:c,frame:d,cb:e,oa:l}){const m=va(),k=xa.pointerLockElement===d,f=ja(()=>e.o=Fc(b,d,c,a));D(()=>{const g=h=>{if(0!==f.j)return!0;xa.pointerLockElement===d?Oc(f,-1-h.button,"mousedown"===h.type):Ec(f);return!1},p=h=>{if(xa.pointerLockElement===d){const q=f.config.ua*Aa/(Ja(f.Pa,f.Qa)*f.la);vb&&(f.ub=h.timeStamp);Mb(f.g,f.Ra=h.movementX*q,f.Sa=-h.movementY*q)}else f.mb=h.clientX,f.nb=h.clientY},v=h=>{b.Ja(!1);if(0===f.j&&!f.A&&5{d.removeEventListener("mousedown",g);d.removeEventListener("mouseup",g);d.removeEventListener("mousemove",p,z);d.removeEventListener("wheel",v,z);rb(f.bb);sb(f.Cb);hc(f.world,f.g);var h=f.u;yc.delete(h);sb(h.zb);e.o=null}});D(()=>{f.config=c;f.u&&(f.u.P=!0);const g=f.world;var p=Ha(Na(f.config.ga/16*2+2));if(g.K!== -p){var v=f.g;g.$&&hc(g,v);const z=1<<(g.K=p),h=g.$=[];for(let q=0;qu;++u)h.push({ja:!1,l:!1,x:q,y:u,z:C,Fa:0,Ta:0});p=z<{f.la=v;f.Pa=Ja(1,g);f.Qa=Ja(1,p);p=f.config.Y;g=Ha(f.Pa*f.la/p);p=Ha(f.Qa*f.la/p);if(g!==f.ya||p!==f.za)f.ya=g,f.za=p,f.u&&(f.u.P=!0,Ac(f.u))},[d.offsetWidth,d.offsetHeight,wa.devicePixelRatio||1,c.Y]);D(g=>{g||f.A||0!==f.j||(f.j= -1,vb&&f.Ra|f.Sa&&f.ub>m-100&&(Mb(f.g,-f.Ra,-f.Sa),f.Ra=f.Sa=0,f.u.P=!0));f.A=!g},[c.ka&&0===f.j||k]);D(g=>k&&g&&xa.exitPointerLock(),[f.A||0!==f.j]);D(()=>{if(f.world){if(f.ca&&!f.A){var g=f.g,p=M(5,.01*(m-f.ca));g.da-=.1*g.da*p;g.ea-=.1*g.ea*p;g.fa-=.1*g.fa*p;g.da+=(Ka(g.O)*g.Ua+La(g.O)*g.Va)*p;g.ea+=g.ib*p;g.fa+=(-La(g.O)*g.Ua+Ka(g.O)*g.Va)*p;Mb(g,g.vb*p*1.5,g.wb*p*1.5);g.G+=g.da*p;g.H+=g.ea*p;g.J+=g.fa*p}if(f.u){g=f.u;++g.$a;p=g.Wa;var v=g.jb;const aa=g.kb,la=g.o,Ra=la.config,zb=la.ta,y=la.g,O= -la.ya,sa=la.za,R=la.world;var z=0;if(!la.A||g.P){g.P=!1;z=Ra.xa;const kd=Ra.ga;var h=y.O,q=y.ha;const ld=y.aa,md=y.ba,Sa=y.l;var C=y.G,u=y.H,E=y.J;const nd=zb?y.V:-1,od=R.Z;var S=R.K;const pd=null!==wc;var t=1/O,r=1/sa;const ma=O>>1,ta=sa>>1,kc=M(O,sa),lc=32T)var I=V;else if(0===V)I=0===ea?0:1===ea?T:ea-1,Ea=1===ea;else if(V=O)break a;Ea=!1}var W=(I-ma)*qd;da=B+mc*W;const rc=Da-h*W,td=pc;W=16757124;let ib=1,sc=kd,jb=0;2=== -Sa&&0Ab;++Ab){const X=(td+Ab)%3;let fa=rc;var J=rd;0===X&&(fa=da,J=r);1===X&&(fa=qc,J=x);var ua=-1/fa;0fa|0),Wa=u+ya*J-(1===X&0>fa|0),Xa=E+ua*J-(2===X&0>fa|0);J*=tc;for(let Bb,Cb,Db,Y;JWa){if(0>ya)break}else if(65600<=Wa){if(0fa|X<<1,oc=J);if(pd){--Y;1===X?6===Y?Y=25:13===Y?Y=4:1===Y&&0>>24)continue;W=uc&16777215}else W=Hb[Y];sc=J;ib=(0===X?.8:2===X?.6:0>16)*ib,255)<<16|M((W>>8&255)*ib,255)<<8|M((W&255)*ib,255);if(da=(Ea=Ea&&(Ua!==ta||Ima+T))&& -na===W){if(6T)break;aa[++I]=na;if(4>T)break;aa[++I]=na;if(5>T)break;aa[++I]=na;if(6>T)break;aa[++I]=na;break}if(Ea||0===I)na=W;aa[Ta+I]=W}Ta+=O}zb&&!lc&&(aa[O*ta+ma]^=16777215)}p.putImageData(v,0,0);zb&&lc&&(v=M(Ha(.05*kc),8),p.fillRect(ma-v,ta-1,v<<1,2),p.fillRect(ma-1,ta-v,2,v-1),p.fillRect(ma-1,ta+1,2,v-1))}g.ob=la.Ka?`minicraft ${"0.11.3"} ${L(g.qb).toString().padStart(2,"\u00a0")} fps, T: ${L(24*R.eb).toString().padStart(2, -"0")}:${L(24*R.eb%1*60).toString().padStart(2,"0")}; ${la.A&&500>m%1E3?"":R.time} -R: ${O}x${sa} (x${Ra.Y}), D: ${Ra.ga}, C: ${R.sa}/${R.Ia.length}, M: ${64*wb(1<<4+R.K)>>10}k +c&&!e&&H("center",null,[H("button[innerText=\u041f\u043e\u043a\u0438\u043d\u0443\u0442 \u043c\u0438\u0440]",{onclick:()=>{d(2)}})]),e&&H("div[className=settings]",null,[H("button[innerText=\u041e\u0434\u043d\u043e\u0446\u0432\u0435\u0442\u043d\u044b\u0439]",{disabled:0===b.T,onclick:()=>{a({T:0})}}),m&&qa(Yc,m,{ia:a,current:b.T})])]}const $c=({I:{tb:a,value:b}})=>(A(a?"div[className=minor]":"div",{innerText:b}),null); +function ad({o:a,N:b}){const c=F({history:null,input:null});A("div[className=menu overlay terminal]",{onclick:d=>{d.target!==c.input&&c.input.focus()}});D(d=>{d&&ob(()=>c.history.scrollTop=1E9,0)},[b.length&&b[b.length-1].id]);return[F(H("div[className=toolbar]",null,[H("button[innerText=\u274c]",{onclick:()=>{a.j=0;a.A=!1;Dc(a)}})])),H("div[className=history]",{R:F(d=>{c.history=d})},[qa($c,b)]),F(H("input[enterkeyhint=send][mozactionhint=send][name=message][required]",{onkeydown:d=>{const e=d.keyCode; +d=d.target;13===e?(Qc(a,d.value),d.value=""):27===e&&(a.j=0,a.A=!1,Dc(a))},R:d=>{c.input=d;ob(()=>d.focus(),0)}}))]}const bd=[["pick",-2],["up",-14],["down",-15],["E",69],["T",84],["F1",112],["F3",114],["...",27]],cd=[["up",-10],["down",-11],["left",-12],["right",-13],["center",-1]],dd=[["up",-16],["down",-17],["left",-18],["right",-19],["center",-3]]; +function ed({o:a}){const b=a.X,c=([d,e])=>H("div",{D:{code:e},F:{button:!0,[d]:!0,active:b.has(e)}});A("div[className=touch]",F({ontouchstart:d=>{let {code:e}=d.target.dataset;if(null!=e&&Nc(a,e=P(e),!0)){const l=d.changedTouches[0].identifier,m=k=>{k.changedTouches[0].identifier===l&&(tb("touchend",m),Nc(a,e,!1))};sb("touchend",m)}return!1}}));return[H("div[className=top]",null,bd.map(([d,e])=>H(`div[innerText=${d}]`,{D:{code:e},F:{button:!0,active:b.has(e)}}))),H("div[className=move]",null,cd.map(c)), +H("div[className=move sec]",null,dd.map(c))]} +function fd({account:a,a:b,config:c,frame:d,cb:e,oa:l}){const m=ua(),k=wa.pointerLockElement===d,f=ia(()=>e.o=Ec(b,d,c,a));D(()=>{const h=g=>{if(0!==f.j)return!0;wa.pointerLockElement===d?Nc(f,-1-g.button,"mousedown"===g.type):Dc(f);return!1},p=g=>{if(wa.pointerLockElement===d){const r=f.config.ua*za/(Ia(f.Pa,f.Qa)*f.la);ub&&(f.ub=g.timeStamp);Lb(f.g,f.Ra=g.movementX*r,f.Sa=-g.movementY*r)}else f.mb=g.clientX,f.nb=g.clientY},v=g=>{b.Ja(!1);if(0===f.j&&!f.A&&5{d.removeEventListener("mousedown",h);d.removeEventListener("mouseup",h);d.removeEventListener("mousemove",p,z);d.removeEventListener("wheel",v,z);qb(f.bb);rb(f.Cb);gc(f.world,f.g);var g=f.u;xc.delete(g);rb(g.zb);e.o=null}});D(()=>{f.config=c;f.u&&(f.u.P=!0);const h=f.world;var p=Ga(Ma(f.config.ga/16*2+2));if(h.K!== +p){var v=f.g;h.$&&gc(h,v);const z=1<<(h.K=p),g=h.$=[];for(let r=0;ru;++u)g.push({ja:!1,l:!1,x:r,y:u,z:C,Fa:0,Ta:0});p=z<{f.la=v;f.Pa=Ia(1,h);f.Qa=Ia(1,p);p=f.config.Y;h=Ga(f.Pa*f.la/p);p=Ga(f.Qa*f.la/p);if(h!==f.ya||p!==f.za)f.ya=h,f.za=p,f.u&&(f.u.P=!0,zc(f.u))},[d.offsetWidth,d.offsetHeight,va.devicePixelRatio||1,c.Y]);D(h=>{h||f.A||0!==f.j||(f.j= +1,ub&&f.Ra|f.Sa&&f.ub>m-100&&(Lb(f.g,-f.Ra,-f.Sa),f.Ra=f.Sa=0,f.u.P=!0));f.A=!h},[c.ka&&0===f.j||k]);D(h=>k&&h&&wa.exitPointerLock(),[f.A||0!==f.j]);D(()=>{if(f.world){if(f.ca&&!f.A){var h=f.g,p=M(5,.01*(m-f.ca));h.da-=.1*h.da*p;h.ea-=.1*h.ea*p;h.fa-=.1*h.fa*p;h.da+=(Ja(h.O)*h.Ua+Ka(h.O)*h.Va)*p;h.ea+=h.ib*p;h.fa+=(-Ka(h.O)*h.Ua+Ja(h.O)*h.Va)*p;Lb(h,h.vb*p*1.5,h.wb*p*1.5);h.G+=h.da*p;h.H+=h.ea*p;h.J+=h.fa*p}if(f.u){h=f.u;++h.$a;p=h.Wa;var v=h.jb;const Z=h.kb,ka=h.o,Qa=ka.config,yb=ka.ta,y=ka.g,O= +ka.ya,ra=ka.za,R=ka.world;var z=0;if(!ka.A||h.P){h.P=!1;var g=Qa.xa;const jd=Qa.ga;var r=y.O,C=y.ha;const kd=y.aa,ld=y.ba,Ra=y.l;var u=y.G;z=y.H;var E=y.J;const md=yb?y.V:-1,nd=R.Z;var S=R.K;const od=null!==vc;var t=1/O,q=1/ra;const la=O>>1,sa=ra>>1,jc=M(O,ra),kc=32z||64<=z?0:$b(R,u&Ba,q&63,E&Ba);if(2!==Ra&&0g)var I=U;else if(0===U)I=0===da?0:1===da?g:da-1,Da=1===da;else if(U=O)break a;Da=!1}var V=(I-la)*pd;ca=B+lc*V;const qc=Ca-r*V,td=oc;V=16757124; +let hb=1,rc=jd,ib=0;2===Ra&&0zb;++zb){const W=(td+zb)%3;let ea=qc;var J=rd;0===W&&(ea=ca,J=x);1===W&&(ea=pc,J=qd);var ta=-1/ea;0ea|0),Va=q+xa*J-(1===W&0>ea|0),Wa=E+ta*J-(2===W&0>ea|0);J*=sc;for(let Ab,Bb,Cb,X;JVa){if(0>xa)break}else if(65600<=Va){if(0ea|W<<1,nc=J);if(od){--X;1===W?6===X?X=25:13===X?X=4:1===X&&0>>24)continue;V=tc&16777215}else V=Gb[X];rc=J;hb=(0===W?.8:2===W?.6:0>16)*hb,255)<<16|M((V>>8&255)*hb,255)<<8|M((V&255)*hb,255);if(ca=(Da=Da&&(Ta!== +sa||Ila+g))&&ma===V){if(6g)break;Z[++I]=ma;if(4>g)break;Z[++I]=ma;if(5>g)break;Z[++I]=ma;if(6>g)break;Z[++I]=ma;break}if(Da||0===I)ma=V;Z[Sa+I]=V}Sa+=O}yb&&!kc&&(Z[O*sa+la]^=16777215)}p.putImageData(v,0,0);yb&&kc&&(v=M(Ga(.05*jc),8),p.fillRect(la-v,sa-1,v<<1,2),p.fillRect(la-1,sa-v,2,v-1),p.fillRect(la-1,sa+1,2,v-1))}h.ob=ka.Ka?`minicraft ${"0.11.4"} ${L(h.qb).toString().padStart(2,"\u00a0")} fps, T: ${L(24*R.eb).toString().padStart(2, +"0")}:${L(24*R.eb%1*60).toString().padStart(2,"0")}; ${ka.A&&500>m%1E3?"":R.time} +R: ${O}x${ra} (x${Qa.Y}), D: ${Qa.ga}, C: ${R.sa}/${R.Ia.length}, M: ${64*vb(1<<4+R.K)>>10}k E: 0/0, M: ${y.l}, I: ${z} Position: ${y.G.toFixed(2)} ${y.H.toFixed(2)} ${y.J.toFixed(2)} -Angle: ${(y.O*Fa).toFixed(2)} ${(y.ha*Fa).toFixed(2)} -Focus: ${0>y.V?"":y.aa+" "+y.V+" "+y.ba+" "+"WEBTSNI"[y.pa]+": "+Fb[ac(R,y.aa,y.V,y.ba)]} -Chunk abs: ${L(y.G)>>4} ${L(y.J)>>4} ${L(y.H)>>4} rel: ${R.La} ${R.Na} ${R.Ma}`:""}}f.ca=m},[m]);oa();const w=F({fb:1});c.T&&(w.fb=c.T);return[H("canvas",{R:F(g=>{f.u=Bc(f,g)})}),f.ta&&2!==f.j&&G(Yc,{N:f.N,na:m}),f.u&&f.Ka&&H("div[className=diagnostics]",{innerText:f.u.ob}),c.ka&&G(fd,{o:f,ab:f.ab}),f.ta&&3!==f.j&&2!==f.g.l&&G(Uc,{g:f.g,M:w.fb,na:m}),3===f.j&&G(Wc,{o:f,M:w.fb,na:m}),1===f.j&&G($c,{a:b,config:c,o:f,oa:l}),2===f.j&&G(bd,{o:f,N:f.N})]} -function hd({I:a,Db:b,Eb:c,Fb:d}){A("div",{F:{selected:a===c},onclick:()=>{d(a.id)}});c=`${a.local?"L":"_"}${a.local&&a.remote?a.local>a.remote?">":a.local{l(m()+1)}),f=F({value:null}),w=ia(()=>ba(function*(){try{const t=!f.value&&!e,r=yield eb(`${"/api/minicraft/"}world?what=${t?"initial":"meta_all"}`);if(!r.ok)throw Error("\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u043e\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.");const x=yield r.json();if(!t)return x;if("0.11.3"!==x.version_latest)return location.reload(!0),null;ca();b.xb(x.account);return x.worlds}catch(t){return alert("\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0441\u043f\u0438\u0441\u043a\u0430 \u043c\u0438\u0440\u043e\u0432: "+ -t.message),[]}}()),[e],null),g=ja(()=>{w&&(f.value=w);const t=[];f.value&&t.push(...f.value.map(r=>({account_name:r.account_name,hash:r.hash,id:r.id,label:r.label,local:0,public:r.public,remote:r.modified,writable:r.writable})));for(const r of c.worlds){const x=t.find(B=>B.id===r.id);if(x){const B=x.local=r.mod_l,Da=x.remote,da=r.mod_r;B>da&&Da>da&&(confirm('\u041a\u043e\u043d\u0444\u043b\u0438\u043a\u0442! \u041c\u0438\u0440. "'+r.label+'" \u0431\u044b\u043b\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043e \u043a\u0430\u043a \u0437\u0434\u0435\u0441\u044c, \u0442\u0430\u043a \u0438 \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u043c\u0435\u0441\u0442\u0430\u0445.\n\u041e\u041a: \u043f\u0440\u0438\u043d\u044f\u0442\u044c \u0442\u043e, \u0447\u0442\u043e \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 ('+ -yb(Da,!1)+") | \u041e\u0442\u043c\u0435\u043d\u0438\u0442: \u0412\u043e\u0442 \u044d\u0442\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c ("+yb(B,!1)+")")?b.U(r.id,{mod_l:x.local=da}):b.U(r.id,{mod_r:x.remote=da}))}else 1Ja(x.local,x.remote)-Ja(r.local,r.remote))},[w,c.worlds]),[p,v,z]=pa(c.Ea),h=ja(()=>g.find(t=>t.id===p)||null,[p,g]),q=ja(()=>{let t,r;return null!=(r=null==g?void 0:null==(t=g.find(x=>0{if(null!==q){var t=!1,r=g.find(x=>x.id===q);if(r.local -x.json()).then(x=>{if(!t)return Wb(q,x).then(()=>{b.U(q,{mod_l:r.remote,mod_r:r.remote})})}).catch(x=>{t||("QuotaExceededError"===x.name?(alert("\u041d\u0435\u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u043f\u0430\u043c\u044f\u0442\u0438!"),b.hb(q),Xb(q)):alert("\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u043c\u0438\u0440\u0430: "+x.message))});else{if(!r.writable){b.U(q,{mod_l:c.worlds.find(B=>B.id===q).mod_r});return}let x=q;(1===r.remote? -eb("/api/minicraft/world",Object.assign({},id,{body:$a({what:"meta",label:r.label})})).then(B=>{if(!B.ok)throw Error(403===B.status?"\u041d\u0435\u0442\u0443 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u0417\u0430\u0440\u0435\u0433\u0435\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d?":"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u043e\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.");return B.json()}).then(B=>{x=B.id}):Za.resolve()).then(()=>{if(t)throw null;return Vb(q)}).then(B=> -{if(t)throw null;return eb("/api/minicraft/world",Object.assign({},id,{body:$a({what:"data",world:x,data:B})}))}).then(B=>{if(!B.ok)throw Error(403===B.status?"\u041d\u0435\u0442\u0443 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u0417\u0430\u0440\u0435\u0433\u0435\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d?":"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u043e\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.");return B.json()}).then(B=>{ca();x===q?b.U(q,{mod_l:B.modified, -mod_r:B.modified}):(Yb(q,x),b.hb(q),b.gb({id:x,label:r.label,mod_l:B.modified,mod_r:B.modified}),t||z()!==q||v(x));t||k();ha()}).catch(B=>{t||(alert("\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0441\u043a\u0435 \u043c\u0438\u0440\u0430: "+B.message),ca(),b.U(q,{mod_r:0}),ha())})}return()=>{t=!0}}},[q]);const [C,u]=pa(!1);h||u(!1);const [E,S]=pa(!1);return[H("h1[innerText=\u041c\u0438\u0440\u044b]"),H("button[innerText=\u041e\u0431\u043d\u043e\u0432\u0438\u0442][style=position:absolute;left:0;top:0;height:2rem][title=\u041e\u0431\u043d\u043e\u0432\u0438\u0442 \u0441\u043f\u0438\u0441\u043e\u043a]", -{disabled:!w,onclick:k}),H("button[style=position:absolute;right:0;top:0;height:2rem]",{disabled:0{location.href="/account?redir=minicraft"}}),H("div[className=worlds]",null,[ra(hd,g,{Hb:e,Db:q,Eb:h,Fb:v})]),H("center",null,[H("button[innerText=\u041e\u0442\u043a\u0440\u044b\u0442]",{disabled:!h||!h.local||h.remote>h.local,onclick:()=>{ca();b.ia({Ea:h.id}); -d(0);ha()},title:h?h.local?h.remote>h.local?"\u041c\u0438\u0440 \u0435\u0449\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u0430!":"\u0417\u0430\u0439\u0442\u0438 \u043d\u0430 \u0432\u044b\u0431\u0440\u0430\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440":"\u041c\u0438\u0440 \u0435\u0449\u0435 \u043d\u0435 \u0441\u043a\u0430\u0447\u0435\u043d!":"\u041c\u0438\u0440 \u0431\u044b\u043b \u043d\u0435 \u0432\u044b\u0431\u0440\u0430\u043d\u044c!"}),H("button[innerText=\u041c\u0438\u0440...]", -{disabled:!h||C,onclick:()=>{u(!0)},title:h?"\u0410\u043a\u0446\u0438\u0438/\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043c\u0438\u0440\u0430":"\u041c\u0438\u0440 \u0431\u044b\u043b \u043d\u0435 \u0432\u044b\u0431\u0440\u0430\u043d\u044c!"})]),H("hr"),H("center",null,[H("button[innerText=\u041d\u043e\u0432\u044b\u0439 \u043c\u0438\u0440]",{onclick:()=>{const t=prompt("\u0418\u043c\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u041c\u0438\u0440\u0430:\n(\u043c\u0430\u043a\u0441. 16 \u0441\u0438\u043c\u0431\u043e\u043b\u043e\u0432)", -"\u041d\u043e\u0432\u044b\u0439 \u043c\u0438\u0440");t&&(16r.id))-1,label:t,mod_l:Qa.now(),mod_r:0}))}}),H("button[innerText=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438]",{onclick:()=>{d(1)}})]),H("center",null,[H("small[innerText=\u0412\u0435\u0440\u0441\u0438\u044f 0.11.3 \u043e\u0442 L3P3]")]),C&&h&&H("div",{F:{"menu overlay advanced":!0, -busy:E},onclick:t=>{"menu overlay advanced"===t.target.className&&u(!1)}},[H("div[className=window]",null,[H("h2",{innerText:`"${h.label}"`,title:h.id}),H("table",null,[!!h.account_name&&H("tr",null,[H("td[innerText=\u0412\u043b\u0430\u0434\u0435\u043b\u0435\u0446:]"),H("td",{innerText:h.account_name})]),H("tr",null,[H("td[innerText=\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f:]"),H("td",{innerText:yb(Ja(h.local,h.remote),!1)})])]),H("center",null,[H("button[innerText=\u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c]", -{disabled:E||!h.writable,onclick:()=>{const t=prompt("\u041d\u043e\u0432\u043e\u0435 \u0438\u043c\u044f \u043c\u0438\u0440\u0430:\n(\u043c\u0430\u043a\u0441. 16 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432)",h.label);!t||t===h.label||16{if(!r.ok)throw Error(403===r.status?"\u041d\u0435\u0442\u0443 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u0417\u0430\u0440\u0435\u0433\u0435\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d?": -"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u043e\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.");return r.json()}).catch(r=>{alert("\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u043c\u0438\u0440\u0430: "+r.message)}).then(()=>{S(!1)})))},title:h.writable?"\u0418\u0437\u043c\u0435\u043d\u0438\u0442 \u0438\u043c\u044f \u043c\u0438\u0440\u0443":"\u041d\u0435\u0442 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438!"}), -H("button",{disabled:E||!h.local&&!h.writable,innerText:h.local?"\u0423\u0434\u0430\u043b\u0438\u0442\u044c (\u043b\u043e\u043a\u0430\u043b)":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c",onclick:()=>{confirm('\u041c\u0438\u0440 "'+h.label+'" \u0442\u043e\u0447\u043d\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c?')&&(h.local?(b.hb(h.id),Xb(h.id)):(S(!0),eb("/api/minicraft/world",{method:"DELETE",headers:{"Content-Type":"application/json"},body:$a({what:"world",world:h.id})}).then(t=>{if(!t.ok)throw Error(403=== -t.status?"\u041d\u0435\u0442\u0443 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u0417\u0430\u0440\u0435\u0433\u0435\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d?":"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u043e\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.");ca();v(null);u(!1);k();S(!1);ha();return t.json()}).catch(t=>{alert("\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u043c\u0438\u0440\u0430: "+t.message); -S(!1)})))},title:h.local||h.writable?"\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043c\u0438\u0440":"\u041d\u0435\u0442 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438!"})]),H("center",null,[H("button",{disabled:E||!h.remote||!h.writable,innerText:`${"\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439"}: ${h.public?"\u0414\u0430":"\u041d\u0435\u0442"}`,onclick:()=>{S(!0);eb("/api/minicraft/world",{method:"POST",headers:{"Content-Type":"application/json"},body:$a({what:"meta", -world:h.id,public:!h.public})}).then(t=>{if(!t.ok)throw Error(403===t.status?"\u041d\u0435\u0442\u0443 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u0417\u0430\u0440\u0435\u0433\u0435\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d?":"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u043e\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.");ca();k();S(!1);ha();return t.json()}).catch(t=>{alert("\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u043c\u0438\u0440\u0430: "+ -t.message);S(!1)})},title:h.remote?h.writable?h.public?"\u041f\u0440\u0438\u0432\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0438\u0440":"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442 \u043c\u0438\u0440":"\u041d\u0435\u0442 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438!":"\u041c\u0438\u0440 \u043d\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d!"}),H("button",{disabled:E||!w||0{h.local?h.remote||b.U(h.id,{mod_r:1}):b.gb({id:h.id,label:h.label,mod_l:1,mod_r:h.remote})},title:w?h.local?h.remote?"\u041c\u0438\u0440 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u043d\u0430 \u0434\u0432\u0443\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0445!":a.rank?"\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442 \u043c\u0438\u0440 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440": +Angle: ${(y.O*Ea).toFixed(2)} ${(y.ha*Ea).toFixed(2)} +Focus: ${0>y.V?"":y.aa+" "+y.V+" "+y.ba+" "+"WEBTSNI"[y.pa]+": "+Eb[$b(R,y.aa,y.V,y.ba)]} +Chunk abs: ${L(y.G)>>4} ${L(y.J)>>4} ${L(y.H)>>4} rel: ${R.La} ${R.Na} ${R.Ma}`:""}}f.ca=m},[m]);na();const w=F({fb:1});c.T&&(w.fb=c.T);return[H("canvas",{R:F(h=>{f.u=Ac(f,h)})}),f.ta&&2!==f.j&&G(Xc,{N:f.N,na:m}),f.u&&f.Ka&&H("div[className=diagnostics]",{innerText:f.u.ob}),c.ka&&G(ed,{o:f,ab:f.ab}),f.ta&&3!==f.j&&2!==f.g.l&&G(Tc,{g:f.g,M:w.fb,na:m}),3===f.j&&G(Vc,{o:f,M:w.fb,na:m}),1===f.j&&G(Zc,{a:b,config:c,o:f,oa:l}),2===f.j&&G(ad,{o:f,N:f.N})]} +function gd({I:a,Db:b,Eb:c,Fb:d}){A("div",{F:{selected:a===c},onclick:()=>{d(a.id)}});c=`${a.local?"L":"_"}${a.local&&a.remote?a.local>a.remote?">":a.local{l(m()+1)}),f=F({value:null}),w=ha(()=>aa(function*(){try{const t=!f.value&&!e,q=yield db(`${"/api/minicraft/"}world?what=${t?"initial":"meta_all"}`);if(!q.ok)throw Error("\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u043e\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.");const x=yield q.json();if(!t)return x;if("0.11.4"!==x.version_latest)return location.reload(!0),null;ba();b.xb(x.account);return x.worlds}catch(t){return alert("\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0441\u043f\u0438\u0441\u043a\u0430 \u043c\u0438\u0440\u043e\u0432: "+ +t.message),[]}}()),[e],null),h=ia(()=>{w&&(f.value=w);const t=[];f.value&&t.push(...f.value.map(q=>({account_name:q.account_name,hash:q.hash,id:q.id,label:q.label,local:0,public:q.public,remote:q.modified,writable:q.writable})));for(const q of c.worlds){const x=t.find(B=>B.id===q.id);if(x){const B=x.local=q.mod_l,Ca=x.remote,ca=q.mod_r;B>ca&&Ca>ca&&(confirm('\u041a\u043e\u043d\u0444\u043b\u0438\u043a\u0442! \u041c\u0438\u0440. "'+q.label+'" \u0431\u044b\u043b\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043e \u043a\u0430\u043a \u0437\u0434\u0435\u0441\u044c, \u0442\u0430\u043a \u0438 \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u043c\u0435\u0441\u0442\u0430\u0445.\n\u041e\u041a: \u043f\u0440\u0438\u043d\u044f\u0442\u044c \u0442\u043e, \u0447\u0442\u043e \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 ('+ +xb(Ca,!1)+") | \u041e\u0442\u043c\u0435\u043d\u0438\u0442: \u0412\u043e\u0442 \u044d\u0442\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c ("+xb(B,!1)+")")?b.U(q.id,{mod_l:x.local=ca}):b.U(q.id,{mod_r:x.remote=ca}))}else 1Ia(x.local,x.remote)-Ia(q.local,q.remote))},[w,c.worlds]),[p,v,z]=oa(c.Ea),g=ia(()=>h.find(t=>t.id===p)||null,[p,h]),r=ia(()=>{let t,q;return null!=(q=null==h?void 0:null==(t=h.find(x=>0{if(null!==r){var t=!1,q=h.find(x=>x.id===r);if(q.local +x.json()).then(x=>{if(!t)return Vb(r,x).then(()=>{b.U(r,{mod_l:q.remote,mod_r:q.remote})})}).catch(x=>{t||("QuotaExceededError"===x.name?(alert("\u041d\u0435\u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u043f\u0430\u043c\u044f\u0442\u0438!"),b.hb(r),Wb(r)):alert("\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u043c\u0438\u0440\u0430: "+x.message))});else{if(!q.writable){b.U(r,{mod_l:c.worlds.find(B=>B.id===r).mod_r});return}let x=r;(1===q.remote? +db("/api/minicraft/world",Object.assign({},hd,{body:Za({what:"meta",label:q.label})})).then(B=>{if(!B.ok)throw Error(403===B.status?"\u041d\u0435\u0442\u0443 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u0417\u0430\u0440\u0435\u0433\u0435\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d?":"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u043e\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.");return B.json()}).then(B=>{x=B.id}):Ya.resolve()).then(()=>{if(t)throw null;return Ub(r)}).then(B=> +{if(t)throw null;return db("/api/minicraft/world",Object.assign({},hd,{body:Za({what:"data",world:x,data:B})}))}).then(B=>{if(!B.ok)throw Error(403===B.status?"\u041d\u0435\u0442\u0443 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u0417\u0430\u0440\u0435\u0433\u0435\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d?":"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u043e\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.");return B.json()}).then(B=>{ba();x===r?b.U(r,{mod_l:B.modified, +mod_r:B.modified}):(Xb(r,x),b.hb(r),b.gb({id:x,label:q.label,mod_l:B.modified,mod_r:B.modified}),t||z()!==r||v(x));t||k();fa()}).catch(B=>{t||(alert("\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0441\u043a\u0435 \u043c\u0438\u0440\u0430: "+B.message),ba(),b.U(r,{mod_r:0}),fa())})}return()=>{t=!0}}},[r]);const [C,u]=oa(!1);g||u(!1);const [E,S]=oa(!1);return[H("h1[innerText=\u041c\u0438\u0440\u044b]"),H("button[innerText=\u041e\u0431\u043d\u043e\u0432\u0438\u0442][style=position:absolute;left:0;top:0;height:2rem][title=\u041e\u0431\u043d\u043e\u0432\u0438\u0442 \u0441\u043f\u0438\u0441\u043e\u043a]", +{disabled:!w,onclick:k}),H("button[style=position:absolute;right:0;top:0;height:2rem]",{disabled:0{location.href="/account?redir=minicraft"}}),H("div[className=worlds]",null,[qa(gd,h,{Hb:e,Db:r,Eb:g,Fb:v})]),H("center",null,[H("button[innerText=\u041e\u0442\u043a\u0440\u044b\u0442]",{disabled:!g||!g.local||g.remote>g.local,onclick:()=>{ba();b.ia({Ea:g.id}); +d(0);fa()},title:g?g.local?g.remote>g.local?"\u041c\u0438\u0440 \u0435\u0449\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u0430!":"\u0417\u0430\u0439\u0442\u0438 \u043d\u0430 \u0432\u044b\u0431\u0440\u0430\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440":"\u041c\u0438\u0440 \u0435\u0449\u0435 \u043d\u0435 \u0441\u043a\u0430\u0447\u0435\u043d!":"\u041c\u0438\u0440 \u0431\u044b\u043b \u043d\u0435 \u0432\u044b\u0431\u0440\u0430\u043d\u044c!"}),H("button[innerText=\u041c\u0438\u0440...]", +{disabled:!g||C,onclick:()=>{u(!0)},title:g?"\u0410\u043a\u0446\u0438\u0438/\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043c\u0438\u0440\u0430":"\u041c\u0438\u0440 \u0431\u044b\u043b \u043d\u0435 \u0432\u044b\u0431\u0440\u0430\u043d\u044c!"})]),H("hr"),H("center",null,[H("button[innerText=\u041d\u043e\u0432\u044b\u0439 \u043c\u0438\u0440]",{onclick:()=>{const t=prompt("\u0418\u043c\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u041c\u0438\u0440\u0430:\n(\u043c\u0430\u043a\u0441. 16 \u0441\u0438\u043c\u0431\u043e\u043b\u043e\u0432)", +"\u041d\u043e\u0432\u044b\u0439 \u043c\u0438\u0440");t&&(16q.id))-1,label:t,mod_l:Pa.now(),mod_r:0}))}}),H("button[innerText=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438]",{onclick:()=>{d(1)}})]),H("center",null,[H("small[innerText=\u0412\u0435\u0440\u0441\u0438\u044f 0.11.4 \u043e\u0442 L3P3]")]),C&&g&&H("div",{F:{"menu overlay advanced":!0, +busy:E},onclick:t=>{"menu overlay advanced"===t.target.className&&u(!1)}},[H("div[className=window]",null,[H("h2",{innerText:`"${g.label}"`,title:g.id}),H("table",null,[!!g.account_name&&H("tr",null,[H("td[innerText=\u0412\u043b\u0430\u0434\u0435\u043b\u0435\u0446:]"),H("td",{innerText:g.account_name})]),H("tr",null,[H("td[innerText=\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f:]"),H("td",{innerText:xb(Ia(g.local,g.remote),!1)})])]),H("center",null,[H("button[innerText=\u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c]", +{disabled:E||!g.writable,onclick:()=>{const t=prompt("\u041d\u043e\u0432\u043e\u0435 \u0438\u043c\u044f \u043c\u0438\u0440\u0430:\n(\u043c\u0430\u043a\u0441. 16 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432)",g.label);!t||t===g.label||16{if(!q.ok)throw Error(403===q.status?"\u041d\u0435\u0442\u0443 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u0417\u0430\u0440\u0435\u0433\u0435\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d?": +"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u043e\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.");return q.json()}).catch(q=>{alert("\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u043c\u0438\u0440\u0430: "+q.message)}).then(()=>{S(!1)})))},title:g.writable?"\u0418\u0437\u043c\u0435\u043d\u0438\u0442 \u0438\u043c\u044f \u043c\u0438\u0440\u0443":"\u041d\u0435\u0442 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438!"}), +H("button",{disabled:E||!g.local&&!g.writable,innerText:g.local?"\u0423\u0434\u0430\u043b\u0438\u0442\u044c (\u043b\u043e\u043a\u0430\u043b)":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c",onclick:()=>{confirm('\u041c\u0438\u0440 "'+g.label+'" \u0442\u043e\u0447\u043d\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c?')&&(g.local?(b.hb(g.id),Wb(g.id)):(S(!0),db("/api/minicraft/world",{method:"DELETE",headers:{"Content-Type":"application/json"},body:Za({what:"world",world:g.id})}).then(t=>{if(!t.ok)throw Error(403=== +t.status?"\u041d\u0435\u0442\u0443 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u0417\u0430\u0440\u0435\u0433\u0435\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d?":"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u043e\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.");ba();v(null);u(!1);k();S(!1);fa();return t.json()}).catch(t=>{alert("\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u043c\u0438\u0440\u0430: "+t.message); +S(!1)})))},title:g.local||g.writable?"\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043c\u0438\u0440":"\u041d\u0435\u0442 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438!"})]),H("center",null,[H("button",{disabled:E||!g.remote||!g.writable,innerText:`${"\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439"}: ${g.public?"\u0414\u0430":"\u041d\u0435\u0442"}`,onclick:()=>{S(!0);db("/api/minicraft/world",{method:"POST",headers:{"Content-Type":"application/json"},body:Za({what:"meta", +world:g.id,public:!g.public})}).then(t=>{if(!t.ok)throw Error(403===t.status?"\u041d\u0435\u0442\u0443 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u0417\u0430\u0440\u0435\u0433\u0435\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d?":"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u043e\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.");ba();k();S(!1);fa();return t.json()}).catch(t=>{alert("\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u043c\u0438\u0440\u0430: "+ +t.message);S(!1)})},title:g.remote?g.writable?g.public?"\u041f\u0440\u0438\u0432\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0438\u0440":"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442 \u043c\u0438\u0440":"\u041d\u0435\u0442 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438!":"\u041c\u0438\u0440 \u043d\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d!"}),H("button",{disabled:E||!w||0{g.local?g.remote||b.U(g.id,{mod_r:1}):b.gb({id:g.id,label:g.label,mod_l:1,mod_r:g.remote})},title:w?g.local?g.remote?"\u041c\u0438\u0440 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u043d\u0430 \u0434\u0432\u0443\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0445!":a.rank?"\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442 \u043c\u0438\u0440 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440": "\u041d\u0435 \u0437\u0430\u0440\u0435\u0433\u0435\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d!":"\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442 \u043c\u0438\u0440 \u0438\u0437 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 ":"\u0421\u043f\u0438\u0441\u043e\u043a \u0435\u0449\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f!"})])])])]} -function ud({account:a,a:b,config:c,cb:d}){const [e,l]=pa(2),m=A("div[className=game]");return[(2===e||1===e)&&G(jd,{account:a,a:b,config:c,oa:l}),1===e&&G($c,{a:b,config:c,o:null,oa:l}),0===e&&G(gd,{account:a,a:b,config:c,frame:m,cb:d,oa:l})]} -function vd(){const [a,b]=ka(Eb),c=F({o:null,sb:0});D(()=>{let k=!1;onbeforeunload=onunload=onpagehide=onblur=()=>{k||(k=!0,c.o&&Gc(c.o),b.Xa())};onpageshow=onfocus=()=>{k=!1};setInterval(()=>(b.Xa(),!Pa&&bb("minicraft.lock",Qa.now())),500);tb("touchend",f=>{c.sb=f.timeStamp},!0)});const d=F(k=>{if("INPUT"===k.target.tagName||!c.o)return!0;b.Ja(!1);Oc(c.o,k.keyCode,"keydown"===k.type);return!1}),e=F(()=>{b.Ja(!0)}),l=F(k=>{999{m?(tb("mousedown",l, -!0),tb("mouseup",l,!0),ub("touchstart",e,!0)):(ub("mousedown",l,!0),ub("mouseup",l,!0),tb("touchstart",e,!0))},[m]);D(zc,[a.config.T]);A("",{onkeydown:d,onkeyup:d,oncontextmenu:xb,ondragstart:xb});return[G(ud,{account:a.account,a:b,config:a.config,cb:c})]}function wd(){close();return[H("h1[innerText=\u043c\u0438\u043d\u0438\u043a\u0440\u0430\u0444\u0442 \u0443\u0436\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d!]")]} -if(window.SSR)qa(vd);else if(Pa){const a=new Pa("minicraft.lock"),b=pb(()=>{qa(vd)},100);a.addEventListener("message",c=>{"yes"===c.data?(rb(b),a.close(),qa(wd)):(a.postMessage("yes"),focus())});a.postMessage("anyone there?")}else{const a=P(N.getItem("minicraft.lock")),b=Qa.now()-1E3;a{qa(P(N.getItem("minicraft.lock"))===a?vd:wd)},a-b)}; +function ud({account:a,a:b,config:c,cb:d}){const [e,l]=oa(2),m=A("div[className=game]");return[(2===e||1===e)&&G(id,{account:a,a:b,config:c,oa:l}),1===e&&G(Zc,{a:b,config:c,o:null,oa:l}),0===e&&G(fd,{account:a,a:b,config:c,frame:m,cb:d,oa:l})]} +function vd(){const [a,b]=ja(Db),c=F({o:null,sb:0});D(()=>{let k=!1;onbeforeunload=onunload=onpagehide=onblur=()=>{k||(k=!0,c.o&&Fc(c.o),b.Xa())};onpageshow=onfocus=()=>{k=!1};setInterval(()=>(b.Xa(),!Oa&&ab("minicraft.lock",Pa.now())),500);sb("touchend",f=>{c.sb=f.timeStamp},!0)});const d=F(k=>{if("INPUT"===k.target.tagName||!c.o)return!0;b.Ja(!1);Nc(c.o,k.keyCode,"keydown"===k.type);return!1}),e=F(()=>{b.Ja(!0)}),l=F(k=>{999{m?(sb("mousedown",l, +!0),sb("mouseup",l,!0),tb("touchstart",e,!0)):(tb("mousedown",l,!0),tb("mouseup",l,!0),sb("touchstart",e,!0))},[m]);D(yc,[a.config.T]);A("",{onkeydown:d,onkeyup:d,oncontextmenu:wb,ondragstart:wb});return[G(ud,{account:a.account,a:b,config:a.config,cb:c})]}function wd(){close();return[H("h1[innerText=\u043c\u0438\u043d\u0438\u043a\u0440\u0430\u0444\u0442 \u0443\u0436\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d!]")]} +if(window.SSR)pa(vd);else if(Oa){const a=new Oa("minicraft.lock"),b=ob(()=>{pa(vd)},100);a.addEventListener("message",c=>{"yes"===c.data?(qb(b),a.close(),pa(wd)):(a.postMessage("yes"),focus())});a.postMessage("anyone there?")}else{const a=P(N.getItem("minicraft.lock")),b=Pa.now()-1E3;a{pa(P(N.getItem("minicraft.lock"))===a?vd:wd)},a-b)}; diff --git a/app-tr.js b/app-tr.js index a7685fa..8c474f0 100644 --- a/app-tr.js +++ b/app-tr.js @@ -1,89 +1,89 @@ -function ba(a){function b(d){return a.next(d)}function c(d){return a.throw(d)}return new Promise(function(d,e){function l(m){m.done?d(m.value):Promise.resolve(m.value).then(b,c).then(l,e)}l(a.next())})} -const n=lui,ca=n.defer,ha=n.defer_end,ia=n.hook_async,A=n.hook_dom,D=n.hook_effect,ja=n.hook_memo,ka=n.hook_model,oa=n.hook_rerender,pa=n.hook_state,F=n.hook_static,qa=n.init,G=n.node,H=n.node_dom,ra=n.node_map,va=n.now,wa=window,xa=document,za=navigator,K=Math,Aa=K.PI,Ba=.5*Aa,Fa=180/Aa,Ga=K.random,L=K.floor,Ha=K.ceil,Ia=K.round,M=K.min,Ja=K.max,Ka=K.cos,La=K.sin,Ma=K.sqrt,Na=K.log2,Oa=String.fromCharCode,Pa=BroadcastChannel,Qa=Date,Ya=JSON,Za=Promise,$a=Ya.stringify,ab=Ya.parse,N=localStorage,bb= -N.setItem.bind(N),cb=N.removeItem.bind(N),db=wa.indexedDB,eb=fetch,fb=Uint8Array,gb=Uint32Array,hb=Set,lb=Map,P=Number,mb=Object,nb=mb.keys,ob=mb.entries,pb=setTimeout,qb=setInterval,rb=clearTimeout,sb=clearInterval,tb=addEventListener,ub=removeEventListener,vb=za.userAgent.includes("WebKit"),wb=a=>a*a,xb=()=>!1,yb=(a,b)=>{const c=new Qa;a=new Qa(a);var d=c-a;if(59E3>d)return Ia(d/1E3)+"s";if(3E6>d)return Ia(d/6E4)+"m";d=a.getFullYear();const e=a.getMonth(),l=a.getDate();let m="";d"minicraft.world."+b.id));for(const b of nb(N))b.startsWith("minicraft.world.")&&!a.has(b.split(":")[0])&&cb(b)} -const Eb={init:()=>{let a=!1;var b={ka:!1,xa:1,ua:3,Y:4,T:1,Da:120,ga:64,Ea:0,worlds:[]};if(Q){let c=Q.pixel_grouping;null!=c&&(b.xa=c);null!=(c=Q.mouse_sensitivity)&&(b.ua=c);b.Y=Q.resolution_scaling;null!=(c=Q.textures)?b.T=c:b.T=Q.flag_textures?1:0;b.Da=Q.view_angle;b.ga=Q.view_distance;null!=(c=Q.world_last)&&(b.Ea=c);null!=(c=Q.worlds)?b.worlds=c:N.getItem("minicraft.world.0:meta")&&(b.worlds[0]={id:0,label:(prompt("Bilinmeyen d\u00fcnya bulundu. Nas\u0131l adland\u0131r\u0131ls\u0131n?","")|| -"Bilinmeyen d\u00fcnya").substring(0,16),mod_l:Qa.now(),mod_r:0},a=!0);Q=null}b={account:{label:"",rank:0},config:b,Ya:b};return a?(b.Ya=null,Eb.Xa(b)):b},Xa:a=>{const b=a.config;if(b===a.Ya)return a;bb("minicraft.config",$a({version:"0.11.3",pixel_grouping:b.xa,mouse_sensitivity:b.ua,resolution_scaling:b.Y,textures:b.T,view_angle:b.Da,view_distance:b.ga,world_last:b.Ea,worlds:b.worlds}));return Object.assign({},a,{Ya:b})},xb:(a,b)=>Object.assign({},a,{account:b}),Gb:(a,b)=>Eb.ia(a,b(a.config)),ia:(a, -b)=>Object.assign({},a,{config:Object.assign({},a.config,b)}),Ja:(a,b)=>a.config.ka===b?a:Eb.ia(a,{ka:b}),gb:(a,b)=>Object.assign({},a,{config:Object.assign({},a.config,{worlds:[...a.config.worlds,b]})}),hb:(a,b)=>Object.assign({},a,{config:Object.assign({},a.config,{worlds:a.config.worlds.filter(c=>c.id!==b)})}),U:(a,b,c)=>Object.assign({},a,{config:Object.assign({},a.config,{worlds:a.config.worlds.map(d=>d.id===b?Object.assign({},d,c):d)})})},Fb="air stone grass dirt cobble planks bedrock log leaves bricks wool sand gravel glass bookshelf obsidian stone_bricks sandstone lapis_block iron_block gold_block diamond_block emerald_block redstone_block quartz_block".split(" "), -Gb="Hava;Ta\u015f;\u00c7imen;Toprak;Parke Ta\u015f\u0131;Kalas;Katman Kayas\u0131;K\u00fct\u00fck;Yapraklar;Tu\u011flalar;Y\u00fcn;Kum;\u00c7ak\u0131l;Cam;Kitapl\u0131k;Obsidyen;Lapis Lazuli;Ta\u015f Tu\u011flalar;Kumta\u015f\u0131;Lapis Lazuli Blo\u011fu;Demir Blok;Alt\u0131n Blok;Elmas Blok;Z\u00fcmr\u00fct Blok;K\u0131z\u0131lta\u015f Blok;Kuvars Blok".split(";"),Hb=[0,8487297,4305266,4349313,8092539,5342114,7039851,3561583,4172910,6384533,15526888,10671324,8092798,16447200,4151672,1970708,8092539, -9686227,9126695,15198183,5567485,14541182,7920469,662956,14936813],Ib=(a,b=1,c=null)=>({amount:b,data:c,id:a}),Jb=(a,b,c=a.c.amount)=>{if(b.c)a.c.id===b.c.id?(c=M(c,b.W-b.c.amount),a.c.amount-=c,b.c.amount+=c,0>=a.c.amount&&(a.c=null)):!(a.c.amount<=c&&a.c.amount<=b.W&&b.c.amount<=a.W)||a.filter&&!a.filter(b.c.id)||b.filter&&!b.filter(a.c.id)||([b.c,a.c]=[a.c,b.c]);else if(!b.filter||b.filter(a.c.id))a.c.amount<=c&&a.c.amount<=b.W?[b.c,a.c]=[a.c,b.c]:(c=M(c,b.W),a.c.amount-=c,b.c=Ib(a.c.id,c),0>= -a.c.amount&&(a.c=null))},Kb=(a,b)=>{for(const c of a)if(c.c&&c.c.id===b.id){const d=M(b.amount,c.W-c.c.amount);c.c.amount+=d;if(0>=(b.amount-=d))return null}for(const c of a)if(!c.c&&(!c.filter||c.filter(b.id)))if(a=M(b.amount,c.W),a<=b.amount){if(c.c=Ib(b.id,a),0>=(b.amount-=a))return null}else return c.c=b,null;return b},Lb=(a,b)=>({Ua:0,ib:0,Va:0,O:0,ha:0,pa:0,aa:0,V:-1,ba:0,qa:null,ra:null,l:1,rb:20,B:Array(36).fill(null).map(()=>({c:null,filter:null,W:64})),Oa:0,name:b.label||"Oyuncu",G:a.Aa, -H:a.Ba,J:a.Ca,vb:0,wb:0,L:0,ma:0,da:0,ea:0,fa:0}),Mb=(a,b,c)=>{a.O=(a.O+b+100*Aa)%(2*Aa);a.ha=Ja(-Ba,M(Ba,a.ha+c))},Nb=a=>{a+=32;33a?a++:38a?a+=2:43a?a+=3:126a?a+=37:55295a-(63743a?35:40a?34:34a?33:32),Qb=()=>{var a=Pb;const b=a.length,c=new lb,d=u=>{g=g<<1|u&1;15===++p&&(w+=Nb(g),g=p=0)},e=()=>{for(let u=0;u{d(u);d(u>>1);d(u>>2);d(u>>3);d(u>>4);d(u>>5);d(u>>6);d(u>>7)},m=()=> -{0===--z&&(z=1<{if(C)C=!1;else{let u=q.id;for(let E=0;E>E)}};let f=a[0],w="",g=0,p=2,v=2,z=2,h=2,q={id:h++,Ha:new lb},C=!0;l(f);c.set(f,q);for(let u=1;u{var b=Pb;if(!a)return null;const c=a.length,d=()=>{p+=(h>>--q&1)<v;)d();f=[p];e[2]=f;for(b[g++]=p;z<=c;){w=k;for(p=v=0;vv;)d();e[m]=[p];p=m++;0===--l&&(l=1<{d=d.target.result.createObjectStore("chunks",{keyPath:["world","coords"]});for(const e of nb(N))if(e.startsWith("minicraft.world.")){const [l,m]=e.substr(16).split(":");"meta"!==m&&(d.add({world:P(l),coords:m,data:N.getItem(e)}),cb(e))}};c.onsuccess=d=>{U=d.target.result}} -const Sb=(a,b)=>ba(function*(){if(!U)return N.getItem(`minicraft.world.${a}:${b}`);const c=U.transaction("chunks","readonly").objectStore("chunks").get([a,b]);return new Za(d=>{c.onsuccess=()=>{let e;d(null==(e=c.result)?void 0:e.data)}})}()),Tb=(a,b)=>{var c=Qb();return ba(function*(){if(!U)return bb(`minicraft.world.${a}:${b}`,c);const d=U.transaction("chunks","readwrite").objectStore("chunks").put({world:a,coords:b,data:c});return new Za((e,l)=>{d.onsuccess=()=>{e()};d.onerror=()=>{l(d.error)}})}())}, -Ub=(a,b)=>ba(function*(){if(!U)return cb(`minicraft.world.${a}:${b}`);const c=U.transaction("chunks","readwrite").objectStore("chunks").delete([a,b]);return new Za(d=>{c.onsuccess=()=>{d()}})}()),Vb=a=>ba(function*(){const b=`minicraft.world.${a}:`;if(!U){const e={},l=b.length;for(const m of nb(N))m.startsWith(b)&&(e[m.substr(l)]=N.getItem(m));return e}const c=U.transaction("chunks","readonly").objectStore("chunks").openCursor(),d={meta:N.getItem(b+"meta")};return new Za(e=>{c.onsuccess=()=>{const l= -c.result;l?(l.value.world===a&&(d[l.value.coords]=l.value.data),l.continue()):e(d)}})}()),Wb=(a,b)=>ba(function*(){if(U){var c=U.transaction("chunks","readwrite"),d=c.objectStore("chunks");for(const [e,l]of ob(b))"meta"!==e?d.put({world:a,coords:e,data:l}):bb(`minicraft.world.${a}:meta`,l);return new Za((e,l)=>{c.oncomplete=()=>{e()};c.onerror=()=>{l(c.error)}})}for(const [e,l]of ob(b))bb(`minicraft.world.${a}:${e}`,l);bb("__margin",Array(257).join("x"));cb("__margin")}()),Xb=a=>{if(U){cb(`minicraft.world.${a}:meta`); -var b=U.transaction("chunks","readwrite").objectStore("chunks").openCursor();b.onsuccess=()=>{const c=b.result;c&&(c.value.world===a&&c.delete(),c.continue())}}else{const c=`minicraft.world.${a}:`;for(const d of nb(N))d.startsWith(c)&&cb(d)}},Yb=(a,b)=>{if(U){bb(`minicraft.world.${b}:meta`,N.getItem(`minicraft.world.${a}:meta`));cb(`minicraft.world.${a}:meta`);var c=U.transaction("chunks","readwrite").objectStore("chunks"),d=c.openCursor();d.onsuccess=()=>{const e=d.result;e&&(e.value.world===a&& -(e.value.world=b,c.put(e.value)),e.continue())}}else{const e=`minicraft.world.${a}:`,l=e.length,m=`minicraft.world.${b}:`;for(const k of nb(N))if(k.startsWith(e)){const f=N.getItem(k);cb(k);bb(m+k.substr(l),f)}}},Zb=new gb(1024),Pb=new fb(Zb.buffer),$b=new lb,ac=(a,b,c,d)=>0>c||63{const e=a.K;a.Z[(b<>4<>4)<<2|c>>4].ja=!0},cc=(a,b,c,d,e)=>{const l=a.K,m=(b<>4<>4)<<2|c>> -4].ja=!0},fc=(a,b,c)=>{const d=Ja(M(b.H,63),0)>>4,e=L(b.G)>>4;b=L(b.J)>>4;if(c||a.Ma!==d||a.va+a.La!==e||a.wa+a.Na!==b)c=1<{const b=a.La,c=a.Ma,d=a.Na,e=a.K,l=`${e} ${b} ${d} ${c}`;let m=$b.get(l);if(null==m){const k=1<{let z=wb(w-b),h=wb(p-d),q=wb(w-b-k),C=0,u=0;qw<=f).sort((w,g)=>w.Za-g.Za))}a.Ia=m;a.sa=0},hc=(a,b)=>{if(!a.pb){for(var c=b.B.map(({c:d})=>d&&[d.id,d.amount,d.data]);0d.ja).map(d=>gc(a,d)))}},jc=(a,b)=>{const c=N.getItem(`minicraft.world.${a.id}:meta`);if(c){const {p:d,s:e,t:l,v:m}=ab(c);null!=m&&(d.i.forEach((k, -f)=>{k&&(b.B[f].c=Ib(k[0],k[1],k[2]))}),b.rb=d.h,b.l=d.m,b.G=d.p[0],b.H=d.p[1],b.J=d.p[2],b.O=d.p[3],b.ha=d.p[4],a.Aa=e[0],a.Ba=e[1],a.Ca=e[2],null!=l&&ic(a,l))}},ic=(a,b)=>{a.time=b%24E3;a.eb=(b+6E3)/24E3%1},vc=a=>ba(function*(){const b=a.$[a.Ia[a.sa=0].lb];var c=b.y;yield Ub(a.id,`${b.Fa}/${b.Ta}`+(0{const c=a.Ga;var d=a.K;const e=b.y,l=(256<m;++m){for(d=0;16>d;++d)Zb[++k]=c[f],Zb[++k]= -c[++f],Zb[++k]=c[++f],Zb[++k]=c[++f],f+=13;f+=l}b.ja=!1;return Tb(a.id,`${b.Fa}/${b.Ta}`+(0ba(function*(){const c=a.$,d=a.Ia,e=a.va,l=a.wa,m=d.length;for(;a.saC;++C){for(w=0;16>w;++w)k[g]=Zb[++u],k[++g]=Zb[++u],k[++g]=Zb[++u],k[++g]=Zb[++u],g+=13;g+=z}else for(p=0;16>p;++p){for(f=0;16>f;++f)k[g]=0{if(a){const b=xc=new Image;b.onload=()=>{if(xc===b){var c=xa.createElement("canvas");c.width=16;c.height=416;c=c.getContext("2d");c.scale(1,-1);for(let d=0;26>d;++d)c.drawImage(b,0,d<<4,16,16,0,-(d<<4)-16,16,16);wc=new gb(c.getImageData(0,0,16,416).data.buffer);for(const d of yc)d.P=!0;xc=null}};b.src=`${"/static/minicraft/"}textures/${a}.png`}else wc=null},Bc=(a,b)=>{const c={yb:b,Wa:b.getContext("2d",{alpha:!1,desynchronized:!0}),jb:null,kb:null,ob:"",P:!1,qb:0,$a:0,zb:qb(()=> -(c.qb=c.$a,c.$a=0),1E3),o:a};yc.add(c);Ac(c);return c},Ac=a=>{const b=a.yb,c=a.o;a.kb=new gb((a.jb=a.Wa.createImageData(b.width=c.ya,b.height=c.za)).data.buffer);const d=c.ya*c.config.Y/c.la,e=c.za*c.config.Y/c.la;b.style.width=d+"px";b.style.height=e+"px";b.style.left=Ia((c.Pa-d)/2)+"px";b.style.top=Ia((c.Qa-e)/2)+"px";a.Wa.fillStyle="rgba(255,255,255,.5)"};let Cc=0; -const Fc=(a,b,c,d)=>{const e={Z:null,Ga:null,busy:!1,$:null,Ia:null,sa:0,pb:!1,La:0,Ma:0,Na:0,id:c.Ea,va:0,wa:0,K:0,Aa:.5,Ba:8.5,Ca:.5,time:0,eb:0},l=Lb(e,d);jc(e,l);const m={a,config:c,mb:0,nb:0,Ka:!1,ta:!0,A:!0,Ab:b,ca:0,X:new hb,ab:"",j:0,N:[],g:l,bb:null,u:null,la:1,Pa:1,Qa:1,ya:0,za:0,Ra:0,ub:0,Sa:0,Cb:qb(()=>{var k;(k=m.A)||(ic(e,e.time+1),fc(e,l,!1),k=void 0);return k},50),world:e};Dc(m,null);Ec(m);return m},Gc=a=>{a.world.pb||(hc(a.world,a.g),a.a.U(a.world.id,{mod_l:Qa.now()}))},Ec=a=>{ba(function*(){if(!a.config.ka)try{yield a.Ab.requestPointerLock()}catch(b){}}())}, -Hc=(a,b)=>a===b?0:.1-.2*a,Ic=a=>{a.g.Ua=Hc((a=a.X).has(-12)||a.has(65),a.has(-13)||a.has(68))},Jc=a=>{a.g.ib=Hc((a=a.X).has(-15)||a.has(16),a.has(-14)||a.has(32))},Kc=a=>{a.g.Va=Hc((a=a.X).has(-11)||a.has(83),a.has(-10)||a.has(87))},Lc=a=>{a.g.vb=Hc(a.X.has(-18),a.X.has(-19))},Mc=a=>{a.g.wb=Hc(a.X.has(-17),a.X.has(-16))},Oc=(a,b,c)=>{if(!a.world)return!1;const d=a.X;var e=a.g;if(c){if(d.has(b))return!1;d.add(b);var l=e.aa,m=e.V;c=e.ba;switch(b){case -18:case -19:Lc(a);break;case -17:case -16:Mc(a); -break;case -1:2!==e.l&&0<=m&&(0===e.Oa?0===e.l&&(b=ac(a.world,l,m,c),2===b?b=3:1===b&&(b=4),6===b||8!==b&&13!==b&&null!==Kb(e.B,Ib(b,1)))||(bc(a.world,l,m,c),e.V=-1):Nc(a,[l,m,c],!1));break;case -2:case 71:if(0<=m){const k=ac(a.world,l,m,c);c=e.B.slice(0,9);m=c.findIndex(f=>null!==f.c&&f.c.id===k);0<=m?e.L=m:1===e.l&&(c[e.L].c&&(c=c.findIndex(f=>null===f.c),0<=c&&(e.L=c)),e.B[e.L].c=Ib(k));e.ma=a.ca}break;case -3:if(2!==e.l&&0<=m)if(0===e.Oa){if(b=e.B[e.L],b.c){switch(e.pa){case 0:--l;break;case 1:++l; -break;case 2:--m;break;case 3:++m;break;case 4:--c;break;case 5:++c}0<=m&&64>m&&cc(a.world,l&(1<<4+a.world.K)-1,m,c&(1<<4+a.world.K)-1,b.c.id)&&1!==e.l&&0>=--b.c.amount&&(b.c=null)}}else Nc(a,[l,m,c],!0);break;case -4:e.L=(e.L+9-1)%9;e.ma=a.ca;break;case -5:e.L=(e.L+1)%9;e.ma=a.ca;break;case 27:0===a.j&&(a.A=!0,a.j=1);break;case -15:case -14:case 16:case 32:Jc(a);break;case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:e.L=b-49;e.ma=a.ca;break;case -12:case -13:case 65:case 68:Ic(a); -break;case 69:if(0===a.j){a.j=3;for(const k of d)Oc(a,k,!1)}break;case 80:a.world&&(a.A=!0);break;case 81:e=e.B[e.L];if(d.has(17)||e.c&&0>=--e.c.amount)e.c=null;break;case -11:case -10:case 83:case 87:Kc(a);break;case 84:if(0===a.j){a.j=2;for(const k of d)Oc(a,k,!1)}break;case 112:a.ta=!a.ta;break;case 114:a.Ka=!a.Ka;case 116:case 122:case 123:break;default:return!1}}else{if(!d.delete(b))return!1;switch(b){case -15:case -14:case 16:case 32:Jc(a);break;case -12:case -13:case 65:case 68:Ic(a);break; -case -11:case -10:case 83:case 87:Kc(a);break;case -18:case -19:Lc(a);break;case -17:case -16:Mc(a)}}a.ab=[...d].join();return!0},Pc=(a,b)=>(b=b.startsWith("~")?a+P(b.substr(1)):P(b),isNaN(b)?a:b),Rc=(a,b)=>{var c=a.g,d=a.world;if(b)if("/"===b.charAt(0)){b=b.substr(1).split(" ");const e=b.shift();switch(e){case "clear":a.N=[];break;case "clearinv":for(const l of c.B)l.c=null;Z(a,"Envanter temizlendi.",!0);break;case "gamemode":case "gm":b=P(b[0]);!isNaN(b)&&0<=b&&3>b&&0===b%1?(c.l=b,Z(a,"Oyun modu ayarland\u0131: "+ -b,!0)):Z(a,"Oyun modu 0..2 aras\u0131nda olmal\u0131d\u0131r!");break;case "give":if(0===b.length){Z(a,"/give [Miktar]\n"+Fb.join(" "));break}d=Fb.indexOf((b[0]||"").toLowerCase());d=0<=d?d:P(b[0]);b=P(b[1]||1);!isNaN(d)&&0d&&0===d%1?!isNaN(b)&&0{a.u.P=!0;Z(a,"Par\u00e7alar y\u00fcklendi.",!0)});break;case "me":Z(a,c.name+" "+b.join(" "),!0);break;case "save":Gc(a);Z(a,"Oyun kaydedildi.",!0);break;case "spawn":d.Aa=c.G;d.Ba=c.H;d.Ca=c.J;Z(a,"Spawn g\u00fcncellendi.",!0);break;case "teleport":case "tp":0===b.length?(c.G=d.Aa,c.H=d.Ba,c.J=d.Ca,a.u.P=!0,Z(a,"Spawn'a \u0131\u015f\u0131nland\u0131.",!0)):3===b.length?(Z(a,"\u015euraya \u0131\u015f\u0131nland\u0131"+` ${c.G=Pc(c.G,b[0])} ${c.H=Pc(c.H,b[1])} ${c.J= -Pc(c.J,b[2])}`,!0),a.u.P=!0):Z(a,"Kahretsin!");c.da=0;c.ea=0;c.fa=0;break;case "time":c=b[1];if(!c){Z(a,"Parametre eksik!");break}if("day"===c)c=1E3;else if("night"===c)c=13E3;else if(isNaN(c=L(P(c))))break;switch(b[0]){case "add":c+=d.time;case "set":ic(d,c);Z(a,"\u015eimdiki saat: "+d.time,!0);break;default:Z(a,"Bilinmeyen komut: time "+b[0])}break;case "version":Z(a,"minicraft 0.11.3");break;case "/exit":c.Oa=0;Z(a,"Normal fare modu.",!0);break;case "/expand":a.g.qa&&a.g.ra?d=!0:(Z(a,"Se\u00e7im gerekli!"), -d=!1);d&&("vert"===b[0]?(c.qa[1]=0,c.ra[1]=63,Z(a,"Se\u00e7imi geni\u015flet",!0)):Z(a,'Sadece "vert" desteklenir!'));break;case "/pos1":case "/pos2":Nc(a,[L(c.G),L(c.H),L(c.J)],"/pos2"===e);break;case "/regen":vc(d).then(()=>{a.u.P=!0;Z(a,"Par\u00e7a yenilendi.",!0)});break;case "/show":Z(a,`${"Birinci"}: ${c.qa?c.qa.join(" "):"hi\u00e7birini se\u00e7me"}, ${"\u0130kinci"}: ${c.ra?c.ra.join(" "):"hi\u00e7birini se\u00e7me"}`);break;case "/wand":c.Oa=1;Z(a,"Fareyi kullanarak se\u00e7in.",!0);break; -default:Z(a,"Bilinmeyen komut: "+e)}}else{const e=Z(a,`<${c.name}> `+b);Dc(a,b).then(l=>{l&&Qc(a,e)})}},Z=(a,b,c=!1)=>{const d=++Cc;(a.N=a.N.slice(-49)).push({id:d,tb:c,time:va(),value:b});return d},Qc=(a,b)=>{const c=a.N.findIndex(d=>d.id===b);0<=c&&a.N.splice(c,1)},Nc=(a,b,c)=>{c?a.g.ra=b:a.g.qa=b;Z(a,`${c?"\u0130kince se\u00e7im noktas\u0131":"Birinci se\u00e7im noktas\u0131"}: ${b.join(" ")}`,!0)},Dc=(a,b)=>(rb(a.bb),(b?eb("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"}, -body:$a({msg:b})}):eb("/api/chat")).then(c=>{if(c.ok)return c.text()}).then(c=>{if(c){c=c.split("\n").filter(Boolean);for(const d of c)d.startsWith("<")&&Z(a,d);return 0!1).then(c=>{a.bb=pb(()=>{Dc(a,null)},5E3);return c})),Sc=({id:a,M:b})=>(A("div[className=bitmap]",{S:{backgroundImage:`url(${"/static/minicraft/"}textures/${b}.png)`,backgroundPositionY:`-${2*(a-1)}rem`}}),null); -function Tc({amount:a,l:b,id:c,M:d}){A("div[className=stack]",{title:Gb[c]+(1===b?` (${Fb[c]}, ${c})`:"")});return[G(Sc,{id:c,M:d}),1!==a&&H("div[className=amount]",{innerText:a})]} -function Uc({g:a,M:b,na:c}){A("div[className=bar]",{ontouchstart:F(e=>{a.L=Number(e.target.closest("[data-slot]").dataset.slot);a.ma=e.timeStamp}),S:{opacity:Ja(.5,M(1,1-5E-4*(c-a.ma-5E3)))}});const d=a.l;return a.B.slice(0,9).map(({c:e},l)=>H("div",{D:{slot:l},F:{active:l===a.L}},[e&&G(Tc,{amount:e.amount,data:e.data,l:d,id:e.id,M:b})]))} -function Vc({Bb:a,M:b}){A("div[className=grid]",{onclick:({target:c})=>{(c=c.closest("[data-id]"))&&Jb({c:Ib(P(c.dataset.id)),filter:null,W:64},a)}});return Fb.map((c,d)=>0({c:null,filter:null,W:64})),d=a.g.l;A("div[className=menu overlay inventory]",ja(()=>({onclick:({target:e})=>{if("menu overlay inventory"===e.className)c.c?c.c=null:(a.j=0,a.A=!1,Ec(a));else if(e=e.closest("[data-slot]"))e=a.g.B[P(e.dataset.slot)],c.c?Jb(c,e):e.c&&Jb(e,c)},oncontextmenu:({target:e})=>{if("menu overlay inventory"===e.className)c.c?0>=--c.c.amount&&(c.c=null):(a.j=0,a.A=!1,Ec(a));else if(e=e.closest("[data-slot]"))e=a.g.B[P(e.dataset.slot)],c.c? -Jb(c,e,1):e.c&&Jb(e,c,Ha(e.c.amount/2))}})));return[H("div[className=window]",null,[H("h2[innerText=Envanter]"),1===d&&G(Vc,{Bb:c,M:b}),H("div[className=grid]",null,a.g.B.map(({c:e},l)=>H("div",{D:{slot:l},F:{first:9>l}},[e&&G(Tc,{amount:e.amount,data:e.data,l:d,id:e.id,M:b})])))]),c.c&&H("div[className=hand]",{S:{transform:`translate(${a.mb}px, ${a.nb}px)`}},[G(Tc,{amount:c.c.amount,data:c.c.data,l:0,id:c.c.id,M:b})])]} -const Xc=({I:{tb:a,time:b,value:c},na:d})=>(A(a?"div[className=minor]":"div",{innerText:c,S:{opacity:M(1,1-.001*(d-b-4500))}}),null);function Yc({N:a,na:b}){A("div[className=messages]");const c=b-5E3;return[ra(Xc,a.slice(-10).filter(d=>d.time>c),{na:b})]}function Zc({I:a,ia:b,current:c}){A("button",{disabled:a.id===c,innerText:`${a.label} (${a.owner})`,onclick:()=>{b({T:a.id})}});return null} -function $c({a:{ia:a},config:b,o:c,oa:d}){c&&D(()=>Gc(c));const [e,l]=pa(!1),m=ia(()=>e?eb("/static/minicraft/textures.json").then(k=>k.ok?k.json():null).catch(()=>null):Za.resolve(null),[e],null);A("div[className=menu overlay]");return[H("h1",{innerText:e?"Y\u00fczeyler":"Ayarlar"}),H("center",null,[H("button",{innerText:c&&!e?"Oyuna geri d\u00f6n":"Geri",onclick:()=>{e?l(!1):c?(c.j=0,c.A=!1,Ec(c)):d(2)}})]),!e&&H("div[className=settings]",null,[H("button[innerText=Y\u00fczeyler...]",{onclick:()=> +function aa(a){function b(d){return a.next(d)}function c(d){return a.throw(d)}return new Promise(function(d,e){function l(m){m.done?d(m.value):Promise.resolve(m.value).then(b,c).then(l,e)}l(a.next())})} +const n=lui,ba=n.defer,fa=n.defer_end,ha=n.hook_async,A=n.hook_dom,D=n.hook_effect,ia=n.hook_memo,ja=n.hook_model,na=n.hook_rerender,oa=n.hook_state,F=n.hook_static,pa=n.init,G=n.node,H=n.node_dom,qa=n.node_map,ua=n.now,va=window,wa=document,ya=navigator,K=Math,za=K.PI,Aa=.5*za,Ea=180/za,Fa=K.random,L=K.floor,Ga=K.ceil,Ha=K.round,M=K.min,Ia=K.max,Ja=K.cos,Ka=K.sin,La=K.sqrt,Ma=K.log2,Na=String.fromCharCode,Oa=BroadcastChannel,Pa=Date,Xa=JSON,Ya=Promise,Za=Xa.stringify,$a=Xa.parse,N=localStorage,ab= +N.setItem.bind(N),bb=N.removeItem.bind(N),cb=va.indexedDB,db=fetch,eb=Uint8Array,fb=Uint32Array,gb=Set,kb=Map,P=Number,lb=Object,mb=lb.keys,nb=lb.entries,ob=setTimeout,pb=setInterval,qb=clearTimeout,rb=clearInterval,sb=addEventListener,tb=removeEventListener,ub=ya.userAgent.includes("WebKit"),vb=a=>a*a,wb=()=>!1,xb=(a,b)=>{const c=new Pa;a=new Pa(a);var d=c-a;if(59E3>d)return Ha(d/1E3)+"s";if(3E6>d)return Ha(d/6E4)+"m";d=a.getFullYear();const e=a.getMonth(),l=a.getDate();let m="";d"minicraft.world."+b.id));for(const b of mb(N))b.startsWith("minicraft.world.")&&!a.has(b.split(":")[0])&&bb(b)} +const Db={init:()=>{let a=!1;var b={ka:!1,xa:1,ua:3,Y:4,T:1,Da:120,ga:64,Ea:0,worlds:[]};if(Q){let c=Q.pixel_grouping;null!=c&&(b.xa=c);null!=(c=Q.mouse_sensitivity)&&(b.ua=c);b.Y=Q.resolution_scaling;null!=(c=Q.textures)?b.T=c:b.T=Q.flag_textures?1:0;b.Da=Q.view_angle;b.ga=Q.view_distance;null!=(c=Q.world_last)&&(b.Ea=c);null!=(c=Q.worlds)?b.worlds=c:N.getItem("minicraft.world.0:meta")&&(b.worlds[0]={id:0,label:(prompt("Bilinmeyen d\u00fcnya bulundu. Nas\u0131l adland\u0131r\u0131ls\u0131n?","")|| +"Bilinmeyen d\u00fcnya").substring(0,16),mod_l:Pa.now(),mod_r:0},a=!0);Q=null}b={account:{label:"",rank:0},config:b,Ya:b};return a?(b.Ya=null,Db.Xa(b)):b},Xa:a=>{const b=a.config;if(b===a.Ya)return a;ab("minicraft.config",Za({version:"0.11.4",pixel_grouping:b.xa,mouse_sensitivity:b.ua,resolution_scaling:b.Y,textures:b.T,view_angle:b.Da,view_distance:b.ga,world_last:b.Ea,worlds:b.worlds}));return Object.assign({},a,{Ya:b})},xb:(a,b)=>Object.assign({},a,{account:b}),Gb:(a,b)=>Db.ia(a,b(a.config)),ia:(a, +b)=>Object.assign({},a,{config:Object.assign({},a.config,b)}),Ja:(a,b)=>a.config.ka===b?a:Db.ia(a,{ka:b}),gb:(a,b)=>Object.assign({},a,{config:Object.assign({},a.config,{worlds:[...a.config.worlds,b]})}),hb:(a,b)=>Object.assign({},a,{config:Object.assign({},a.config,{worlds:a.config.worlds.filter(c=>c.id!==b)})}),U:(a,b,c)=>Object.assign({},a,{config:Object.assign({},a.config,{worlds:a.config.worlds.map(d=>d.id===b?Object.assign({},d,c):d)})})},Eb="air stone grass dirt cobble planks bedrock log leaves bricks wool sand gravel glass bookshelf obsidian stone_bricks sandstone lapis_block iron_block gold_block diamond_block emerald_block redstone_block quartz_block".split(" "), +Fb="Hava;Ta\u015f;\u00c7imen;Toprak;Parke Ta\u015f\u0131;Kalas;Katman Kayas\u0131;K\u00fct\u00fck;Yapraklar;Tu\u011flalar;Y\u00fcn;Kum;\u00c7ak\u0131l;Cam;Kitapl\u0131k;Obsidyen;Lapis Lazuli;Ta\u015f Tu\u011flalar;Kumta\u015f\u0131;Lapis Lazuli Blo\u011fu;Demir Blok;Alt\u0131n Blok;Elmas Blok;Z\u00fcmr\u00fct Blok;K\u0131z\u0131lta\u015f Blok;Kuvars Blok".split(";"),Gb=[0,8487297,4305266,4349313,8092539,5342114,7039851,3561583,4172910,6384533,15526888,10671324,8092798,16447200,4151672,1970708,8092539, +9686227,9126695,15198183,5567485,14541182,7920469,662956,14936813],Hb=(a,b=1,c=null)=>({amount:b,data:c,id:a}),Ib=(a,b,c=a.c.amount)=>{if(b.c)a.c.id===b.c.id?(c=M(c,b.W-b.c.amount),a.c.amount-=c,b.c.amount+=c,0>=a.c.amount&&(a.c=null)):!(a.c.amount<=c&&a.c.amount<=b.W&&b.c.amount<=a.W)||a.filter&&!a.filter(b.c.id)||b.filter&&!b.filter(a.c.id)||([b.c,a.c]=[a.c,b.c]);else if(!b.filter||b.filter(a.c.id))a.c.amount<=c&&a.c.amount<=b.W?[b.c,a.c]=[a.c,b.c]:(c=M(c,b.W),a.c.amount-=c,b.c=Hb(a.c.id,c),0>= +a.c.amount&&(a.c=null))},Jb=(a,b)=>{for(const c of a)if(c.c&&c.c.id===b.id){const d=M(b.amount,c.W-c.c.amount);c.c.amount+=d;if(0>=(b.amount-=d))return null}for(const c of a)if(!c.c&&(!c.filter||c.filter(b.id)))if(a=M(b.amount,c.W),a<=b.amount){if(c.c=Hb(b.id,a),0>=(b.amount-=a))return null}else return c.c=b,null;return b},Kb=(a,b)=>({Ua:0,ib:0,Va:0,O:0,ha:0,pa:0,aa:0,V:-1,ba:0,qa:null,ra:null,l:1,rb:20,B:Array(36).fill(null).map(()=>({c:null,filter:null,W:64})),Oa:0,name:b.label||"Oyuncu",G:a.Aa, +H:a.Ba,J:a.Ca,vb:0,wb:0,L:0,ma:0,da:0,ea:0,fa:0}),Lb=(a,b,c)=>{a.O=(a.O+b+100*za)%(2*za);a.ha=Ia(-Aa,M(Aa,a.ha+c))},Mb=a=>{a+=32;33a?a++:38a?a+=2:43a?a+=3:126a?a+=37:55295a-(63743a?35:40a?34:34a?33:32),Pb=()=>{var a=Ob;const b=a.length,c=new kb,d=u=>{h=h<<1|u&1;15===++p&&(w+=Mb(h),h=p=0)},e=()=>{for(let u=0;u{d(u);d(u>>1);d(u>>2);d(u>>3);d(u>>4);d(u>>5);d(u>>6);d(u>>7)},m=()=> +{0===--z&&(z=1<{if(C)C=!1;else{let u=r.id;for(let E=0;E>E)}};let f=a[0],w="",h=0,p=2,v=2,z=2,g=2,r={id:g++,Ha:new kb},C=!0;l(f);c.set(f,r);for(let u=1;u{var b=Ob;if(!a)return null;const c=a.length,d=()=>{p+=(g>>--r&1)<v;)d();f=[p];e[2]=f;for(b[h++]=p;z<=c;){w=k;for(p=v=0;vv;)d();e[m]=[p];p=m++;0===--l&&(l=1<{d=d.target.result.createObjectStore("chunks",{keyPath:["world","coords"]});for(const e of mb(N))if(e.startsWith("minicraft.world.")){const [l,m]=e.substr(16).split(":");"meta"!==m&&(d.add({world:P(l),coords:m,data:N.getItem(e)}),bb(e))}};c.onsuccess=d=>{T=d.target.result}} +const Rb=(a,b)=>aa(function*(){if(!T)return N.getItem(`minicraft.world.${a}:${b}`);const c=T.transaction("chunks","readonly").objectStore("chunks").get([a,b]);return new Ya(d=>{c.onsuccess=()=>{let e;d(null==(e=c.result)?void 0:e.data)}})}()),Sb=(a,b)=>{var c=Pb();return aa(function*(){if(!T)return ab(`minicraft.world.${a}:${b}`,c);const d=T.transaction("chunks","readwrite").objectStore("chunks").put({world:a,coords:b,data:c});return new Ya((e,l)=>{d.onsuccess=()=>{e()};d.onerror=()=>{l(d.error)}})}())}, +Tb=(a,b)=>aa(function*(){if(!T)return bb(`minicraft.world.${a}:${b}`);const c=T.transaction("chunks","readwrite").objectStore("chunks").delete([a,b]);return new Ya(d=>{c.onsuccess=()=>{d()}})}()),Ub=a=>aa(function*(){const b=`minicraft.world.${a}:`;if(!T){const e={},l=b.length;for(const m of mb(N))m.startsWith(b)&&(e[m.substr(l)]=N.getItem(m));return e}const c=T.transaction("chunks","readonly").objectStore("chunks").openCursor(),d={meta:N.getItem(b+"meta")};return new Ya(e=>{c.onsuccess=()=>{const l= +c.result;l?(l.value.world===a&&(d[l.value.coords]=l.value.data),l.continue()):e(d)}})}()),Vb=(a,b)=>aa(function*(){if(T){var c=T.transaction("chunks","readwrite"),d=c.objectStore("chunks");for(const [e,l]of nb(b))"meta"!==e?d.put({world:a,coords:e,data:l}):ab(`minicraft.world.${a}:meta`,l);return new Ya((e,l)=>{c.oncomplete=()=>{e()};c.onerror=()=>{l(c.error)}})}for(const [e,l]of nb(b))ab(`minicraft.world.${a}:${e}`,l);ab("__margin",Array(257).join("x"));bb("__margin")}()),Wb=a=>{if(T){bb(`minicraft.world.${a}:meta`); +var b=T.transaction("chunks","readwrite").objectStore("chunks").openCursor();b.onsuccess=()=>{const c=b.result;c&&(c.value.world===a&&c.delete(),c.continue())}}else{const c=`minicraft.world.${a}:`;for(const d of mb(N))d.startsWith(c)&&bb(d)}},Xb=(a,b)=>{if(T){ab(`minicraft.world.${b}:meta`,N.getItem(`minicraft.world.${a}:meta`));bb(`minicraft.world.${a}:meta`);var c=T.transaction("chunks","readwrite").objectStore("chunks"),d=c.openCursor();d.onsuccess=()=>{const e=d.result;e&&(e.value.world===a&& +(e.value.world=b,c.put(e.value)),e.continue())}}else{const e=`minicraft.world.${a}:`,l=e.length,m=`minicraft.world.${b}:`;for(const k of mb(N))if(k.startsWith(e)){const f=N.getItem(k);bb(k);ab(m+k.substr(l),f)}}},Yb=new fb(1024),Ob=new eb(Yb.buffer),Zb=new kb,$b=(a,b,c,d)=>0>c||63{const e=a.K;a.Z[(b<>4<>4)<<2|c>>4].ja=!0},bc=(a,b,c,d,e)=>{const l=a.K,m=(b<>4<>4)<<2|c>> +4].ja=!0},ec=(a,b,c)=>{const d=Ia(M(b.H,63),0)>>4,e=L(b.G)>>4;b=L(b.J)>>4;if(c||a.Ma!==d||a.va+a.La!==e||a.wa+a.Na!==b)c=1<{const b=a.La,c=a.Ma,d=a.Na,e=a.K,l=`${e} ${b} ${d} ${c}`;let m=Zb.get(l);if(null==m){const k=1<{let z=vb(w-b),g=vb(p-d),r=vb(w-b-k),C=0,u=0;rw<=f).sort((w,h)=>w.Za-h.Za))}a.Ia=m;a.sa=0},gc=(a,b)=>{if(!a.pb){for(var c=b.B.map(({c:d})=>d&&[d.id,d.amount,d.data]);0d.ja).map(d=>fc(a,d)))}},ic=(a,b)=>{const c=N.getItem(`minicraft.world.${a.id}:meta`);if(c){const {p:d,s:e,t:l,v:m}=$a(c);null!=m&&(d.i.forEach((k, +f)=>{k&&(b.B[f].c=Hb(k[0],k[1],k[2]))}),b.rb=d.h,b.l=d.m,b.G=d.p[0],b.H=d.p[1],b.J=d.p[2],b.O=d.p[3],b.ha=d.p[4],a.Aa=e[0],a.Ba=e[1],a.Ca=e[2],null!=l&&hc(a,l))}},hc=(a,b)=>{a.time=b%24E3;a.eb=(b+6E3)/24E3%1},uc=a=>aa(function*(){const b=a.$[a.Ia[a.sa=0].lb];var c=b.y;yield Tb(a.id,`${b.Fa}/${b.Ta}`+(0{const c=a.Ga;var d=a.K;const e=b.y,l=(256<m;++m){for(d=0;16>d;++d)Yb[++k]=c[f],Yb[++k]= +c[++f],Yb[++k]=c[++f],Yb[++k]=c[++f],f+=13;f+=l}b.ja=!1;return Sb(a.id,`${b.Fa}/${b.Ta}`+(0aa(function*(){const c=a.$,d=a.Ia,e=a.va,l=a.wa,m=d.length;for(;a.saC;++C){for(w=0;16>w;++w)k[h]=Yb[++u],k[++h]=Yb[++u],k[++h]=Yb[++u],k[++h]=Yb[++u],h+=13;h+=z}else for(p=0;16>p;++p){for(f=0;16>f;++f)k[h]=0{if(a){const b=wc=new Image;b.onload=()=>{if(wc===b){var c=wa.createElement("canvas");c.width=16;c.height=416;c=c.getContext("2d");c.scale(1,-1);for(let d=0;26>d;++d)c.drawImage(b,0,d<<4,16,16,0,-(d<<4)-16,16,16);vc=new fb(c.getImageData(0,0,16,416).data.buffer);for(const d of xc)d.P=!0;wc=null}};b.src=`${"/static/minicraft/"}textures/${a}.png`}else vc=null},Ac=(a,b)=>{const c={yb:b,Wa:b.getContext("2d",{alpha:!1,desynchronized:!0}),jb:null,kb:null,ob:"",P:!1,qb:0,$a:0,zb:pb(()=> +(c.qb=c.$a,c.$a=0),1E3),o:a};xc.add(c);zc(c);return c},zc=a=>{const b=a.yb,c=a.o;a.kb=new fb((a.jb=a.Wa.createImageData(b.width=c.ya,b.height=c.za)).data.buffer);const d=c.ya*c.config.Y/c.la,e=c.za*c.config.Y/c.la;b.style.width=d+"px";b.style.height=e+"px";b.style.left=Ha((c.Pa-d)/2)+"px";b.style.top=Ha((c.Qa-e)/2)+"px";a.Wa.fillStyle="rgba(255,255,255,.5)"};let Bc=0; +const Ec=(a,b,c,d)=>{const e={Z:null,Ga:null,busy:!1,$:null,Ia:null,sa:0,pb:!1,La:0,Ma:0,Na:0,id:c.Ea,va:0,wa:0,K:0,Aa:.5,Ba:8.5,Ca:.5,time:0,eb:0},l=Kb(e,d);ic(e,l);const m={a,config:c,mb:0,nb:0,Ka:!1,ta:!0,A:!0,Ab:b,ca:0,X:new gb,ab:"",j:0,N:[],g:l,bb:null,u:null,la:1,Pa:1,Qa:1,ya:0,za:0,Ra:0,ub:0,Sa:0,Cb:pb(()=>{var k;(k=m.A)||(hc(e,e.time+1),ec(e,l,!1),k=void 0);return k},50),world:e};Cc(m,null);Dc(m);return m},Fc=a=>{a.world.pb||(gc(a.world,a.g),a.a.U(a.world.id,{mod_l:Pa.now()}))},Dc=a=>{aa(function*(){if(!a.config.ka)try{yield a.Ab.requestPointerLock()}catch(b){}}())}, +Gc=(a,b)=>a===b?0:.1-.2*a,Hc=a=>{a.g.Ua=Gc((a=a.X).has(-12)||a.has(65),a.has(-13)||a.has(68))},Ic=a=>{a.g.ib=Gc((a=a.X).has(-15)||a.has(16),a.has(-14)||a.has(32))},Jc=a=>{a.g.Va=Gc((a=a.X).has(-11)||a.has(83),a.has(-10)||a.has(87))},Kc=a=>{a.g.vb=Gc(a.X.has(-18),a.X.has(-19))},Lc=a=>{a.g.wb=Gc(a.X.has(-17),a.X.has(-16))},Nc=(a,b,c)=>{if(!a.world)return!1;const d=a.X;var e=a.g;if(c){if(d.has(b))return!1;d.add(b);var l=e.aa,m=e.V;c=e.ba;switch(b){case -18:case -19:Kc(a);break;case -17:case -16:Lc(a); +break;case -1:2!==e.l&&0<=m&&(0===e.Oa?0===e.l&&(b=$b(a.world,l,m,c),2===b?b=3:1===b&&(b=4),6===b||8!==b&&13!==b&&null!==Jb(e.B,Hb(b,1)))||(ac(a.world,l,m,c),e.V=-1):Mc(a,[l,m,c],!1));break;case -2:case 71:if(0<=m){const k=$b(a.world,l,m,c);c=e.B.slice(0,9);m=c.findIndex(f=>null!==f.c&&f.c.id===k);0<=m?e.L=m:1===e.l&&(c[e.L].c&&(c=c.findIndex(f=>null===f.c),0<=c&&(e.L=c)),e.B[e.L].c=Hb(k));e.ma=a.ca}break;case -3:if(2!==e.l&&0<=m)if(0===e.Oa){if(b=e.B[e.L],b.c){switch(e.pa){case 0:--l;break;case 1:++l; +break;case 2:--m;break;case 3:++m;break;case 4:--c;break;case 5:++c}0<=m&&64>m&&bc(a.world,l&(1<<4+a.world.K)-1,m,c&(1<<4+a.world.K)-1,b.c.id)&&1!==e.l&&0>=--b.c.amount&&(b.c=null)}}else Mc(a,[l,m,c],!0);break;case -4:e.L=(e.L+9-1)%9;e.ma=a.ca;break;case -5:e.L=(e.L+1)%9;e.ma=a.ca;break;case 27:0===a.j&&(a.A=!0,a.j=1);break;case -15:case -14:case 16:case 32:Ic(a);break;case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:e.L=b-49;e.ma=a.ca;break;case -12:case -13:case 65:case 68:Hc(a); +break;case 69:if(0===a.j){a.j=3;for(const k of d)Nc(a,k,!1)}break;case 80:a.world&&(a.A=!0);break;case 81:e=e.B[e.L];if(d.has(17)||e.c&&0>=--e.c.amount)e.c=null;break;case -11:case -10:case 83:case 87:Jc(a);break;case 84:if(0===a.j){a.j=2;for(const k of d)Nc(a,k,!1)}break;case 112:a.ta=!a.ta;break;case 114:a.Ka=!a.Ka;case 116:case 122:case 123:break;default:return!1}}else{if(!d.delete(b))return!1;switch(b){case -15:case -14:case 16:case 32:Ic(a);break;case -12:case -13:case 65:case 68:Hc(a);break; +case -11:case -10:case 83:case 87:Jc(a);break;case -18:case -19:Kc(a);break;case -17:case -16:Lc(a)}}a.ab=[...d].join();return!0},Oc=(a,b)=>(b=b.startsWith("~")?a+P(b.substr(1)):P(b),isNaN(b)?a:b),Qc=(a,b)=>{var c=a.g,d=a.world;if(b)if("/"===b.charAt(0)){b=b.substr(1).split(" ");const e=b.shift();switch(e){case "clear":a.N=[];break;case "clearinv":for(const l of c.B)l.c=null;Y(a,"Envanter temizlendi.",!0);break;case "gamemode":case "gm":b=P(b[0]);!isNaN(b)&&0<=b&&3>b&&0===b%1?(c.l=b,Y(a,"Oyun modu ayarland\u0131: "+ +b,!0)):Y(a,"Oyun modu 0..2 aras\u0131nda olmal\u0131d\u0131r!");break;case "give":if(0===b.length){Y(a,"/give [Miktar]\n"+Eb.join(" "));break}d=Eb.indexOf((b[0]||"").toLowerCase());d=0<=d?d:P(b[0]);b=P(b[1]||1);!isNaN(d)&&0d&&0===d%1?!isNaN(b)&&0{a.u.P=!0;Y(a,"Par\u00e7alar y\u00fcklendi.",!0)});break;case "me":Y(a,c.name+" "+b.join(" "),!0);break;case "save":Fc(a);Y(a,"Oyun kaydedildi.",!0);break;case "spawn":d.Aa=c.G;d.Ba=c.H;d.Ca=c.J;Y(a,"Spawn g\u00fcncellendi.",!0);break;case "teleport":case "tp":0===b.length?(c.G=d.Aa,c.H=d.Ba,c.J=d.Ca,a.u.P=!0,Y(a,"Spawn'a \u0131\u015f\u0131nland\u0131.",!0)):3===b.length?(Y(a,"\u015euraya \u0131\u015f\u0131nland\u0131"+` ${c.G=Oc(c.G,b[0])} ${c.H=Oc(c.H,b[1])} ${c.J= +Oc(c.J,b[2])}`,!0),a.u.P=!0):Y(a,"Kahretsin!");c.da=0;c.ea=0;c.fa=0;break;case "time":c=b[1];if(!c){Y(a,"Parametre eksik!");break}if("day"===c)c=1E3;else if("night"===c)c=13E3;else if(isNaN(c=L(P(c))))break;switch(b[0]){case "add":c+=d.time;case "set":hc(d,c);Y(a,"\u015eimdiki saat: "+d.time,!0);break;default:Y(a,"Bilinmeyen komut: time "+b[0])}break;case "version":Y(a,"minicraft 0.11.4");break;case "/exit":c.Oa=0;Y(a,"Normal fare modu.",!0);break;case "/expand":a.g.qa&&a.g.ra?d=!0:(Y(a,"Se\u00e7im gerekli!"), +d=!1);d&&("vert"===b[0]?(c.qa[1]=0,c.ra[1]=63,Y(a,"Se\u00e7imi geni\u015flet",!0)):Y(a,'Sadece "vert" desteklenir!'));break;case "/pos1":case "/pos2":Mc(a,[L(c.G),L(c.H),L(c.J)],"/pos2"===e);break;case "/regen":uc(d).then(()=>{a.u.P=!0;Y(a,"Par\u00e7a yenilendi.",!0)});break;case "/show":Y(a,`${"Birinci"}: ${c.qa?c.qa.join(" "):"hi\u00e7birini se\u00e7me"}, ${"\u0130kinci"}: ${c.ra?c.ra.join(" "):"hi\u00e7birini se\u00e7me"}`);break;case "/wand":c.Oa=1;Y(a,"Fareyi kullanarak se\u00e7in.",!0);break; +default:Y(a,"Bilinmeyen komut: "+e)}}else{const e=Y(a,`<${c.name}> `+b);Cc(a,b).then(l=>{l&&Pc(a,e)})}},Y=(a,b,c=!1)=>{const d=++Bc;(a.N=a.N.slice(-49)).push({id:d,tb:c,time:ua(),value:b});return d},Pc=(a,b)=>{const c=a.N.findIndex(d=>d.id===b);0<=c&&a.N.splice(c,1)},Mc=(a,b,c)=>{c?a.g.ra=b:a.g.qa=b;Y(a,`${c?"\u0130kince se\u00e7im noktas\u0131":"Birinci se\u00e7im noktas\u0131"}: ${b.join(" ")}`,!0)},Cc=(a,b)=>(qb(a.bb),(b?db("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"}, +body:Za({msg:b})}):db("/api/chat")).then(c=>{if(c.ok)return c.text()}).then(c=>{if(c){c=c.split("\n").filter(Boolean);for(const d of c)d.startsWith("<")&&Y(a,d);return 0!1).then(c=>{a.bb=ob(()=>{Cc(a,null)},5E3);return c})),Rc=({id:a,M:b})=>(A("div[className=bitmap]",{S:{backgroundImage:`url(${"/static/minicraft/"}textures/${b}.png)`,backgroundPositionY:`-${2*(a-1)}rem`}}),null); +function Sc({amount:a,l:b,id:c,M:d}){A("div[className=stack]",{title:Fb[c]+(1===b?` (${Eb[c]}, ${c})`:"")});return[G(Rc,{id:c,M:d}),1!==a&&H("div[className=amount]",{innerText:a})]} +function Tc({g:a,M:b,na:c}){A("div[className=bar]",{ontouchstart:F(e=>{a.L=Number(e.target.closest("[data-slot]").dataset.slot);a.ma=e.timeStamp}),S:{opacity:Ia(.5,M(1,1-5E-4*(c-a.ma-5E3)))}});const d=a.l;return a.B.slice(0,9).map(({c:e},l)=>H("div",{D:{slot:l},F:{active:l===a.L}},[e&&G(Sc,{amount:e.amount,data:e.data,l:d,id:e.id,M:b})]))} +function Uc({Bb:a,M:b}){A("div[className=grid]",{onclick:({target:c})=>{(c=c.closest("[data-id]"))&&Ib({c:Hb(P(c.dataset.id)),filter:null,W:64},a)}});return Eb.map((c,d)=>0({c:null,filter:null,W:64})),d=a.g.l;A("div[className=menu overlay inventory]",ia(()=>({onclick:({target:e})=>{if("menu overlay inventory"===e.className)c.c?c.c=null:(a.j=0,a.A=!1,Dc(a));else if(e=e.closest("[data-slot]"))e=a.g.B[P(e.dataset.slot)],c.c?Ib(c,e):e.c&&Ib(e,c)},oncontextmenu:({target:e})=>{if("menu overlay inventory"===e.className)c.c?0>=--c.c.amount&&(c.c=null):(a.j=0,a.A=!1,Dc(a));else if(e=e.closest("[data-slot]"))e=a.g.B[P(e.dataset.slot)],c.c? +Ib(c,e,1):e.c&&Ib(e,c,Ga(e.c.amount/2))}})));return[H("div[className=window]",null,[H("h2[innerText=Envanter]"),1===d&&G(Uc,{Bb:c,M:b}),H("div[className=grid]",null,a.g.B.map(({c:e},l)=>H("div",{D:{slot:l},F:{first:9>l}},[e&&G(Sc,{amount:e.amount,data:e.data,l:d,id:e.id,M:b})])))]),c.c&&H("div[className=hand]",{S:{transform:`translate(${a.mb}px, ${a.nb}px)`}},[G(Sc,{amount:c.c.amount,data:c.c.data,l:0,id:c.c.id,M:b})])]} +const Wc=({I:{tb:a,time:b,value:c},na:d})=>(A(a?"div[className=minor]":"div",{innerText:c,S:{opacity:M(1,1-.001*(d-b-4500))}}),null);function Xc({N:a,na:b}){A("div[className=messages]");const c=b-5E3;return[qa(Wc,a.slice(-10).filter(d=>d.time>c),{na:b})]}function Yc({I:a,ia:b,current:c}){A("button",{disabled:a.id===c,innerText:`${a.label} (${a.owner})`,onclick:()=>{b({T:a.id})}});return null} +function Zc({a:{ia:a},config:b,o:c,oa:d}){c&&D(()=>Fc(c));const [e,l]=oa(!1),m=ha(()=>e?db("/static/minicraft/textures.json").then(k=>k.ok?k.json():null).catch(()=>null):Ya.resolve(null),[e],null);A("div[className=menu overlay]");return[H("h1",{innerText:e?"Y\u00fczeyler":"Ayarlar"}),H("center",null,[H("button",{innerText:c&&!e?"Oyuna geri d\u00f6n":"Geri",onclick:()=>{e?l(!1):c?(c.j=0,c.A=!1,Dc(c)):d(2)}})]),!e&&H("div[className=settings]",null,[H("button[innerText=Y\u00fczeyler...]",{onclick:()=> {l(!0)}}),H("label[innerText=\u00c7\u00f6z\u00fcn\u00fcrl\u00fck:]",null,[H("input[type=range][min=1][max=100][step=1]",{value:101-b.Y,onchange:k=>a({Y:101-Number(k.target.value)})})]),H("label[innerText=G\u00f6r\u00fc\u015f a\u00e7\u0131s\u0131:]",null,[H("input[type=range][min=1][max=180][step=1]",{value:b.Da,onchange:k=>a({Da:Number(k.target.value)})})]),H("label[innerText=G\u00f6r\u00fc\u015f mesafesi:]",null,[H("input[type=range][min=1][max=128][step=1]",{value:b.ga,onchange:k=>a({ga:Number(k.target.value)})})]), H("label[innerText=Piksel gruplamas\u0131:]",null,[H("input[type=range][min=1][max=8][step=1]",{value:b.xa,onchange:k=>a({xa:Number(k.target.value)})})]),H("label[innerText=Fare hassasiyeti:]",null,[H("input[type=range][min=1][max=15][step=1]",{value:b.ua,onchange:k=>a({ua:Number(k.target.value)})})]),H("button[innerText=Proje sayfas\u0131]",{onclick:()=>{open("//github.com/L3P3/minicraft")}})]),c&&!e&&H("center",null,[H("button[innerText=D\u00fcnyadan ayr\u0131l]",{onclick:()=>{d(2)}})]),e&&H("div[className=settings]", -null,[H("button[innerText=Sade]",{disabled:0===b.T,onclick:()=>{a({T:0})}}),m&&ra(Zc,m,{ia:a,current:b.T})])]}const ad=({I:{tb:a,value:b}})=>(A(a?"div[className=minor]":"div",{innerText:b}),null); -function bd({o:a,N:b}){const c=F({history:null,input:null});A("div[className=menu overlay terminal]",{onclick:d=>{d.target!==c.input&&c.input.focus()}});D(d=>{d&&pb(()=>c.history.scrollTop=1E9,0)},[b.length&&b[b.length-1].id]);return[F(H("div[className=toolbar]",null,[H("button[innerText=\u274c]",{onclick:()=>{a.j=0;a.A=!1;Ec(a)}})])),H("div[className=history]",{R:F(d=>{c.history=d})},[ra(ad,b)]),F(H("input[enterkeyhint=send][mozactionhint=send][name=message][required]",{onkeydown:d=>{const e=d.keyCode; -d=d.target;13===e?(Rc(a,d.value),d.value=""):27===e&&(a.j=0,a.A=!1,Ec(a))},R:d=>{c.input=d;pb(()=>d.focus(),0)}}))]}const cd=[["pick",-2],["up",-14],["down",-15],["E",69],["T",84],["F1",112],["F3",114],["...",27]],dd=[["up",-10],["down",-11],["left",-12],["right",-13],["center",-1]],ed=[["up",-16],["down",-17],["left",-18],["right",-19],["center",-3]]; -function fd({o:a}){const b=a.X,c=([d,e])=>H("div",{D:{code:e},F:{button:!0,[d]:!0,active:b.has(e)}});A("div[className=touch]",F({ontouchstart:d=>{let {code:e}=d.target.dataset;if(null!=e&&Oc(a,e=P(e),!0)){const l=d.changedTouches[0].identifier,m=k=>{k.changedTouches[0].identifier===l&&(ub("touchend",m),Oc(a,e,!1))};tb("touchend",m)}return!1}}));return[H("div[className=top]",null,cd.map(([d,e])=>H(`div[innerText=${d}]`,{D:{code:e},F:{button:!0,active:b.has(e)}}))),H("div[className=move]",null,dd.map(c)), -H("div[className=move sec]",null,ed.map(c))]} -function gd({account:a,a:b,config:c,frame:d,cb:e,oa:l}){const m=va(),k=xa.pointerLockElement===d,f=ja(()=>e.o=Fc(b,d,c,a));D(()=>{const g=h=>{if(0!==f.j)return!0;xa.pointerLockElement===d?Oc(f,-1-h.button,"mousedown"===h.type):Ec(f);return!1},p=h=>{if(xa.pointerLockElement===d){const q=f.config.ua*Aa/(Ja(f.Pa,f.Qa)*f.la);vb&&(f.ub=h.timeStamp);Mb(f.g,f.Ra=h.movementX*q,f.Sa=-h.movementY*q)}else f.mb=h.clientX,f.nb=h.clientY},v=h=>{b.Ja(!1);if(0===f.j&&!f.A&&5{d.removeEventListener("mousedown",g);d.removeEventListener("mouseup",g);d.removeEventListener("mousemove",p,z);d.removeEventListener("wheel",v,z);rb(f.bb);sb(f.Cb);hc(f.world,f.g);var h=f.u;yc.delete(h);sb(h.zb);e.o=null}});D(()=>{f.config=c;f.u&&(f.u.P=!0);const g=f.world;var p=Ha(Na(f.config.ga/16*2+2));if(g.K!== -p){var v=f.g;g.$&&hc(g,v);const z=1<<(g.K=p),h=g.$=[];for(let q=0;qu;++u)h.push({ja:!1,l:!1,x:q,y:u,z:C,Fa:0,Ta:0});p=z<{f.la=v;f.Pa=Ja(1,g);f.Qa=Ja(1,p);p=f.config.Y;g=Ha(f.Pa*f.la/p);p=Ha(f.Qa*f.la/p);if(g!==f.ya||p!==f.za)f.ya=g,f.za=p,f.u&&(f.u.P=!0,Ac(f.u))},[d.offsetWidth,d.offsetHeight,wa.devicePixelRatio||1,c.Y]);D(g=>{g||f.A||0!==f.j||(f.j= -1,vb&&f.Ra|f.Sa&&f.ub>m-100&&(Mb(f.g,-f.Ra,-f.Sa),f.Ra=f.Sa=0,f.u.P=!0));f.A=!g},[c.ka&&0===f.j||k]);D(g=>k&&g&&xa.exitPointerLock(),[f.A||0!==f.j]);D(()=>{if(f.world){if(f.ca&&!f.A){var g=f.g,p=M(5,.01*(m-f.ca));g.da-=.1*g.da*p;g.ea-=.1*g.ea*p;g.fa-=.1*g.fa*p;g.da+=(Ka(g.O)*g.Ua+La(g.O)*g.Va)*p;g.ea+=g.ib*p;g.fa+=(-La(g.O)*g.Ua+Ka(g.O)*g.Va)*p;Mb(g,g.vb*p*1.5,g.wb*p*1.5);g.G+=g.da*p;g.H+=g.ea*p;g.J+=g.fa*p}if(f.u){g=f.u;++g.$a;p=g.Wa;var v=g.jb;const aa=g.kb,la=g.o,Ra=la.config,zb=la.ta,y=la.g,O= -la.ya,sa=la.za,R=la.world;var z=0;if(!la.A||g.P){g.P=!1;z=Ra.xa;const kd=Ra.ga;var h=y.O,q=y.ha;const ld=y.aa,md=y.ba,Sa=y.l;var C=y.G,u=y.H,E=y.J;const nd=zb?y.V:-1,od=R.Z;var S=R.K;const pd=null!==wc;var t=1/O,r=1/sa;const ma=O>>1,ta=sa>>1,kc=M(O,sa),lc=32T)var I=V;else if(0===V)I=0===ea?0:1===ea?T:ea-1,Ea=1===ea;else if(V=O)break a;Ea=!1}var W=(I-ma)*qd;da=B+mc*W;const rc=Da-h*W,td=pc;W=16757124;let ib=1,sc=kd,jb=0;2=== -Sa&&0Ab;++Ab){const X=(td+Ab)%3;let fa=rc;var J=rd;0===X&&(fa=da,J=r);1===X&&(fa=qc,J=x);var ua=-1/fa;0fa|0),Wa=u+ya*J-(1===X&0>fa|0),Xa=E+ua*J-(2===X&0>fa|0);J*=tc;for(let Bb,Cb,Db,Y;JWa){if(0>ya)break}else if(65600<=Wa){if(0fa|X<<1,oc=J);if(pd){--Y;1===X?6===Y?Y=25:13===Y?Y=4:1===Y&&0>>24)continue;W=uc&16777215}else W=Hb[Y];sc=J;ib=(0===X?.8:2===X?.6:0>16)*ib,255)<<16|M((W>>8&255)*ib,255)<<8|M((W&255)*ib,255);if(da=(Ea=Ea&&(Ua!==ta||Ima+T))&& -na===W){if(6T)break;aa[++I]=na;if(4>T)break;aa[++I]=na;if(5>T)break;aa[++I]=na;if(6>T)break;aa[++I]=na;break}if(Ea||0===I)na=W;aa[Ta+I]=W}Ta+=O}zb&&!lc&&(aa[O*ta+ma]^=16777215)}p.putImageData(v,0,0);zb&&lc&&(v=M(Ha(.05*kc),8),p.fillRect(ma-v,ta-1,v<<1,2),p.fillRect(ma-1,ta-v,2,v-1),p.fillRect(ma-1,ta+1,2,v-1))}g.ob=la.Ka?`minicraft ${"0.11.3"} ${L(g.qb).toString().padStart(2,"\u00a0")} fps, T: ${L(24*R.eb).toString().padStart(2, -"0")}:${L(24*R.eb%1*60).toString().padStart(2,"0")}; ${la.A&&500>m%1E3?"":R.time} -R: ${O}x${sa} (x${Ra.Y}), D: ${Ra.ga}, C: ${R.sa}/${R.Ia.length}, M: ${64*wb(1<<4+R.K)>>10}k +null,[H("button[innerText=Sade]",{disabled:0===b.T,onclick:()=>{a({T:0})}}),m&&qa(Yc,m,{ia:a,current:b.T})])]}const $c=({I:{tb:a,value:b}})=>(A(a?"div[className=minor]":"div",{innerText:b}),null); +function ad({o:a,N:b}){const c=F({history:null,input:null});A("div[className=menu overlay terminal]",{onclick:d=>{d.target!==c.input&&c.input.focus()}});D(d=>{d&&ob(()=>c.history.scrollTop=1E9,0)},[b.length&&b[b.length-1].id]);return[F(H("div[className=toolbar]",null,[H("button[innerText=\u274c]",{onclick:()=>{a.j=0;a.A=!1;Dc(a)}})])),H("div[className=history]",{R:F(d=>{c.history=d})},[qa($c,b)]),F(H("input[enterkeyhint=send][mozactionhint=send][name=message][required]",{onkeydown:d=>{const e=d.keyCode; +d=d.target;13===e?(Qc(a,d.value),d.value=""):27===e&&(a.j=0,a.A=!1,Dc(a))},R:d=>{c.input=d;ob(()=>d.focus(),0)}}))]}const bd=[["pick",-2],["up",-14],["down",-15],["E",69],["T",84],["F1",112],["F3",114],["...",27]],cd=[["up",-10],["down",-11],["left",-12],["right",-13],["center",-1]],dd=[["up",-16],["down",-17],["left",-18],["right",-19],["center",-3]]; +function ed({o:a}){const b=a.X,c=([d,e])=>H("div",{D:{code:e},F:{button:!0,[d]:!0,active:b.has(e)}});A("div[className=touch]",F({ontouchstart:d=>{let {code:e}=d.target.dataset;if(null!=e&&Nc(a,e=P(e),!0)){const l=d.changedTouches[0].identifier,m=k=>{k.changedTouches[0].identifier===l&&(tb("touchend",m),Nc(a,e,!1))};sb("touchend",m)}return!1}}));return[H("div[className=top]",null,bd.map(([d,e])=>H(`div[innerText=${d}]`,{D:{code:e},F:{button:!0,active:b.has(e)}}))),H("div[className=move]",null,cd.map(c)), +H("div[className=move sec]",null,dd.map(c))]} +function fd({account:a,a:b,config:c,frame:d,cb:e,oa:l}){const m=ua(),k=wa.pointerLockElement===d,f=ia(()=>e.o=Ec(b,d,c,a));D(()=>{const h=g=>{if(0!==f.j)return!0;wa.pointerLockElement===d?Nc(f,-1-g.button,"mousedown"===g.type):Dc(f);return!1},p=g=>{if(wa.pointerLockElement===d){const r=f.config.ua*za/(Ia(f.Pa,f.Qa)*f.la);ub&&(f.ub=g.timeStamp);Lb(f.g,f.Ra=g.movementX*r,f.Sa=-g.movementY*r)}else f.mb=g.clientX,f.nb=g.clientY},v=g=>{b.Ja(!1);if(0===f.j&&!f.A&&5{d.removeEventListener("mousedown",h);d.removeEventListener("mouseup",h);d.removeEventListener("mousemove",p,z);d.removeEventListener("wheel",v,z);qb(f.bb);rb(f.Cb);gc(f.world,f.g);var g=f.u;xc.delete(g);rb(g.zb);e.o=null}});D(()=>{f.config=c;f.u&&(f.u.P=!0);const h=f.world;var p=Ga(Ma(f.config.ga/16*2+2));if(h.K!== +p){var v=f.g;h.$&&gc(h,v);const z=1<<(h.K=p),g=h.$=[];for(let r=0;ru;++u)g.push({ja:!1,l:!1,x:r,y:u,z:C,Fa:0,Ta:0});p=z<{f.la=v;f.Pa=Ia(1,h);f.Qa=Ia(1,p);p=f.config.Y;h=Ga(f.Pa*f.la/p);p=Ga(f.Qa*f.la/p);if(h!==f.ya||p!==f.za)f.ya=h,f.za=p,f.u&&(f.u.P=!0,zc(f.u))},[d.offsetWidth,d.offsetHeight,va.devicePixelRatio||1,c.Y]);D(h=>{h||f.A||0!==f.j||(f.j= +1,ub&&f.Ra|f.Sa&&f.ub>m-100&&(Lb(f.g,-f.Ra,-f.Sa),f.Ra=f.Sa=0,f.u.P=!0));f.A=!h},[c.ka&&0===f.j||k]);D(h=>k&&h&&wa.exitPointerLock(),[f.A||0!==f.j]);D(()=>{if(f.world){if(f.ca&&!f.A){var h=f.g,p=M(5,.01*(m-f.ca));h.da-=.1*h.da*p;h.ea-=.1*h.ea*p;h.fa-=.1*h.fa*p;h.da+=(Ja(h.O)*h.Ua+Ka(h.O)*h.Va)*p;h.ea+=h.ib*p;h.fa+=(-Ka(h.O)*h.Ua+Ja(h.O)*h.Va)*p;Lb(h,h.vb*p*1.5,h.wb*p*1.5);h.G+=h.da*p;h.H+=h.ea*p;h.J+=h.fa*p}if(f.u){h=f.u;++h.$a;p=h.Wa;var v=h.jb;const Z=h.kb,ka=h.o,Qa=ka.config,yb=ka.ta,y=ka.g,O= +ka.ya,ra=ka.za,R=ka.world;var z=0;if(!ka.A||h.P){h.P=!1;var g=Qa.xa;const jd=Qa.ga;var r=y.O,C=y.ha;const kd=y.aa,ld=y.ba,Ra=y.l;var u=y.G;z=y.H;var E=y.J;const md=yb?y.V:-1,nd=R.Z;var S=R.K;const od=null!==vc;var t=1/O,q=1/ra;const la=O>>1,sa=ra>>1,jc=M(O,ra),kc=32z||64<=z?0:$b(R,u&Ba,q&63,E&Ba);if(2!==Ra&&0g)var I=U;else if(0===U)I=0===da?0:1===da?g:da-1,Da=1===da;else if(U=O)break a;Da=!1}var V=(I-la)*pd;ca=B+lc*V;const qc=Ca-r*V,td=oc;V=16757124; +let hb=1,rc=jd,ib=0;2===Ra&&0zb;++zb){const W=(td+zb)%3;let ea=qc;var J=rd;0===W&&(ea=ca,J=x);1===W&&(ea=pc,J=qd);var ta=-1/ea;0ea|0),Va=q+xa*J-(1===W&0>ea|0),Wa=E+ta*J-(2===W&0>ea|0);J*=sc;for(let Ab,Bb,Cb,X;JVa){if(0>xa)break}else if(65600<=Va){if(0ea|W<<1,nc=J);if(od){--X;1===W?6===X?X=25:13===X?X=4:1===X&&0>>24)continue;V=tc&16777215}else V=Gb[X];rc=J;hb=(0===W?.8:2===W?.6:0>16)*hb,255)<<16|M((V>>8&255)*hb,255)<<8|M((V&255)*hb,255);if(ca=(Da=Da&&(Ta!== +sa||Ila+g))&&ma===V){if(6g)break;Z[++I]=ma;if(4>g)break;Z[++I]=ma;if(5>g)break;Z[++I]=ma;if(6>g)break;Z[++I]=ma;break}if(Da||0===I)ma=V;Z[Sa+I]=V}Sa+=O}yb&&!kc&&(Z[O*sa+la]^=16777215)}p.putImageData(v,0,0);yb&&kc&&(v=M(Ga(.05*jc),8),p.fillRect(la-v,sa-1,v<<1,2),p.fillRect(la-1,sa-v,2,v-1),p.fillRect(la-1,sa+1,2,v-1))}h.ob=ka.Ka?`minicraft ${"0.11.4"} ${L(h.qb).toString().padStart(2,"\u00a0")} fps, T: ${L(24*R.eb).toString().padStart(2, +"0")}:${L(24*R.eb%1*60).toString().padStart(2,"0")}; ${ka.A&&500>m%1E3?"":R.time} +R: ${O}x${ra} (x${Qa.Y}), D: ${Qa.ga}, C: ${R.sa}/${R.Ia.length}, M: ${64*vb(1<<4+R.K)>>10}k E: 0/0, M: ${y.l}, I: ${z} Position: ${y.G.toFixed(2)} ${y.H.toFixed(2)} ${y.J.toFixed(2)} -Angle: ${(y.O*Fa).toFixed(2)} ${(y.ha*Fa).toFixed(2)} -Focus: ${0>y.V?"":y.aa+" "+y.V+" "+y.ba+" "+"WEBTSNI"[y.pa]+": "+Fb[ac(R,y.aa,y.V,y.ba)]} -Chunk abs: ${L(y.G)>>4} ${L(y.J)>>4} ${L(y.H)>>4} rel: ${R.La} ${R.Na} ${R.Ma}`:""}}f.ca=m},[m]);oa();const w=F({fb:1});c.T&&(w.fb=c.T);return[H("canvas",{R:F(g=>{f.u=Bc(f,g)})}),f.ta&&2!==f.j&&G(Yc,{N:f.N,na:m}),f.u&&f.Ka&&H("div[className=diagnostics]",{innerText:f.u.ob}),c.ka&&G(fd,{o:f,ab:f.ab}),f.ta&&3!==f.j&&2!==f.g.l&&G(Uc,{g:f.g,M:w.fb,na:m}),3===f.j&&G(Wc,{o:f,M:w.fb,na:m}),1===f.j&&G($c,{a:b,config:c,o:f,oa:l}),2===f.j&&G(bd,{o:f,N:f.N})]} -function hd({I:a,Db:b,Eb:c,Fb:d}){A("div",{F:{selected:a===c},onclick:()=>{d(a.id)}});c=`${a.local?"L":"_"}${a.local&&a.remote?a.local>a.remote?">":a.local{l(m()+1)}),f=F({value:null}),w=ia(()=>ba(function*(){try{const t=!f.value&&!e,r=yield eb(`${"/api/minicraft/"}world?what=${t?"initial":"meta_all"}`);if(!r.ok)throw Error("Ba\u011flant\u0131 hatas\u0131.");const x=yield r.json();if(!t)return x;if("0.11.3"!==x.version_latest)return location.reload(!0),null;ca();b.xb(x.account);return x.worlds}catch(t){return alert("D\u00fcnya listesini y\u00fcklemede hata olu\u015ftu: "+ -t.message),[]}}()),[e],null),g=ja(()=>{w&&(f.value=w);const t=[];f.value&&t.push(...f.value.map(r=>({account_name:r.account_name,hash:r.hash,id:r.id,label:r.label,local:0,public:r.public,remote:r.modified,writable:r.writable})));for(const r of c.worlds){const x=t.find(B=>B.id===r.id);if(x){const B=x.local=r.mod_l,Da=x.remote,da=r.mod_r;B>da&&Da>da&&(confirm('\u00c7ak\u0131\u015fma! "'+r.label+'" isimli d\u00fcnya burada ve ba\u015fka bir yerde de\u011fi\u015ftirildi.\nOK: Sunucudaki versiyonu al ('+ -yb(Da,!1)+") | \u0130ptal: Yerel versiyonu sakla ("+yb(B,!1)+")")?b.U(r.id,{mod_l:x.local=da}):b.U(r.id,{mod_r:x.remote=da}))}else 1Ja(x.local,x.remote)-Ja(r.local,r.remote))},[w,c.worlds]),[p,v,z]=pa(c.Ea), -h=ja(()=>g.find(t=>t.id===p)||null,[p,g]),q=ja(()=>{let t,r;return null!=(r=null==g?void 0:null==(t=g.find(x=>0{if(null!==q){var t=!1,r=g.find(x=>x.id===q);if(r.localx.json()).then(x=>{if(!t)return Wb(q,x).then(()=>{b.U(q,{mod_l:r.remote,mod_r:r.remote})})}).catch(x=>{t||("QuotaExceededError"===x.name?(alert("Yetersiz depolama alan\u0131!"),b.hb(q),Xb(q)): -alert("D\u00fcnyay\u0131 indirirken hata olu\u015ftu: "+x.message))});else{if(!r.writable){b.U(q,{mod_l:c.worlds.find(B=>B.id===q).mod_r});return}let x=q;(1===r.remote?eb("/api/minicraft/world",Object.assign({},id,{body:$a({what:"meta",label:r.label})})).then(B=>{if(!B.ok)throw Error(403===B.status?"\u0130zniniz yok. Giri\u015f yapt\u0131n\u0131z m\u0131?":"Ba\u011flant\u0131 hatas\u0131.");return B.json()}).then(B=>{x=B.id}):Za.resolve()).then(()=>{if(t)throw null;return Vb(q)}).then(B=>{if(t)throw null; -return eb("/api/minicraft/world",Object.assign({},id,{body:$a({what:"data",world:x,data:B})}))}).then(B=>{if(!B.ok)throw Error(403===B.status?"\u0130zniniz yok. Giri\u015f yapt\u0131n\u0131z m\u0131?":"Ba\u011flant\u0131 hatas\u0131.");return B.json()}).then(B=>{ca();x===q?b.U(q,{mod_l:B.modified,mod_r:B.modified}):(Yb(q,x),b.hb(q),b.gb({id:x,label:r.label,mod_l:B.modified,mod_r:B.modified}),t||z()!==q||v(x));t||k();ha()}).catch(B=>{t||(alert("D\u00fcnyay\u0131 y\u00fcklerken hata olu\u015ftu: "+ -B.message),ca(),b.U(q,{mod_r:0}),ha())})}return()=>{t=!0}}},[q]);const [C,u]=pa(!1);h||u(!1);const [E,S]=pa(!1);return[H("h1[innerText=D\u00fcnyalar]"),H("button[innerText=Yenile][style=position:absolute;left:0;top:0;height:2rem][title=Listeyi yenile]",{disabled:!w,onclick:k}),H("button[style=position:absolute;right:0;top:0;height:2rem]",{disabled:0{location.href="/account?redir=minicraft"}}),H("div[className=worlds]",null,[ra(hd,g,{Hb:e, -Db:q,Eb:h,Fb:v})]),H("center",null,[H("button[innerText=A\u00e7]",{disabled:!h||!h.local||h.remote>h.local,onclick:()=>{ca();b.ia({Ea:h.id});d(0);ha()},title:h?h.local?h.remote>h.local?"D\u00fcnya hala y\u00fckleniyor!":"Se\u00e7ili d\u00fcnyaya kat\u0131l":"D\u00fcnya hen\u00fcz indirilmedi!":"Hi\u00e7bir d\u00fcnya se\u00e7ilmedi!"}),H("button[innerText=D\u00fcnya...]",{disabled:!h||C,onclick:()=>{u(!0)},title:h?"D\u00fcnya ayarlar\u0131n\u0131 g\u00f6ster":"Hi\u00e7bir d\u00fcnya se\u00e7ilmedi!"})]), -H("hr"),H("center",null,[H("button[innerText=Yeni d\u00fcnya]",{onclick:()=>{const t=prompt("Yeni d\u00fcnya'n\u0131n ad\u0131:\n(maks. 16 karakter)","Yeni d\u00fcnya");t&&(16r.id))-1,label:t,mod_l:Qa.now(),mod_r:0}))}}),H("button[innerText=Ayarlar]",{onclick:()=>{d(1)}})]),H("center",null,[H("small[innerText=L3P3 taraf\u0131ndan 0.11.3 s\u00fcr\u00fcm\u00fc]")]),C&&h&&H("div",{F:{"menu overlay advanced":!0,busy:E},onclick:t=> -{"menu overlay advanced"===t.target.className&&u(!1)}},[H("div[className=window]",null,[H("h2",{innerText:`"${h.label}"`,title:h.id}),H("table",null,[!!h.account_name&&H("tr",null,[H("td[innerText=Sahip:]"),H("td",{innerText:h.account_name})]),H("tr",null,[H("td[innerText=De\u011fi\u015ftirildi:]"),H("td",{innerText:yb(Ja(h.local,h.remote),!1)})])]),H("center",null,[H("button[innerText=Yeniden adland\u0131r]",{disabled:E||!h.writable,onclick:()=>{const t=prompt("D\u00fcnya'n\u0131n yeni ad\u0131:\n(maks. 16 karakter)", -h.label);!t||t===h.label||16{if(!r.ok)throw Error(403===r.status?"\u0130zniniz yok. Giri\u015f yapt\u0131n\u0131z m\u0131?":"Ba\u011flant\u0131 hatas\u0131.");return r.json()}).catch(r=>{alert("D\u00fcnyay\u0131 d\u00fczenlerken hata olu\u015ftu: "+r.message)}).then(()=>{S(!1)})))},title:h.writable?"D\u00fcnyay\u0131 de\u011fi\u015ftir": -"\u0130zniniz yok!"}),H("button",{disabled:E||!h.local&&!h.writable,innerText:h.local?"Sil (yerel)":"Sil",onclick:()=>{confirm('"'+h.label+'" isimli d\u00fcnya ger\u00e7ekten silinsin mi?')&&(h.local?(b.hb(h.id),Xb(h.id)):(S(!0),eb("/api/minicraft/world",{method:"DELETE",headers:{"Content-Type":"application/json"},body:$a({what:"world",world:h.id})}).then(t=>{if(!t.ok)throw Error(403===t.status?"\u0130zniniz yok. Giri\u015f yapt\u0131n\u0131z m\u0131?":"Ba\u011flant\u0131 hatas\u0131.");ca();v(null); -u(!1);k();S(!1);ha();return t.json()}).catch(t=>{alert("D\u00fcnyay\u0131 silerken hata olu\u015ftu: "+t.message);S(!1)})))},title:h.local||h.writable?"D\u00fcnyayl\u0131 sil":"\u0130zniniz yok!"})]),H("center",null,[H("button",{disabled:E||!h.remote||!h.writable,innerText:`${"Genel"}: ${h.public?"Evet":"Hay\u0131r"}`,onclick:()=>{S(!0);eb("/api/minicraft/world",{method:"POST",headers:{"Content-Type":"application/json"},body:$a({what:"meta",world:h.id,public:!h.public})}).then(t=>{if(!t.ok)throw Error(403=== -t.status?"\u0130zniniz yok. Giri\u015f yapt\u0131n\u0131z m\u0131?":"Ba\u011flant\u0131 hatas\u0131.");ca();k();S(!1);ha();return t.json()}).catch(t=>{alert("D\u00fcnyay\u0131 d\u00fczenlerken hata olu\u015ftu: "+t.message);S(!1)})},title:h.remote?h.writable?h.public?"D\u00fcnyay\u0131 yay\u0131ndan kald\u0131r":"D\u00fcnyay\u0131 yay\u0131nla":"\u0130zniniz yok!":"D\u00fcnya hen\u00fcz y\u00fcklenmedi!"}),H("button",{disabled:E||!w||0{h.local?h.remote||b.U(h.id,{mod_r:1}):b.gb({id:h.id,label:h.label,mod_l:1,mod_r:h.remote})},title:w?h.local?h.remote?"D\u00fcnya hem cihaz\u0131n\u0131zda hem de sunucuda mevcut!":a.rank?"D\u00fcnyay\u0131 sunucuya y\u00fckle":"Giri\u015f yap\u0131lmam\u0131\u015f!":"D\u00fcnyay\u0131 sunucudan indir":"Liste y\u00fckleniyor!"})])])])]} -function ud({account:a,a:b,config:c,cb:d}){const [e,l]=pa(2),m=A("div[className=game]");return[(2===e||1===e)&&G(jd,{account:a,a:b,config:c,oa:l}),1===e&&G($c,{a:b,config:c,o:null,oa:l}),0===e&&G(gd,{account:a,a:b,config:c,frame:m,cb:d,oa:l})]} -function vd(){const [a,b]=ka(Eb),c=F({o:null,sb:0});D(()=>{let k=!1;onbeforeunload=onunload=onpagehide=onblur=()=>{k||(k=!0,c.o&&Gc(c.o),b.Xa())};onpageshow=onfocus=()=>{k=!1};setInterval(()=>(b.Xa(),!Pa&&bb("minicraft.lock",Qa.now())),500);tb("touchend",f=>{c.sb=f.timeStamp},!0)});const d=F(k=>{if("INPUT"===k.target.tagName||!c.o)return!0;b.Ja(!1);Oc(c.o,k.keyCode,"keydown"===k.type);return!1}),e=F(()=>{b.Ja(!0)}),l=F(k=>{999{m?(tb("mousedown",l, -!0),tb("mouseup",l,!0),ub("touchstart",e,!0)):(ub("mousedown",l,!0),ub("mouseup",l,!0),tb("touchstart",e,!0))},[m]);D(zc,[a.config.T]);A("",{onkeydown:d,onkeyup:d,oncontextmenu:xb,ondragstart:xb});return[G(ud,{account:a.account,a:b,config:a.config,cb:c})]}function wd(){close();return[H("h1[innerText=minicraft zaten \u00e7al\u0131\u015f\u0131yor!]")]} -if(window.SSR)qa(vd);else if(Pa){const a=new Pa("minicraft.lock"),b=pb(()=>{qa(vd)},100);a.addEventListener("message",c=>{"yes"===c.data?(rb(b),a.close(),qa(wd)):(a.postMessage("yes"),focus())});a.postMessage("anyone there?")}else{const a=P(N.getItem("minicraft.lock")),b=Qa.now()-1E3;a{qa(P(N.getItem("minicraft.lock"))===a?vd:wd)},a-b)}; +Angle: ${(y.O*Ea).toFixed(2)} ${(y.ha*Ea).toFixed(2)} +Focus: ${0>y.V?"":y.aa+" "+y.V+" "+y.ba+" "+"WEBTSNI"[y.pa]+": "+Eb[$b(R,y.aa,y.V,y.ba)]} +Chunk abs: ${L(y.G)>>4} ${L(y.J)>>4} ${L(y.H)>>4} rel: ${R.La} ${R.Na} ${R.Ma}`:""}}f.ca=m},[m]);na();const w=F({fb:1});c.T&&(w.fb=c.T);return[H("canvas",{R:F(h=>{f.u=Ac(f,h)})}),f.ta&&2!==f.j&&G(Xc,{N:f.N,na:m}),f.u&&f.Ka&&H("div[className=diagnostics]",{innerText:f.u.ob}),c.ka&&G(ed,{o:f,ab:f.ab}),f.ta&&3!==f.j&&2!==f.g.l&&G(Tc,{g:f.g,M:w.fb,na:m}),3===f.j&&G(Vc,{o:f,M:w.fb,na:m}),1===f.j&&G(Zc,{a:b,config:c,o:f,oa:l}),2===f.j&&G(ad,{o:f,N:f.N})]} +function gd({I:a,Db:b,Eb:c,Fb:d}){A("div",{F:{selected:a===c},onclick:()=>{d(a.id)}});c=`${a.local?"L":"_"}${a.local&&a.remote?a.local>a.remote?">":a.local{l(m()+1)}),f=F({value:null}),w=ha(()=>aa(function*(){try{const t=!f.value&&!e,q=yield db(`${"/api/minicraft/"}world?what=${t?"initial":"meta_all"}`);if(!q.ok)throw Error("Ba\u011flant\u0131 hatas\u0131.");const x=yield q.json();if(!t)return x;if("0.11.4"!==x.version_latest)return location.reload(!0),null;ba();b.xb(x.account);return x.worlds}catch(t){return alert("D\u00fcnya listesini y\u00fcklemede hata olu\u015ftu: "+ +t.message),[]}}()),[e],null),h=ia(()=>{w&&(f.value=w);const t=[];f.value&&t.push(...f.value.map(q=>({account_name:q.account_name,hash:q.hash,id:q.id,label:q.label,local:0,public:q.public,remote:q.modified,writable:q.writable})));for(const q of c.worlds){const x=t.find(B=>B.id===q.id);if(x){const B=x.local=q.mod_l,Ca=x.remote,ca=q.mod_r;B>ca&&Ca>ca&&(confirm('\u00c7ak\u0131\u015fma! "'+q.label+'" isimli d\u00fcnya burada ve ba\u015fka bir yerde de\u011fi\u015ftirildi.\nOK: Sunucudaki versiyonu al ('+ +xb(Ca,!1)+") | \u0130ptal: Yerel versiyonu sakla ("+xb(B,!1)+")")?b.U(q.id,{mod_l:x.local=ca}):b.U(q.id,{mod_r:x.remote=ca}))}else 1Ia(x.local,x.remote)-Ia(q.local,q.remote))},[w,c.worlds]),[p,v,z]=oa(c.Ea), +g=ia(()=>h.find(t=>t.id===p)||null,[p,h]),r=ia(()=>{let t,q;return null!=(q=null==h?void 0:null==(t=h.find(x=>0{if(null!==r){var t=!1,q=h.find(x=>x.id===r);if(q.localx.json()).then(x=>{if(!t)return Vb(r,x).then(()=>{b.U(r,{mod_l:q.remote,mod_r:q.remote})})}).catch(x=>{t||("QuotaExceededError"===x.name?(alert("Yetersiz depolama alan\u0131!"),b.hb(r),Wb(r)): +alert("D\u00fcnyay\u0131 indirirken hata olu\u015ftu: "+x.message))});else{if(!q.writable){b.U(r,{mod_l:c.worlds.find(B=>B.id===r).mod_r});return}let x=r;(1===q.remote?db("/api/minicraft/world",Object.assign({},hd,{body:Za({what:"meta",label:q.label})})).then(B=>{if(!B.ok)throw Error(403===B.status?"\u0130zniniz yok. Giri\u015f yapt\u0131n\u0131z m\u0131?":"Ba\u011flant\u0131 hatas\u0131.");return B.json()}).then(B=>{x=B.id}):Ya.resolve()).then(()=>{if(t)throw null;return Ub(r)}).then(B=>{if(t)throw null; +return db("/api/minicraft/world",Object.assign({},hd,{body:Za({what:"data",world:x,data:B})}))}).then(B=>{if(!B.ok)throw Error(403===B.status?"\u0130zniniz yok. Giri\u015f yapt\u0131n\u0131z m\u0131?":"Ba\u011flant\u0131 hatas\u0131.");return B.json()}).then(B=>{ba();x===r?b.U(r,{mod_l:B.modified,mod_r:B.modified}):(Xb(r,x),b.hb(r),b.gb({id:x,label:q.label,mod_l:B.modified,mod_r:B.modified}),t||z()!==r||v(x));t||k();fa()}).catch(B=>{t||(alert("D\u00fcnyay\u0131 y\u00fcklerken hata olu\u015ftu: "+ +B.message),ba(),b.U(r,{mod_r:0}),fa())})}return()=>{t=!0}}},[r]);const [C,u]=oa(!1);g||u(!1);const [E,S]=oa(!1);return[H("h1[innerText=D\u00fcnyalar]"),H("button[innerText=Yenile][style=position:absolute;left:0;top:0;height:2rem][title=Listeyi yenile]",{disabled:!w,onclick:k}),H("button[style=position:absolute;right:0;top:0;height:2rem]",{disabled:0{location.href="/account?redir=minicraft"}}),H("div[className=worlds]",null,[qa(gd,h,{Hb:e, +Db:r,Eb:g,Fb:v})]),H("center",null,[H("button[innerText=A\u00e7]",{disabled:!g||!g.local||g.remote>g.local,onclick:()=>{ba();b.ia({Ea:g.id});d(0);fa()},title:g?g.local?g.remote>g.local?"D\u00fcnya hala y\u00fckleniyor!":"Se\u00e7ili d\u00fcnyaya kat\u0131l":"D\u00fcnya hen\u00fcz indirilmedi!":"Hi\u00e7bir d\u00fcnya se\u00e7ilmedi!"}),H("button[innerText=D\u00fcnya...]",{disabled:!g||C,onclick:()=>{u(!0)},title:g?"D\u00fcnya ayarlar\u0131n\u0131 g\u00f6ster":"Hi\u00e7bir d\u00fcnya se\u00e7ilmedi!"})]), +H("hr"),H("center",null,[H("button[innerText=Yeni d\u00fcnya]",{onclick:()=>{const t=prompt("Yeni d\u00fcnya'n\u0131n ad\u0131:\n(maks. 16 karakter)","Yeni d\u00fcnya");t&&(16q.id))-1,label:t,mod_l:Pa.now(),mod_r:0}))}}),H("button[innerText=Ayarlar]",{onclick:()=>{d(1)}})]),H("center",null,[H("small[innerText=L3P3 taraf\u0131ndan 0.11.4 s\u00fcr\u00fcm\u00fc]")]),C&&g&&H("div",{F:{"menu overlay advanced":!0,busy:E},onclick:t=> +{"menu overlay advanced"===t.target.className&&u(!1)}},[H("div[className=window]",null,[H("h2",{innerText:`"${g.label}"`,title:g.id}),H("table",null,[!!g.account_name&&H("tr",null,[H("td[innerText=Sahip:]"),H("td",{innerText:g.account_name})]),H("tr",null,[H("td[innerText=De\u011fi\u015ftirildi:]"),H("td",{innerText:xb(Ia(g.local,g.remote),!1)})])]),H("center",null,[H("button[innerText=Yeniden adland\u0131r]",{disabled:E||!g.writable,onclick:()=>{const t=prompt("D\u00fcnya'n\u0131n yeni ad\u0131:\n(maks. 16 karakter)", +g.label);!t||t===g.label||16{if(!q.ok)throw Error(403===q.status?"\u0130zniniz yok. Giri\u015f yapt\u0131n\u0131z m\u0131?":"Ba\u011flant\u0131 hatas\u0131.");return q.json()}).catch(q=>{alert("D\u00fcnyay\u0131 d\u00fczenlerken hata olu\u015ftu: "+q.message)}).then(()=>{S(!1)})))},title:g.writable?"D\u00fcnyay\u0131 de\u011fi\u015ftir": +"\u0130zniniz yok!"}),H("button",{disabled:E||!g.local&&!g.writable,innerText:g.local?"Sil (yerel)":"Sil",onclick:()=>{confirm('"'+g.label+'" isimli d\u00fcnya ger\u00e7ekten silinsin mi?')&&(g.local?(b.hb(g.id),Wb(g.id)):(S(!0),db("/api/minicraft/world",{method:"DELETE",headers:{"Content-Type":"application/json"},body:Za({what:"world",world:g.id})}).then(t=>{if(!t.ok)throw Error(403===t.status?"\u0130zniniz yok. Giri\u015f yapt\u0131n\u0131z m\u0131?":"Ba\u011flant\u0131 hatas\u0131.");ba();v(null); +u(!1);k();S(!1);fa();return t.json()}).catch(t=>{alert("D\u00fcnyay\u0131 silerken hata olu\u015ftu: "+t.message);S(!1)})))},title:g.local||g.writable?"D\u00fcnyayl\u0131 sil":"\u0130zniniz yok!"})]),H("center",null,[H("button",{disabled:E||!g.remote||!g.writable,innerText:`${"Genel"}: ${g.public?"Evet":"Hay\u0131r"}`,onclick:()=>{S(!0);db("/api/minicraft/world",{method:"POST",headers:{"Content-Type":"application/json"},body:Za({what:"meta",world:g.id,public:!g.public})}).then(t=>{if(!t.ok)throw Error(403=== +t.status?"\u0130zniniz yok. Giri\u015f yapt\u0131n\u0131z m\u0131?":"Ba\u011flant\u0131 hatas\u0131.");ba();k();S(!1);fa();return t.json()}).catch(t=>{alert("D\u00fcnyay\u0131 d\u00fczenlerken hata olu\u015ftu: "+t.message);S(!1)})},title:g.remote?g.writable?g.public?"D\u00fcnyay\u0131 yay\u0131ndan kald\u0131r":"D\u00fcnyay\u0131 yay\u0131nla":"\u0130zniniz yok!":"D\u00fcnya hen\u00fcz y\u00fcklenmedi!"}),H("button",{disabled:E||!w||0{g.local?g.remote||b.U(g.id,{mod_r:1}):b.gb({id:g.id,label:g.label,mod_l:1,mod_r:g.remote})},title:w?g.local?g.remote?"D\u00fcnya hem cihaz\u0131n\u0131zda hem de sunucuda mevcut!":a.rank?"D\u00fcnyay\u0131 sunucuya y\u00fckle":"Giri\u015f yap\u0131lmam\u0131\u015f!":"D\u00fcnyay\u0131 sunucudan indir":"Liste y\u00fckleniyor!"})])])])]} +function ud({account:a,a:b,config:c,cb:d}){const [e,l]=oa(2),m=A("div[className=game]");return[(2===e||1===e)&&G(id,{account:a,a:b,config:c,oa:l}),1===e&&G(Zc,{a:b,config:c,o:null,oa:l}),0===e&&G(fd,{account:a,a:b,config:c,frame:m,cb:d,oa:l})]} +function vd(){const [a,b]=ja(Db),c=F({o:null,sb:0});D(()=>{let k=!1;onbeforeunload=onunload=onpagehide=onblur=()=>{k||(k=!0,c.o&&Fc(c.o),b.Xa())};onpageshow=onfocus=()=>{k=!1};setInterval(()=>(b.Xa(),!Oa&&ab("minicraft.lock",Pa.now())),500);sb("touchend",f=>{c.sb=f.timeStamp},!0)});const d=F(k=>{if("INPUT"===k.target.tagName||!c.o)return!0;b.Ja(!1);Nc(c.o,k.keyCode,"keydown"===k.type);return!1}),e=F(()=>{b.Ja(!0)}),l=F(k=>{999{m?(sb("mousedown",l, +!0),sb("mouseup",l,!0),tb("touchstart",e,!0)):(tb("mousedown",l,!0),tb("mouseup",l,!0),sb("touchstart",e,!0))},[m]);D(yc,[a.config.T]);A("",{onkeydown:d,onkeyup:d,oncontextmenu:wb,ondragstart:wb});return[G(ud,{account:a.account,a:b,config:a.config,cb:c})]}function wd(){close();return[H("h1[innerText=minicraft zaten \u00e7al\u0131\u015f\u0131yor!]")]} +if(window.SSR)pa(vd);else if(Oa){const a=new Oa("minicraft.lock"),b=ob(()=>{pa(vd)},100);a.addEventListener("message",c=>{"yes"===c.data?(qb(b),a.close(),pa(wd)):(a.postMessage("yes"),focus())});a.postMessage("anyone there?")}else{const a=P(N.getItem("minicraft.lock")),b=Pa.now()-1E3;a{pa(P(N.getItem("minicraft.lock"))===a?vd:wd)},a-b)}; diff --git a/app-uk.js b/app-uk.js index e9e305c..3d6f1f6 100644 --- a/app-uk.js +++ b/app-uk.js @@ -1,103 +1,103 @@ -function ba(a){function b(d){return a.next(d)}function c(d){return a.throw(d)}return new Promise(function(d,e){function l(m){m.done?d(m.value):Promise.resolve(m.value).then(b,c).then(l,e)}l(a.next())})} -const n=lui,ca=n.defer,ha=n.defer_end,ia=n.hook_async,A=n.hook_dom,D=n.hook_effect,ja=n.hook_memo,ka=n.hook_model,oa=n.hook_rerender,pa=n.hook_state,F=n.hook_static,qa=n.init,G=n.node,H=n.node_dom,ra=n.node_map,va=n.now,wa=window,xa=document,za=navigator,K=Math,Aa=K.PI,Ba=.5*Aa,Fa=180/Aa,Ga=K.random,L=K.floor,Ha=K.ceil,Ia=K.round,M=K.min,Ja=K.max,Ka=K.cos,La=K.sin,Ma=K.sqrt,Na=K.log2,Oa=String.fromCharCode,Pa=BroadcastChannel,Qa=Date,Ya=JSON,Za=Promise,$a=Ya.stringify,ab=Ya.parse,N=localStorage,bb= -N.setItem.bind(N),cb=N.removeItem.bind(N),db=wa.indexedDB,eb=fetch,fb=Uint8Array,gb=Uint32Array,hb=Set,lb=Map,P=Number,mb=Object,nb=mb.keys,ob=mb.entries,pb=setTimeout,qb=setInterval,rb=clearTimeout,sb=clearInterval,tb=addEventListener,ub=removeEventListener,vb=za.userAgent.includes("WebKit"),wb=a=>a*a,xb=()=>!1,yb=(a,b)=>{const c=new Qa;a=new Qa(a);var d=c-a;if(59E3>d)return Ia(d/1E3)+"s";if(3E6>d)return Ia(d/6E4)+"m";d=a.getFullYear();const e=a.getMonth(),l=a.getDate();let m="";d"minicraft.world."+b.id));for(const b of nb(N))b.startsWith("minicraft.world.")&&!a.has(b.split(":")[0])&&cb(b)} -const Eb={init:()=>{let a=!1;var b={ka:!1,xa:1,ua:3,Y:4,T:1,Da:120,ga:64,Ea:0,worlds:[]};if(Q){let c=Q.pixel_grouping;null!=c&&(b.xa=c);null!=(c=Q.mouse_sensitivity)&&(b.ua=c);b.Y=Q.resolution_scaling;null!=(c=Q.textures)?b.T=c:b.T=Q.flag_textures?1:0;b.Da=Q.view_angle;b.ga=Q.view_distance;null!=(c=Q.world_last)&&(b.Ea=c);null!=(c=Q.worlds)?b.worlds=c:N.getItem("minicraft.world.0:meta")&&(b.worlds[0]={id:0,label:(prompt("\u0411\u0443\u0432 \u0437\u043d\u0430\u0439\u0434\u0435\u043d \u0431\u0435\u0437 \u043d\u0430\u0437\u0432\u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0438\u0439 \u0441\u0432\u0456\u0442. \u042f\u043a \u0439\u043e\u0433\u043e \u043d\u0430\u0437\u0432\u0430\u0442\u0438?", -"")||"\u041d\u0435\u0434\u0456\u0439\u0441\u043d\u0438 \u0441\u0432\u0456\u0442").substring(0,16),mod_l:Qa.now(),mod_r:0},a=!0);Q=null}b={account:{label:"",rank:0},config:b,Ya:b};return a?(b.Ya=null,Eb.Xa(b)):b},Xa:a=>{const b=a.config;if(b===a.Ya)return a;bb("minicraft.config",$a({version:"0.11.3",pixel_grouping:b.xa,mouse_sensitivity:b.ua,resolution_scaling:b.Y,textures:b.T,view_angle:b.Da,view_distance:b.ga,world_last:b.Ea,worlds:b.worlds}));return Object.assign({},a,{Ya:b})},xb:(a,b)=>Object.assign({}, -a,{account:b}),Gb:(a,b)=>Eb.ia(a,b(a.config)),ia:(a,b)=>Object.assign({},a,{config:Object.assign({},a.config,b)}),Ja:(a,b)=>a.config.ka===b?a:Eb.ia(a,{ka:b}),gb:(a,b)=>Object.assign({},a,{config:Object.assign({},a.config,{worlds:[...a.config.worlds,b]})}),hb:(a,b)=>Object.assign({},a,{config:Object.assign({},a.config,{worlds:a.config.worlds.filter(c=>c.id!==b)})}),U:(a,b,c)=>Object.assign({},a,{config:Object.assign({},a.config,{worlds:a.config.worlds.map(d=>d.id===b?Object.assign({},d,c):d)})})}, -Fb="air stone grass dirt cobble planks bedrock log leaves bricks wool sand gravel glass bookshelf obsidian stone_bricks sandstone lapis_block iron_block gold_block diamond_block emerald_block redstone_block quartz_block".split(" "),Gb="\u041f\u043e\u0432\u0456\u0442\u0440\u044f;\u041a\u0430\u043c\u0456\u043d\u044c;\u0411\u043b\u043e\u043a \u0442\u0440\u0430\u0432\u0438;\u0417\u0435\u043c\u043b\u044f;\u0411\u0443\u0442\u043e\u0432\u0438\u0439 \u043a\u0430\u043c\u0456\u043d\u044c;\u0414\u043e\u0448\u043a\u0430;\u041a\u043e\u0440\u0456\u043d\u043d\u0430 \u043f\u043e\u0440\u043e\u0434\u0430;\u041a\u043e\u043b\u043e\u0434\u0430;\u041b\u0438\u0441\u0442\u044c\u044f;\u041a\u0438\u0440\u043f\u0438\u0447\u0438;\u0428\u0435\u0440\u0441\u0442\u044c;\u041f\u0456\u0441\u043e\u043a;\u0413\u0440\u0430\u0432\u0456\u0439;\u0421\u0442\u0435\u043a\u043b\u043e;\u041a\u043d\u0438\u0436\u043d\u0430 \u0448\u0430\u0444\u0430;\u041e\u0431\u0441\u0438\u0434\u0456\u0430\u043d;\u041a\u0430\u043c\u0435\u043d\u043d\u0438\u0439 \u043a\u0438\u0440\u043f\u0438\u0447;\u041f\u0456\u0441\u043a\u043e\u0432\u0438\u043a;\u0411\u043b\u043e\u043a \u043b\u0430\u0437\u0443\u0440\u0438\u0442\u0443;\u0417\u0430\u043b\u0456\u0437\u043d\u0438\u0439 \u0431\u043b\u043e\u043a;\u0417\u043e\u043b\u043e\u0442\u0438\u0439 \u0431\u043b\u043e\u043a;\u0410\u043b\u043c\u0430\u0437\u043d\u0438\u0439 \u0431\u043b\u043e\u043a;\u0421\u043c\u0430\u0440\u0430\u0433\u0434\u043e\u0432\u0438\u0439 \u0431\u043b\u043e\u043a;\u0420\u0435\u0434\u0441\u0442\u043e\u0443\u043d \u0431\u043b\u043e\u043a;\u041a\u0432\u0430\u0440\u0446\u043e\u0432\u0438\u0439 \u0431\u043b\u043e\u043a".split(";"), -Hb=[0,8487297,4305266,4349313,8092539,5342114,7039851,3561583,4172910,6384533,15526888,10671324,8092798,16447200,4151672,1970708,8092539,9686227,9126695,15198183,5567485,14541182,7920469,662956,14936813],Ib=(a,b=1,c=null)=>({amount:b,data:c,id:a}),Jb=(a,b,c=a.c.amount)=>{if(b.c)a.c.id===b.c.id?(c=M(c,b.W-b.c.amount),a.c.amount-=c,b.c.amount+=c,0>=a.c.amount&&(a.c=null)):!(a.c.amount<=c&&a.c.amount<=b.W&&b.c.amount<=a.W)||a.filter&&!a.filter(b.c.id)||b.filter&&!b.filter(a.c.id)||([b.c,a.c]=[a.c,b.c]); -else if(!b.filter||b.filter(a.c.id))a.c.amount<=c&&a.c.amount<=b.W?[b.c,a.c]=[a.c,b.c]:(c=M(c,b.W),a.c.amount-=c,b.c=Ib(a.c.id,c),0>=a.c.amount&&(a.c=null))},Kb=(a,b)=>{for(const c of a)if(c.c&&c.c.id===b.id){const d=M(b.amount,c.W-c.c.amount);c.c.amount+=d;if(0>=(b.amount-=d))return null}for(const c of a)if(!c.c&&(!c.filter||c.filter(b.id)))if(a=M(b.amount,c.W),a<=b.amount){if(c.c=Ib(b.id,a),0>=(b.amount-=a))return null}else return c.c=b,null;return b},Lb=(a,b)=>({Ua:0,ib:0,Va:0,O:0,ha:0,pa:0,aa:0, -V:-1,ba:0,qa:null,ra:null,l:1,rb:20,B:Array(36).fill(null).map(()=>({c:null,filter:null,W:64})),Oa:0,name:b.label||"\u0413\u0440\u043e\u043a",G:a.Aa,H:a.Ba,J:a.Ca,vb:0,wb:0,L:0,ma:0,da:0,ea:0,fa:0}),Mb=(a,b,c)=>{a.O=(a.O+b+100*Aa)%(2*Aa);a.ha=Ja(-Ba,M(Ba,a.ha+c))},Nb=a=>{a+=32;33a?a++:38a?a+=2:43a?a+=3:126a?a+=37:55295a-(63743a?35:40a?34:34a?33:32),Qb=()=>{var a=Pb;const b=a.length,c=new lb, -d=u=>{g=g<<1|u&1;15===++p&&(w+=Nb(g),g=p=0)},e=()=>{for(let u=0;u{d(u);d(u>>1);d(u>>2);d(u>>3);d(u>>4);d(u>>5);d(u>>6);d(u>>7)},m=()=>{0===--z&&(z=1<{if(C)C=!1;else{let u=q.id;for(let E=0;E>E)}};let f=a[0],w="",g=0,p=2,v=2,z=2,h=2,q={id:h++,Ha:new lb},C=!0;l(f);c.set(f,q);for(let u=1;u{var b=Pb;if(!a)return null;const c=a.length,d=()=>{p+=(h>>--q&1)<v;)d();f=[p];e[2]=f;for(b[g++]=p;z<=c;){w=k;for(p=v=0;vv;)d();e[m]=[p];p=m++;0===--l&&(l=1<{d=d.target.result.createObjectStore("chunks",{keyPath:["world","coords"]});for(const e of nb(N))if(e.startsWith("minicraft.world.")){const [l,m]=e.substr(16).split(":");"meta"!==m&&(d.add({world:P(l),coords:m,data:N.getItem(e)}),cb(e))}};c.onsuccess=d=>{U=d.target.result}} -const Sb=(a,b)=>ba(function*(){if(!U)return N.getItem(`minicraft.world.${a}:${b}`);const c=U.transaction("chunks","readonly").objectStore("chunks").get([a,b]);return new Za(d=>{c.onsuccess=()=>{let e;d(null==(e=c.result)?void 0:e.data)}})}()),Tb=(a,b)=>{var c=Qb();return ba(function*(){if(!U)return bb(`minicraft.world.${a}:${b}`,c);const d=U.transaction("chunks","readwrite").objectStore("chunks").put({world:a,coords:b,data:c});return new Za((e,l)=>{d.onsuccess=()=>{e()};d.onerror=()=>{l(d.error)}})}())}, -Ub=(a,b)=>ba(function*(){if(!U)return cb(`minicraft.world.${a}:${b}`);const c=U.transaction("chunks","readwrite").objectStore("chunks").delete([a,b]);return new Za(d=>{c.onsuccess=()=>{d()}})}()),Vb=a=>ba(function*(){const b=`minicraft.world.${a}:`;if(!U){const e={},l=b.length;for(const m of nb(N))m.startsWith(b)&&(e[m.substr(l)]=N.getItem(m));return e}const c=U.transaction("chunks","readonly").objectStore("chunks").openCursor(),d={meta:N.getItem(b+"meta")};return new Za(e=>{c.onsuccess=()=>{const l= -c.result;l?(l.value.world===a&&(d[l.value.coords]=l.value.data),l.continue()):e(d)}})}()),Wb=(a,b)=>ba(function*(){if(U){var c=U.transaction("chunks","readwrite"),d=c.objectStore("chunks");for(const [e,l]of ob(b))"meta"!==e?d.put({world:a,coords:e,data:l}):bb(`minicraft.world.${a}:meta`,l);return new Za((e,l)=>{c.oncomplete=()=>{e()};c.onerror=()=>{l(c.error)}})}for(const [e,l]of ob(b))bb(`minicraft.world.${a}:${e}`,l);bb("__margin",Array(257).join("x"));cb("__margin")}()),Xb=a=>{if(U){cb(`minicraft.world.${a}:meta`); -var b=U.transaction("chunks","readwrite").objectStore("chunks").openCursor();b.onsuccess=()=>{const c=b.result;c&&(c.value.world===a&&c.delete(),c.continue())}}else{const c=`minicraft.world.${a}:`;for(const d of nb(N))d.startsWith(c)&&cb(d)}},Yb=(a,b)=>{if(U){bb(`minicraft.world.${b}:meta`,N.getItem(`minicraft.world.${a}:meta`));cb(`minicraft.world.${a}:meta`);var c=U.transaction("chunks","readwrite").objectStore("chunks"),d=c.openCursor();d.onsuccess=()=>{const e=d.result;e&&(e.value.world===a&& -(e.value.world=b,c.put(e.value)),e.continue())}}else{const e=`minicraft.world.${a}:`,l=e.length,m=`minicraft.world.${b}:`;for(const k of nb(N))if(k.startsWith(e)){const f=N.getItem(k);cb(k);bb(m+k.substr(l),f)}}},Zb=new gb(1024),Pb=new fb(Zb.buffer),$b=new lb,ac=(a,b,c,d)=>0>c||63{const e=a.K;a.Z[(b<>4<>4)<<2|c>>4].ja=!0},cc=(a,b,c,d,e)=>{const l=a.K,m=(b<>4<>4)<<2|c>> -4].ja=!0},fc=(a,b,c)=>{const d=Ja(M(b.H,63),0)>>4,e=L(b.G)>>4;b=L(b.J)>>4;if(c||a.Ma!==d||a.va+a.La!==e||a.wa+a.Na!==b)c=1<{const b=a.La,c=a.Ma,d=a.Na,e=a.K,l=`${e} ${b} ${d} ${c}`;let m=$b.get(l);if(null==m){const k=1<{let z=wb(w-b),h=wb(p-d),q=wb(w-b-k),C=0,u=0;qw<=f).sort((w,g)=>w.Za-g.Za))}a.Ia=m;a.sa=0},hc=(a,b)=>{if(!a.pb){for(var c=b.B.map(({c:d})=>d&&[d.id,d.amount,d.data]);0d.ja).map(d=>gc(a,d)))}},jc=(a,b)=>{const c=N.getItem(`minicraft.world.${a.id}:meta`);if(c){const {p:d,s:e,t:l,v:m}=ab(c);null!=m&&(d.i.forEach((k, -f)=>{k&&(b.B[f].c=Ib(k[0],k[1],k[2]))}),b.rb=d.h,b.l=d.m,b.G=d.p[0],b.H=d.p[1],b.J=d.p[2],b.O=d.p[3],b.ha=d.p[4],a.Aa=e[0],a.Ba=e[1],a.Ca=e[2],null!=l&&ic(a,l))}},ic=(a,b)=>{a.time=b%24E3;a.eb=(b+6E3)/24E3%1},vc=a=>ba(function*(){const b=a.$[a.Ia[a.sa=0].lb];var c=b.y;yield Ub(a.id,`${b.Fa}/${b.Ta}`+(0{const c=a.Ga;var d=a.K;const e=b.y,l=(256<m;++m){for(d=0;16>d;++d)Zb[++k]=c[f],Zb[++k]= -c[++f],Zb[++k]=c[++f],Zb[++k]=c[++f],f+=13;f+=l}b.ja=!1;return Tb(a.id,`${b.Fa}/${b.Ta}`+(0ba(function*(){const c=a.$,d=a.Ia,e=a.va,l=a.wa,m=d.length;for(;a.saC;++C){for(w=0;16>w;++w)k[g]=Zb[++u],k[++g]=Zb[++u],k[++g]=Zb[++u],k[++g]=Zb[++u],g+=13;g+=z}else for(p=0;16>p;++p){for(f=0;16>f;++f)k[g]=0{if(a){const b=xc=new Image;b.onload=()=>{if(xc===b){var c=xa.createElement("canvas");c.width=16;c.height=416;c=c.getContext("2d");c.scale(1,-1);for(let d=0;26>d;++d)c.drawImage(b,0,d<<4,16,16,0,-(d<<4)-16,16,16);wc=new gb(c.getImageData(0,0,16,416).data.buffer);for(const d of yc)d.P=!0;xc=null}};b.src=`${"/static/minicraft/"}textures/${a}.png`}else wc=null},Bc=(a,b)=>{const c={yb:b,Wa:b.getContext("2d",{alpha:!1,desynchronized:!0}),jb:null,kb:null,ob:"",P:!1,qb:0,$a:0,zb:qb(()=> -(c.qb=c.$a,c.$a=0),1E3),o:a};yc.add(c);Ac(c);return c},Ac=a=>{const b=a.yb,c=a.o;a.kb=new gb((a.jb=a.Wa.createImageData(b.width=c.ya,b.height=c.za)).data.buffer);const d=c.ya*c.config.Y/c.la,e=c.za*c.config.Y/c.la;b.style.width=d+"px";b.style.height=e+"px";b.style.left=Ia((c.Pa-d)/2)+"px";b.style.top=Ia((c.Qa-e)/2)+"px";a.Wa.fillStyle="rgba(255,255,255,.5)"};let Cc=0; -const Fc=(a,b,c,d)=>{const e={Z:null,Ga:null,busy:!1,$:null,Ia:null,sa:0,pb:!1,La:0,Ma:0,Na:0,id:c.Ea,va:0,wa:0,K:0,Aa:.5,Ba:8.5,Ca:.5,time:0,eb:0},l=Lb(e,d);jc(e,l);const m={a,config:c,mb:0,nb:0,Ka:!1,ta:!0,A:!0,Ab:b,ca:0,X:new hb,ab:"",j:0,N:[],g:l,bb:null,u:null,la:1,Pa:1,Qa:1,ya:0,za:0,Ra:0,ub:0,Sa:0,Cb:qb(()=>{var k;(k=m.A)||(ic(e,e.time+1),fc(e,l,!1),k=void 0);return k},50),world:e};Dc(m,null);Ec(m);return m},Gc=a=>{a.world.pb||(hc(a.world,a.g),a.a.U(a.world.id,{mod_l:Qa.now()}))},Ec=a=>{ba(function*(){if(!a.config.ka)try{yield a.Ab.requestPointerLock()}catch(b){}}())}, -Hc=(a,b)=>a===b?0:.1-.2*a,Ic=a=>{a.g.Ua=Hc((a=a.X).has(-12)||a.has(65),a.has(-13)||a.has(68))},Jc=a=>{a.g.ib=Hc((a=a.X).has(-15)||a.has(16),a.has(-14)||a.has(32))},Kc=a=>{a.g.Va=Hc((a=a.X).has(-11)||a.has(83),a.has(-10)||a.has(87))},Lc=a=>{a.g.vb=Hc(a.X.has(-18),a.X.has(-19))},Mc=a=>{a.g.wb=Hc(a.X.has(-17),a.X.has(-16))},Oc=(a,b,c)=>{if(!a.world)return!1;const d=a.X;var e=a.g;if(c){if(d.has(b))return!1;d.add(b);var l=e.aa,m=e.V;c=e.ba;switch(b){case -18:case -19:Lc(a);break;case -17:case -16:Mc(a); -break;case -1:2!==e.l&&0<=m&&(0===e.Oa?0===e.l&&(b=ac(a.world,l,m,c),2===b?b=3:1===b&&(b=4),6===b||8!==b&&13!==b&&null!==Kb(e.B,Ib(b,1)))||(bc(a.world,l,m,c),e.V=-1):Nc(a,[l,m,c],!1));break;case -2:case 71:if(0<=m){const k=ac(a.world,l,m,c);c=e.B.slice(0,9);m=c.findIndex(f=>null!==f.c&&f.c.id===k);0<=m?e.L=m:1===e.l&&(c[e.L].c&&(c=c.findIndex(f=>null===f.c),0<=c&&(e.L=c)),e.B[e.L].c=Ib(k));e.ma=a.ca}break;case -3:if(2!==e.l&&0<=m)if(0===e.Oa){if(b=e.B[e.L],b.c){switch(e.pa){case 0:--l;break;case 1:++l; -break;case 2:--m;break;case 3:++m;break;case 4:--c;break;case 5:++c}0<=m&&64>m&&cc(a.world,l&(1<<4+a.world.K)-1,m,c&(1<<4+a.world.K)-1,b.c.id)&&1!==e.l&&0>=--b.c.amount&&(b.c=null)}}else Nc(a,[l,m,c],!0);break;case -4:e.L=(e.L+9-1)%9;e.ma=a.ca;break;case -5:e.L=(e.L+1)%9;e.ma=a.ca;break;case 27:0===a.j&&(a.A=!0,a.j=1);break;case -15:case -14:case 16:case 32:Jc(a);break;case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:e.L=b-49;e.ma=a.ca;break;case -12:case -13:case 65:case 68:Ic(a); -break;case 69:if(0===a.j){a.j=3;for(const k of d)Oc(a,k,!1)}break;case 80:a.world&&(a.A=!0);break;case 81:e=e.B[e.L];if(d.has(17)||e.c&&0>=--e.c.amount)e.c=null;break;case -11:case -10:case 83:case 87:Kc(a);break;case 84:if(0===a.j){a.j=2;for(const k of d)Oc(a,k,!1)}break;case 112:a.ta=!a.ta;break;case 114:a.Ka=!a.Ka;case 116:case 122:case 123:break;default:return!1}}else{if(!d.delete(b))return!1;switch(b){case -15:case -14:case 16:case 32:Jc(a);break;case -12:case -13:case 65:case 68:Ic(a);break; -case -11:case -10:case 83:case 87:Kc(a);break;case -18:case -19:Lc(a);break;case -17:case -16:Mc(a)}}a.ab=[...d].join();return!0},Pc=(a,b)=>(b=b.startsWith("~")?a+P(b.substr(1)):P(b),isNaN(b)?a:b),Rc=(a,b)=>{var c=a.g,d=a.world;if(b)if("/"===b.charAt(0)){b=b.substr(1).split(" ");const e=b.shift();switch(e){case "clear":a.N=[];break;case "clearinv":for(const l of c.B)l.c=null;Z(a,"\u0406\u043d\u0432\u0435\u043d\u0442\u0430\u0440 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0440\u043e\u0436\u043d\u0456\u0439", -!0);break;case "gamemode":case "gm":b=P(b[0]);!isNaN(b)&&0<=b&&3>b&&0===b%1?(c.l=b,Z(a,"\u0406\u0433\u0440\u043e\u0432\u0438\u0439 \u0440\u0435\u0436\u0438\u043c \u0432\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439 \u043d\u0430: "+b,!0)):Z(a,"\u0406\u0433\u0440\u043e\u0432\u0438\u0439 \u0440\u0435\u0436\u0438\u043c \u043f\u043e\u0432\u0438\u043d\u0435\u043d \u0431\u0443\u0442\u0438 0..2!");break;case "give":if(0===b.length){Z(a,"/give [\u041d\u043e\u043c\u0435\u0440]\n"+Fb.join(" ")); -break}d=Fb.indexOf((b[0]||"").toLowerCase());d=0<=d?d:P(b[0]);b=P(b[1]||1);!isNaN(d)&&0d&&0===d%1?!isNaN(b)&&0{a.u.P=!0;Z(a,"\u0423\u0447\u0430\u0441\u0442\u043a\u0438 \u0431\u0443\u0434\u0443\u0442\u044c \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u0456.",!0)});break;case "me":Z(a,c.name+" "+b.join(" "), -!0);break;case "save":Gc(a);Z(a,"\u0413\u0440\u0430 \u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043d\u0430.",!0);break;case "spawn":d.Aa=c.G;d.Ba=c.H;d.Ca=c.J;Z(a,"\u041f\u043e\u0447\u0430\u0442\u043a\u043e\u0432\u0430 \u043a\u0440\u0430\u043f\u043a\u0430 \u043e\u043d\u043e\u0432\u043b\u0435\u043d\u0430.",!0);break;case "teleport":case "tp":0===b.length?(c.G=d.Aa,c.H=d.Ba,c.J=d.Ca,a.u.P=!0,Z(a,"\u041f\u0435\u0440\u0435\u043c\u0456\u0441\u0442\u0438\u0432\u0441\u044f \u0434\u043e \u043f\u043e\u0447\u0430\u0442\u043a\u043e\u0432\u043e\u0457.", -!0)):3===b.length?(Z(a,"\u041f\u0435\u0440\u0435\u043c\u0456\u0441\u0442\u0438\u0442\u0438\u0441\u044f \u0434\u043e"+` ${c.G=Pc(c.G,b[0])} ${c.H=Pc(c.H,b[1])} ${c.J=Pc(c.J,b[2])}`,!0),a.u.P=!0):Z(a,"\u041d\u0435\u0432\u0434\u0430\u0447\u044f!");c.da=0;c.ea=0;c.fa=0;break;case "time":c=b[1];if(!c){Z(a,"\u0412\u0456\u0434\u0441\u0443\u0442\u043d\u0456\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440!");break}if("day"===c)c=1E3;else if("night"===c)c=13E3;else if(isNaN(c=L(P(c))))break;switch(b[0]){case "add":c+= -d.time;case "set":ic(d,c);Z(a,"\u041d\u043e\u0432\u0438\u0439 \u0447\u0430\u0441: "+d.time,!0);break;default:Z(a,"\u041d\u0435\u0434\u0456\u0439\u0441\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 : time "+b[0])}break;case "version":Z(a,"minicraft 0.11.3");break;case "/exit":c.Oa=0;Z(a,"\u0417\u0432\u0438\u0447\u0430\u0439\u043d\u0438\u0439 \u0440\u0435\u0436\u0438\u043c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0457 \u043c\u0438\u0448\u043a\u0438.",!0);break;case "/expand":a.g.qa&& -a.g.ra?d=!0:(Z(a,"\u041d\u0435\u043e\u0431\u0445\u0456\u0434\u043d\u0438\u0439 \u0432\u0438\u0431\u0456\u0440!"),d=!1);d&&("vert"===b[0]?(c.qa[1]=0,c.ra[1]=63,Z(a,"\u0412\u0438\u0431\u0456\u0440 \u0440\u043e\u0437\u0448\u0438\u0440\u0438\u0432\u0441\u044f.",!0)):Z(a,'\u041f\u0456\u0434\u0442\u0440\u0438\u043c\u0443\u0454\u0442\u044c\u0441\u044f \u0442\u0456\u043b\u044c\u043a\u0438 "vert"!'));break;case "/pos1":case "/pos2":Nc(a,[L(c.G),L(c.H),L(c.J)],"/pos2"===e);break;case "/regen":vc(d).then(()=> -{a.u.P=!0;Z(a,"\u0423\u0447\u0430\u0441\u0442\u043a\u0438 \u0432\u0456\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u0456.",!0)});break;case "/show":Z(a,`${"\u041f\u0435\u0440\u0448\u0438\u0439"}: ${c.qa?c.qa.join(" "):"\u043d\u0456\u0447\u043e\u0433\u043e "}, ${"\u0414\u0440\u0443\u0433\u0438\u0439"}: ${c.ra?c.ra.join(" "):"\u043d\u0456\u0447\u043e\u0433\u043e "}`);break;case "/wand":c.Oa=1;Z(a,"\u0412\u0438\u0434\u0456\u043b\u0435\u043d\u043d\u044f \u043a\u043d\u043e\u043f\u043a\u0430\u043c\u0438 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0457 \u043c\u0438\u0448\u043a\u0438.", -!0);break;default:Z(a,"\u041d\u0435\u0434\u0456\u0439\u0441\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 : "+e)}}else{const e=Z(a,`<${c.name}> `+b);Dc(a,b).then(l=>{l&&Qc(a,e)})}},Z=(a,b,c=!1)=>{const d=++Cc;(a.N=a.N.slice(-49)).push({id:d,tb:c,time:va(),value:b});return d},Qc=(a,b)=>{const c=a.N.findIndex(d=>d.id===b);0<=c&&a.N.splice(c,1)},Nc=(a,b,c)=>{c?a.g.ra=b:a.g.qa=b;Z(a,`${c?"\u0414\u0440\u0443\u0433\u0430 \u043a\u0440\u0430\u043f\u043a\u0430 \u0432\u0438\u0431\u043e\u0440\u0443": -"\u041f\u0435\u0440\u0448\u0430 \u043a\u0440\u0430\u043f\u043a\u0430 \u0432\u0438\u0431\u043e\u0440\u0443"}: ${b.join(" ")}`,!0)},Dc=(a,b)=>(rb(a.bb),(b?eb("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:$a({msg:b})}):eb("/api/chat")).then(c=>{if(c.ok)return c.text()}).then(c=>{if(c){c=c.split("\n").filter(Boolean);for(const d of c)d.startsWith("<")&&Z(a,d);return 0!1).then(c=>{a.bb=pb(()=>{Dc(a,null)},5E3);return c})),Sc=({id:a,M:b})=>(A("div[className=bitmap]", -{S:{backgroundImage:`url(${"/static/minicraft/"}textures/${b}.png)`,backgroundPositionY:`-${2*(a-1)}rem`}}),null);function Tc({amount:a,l:b,id:c,M:d}){A("div[className=stack]",{title:Gb[c]+(1===b?` (${Fb[c]}, ${c})`:"")});return[G(Sc,{id:c,M:d}),1!==a&&H("div[className=amount]",{innerText:a})]} -function Uc({g:a,M:b,na:c}){A("div[className=bar]",{ontouchstart:F(e=>{a.L=Number(e.target.closest("[data-slot]").dataset.slot);a.ma=e.timeStamp}),S:{opacity:Ja(.5,M(1,1-5E-4*(c-a.ma-5E3)))}});const d=a.l;return a.B.slice(0,9).map(({c:e},l)=>H("div",{D:{slot:l},F:{active:l===a.L}},[e&&G(Tc,{amount:e.amount,data:e.data,l:d,id:e.id,M:b})]))} -function Vc({Bb:a,M:b}){A("div[className=grid]",{onclick:({target:c})=>{(c=c.closest("[data-id]"))&&Jb({c:Ib(P(c.dataset.id)),filter:null,W:64},a)}});return Fb.map((c,d)=>0({c:null,filter:null,W:64})),d=a.g.l;A("div[className=menu overlay inventory]",ja(()=>({onclick:({target:e})=>{if("menu overlay inventory"===e.className)c.c?c.c=null:(a.j=0,a.A=!1,Ec(a));else if(e=e.closest("[data-slot]"))e=a.g.B[P(e.dataset.slot)],c.c?Jb(c,e):e.c&&Jb(e,c)},oncontextmenu:({target:e})=>{if("menu overlay inventory"===e.className)c.c?0>=--c.c.amount&&(c.c=null):(a.j=0,a.A=!1,Ec(a));else if(e=e.closest("[data-slot]"))e=a.g.B[P(e.dataset.slot)],c.c? -Jb(c,e,1):e.c&&Jb(e,c,Ha(e.c.amount/2))}})));return[H("div[className=window]",null,[H("h2[innerText=\u0406\u043d\u0432\u0435\u043d\u0442\u0430\u0440]"),1===d&&G(Vc,{Bb:c,M:b}),H("div[className=grid]",null,a.g.B.map(({c:e},l)=>H("div",{D:{slot:l},F:{first:9>l}},[e&&G(Tc,{amount:e.amount,data:e.data,l:d,id:e.id,M:b})])))]),c.c&&H("div[className=hand]",{S:{transform:`translate(${a.mb}px, ${a.nb}px)`}},[G(Tc,{amount:c.c.amount,data:c.c.data,l:0,id:c.c.id,M:b})])]} -const Xc=({I:{tb:a,time:b,value:c},na:d})=>(A(a?"div[className=minor]":"div",{innerText:c,S:{opacity:M(1,1-.001*(d-b-4500))}}),null);function Yc({N:a,na:b}){A("div[className=messages]");const c=b-5E3;return[ra(Xc,a.slice(-10).filter(d=>d.time>c),{na:b})]}function Zc({I:a,ia:b,current:c}){A("button",{disabled:a.id===c,innerText:`${a.label} (${a.owner})`,onclick:()=>{b({T:a.id})}});return null} -function $c({a:{ia:a},config:b,o:c,oa:d}){c&&D(()=>Gc(c));const [e,l]=pa(!1),m=ia(()=>e?eb("/static/minicraft/textures.json").then(k=>k.ok?k.json():null).catch(()=>null):Za.resolve(null),[e],null);A("div[className=menu overlay]");return[H("h1",{innerText:e?"\u041f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u0438 ":"\u041d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f"}),H("center",null,[H("button",{innerText:c&&!e?"\u041f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u0432 \u0433\u0440\u0443": -"\u041f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f",onclick:()=>{e?l(!1):c?(c.j=0,c.A=!1,Ec(c)):d(2)}})]),!e&&H("div[className=settings]",null,[H("button[innerText=\u041f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u0438 ...]",{onclick:()=>{l(!0)}}),H("label[innerText=\u0414\u043e\u0437\u0432\u0456\u043b:]",null,[H("input[type=range][min=1][max=100][step=1]",{value:101-b.Y,onchange:k=>a({Y:101-Number(k.target.value)})})]),H("label[innerText=\u0422\u043e\u0447\u043a\u0430 \u043e\u0433\u043b\u044f\u0434\u0443:]", +function aa(a){function b(d){return a.next(d)}function c(d){return a.throw(d)}return new Promise(function(d,e){function l(m){m.done?d(m.value):Promise.resolve(m.value).then(b,c).then(l,e)}l(a.next())})} +const n=lui,ba=n.defer,fa=n.defer_end,ha=n.hook_async,A=n.hook_dom,D=n.hook_effect,ia=n.hook_memo,ja=n.hook_model,na=n.hook_rerender,oa=n.hook_state,F=n.hook_static,pa=n.init,G=n.node,H=n.node_dom,qa=n.node_map,ua=n.now,va=window,wa=document,ya=navigator,K=Math,za=K.PI,Aa=.5*za,Ea=180/za,Fa=K.random,L=K.floor,Ga=K.ceil,Ha=K.round,M=K.min,Ia=K.max,Ja=K.cos,Ka=K.sin,La=K.sqrt,Ma=K.log2,Na=String.fromCharCode,Oa=BroadcastChannel,Pa=Date,Xa=JSON,Ya=Promise,Za=Xa.stringify,$a=Xa.parse,N=localStorage,ab= +N.setItem.bind(N),bb=N.removeItem.bind(N),cb=va.indexedDB,db=fetch,eb=Uint8Array,fb=Uint32Array,gb=Set,kb=Map,P=Number,lb=Object,mb=lb.keys,nb=lb.entries,ob=setTimeout,pb=setInterval,qb=clearTimeout,rb=clearInterval,sb=addEventListener,tb=removeEventListener,ub=ya.userAgent.includes("WebKit"),vb=a=>a*a,wb=()=>!1,xb=(a,b)=>{const c=new Pa;a=new Pa(a);var d=c-a;if(59E3>d)return Ha(d/1E3)+"s";if(3E6>d)return Ha(d/6E4)+"m";d=a.getFullYear();const e=a.getMonth(),l=a.getDate();let m="";d"minicraft.world."+b.id));for(const b of mb(N))b.startsWith("minicraft.world.")&&!a.has(b.split(":")[0])&&bb(b)} +const Db={init:()=>{let a=!1;var b={ka:!1,xa:1,ua:3,Y:4,T:1,Da:120,ga:64,Ea:0,worlds:[]};if(Q){let c=Q.pixel_grouping;null!=c&&(b.xa=c);null!=(c=Q.mouse_sensitivity)&&(b.ua=c);b.Y=Q.resolution_scaling;null!=(c=Q.textures)?b.T=c:b.T=Q.flag_textures?1:0;b.Da=Q.view_angle;b.ga=Q.view_distance;null!=(c=Q.world_last)&&(b.Ea=c);null!=(c=Q.worlds)?b.worlds=c:N.getItem("minicraft.world.0:meta")&&(b.worlds[0]={id:0,label:(prompt("\u0411\u0443\u0432 \u0437\u043d\u0430\u0439\u0434\u0435\u043d \u0431\u0435\u0437 \u043d\u0430\u0437\u0432\u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0438\u0439 \u0441\u0432\u0456\u0442. \u042f\u043a \u0439\u043e\u0433\u043e \u043d\u0430\u0437\u0432\u0430\u0442\u0438?", +"")||"\u041d\u0435\u0434\u0456\u0439\u0441\u043d\u0438 \u0441\u0432\u0456\u0442").substring(0,16),mod_l:Pa.now(),mod_r:0},a=!0);Q=null}b={account:{label:"",rank:0},config:b,Ya:b};return a?(b.Ya=null,Db.Xa(b)):b},Xa:a=>{const b=a.config;if(b===a.Ya)return a;ab("minicraft.config",Za({version:"0.11.4",pixel_grouping:b.xa,mouse_sensitivity:b.ua,resolution_scaling:b.Y,textures:b.T,view_angle:b.Da,view_distance:b.ga,world_last:b.Ea,worlds:b.worlds}));return Object.assign({},a,{Ya:b})},xb:(a,b)=>Object.assign({}, +a,{account:b}),Gb:(a,b)=>Db.ia(a,b(a.config)),ia:(a,b)=>Object.assign({},a,{config:Object.assign({},a.config,b)}),Ja:(a,b)=>a.config.ka===b?a:Db.ia(a,{ka:b}),gb:(a,b)=>Object.assign({},a,{config:Object.assign({},a.config,{worlds:[...a.config.worlds,b]})}),hb:(a,b)=>Object.assign({},a,{config:Object.assign({},a.config,{worlds:a.config.worlds.filter(c=>c.id!==b)})}),U:(a,b,c)=>Object.assign({},a,{config:Object.assign({},a.config,{worlds:a.config.worlds.map(d=>d.id===b?Object.assign({},d,c):d)})})}, +Eb="air stone grass dirt cobble planks bedrock log leaves bricks wool sand gravel glass bookshelf obsidian stone_bricks sandstone lapis_block iron_block gold_block diamond_block emerald_block redstone_block quartz_block".split(" "),Fb="\u041f\u043e\u0432\u0456\u0442\u0440\u044f;\u041a\u0430\u043c\u0456\u043d\u044c;\u0411\u043b\u043e\u043a \u0442\u0440\u0430\u0432\u0438;\u0417\u0435\u043c\u043b\u044f;\u0411\u0443\u0442\u043e\u0432\u0438\u0439 \u043a\u0430\u043c\u0456\u043d\u044c;\u0414\u043e\u0448\u043a\u0430;\u041a\u043e\u0440\u0456\u043d\u043d\u0430 \u043f\u043e\u0440\u043e\u0434\u0430;\u041a\u043e\u043b\u043e\u0434\u0430;\u041b\u0438\u0441\u0442\u044c\u044f;\u041a\u0438\u0440\u043f\u0438\u0447\u0438;\u0428\u0435\u0440\u0441\u0442\u044c;\u041f\u0456\u0441\u043e\u043a;\u0413\u0440\u0430\u0432\u0456\u0439;\u0421\u0442\u0435\u043a\u043b\u043e;\u041a\u043d\u0438\u0436\u043d\u0430 \u0448\u0430\u0444\u0430;\u041e\u0431\u0441\u0438\u0434\u0456\u0430\u043d;\u041a\u0430\u043c\u0435\u043d\u043d\u0438\u0439 \u043a\u0438\u0440\u043f\u0438\u0447;\u041f\u0456\u0441\u043a\u043e\u0432\u0438\u043a;\u0411\u043b\u043e\u043a \u043b\u0430\u0437\u0443\u0440\u0438\u0442\u0443;\u0417\u0430\u043b\u0456\u0437\u043d\u0438\u0439 \u0431\u043b\u043e\u043a;\u0417\u043e\u043b\u043e\u0442\u0438\u0439 \u0431\u043b\u043e\u043a;\u0410\u043b\u043c\u0430\u0437\u043d\u0438\u0439 \u0431\u043b\u043e\u043a;\u0421\u043c\u0430\u0440\u0430\u0433\u0434\u043e\u0432\u0438\u0439 \u0431\u043b\u043e\u043a;\u0420\u0435\u0434\u0441\u0442\u043e\u0443\u043d \u0431\u043b\u043e\u043a;\u041a\u0432\u0430\u0440\u0446\u043e\u0432\u0438\u0439 \u0431\u043b\u043e\u043a".split(";"), +Gb=[0,8487297,4305266,4349313,8092539,5342114,7039851,3561583,4172910,6384533,15526888,10671324,8092798,16447200,4151672,1970708,8092539,9686227,9126695,15198183,5567485,14541182,7920469,662956,14936813],Hb=(a,b=1,c=null)=>({amount:b,data:c,id:a}),Ib=(a,b,c=a.c.amount)=>{if(b.c)a.c.id===b.c.id?(c=M(c,b.W-b.c.amount),a.c.amount-=c,b.c.amount+=c,0>=a.c.amount&&(a.c=null)):!(a.c.amount<=c&&a.c.amount<=b.W&&b.c.amount<=a.W)||a.filter&&!a.filter(b.c.id)||b.filter&&!b.filter(a.c.id)||([b.c,a.c]=[a.c,b.c]); +else if(!b.filter||b.filter(a.c.id))a.c.amount<=c&&a.c.amount<=b.W?[b.c,a.c]=[a.c,b.c]:(c=M(c,b.W),a.c.amount-=c,b.c=Hb(a.c.id,c),0>=a.c.amount&&(a.c=null))},Jb=(a,b)=>{for(const c of a)if(c.c&&c.c.id===b.id){const d=M(b.amount,c.W-c.c.amount);c.c.amount+=d;if(0>=(b.amount-=d))return null}for(const c of a)if(!c.c&&(!c.filter||c.filter(b.id)))if(a=M(b.amount,c.W),a<=b.amount){if(c.c=Hb(b.id,a),0>=(b.amount-=a))return null}else return c.c=b,null;return b},Kb=(a,b)=>({Ua:0,ib:0,Va:0,O:0,ha:0,pa:0,aa:0, +V:-1,ba:0,qa:null,ra:null,l:1,rb:20,B:Array(36).fill(null).map(()=>({c:null,filter:null,W:64})),Oa:0,name:b.label||"\u0413\u0440\u043e\u043a",G:a.Aa,H:a.Ba,J:a.Ca,vb:0,wb:0,L:0,ma:0,da:0,ea:0,fa:0}),Lb=(a,b,c)=>{a.O=(a.O+b+100*za)%(2*za);a.ha=Ia(-Aa,M(Aa,a.ha+c))},Mb=a=>{a+=32;33a?a++:38a?a+=2:43a?a+=3:126a?a+=37:55295a-(63743a?35:40a?34:34a?33:32),Pb=()=>{var a=Ob;const b=a.length,c=new kb, +d=u=>{h=h<<1|u&1;15===++p&&(w+=Mb(h),h=p=0)},e=()=>{for(let u=0;u{d(u);d(u>>1);d(u>>2);d(u>>3);d(u>>4);d(u>>5);d(u>>6);d(u>>7)},m=()=>{0===--z&&(z=1<{if(C)C=!1;else{let u=r.id;for(let E=0;E>E)}};let f=a[0],w="",h=0,p=2,v=2,z=2,g=2,r={id:g++,Ha:new kb},C=!0;l(f);c.set(f,r);for(let u=1;u{var b=Ob;if(!a)return null;const c=a.length,d=()=>{p+=(g>>--r&1)<v;)d();f=[p];e[2]=f;for(b[h++]=p;z<=c;){w=k;for(p=v=0;vv;)d();e[m]=[p];p=m++;0===--l&&(l=1<{d=d.target.result.createObjectStore("chunks",{keyPath:["world","coords"]});for(const e of mb(N))if(e.startsWith("minicraft.world.")){const [l,m]=e.substr(16).split(":");"meta"!==m&&(d.add({world:P(l),coords:m,data:N.getItem(e)}),bb(e))}};c.onsuccess=d=>{T=d.target.result}} +const Rb=(a,b)=>aa(function*(){if(!T)return N.getItem(`minicraft.world.${a}:${b}`);const c=T.transaction("chunks","readonly").objectStore("chunks").get([a,b]);return new Ya(d=>{c.onsuccess=()=>{let e;d(null==(e=c.result)?void 0:e.data)}})}()),Sb=(a,b)=>{var c=Pb();return aa(function*(){if(!T)return ab(`minicraft.world.${a}:${b}`,c);const d=T.transaction("chunks","readwrite").objectStore("chunks").put({world:a,coords:b,data:c});return new Ya((e,l)=>{d.onsuccess=()=>{e()};d.onerror=()=>{l(d.error)}})}())}, +Tb=(a,b)=>aa(function*(){if(!T)return bb(`minicraft.world.${a}:${b}`);const c=T.transaction("chunks","readwrite").objectStore("chunks").delete([a,b]);return new Ya(d=>{c.onsuccess=()=>{d()}})}()),Ub=a=>aa(function*(){const b=`minicraft.world.${a}:`;if(!T){const e={},l=b.length;for(const m of mb(N))m.startsWith(b)&&(e[m.substr(l)]=N.getItem(m));return e}const c=T.transaction("chunks","readonly").objectStore("chunks").openCursor(),d={meta:N.getItem(b+"meta")};return new Ya(e=>{c.onsuccess=()=>{const l= +c.result;l?(l.value.world===a&&(d[l.value.coords]=l.value.data),l.continue()):e(d)}})}()),Vb=(a,b)=>aa(function*(){if(T){var c=T.transaction("chunks","readwrite"),d=c.objectStore("chunks");for(const [e,l]of nb(b))"meta"!==e?d.put({world:a,coords:e,data:l}):ab(`minicraft.world.${a}:meta`,l);return new Ya((e,l)=>{c.oncomplete=()=>{e()};c.onerror=()=>{l(c.error)}})}for(const [e,l]of nb(b))ab(`minicraft.world.${a}:${e}`,l);ab("__margin",Array(257).join("x"));bb("__margin")}()),Wb=a=>{if(T){bb(`minicraft.world.${a}:meta`); +var b=T.transaction("chunks","readwrite").objectStore("chunks").openCursor();b.onsuccess=()=>{const c=b.result;c&&(c.value.world===a&&c.delete(),c.continue())}}else{const c=`minicraft.world.${a}:`;for(const d of mb(N))d.startsWith(c)&&bb(d)}},Xb=(a,b)=>{if(T){ab(`minicraft.world.${b}:meta`,N.getItem(`minicraft.world.${a}:meta`));bb(`minicraft.world.${a}:meta`);var c=T.transaction("chunks","readwrite").objectStore("chunks"),d=c.openCursor();d.onsuccess=()=>{const e=d.result;e&&(e.value.world===a&& +(e.value.world=b,c.put(e.value)),e.continue())}}else{const e=`minicraft.world.${a}:`,l=e.length,m=`minicraft.world.${b}:`;for(const k of mb(N))if(k.startsWith(e)){const f=N.getItem(k);bb(k);ab(m+k.substr(l),f)}}},Yb=new fb(1024),Ob=new eb(Yb.buffer),Zb=new kb,$b=(a,b,c,d)=>0>c||63{const e=a.K;a.Z[(b<>4<>4)<<2|c>>4].ja=!0},bc=(a,b,c,d,e)=>{const l=a.K,m=(b<>4<>4)<<2|c>> +4].ja=!0},ec=(a,b,c)=>{const d=Ia(M(b.H,63),0)>>4,e=L(b.G)>>4;b=L(b.J)>>4;if(c||a.Ma!==d||a.va+a.La!==e||a.wa+a.Na!==b)c=1<{const b=a.La,c=a.Ma,d=a.Na,e=a.K,l=`${e} ${b} ${d} ${c}`;let m=Zb.get(l);if(null==m){const k=1<{let z=vb(w-b),g=vb(p-d),r=vb(w-b-k),C=0,u=0;rw<=f).sort((w,h)=>w.Za-h.Za))}a.Ia=m;a.sa=0},gc=(a,b)=>{if(!a.pb){for(var c=b.B.map(({c:d})=>d&&[d.id,d.amount,d.data]);0d.ja).map(d=>fc(a,d)))}},ic=(a,b)=>{const c=N.getItem(`minicraft.world.${a.id}:meta`);if(c){const {p:d,s:e,t:l,v:m}=$a(c);null!=m&&(d.i.forEach((k, +f)=>{k&&(b.B[f].c=Hb(k[0],k[1],k[2]))}),b.rb=d.h,b.l=d.m,b.G=d.p[0],b.H=d.p[1],b.J=d.p[2],b.O=d.p[3],b.ha=d.p[4],a.Aa=e[0],a.Ba=e[1],a.Ca=e[2],null!=l&&hc(a,l))}},hc=(a,b)=>{a.time=b%24E3;a.eb=(b+6E3)/24E3%1},uc=a=>aa(function*(){const b=a.$[a.Ia[a.sa=0].lb];var c=b.y;yield Tb(a.id,`${b.Fa}/${b.Ta}`+(0{const c=a.Ga;var d=a.K;const e=b.y,l=(256<m;++m){for(d=0;16>d;++d)Yb[++k]=c[f],Yb[++k]= +c[++f],Yb[++k]=c[++f],Yb[++k]=c[++f],f+=13;f+=l}b.ja=!1;return Sb(a.id,`${b.Fa}/${b.Ta}`+(0aa(function*(){const c=a.$,d=a.Ia,e=a.va,l=a.wa,m=d.length;for(;a.saC;++C){for(w=0;16>w;++w)k[h]=Yb[++u],k[++h]=Yb[++u],k[++h]=Yb[++u],k[++h]=Yb[++u],h+=13;h+=z}else for(p=0;16>p;++p){for(f=0;16>f;++f)k[h]=0{if(a){const b=wc=new Image;b.onload=()=>{if(wc===b){var c=wa.createElement("canvas");c.width=16;c.height=416;c=c.getContext("2d");c.scale(1,-1);for(let d=0;26>d;++d)c.drawImage(b,0,d<<4,16,16,0,-(d<<4)-16,16,16);vc=new fb(c.getImageData(0,0,16,416).data.buffer);for(const d of xc)d.P=!0;wc=null}};b.src=`${"/static/minicraft/"}textures/${a}.png`}else vc=null},Ac=(a,b)=>{const c={yb:b,Wa:b.getContext("2d",{alpha:!1,desynchronized:!0}),jb:null,kb:null,ob:"",P:!1,qb:0,$a:0,zb:pb(()=> +(c.qb=c.$a,c.$a=0),1E3),o:a};xc.add(c);zc(c);return c},zc=a=>{const b=a.yb,c=a.o;a.kb=new fb((a.jb=a.Wa.createImageData(b.width=c.ya,b.height=c.za)).data.buffer);const d=c.ya*c.config.Y/c.la,e=c.za*c.config.Y/c.la;b.style.width=d+"px";b.style.height=e+"px";b.style.left=Ha((c.Pa-d)/2)+"px";b.style.top=Ha((c.Qa-e)/2)+"px";a.Wa.fillStyle="rgba(255,255,255,.5)"};let Bc=0; +const Ec=(a,b,c,d)=>{const e={Z:null,Ga:null,busy:!1,$:null,Ia:null,sa:0,pb:!1,La:0,Ma:0,Na:0,id:c.Ea,va:0,wa:0,K:0,Aa:.5,Ba:8.5,Ca:.5,time:0,eb:0},l=Kb(e,d);ic(e,l);const m={a,config:c,mb:0,nb:0,Ka:!1,ta:!0,A:!0,Ab:b,ca:0,X:new gb,ab:"",j:0,N:[],g:l,bb:null,u:null,la:1,Pa:1,Qa:1,ya:0,za:0,Ra:0,ub:0,Sa:0,Cb:pb(()=>{var k;(k=m.A)||(hc(e,e.time+1),ec(e,l,!1),k=void 0);return k},50),world:e};Cc(m,null);Dc(m);return m},Fc=a=>{a.world.pb||(gc(a.world,a.g),a.a.U(a.world.id,{mod_l:Pa.now()}))},Dc=a=>{aa(function*(){if(!a.config.ka)try{yield a.Ab.requestPointerLock()}catch(b){}}())}, +Gc=(a,b)=>a===b?0:.1-.2*a,Hc=a=>{a.g.Ua=Gc((a=a.X).has(-12)||a.has(65),a.has(-13)||a.has(68))},Ic=a=>{a.g.ib=Gc((a=a.X).has(-15)||a.has(16),a.has(-14)||a.has(32))},Jc=a=>{a.g.Va=Gc((a=a.X).has(-11)||a.has(83),a.has(-10)||a.has(87))},Kc=a=>{a.g.vb=Gc(a.X.has(-18),a.X.has(-19))},Lc=a=>{a.g.wb=Gc(a.X.has(-17),a.X.has(-16))},Nc=(a,b,c)=>{if(!a.world)return!1;const d=a.X;var e=a.g;if(c){if(d.has(b))return!1;d.add(b);var l=e.aa,m=e.V;c=e.ba;switch(b){case -18:case -19:Kc(a);break;case -17:case -16:Lc(a); +break;case -1:2!==e.l&&0<=m&&(0===e.Oa?0===e.l&&(b=$b(a.world,l,m,c),2===b?b=3:1===b&&(b=4),6===b||8!==b&&13!==b&&null!==Jb(e.B,Hb(b,1)))||(ac(a.world,l,m,c),e.V=-1):Mc(a,[l,m,c],!1));break;case -2:case 71:if(0<=m){const k=$b(a.world,l,m,c);c=e.B.slice(0,9);m=c.findIndex(f=>null!==f.c&&f.c.id===k);0<=m?e.L=m:1===e.l&&(c[e.L].c&&(c=c.findIndex(f=>null===f.c),0<=c&&(e.L=c)),e.B[e.L].c=Hb(k));e.ma=a.ca}break;case -3:if(2!==e.l&&0<=m)if(0===e.Oa){if(b=e.B[e.L],b.c){switch(e.pa){case 0:--l;break;case 1:++l; +break;case 2:--m;break;case 3:++m;break;case 4:--c;break;case 5:++c}0<=m&&64>m&&bc(a.world,l&(1<<4+a.world.K)-1,m,c&(1<<4+a.world.K)-1,b.c.id)&&1!==e.l&&0>=--b.c.amount&&(b.c=null)}}else Mc(a,[l,m,c],!0);break;case -4:e.L=(e.L+9-1)%9;e.ma=a.ca;break;case -5:e.L=(e.L+1)%9;e.ma=a.ca;break;case 27:0===a.j&&(a.A=!0,a.j=1);break;case -15:case -14:case 16:case 32:Ic(a);break;case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:e.L=b-49;e.ma=a.ca;break;case -12:case -13:case 65:case 68:Hc(a); +break;case 69:if(0===a.j){a.j=3;for(const k of d)Nc(a,k,!1)}break;case 80:a.world&&(a.A=!0);break;case 81:e=e.B[e.L];if(d.has(17)||e.c&&0>=--e.c.amount)e.c=null;break;case -11:case -10:case 83:case 87:Jc(a);break;case 84:if(0===a.j){a.j=2;for(const k of d)Nc(a,k,!1)}break;case 112:a.ta=!a.ta;break;case 114:a.Ka=!a.Ka;case 116:case 122:case 123:break;default:return!1}}else{if(!d.delete(b))return!1;switch(b){case -15:case -14:case 16:case 32:Ic(a);break;case -12:case -13:case 65:case 68:Hc(a);break; +case -11:case -10:case 83:case 87:Jc(a);break;case -18:case -19:Kc(a);break;case -17:case -16:Lc(a)}}a.ab=[...d].join();return!0},Oc=(a,b)=>(b=b.startsWith("~")?a+P(b.substr(1)):P(b),isNaN(b)?a:b),Qc=(a,b)=>{var c=a.g,d=a.world;if(b)if("/"===b.charAt(0)){b=b.substr(1).split(" ");const e=b.shift();switch(e){case "clear":a.N=[];break;case "clearinv":for(const l of c.B)l.c=null;Y(a,"\u0406\u043d\u0432\u0435\u043d\u0442\u0430\u0440 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0440\u043e\u0436\u043d\u0456\u0439", +!0);break;case "gamemode":case "gm":b=P(b[0]);!isNaN(b)&&0<=b&&3>b&&0===b%1?(c.l=b,Y(a,"\u0406\u0433\u0440\u043e\u0432\u0438\u0439 \u0440\u0435\u0436\u0438\u043c \u0432\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439 \u043d\u0430: "+b,!0)):Y(a,"\u0406\u0433\u0440\u043e\u0432\u0438\u0439 \u0440\u0435\u0436\u0438\u043c \u043f\u043e\u0432\u0438\u043d\u0435\u043d \u0431\u0443\u0442\u0438 0..2!");break;case "give":if(0===b.length){Y(a,"/give [\u041d\u043e\u043c\u0435\u0440]\n"+Eb.join(" ")); +break}d=Eb.indexOf((b[0]||"").toLowerCase());d=0<=d?d:P(b[0]);b=P(b[1]||1);!isNaN(d)&&0d&&0===d%1?!isNaN(b)&&0{a.u.P=!0;Y(a,"\u0423\u0447\u0430\u0441\u0442\u043a\u0438 \u0431\u0443\u0434\u0443\u0442\u044c \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u0456.",!0)});break;case "me":Y(a,c.name+" "+b.join(" "), +!0);break;case "save":Fc(a);Y(a,"\u0413\u0440\u0430 \u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043d\u0430.",!0);break;case "spawn":d.Aa=c.G;d.Ba=c.H;d.Ca=c.J;Y(a,"\u041f\u043e\u0447\u0430\u0442\u043a\u043e\u0432\u0430 \u043a\u0440\u0430\u043f\u043a\u0430 \u043e\u043d\u043e\u0432\u043b\u0435\u043d\u0430.",!0);break;case "teleport":case "tp":0===b.length?(c.G=d.Aa,c.H=d.Ba,c.J=d.Ca,a.u.P=!0,Y(a,"\u041f\u0435\u0440\u0435\u043c\u0456\u0441\u0442\u0438\u0432\u0441\u044f \u0434\u043e \u043f\u043e\u0447\u0430\u0442\u043a\u043e\u0432\u043e\u0457.", +!0)):3===b.length?(Y(a,"\u041f\u0435\u0440\u0435\u043c\u0456\u0441\u0442\u0438\u0442\u0438\u0441\u044f \u0434\u043e"+` ${c.G=Oc(c.G,b[0])} ${c.H=Oc(c.H,b[1])} ${c.J=Oc(c.J,b[2])}`,!0),a.u.P=!0):Y(a,"\u041d\u0435\u0432\u0434\u0430\u0447\u044f!");c.da=0;c.ea=0;c.fa=0;break;case "time":c=b[1];if(!c){Y(a,"\u0412\u0456\u0434\u0441\u0443\u0442\u043d\u0456\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440!");break}if("day"===c)c=1E3;else if("night"===c)c=13E3;else if(isNaN(c=L(P(c))))break;switch(b[0]){case "add":c+= +d.time;case "set":hc(d,c);Y(a,"\u041d\u043e\u0432\u0438\u0439 \u0447\u0430\u0441: "+d.time,!0);break;default:Y(a,"\u041d\u0435\u0434\u0456\u0439\u0441\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 : time "+b[0])}break;case "version":Y(a,"minicraft 0.11.4");break;case "/exit":c.Oa=0;Y(a,"\u0417\u0432\u0438\u0447\u0430\u0439\u043d\u0438\u0439 \u0440\u0435\u0436\u0438\u043c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0457 \u043c\u0438\u0448\u043a\u0438.",!0);break;case "/expand":a.g.qa&& +a.g.ra?d=!0:(Y(a,"\u041d\u0435\u043e\u0431\u0445\u0456\u0434\u043d\u0438\u0439 \u0432\u0438\u0431\u0456\u0440!"),d=!1);d&&("vert"===b[0]?(c.qa[1]=0,c.ra[1]=63,Y(a,"\u0412\u0438\u0431\u0456\u0440 \u0440\u043e\u0437\u0448\u0438\u0440\u0438\u0432\u0441\u044f.",!0)):Y(a,'\u041f\u0456\u0434\u0442\u0440\u0438\u043c\u0443\u0454\u0442\u044c\u0441\u044f \u0442\u0456\u043b\u044c\u043a\u0438 "vert"!'));break;case "/pos1":case "/pos2":Mc(a,[L(c.G),L(c.H),L(c.J)],"/pos2"===e);break;case "/regen":uc(d).then(()=> +{a.u.P=!0;Y(a,"\u0423\u0447\u0430\u0441\u0442\u043a\u0438 \u0432\u0456\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u0456.",!0)});break;case "/show":Y(a,`${"\u041f\u0435\u0440\u0448\u0438\u0439"}: ${c.qa?c.qa.join(" "):"\u043d\u0456\u0447\u043e\u0433\u043e "}, ${"\u0414\u0440\u0443\u0433\u0438\u0439"}: ${c.ra?c.ra.join(" "):"\u043d\u0456\u0447\u043e\u0433\u043e "}`);break;case "/wand":c.Oa=1;Y(a,"\u0412\u0438\u0434\u0456\u043b\u0435\u043d\u043d\u044f \u043a\u043d\u043e\u043f\u043a\u0430\u043c\u0438 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0457 \u043c\u0438\u0448\u043a\u0438.", +!0);break;default:Y(a,"\u041d\u0435\u0434\u0456\u0439\u0441\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 : "+e)}}else{const e=Y(a,`<${c.name}> `+b);Cc(a,b).then(l=>{l&&Pc(a,e)})}},Y=(a,b,c=!1)=>{const d=++Bc;(a.N=a.N.slice(-49)).push({id:d,tb:c,time:ua(),value:b});return d},Pc=(a,b)=>{const c=a.N.findIndex(d=>d.id===b);0<=c&&a.N.splice(c,1)},Mc=(a,b,c)=>{c?a.g.ra=b:a.g.qa=b;Y(a,`${c?"\u0414\u0440\u0443\u0433\u0430 \u043a\u0440\u0430\u043f\u043a\u0430 \u0432\u0438\u0431\u043e\u0440\u0443": +"\u041f\u0435\u0440\u0448\u0430 \u043a\u0440\u0430\u043f\u043a\u0430 \u0432\u0438\u0431\u043e\u0440\u0443"}: ${b.join(" ")}`,!0)},Cc=(a,b)=>(qb(a.bb),(b?db("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:Za({msg:b})}):db("/api/chat")).then(c=>{if(c.ok)return c.text()}).then(c=>{if(c){c=c.split("\n").filter(Boolean);for(const d of c)d.startsWith("<")&&Y(a,d);return 0!1).then(c=>{a.bb=ob(()=>{Cc(a,null)},5E3);return c})),Rc=({id:a,M:b})=>(A("div[className=bitmap]", +{S:{backgroundImage:`url(${"/static/minicraft/"}textures/${b}.png)`,backgroundPositionY:`-${2*(a-1)}rem`}}),null);function Sc({amount:a,l:b,id:c,M:d}){A("div[className=stack]",{title:Fb[c]+(1===b?` (${Eb[c]}, ${c})`:"")});return[G(Rc,{id:c,M:d}),1!==a&&H("div[className=amount]",{innerText:a})]} +function Tc({g:a,M:b,na:c}){A("div[className=bar]",{ontouchstart:F(e=>{a.L=Number(e.target.closest("[data-slot]").dataset.slot);a.ma=e.timeStamp}),S:{opacity:Ia(.5,M(1,1-5E-4*(c-a.ma-5E3)))}});const d=a.l;return a.B.slice(0,9).map(({c:e},l)=>H("div",{D:{slot:l},F:{active:l===a.L}},[e&&G(Sc,{amount:e.amount,data:e.data,l:d,id:e.id,M:b})]))} +function Uc({Bb:a,M:b}){A("div[className=grid]",{onclick:({target:c})=>{(c=c.closest("[data-id]"))&&Ib({c:Hb(P(c.dataset.id)),filter:null,W:64},a)}});return Eb.map((c,d)=>0({c:null,filter:null,W:64})),d=a.g.l;A("div[className=menu overlay inventory]",ia(()=>({onclick:({target:e})=>{if("menu overlay inventory"===e.className)c.c?c.c=null:(a.j=0,a.A=!1,Dc(a));else if(e=e.closest("[data-slot]"))e=a.g.B[P(e.dataset.slot)],c.c?Ib(c,e):e.c&&Ib(e,c)},oncontextmenu:({target:e})=>{if("menu overlay inventory"===e.className)c.c?0>=--c.c.amount&&(c.c=null):(a.j=0,a.A=!1,Dc(a));else if(e=e.closest("[data-slot]"))e=a.g.B[P(e.dataset.slot)],c.c? +Ib(c,e,1):e.c&&Ib(e,c,Ga(e.c.amount/2))}})));return[H("div[className=window]",null,[H("h2[innerText=\u0406\u043d\u0432\u0435\u043d\u0442\u0430\u0440]"),1===d&&G(Uc,{Bb:c,M:b}),H("div[className=grid]",null,a.g.B.map(({c:e},l)=>H("div",{D:{slot:l},F:{first:9>l}},[e&&G(Sc,{amount:e.amount,data:e.data,l:d,id:e.id,M:b})])))]),c.c&&H("div[className=hand]",{S:{transform:`translate(${a.mb}px, ${a.nb}px)`}},[G(Sc,{amount:c.c.amount,data:c.c.data,l:0,id:c.c.id,M:b})])]} +const Wc=({I:{tb:a,time:b,value:c},na:d})=>(A(a?"div[className=minor]":"div",{innerText:c,S:{opacity:M(1,1-.001*(d-b-4500))}}),null);function Xc({N:a,na:b}){A("div[className=messages]");const c=b-5E3;return[qa(Wc,a.slice(-10).filter(d=>d.time>c),{na:b})]}function Yc({I:a,ia:b,current:c}){A("button",{disabled:a.id===c,innerText:`${a.label} (${a.owner})`,onclick:()=>{b({T:a.id})}});return null} +function Zc({a:{ia:a},config:b,o:c,oa:d}){c&&D(()=>Fc(c));const [e,l]=oa(!1),m=ha(()=>e?db("/static/minicraft/textures.json").then(k=>k.ok?k.json():null).catch(()=>null):Ya.resolve(null),[e],null);A("div[className=menu overlay]");return[H("h1",{innerText:e?"\u041f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u0438 ":"\u041d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f"}),H("center",null,[H("button",{innerText:c&&!e?"\u041f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u0432 \u0433\u0440\u0443": +"\u041f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f",onclick:()=>{e?l(!1):c?(c.j=0,c.A=!1,Dc(c)):d(2)}})]),!e&&H("div[className=settings]",null,[H("button[innerText=\u041f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u0438 ...]",{onclick:()=>{l(!0)}}),H("label[innerText=\u0414\u043e\u0437\u0432\u0456\u043b:]",null,[H("input[type=range][min=1][max=100][step=1]",{value:101-b.Y,onchange:k=>a({Y:101-Number(k.target.value)})})]),H("label[innerText=\u0422\u043e\u0447\u043a\u0430 \u043e\u0433\u043b\u044f\u0434\u0443:]", null,[H("input[type=range][min=1][max=180][step=1]",{value:b.Da,onchange:k=>a({Da:Number(k.target.value)})})]),H("label[innerText=\u0412\u0438\u0434\u0438\u043c\u0456\u0441\u0442\u044c:]",null,[H("input[type=range][min=1][max=128][step=1]",{value:b.ga,onchange:k=>a({ga:Number(k.target.value)})})]),H("label[innerText=\u0413\u0440\u0443\u043f\u0443\u0432\u0430\u043d\u043d\u044f \u043f\u0456\u043a\u0441\u0435\u043b\u0456\u0432:]",null,[H("input[type=range][min=1][max=8][step=1]",{value:b.xa,onchange:k=> a({xa:Number(k.target.value)})})]),H("label[innerText=\u0427\u0443\u0442\u043b\u0438\u0432\u0456\u0441\u0442\u044c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0457 \u043c\u0438\u0448\u043a\u0438:]",null,[H("input[type=range][min=1][max=15][step=1]",{value:b.ua,onchange:k=>a({ua:Number(k.target.value)})})]),H("button[innerText=\u0421\u0442\u043e\u0440\u0456\u043d\u043a\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0443]",{onclick:()=>{open("//github.com/L3P3/minicraft")}})]), -c&&!e&&H("center",null,[H("button[innerText=\u041f\u043e\u043a\u0438\u043d\u0443\u0442\u0456 \u0441\u0432\u0456\u0442]",{onclick:()=>{d(2)}})]),e&&H("div[className=settings]",null,[H("button[innerText=\u041e\u0434\u043d\u043e\u0442\u043e\u043d\u043d\u0456]",{disabled:0===b.T,onclick:()=>{a({T:0})}}),m&&ra(Zc,m,{ia:a,current:b.T})])]}const ad=({I:{tb:a,value:b}})=>(A(a?"div[className=minor]":"div",{innerText:b}),null); -function bd({o:a,N:b}){const c=F({history:null,input:null});A("div[className=menu overlay terminal]",{onclick:d=>{d.target!==c.input&&c.input.focus()}});D(d=>{d&&pb(()=>c.history.scrollTop=1E9,0)},[b.length&&b[b.length-1].id]);return[F(H("div[className=toolbar]",null,[H("button[innerText=\u274c]",{onclick:()=>{a.j=0;a.A=!1;Ec(a)}})])),H("div[className=history]",{R:F(d=>{c.history=d})},[ra(ad,b)]),F(H("input[enterkeyhint=send][mozactionhint=send][name=message][required]",{onkeydown:d=>{const e=d.keyCode; -d=d.target;13===e?(Rc(a,d.value),d.value=""):27===e&&(a.j=0,a.A=!1,Ec(a))},R:d=>{c.input=d;pb(()=>d.focus(),0)}}))]}const cd=[["pick",-2],["up",-14],["down",-15],["E",69],["T",84],["F1",112],["F3",114],["...",27]],dd=[["up",-10],["down",-11],["left",-12],["right",-13],["center",-1]],ed=[["up",-16],["down",-17],["left",-18],["right",-19],["center",-3]]; -function fd({o:a}){const b=a.X,c=([d,e])=>H("div",{D:{code:e},F:{button:!0,[d]:!0,active:b.has(e)}});A("div[className=touch]",F({ontouchstart:d=>{let {code:e}=d.target.dataset;if(null!=e&&Oc(a,e=P(e),!0)){const l=d.changedTouches[0].identifier,m=k=>{k.changedTouches[0].identifier===l&&(ub("touchend",m),Oc(a,e,!1))};tb("touchend",m)}return!1}}));return[H("div[className=top]",null,cd.map(([d,e])=>H(`div[innerText=${d}]`,{D:{code:e},F:{button:!0,active:b.has(e)}}))),H("div[className=move]",null,dd.map(c)), -H("div[className=move sec]",null,ed.map(c))]} -function gd({account:a,a:b,config:c,frame:d,cb:e,oa:l}){const m=va(),k=xa.pointerLockElement===d,f=ja(()=>e.o=Fc(b,d,c,a));D(()=>{const g=h=>{if(0!==f.j)return!0;xa.pointerLockElement===d?Oc(f,-1-h.button,"mousedown"===h.type):Ec(f);return!1},p=h=>{if(xa.pointerLockElement===d){const q=f.config.ua*Aa/(Ja(f.Pa,f.Qa)*f.la);vb&&(f.ub=h.timeStamp);Mb(f.g,f.Ra=h.movementX*q,f.Sa=-h.movementY*q)}else f.mb=h.clientX,f.nb=h.clientY},v=h=>{b.Ja(!1);if(0===f.j&&!f.A&&5{d.removeEventListener("mousedown",g);d.removeEventListener("mouseup",g);d.removeEventListener("mousemove",p,z);d.removeEventListener("wheel",v,z);rb(f.bb);sb(f.Cb);hc(f.world,f.g);var h=f.u;yc.delete(h);sb(h.zb);e.o=null}});D(()=>{f.config=c;f.u&&(f.u.P=!0);const g=f.world;var p=Ha(Na(f.config.ga/16*2+2));if(g.K!== -p){var v=f.g;g.$&&hc(g,v);const z=1<<(g.K=p),h=g.$=[];for(let q=0;qu;++u)h.push({ja:!1,l:!1,x:q,y:u,z:C,Fa:0,Ta:0});p=z<{f.la=v;f.Pa=Ja(1,g);f.Qa=Ja(1,p);p=f.config.Y;g=Ha(f.Pa*f.la/p);p=Ha(f.Qa*f.la/p);if(g!==f.ya||p!==f.za)f.ya=g,f.za=p,f.u&&(f.u.P=!0,Ac(f.u))},[d.offsetWidth,d.offsetHeight,wa.devicePixelRatio||1,c.Y]);D(g=>{g||f.A||0!==f.j||(f.j= -1,vb&&f.Ra|f.Sa&&f.ub>m-100&&(Mb(f.g,-f.Ra,-f.Sa),f.Ra=f.Sa=0,f.u.P=!0));f.A=!g},[c.ka&&0===f.j||k]);D(g=>k&&g&&xa.exitPointerLock(),[f.A||0!==f.j]);D(()=>{if(f.world){if(f.ca&&!f.A){var g=f.g,p=M(5,.01*(m-f.ca));g.da-=.1*g.da*p;g.ea-=.1*g.ea*p;g.fa-=.1*g.fa*p;g.da+=(Ka(g.O)*g.Ua+La(g.O)*g.Va)*p;g.ea+=g.ib*p;g.fa+=(-La(g.O)*g.Ua+Ka(g.O)*g.Va)*p;Mb(g,g.vb*p*1.5,g.wb*p*1.5);g.G+=g.da*p;g.H+=g.ea*p;g.J+=g.fa*p}if(f.u){g=f.u;++g.$a;p=g.Wa;var v=g.jb;const aa=g.kb,la=g.o,Ra=la.config,zb=la.ta,y=la.g,O= -la.ya,sa=la.za,R=la.world;var z=0;if(!la.A||g.P){g.P=!1;z=Ra.xa;const kd=Ra.ga;var h=y.O,q=y.ha;const ld=y.aa,md=y.ba,Sa=y.l;var C=y.G,u=y.H,E=y.J;const nd=zb?y.V:-1,od=R.Z;var S=R.K;const pd=null!==wc;var t=1/O,r=1/sa;const ma=O>>1,ta=sa>>1,kc=M(O,sa),lc=32T)var I=V;else if(0===V)I=0===ea?0:1===ea?T:ea-1,Ea=1===ea;else if(V=O)break a;Ea=!1}var W=(I-ma)*qd;da=B+mc*W;const rc=Da-h*W,td=pc;W=16757124;let ib=1,sc=kd,jb=0;2=== -Sa&&0Ab;++Ab){const X=(td+Ab)%3;let fa=rc;var J=rd;0===X&&(fa=da,J=r);1===X&&(fa=qc,J=x);var ua=-1/fa;0fa|0),Wa=u+ya*J-(1===X&0>fa|0),Xa=E+ua*J-(2===X&0>fa|0);J*=tc;for(let Bb,Cb,Db,Y;JWa){if(0>ya)break}else if(65600<=Wa){if(0fa|X<<1,oc=J);if(pd){--Y;1===X?6===Y?Y=25:13===Y?Y=4:1===Y&&0>>24)continue;W=uc&16777215}else W=Hb[Y];sc=J;ib=(0===X?.8:2===X?.6:0>16)*ib,255)<<16|M((W>>8&255)*ib,255)<<8|M((W&255)*ib,255);if(da=(Ea=Ea&&(Ua!==ta||Ima+T))&& -na===W){if(6T)break;aa[++I]=na;if(4>T)break;aa[++I]=na;if(5>T)break;aa[++I]=na;if(6>T)break;aa[++I]=na;break}if(Ea||0===I)na=W;aa[Ta+I]=W}Ta+=O}zb&&!lc&&(aa[O*ta+ma]^=16777215)}p.putImageData(v,0,0);zb&&lc&&(v=M(Ha(.05*kc),8),p.fillRect(ma-v,ta-1,v<<1,2),p.fillRect(ma-1,ta-v,2,v-1),p.fillRect(ma-1,ta+1,2,v-1))}g.ob=la.Ka?`minicraft ${"0.11.3"} ${L(g.qb).toString().padStart(2,"\u00a0")} fps, T: ${L(24*R.eb).toString().padStart(2, -"0")}:${L(24*R.eb%1*60).toString().padStart(2,"0")}; ${la.A&&500>m%1E3?"":R.time} -R: ${O}x${sa} (x${Ra.Y}), D: ${Ra.ga}, C: ${R.sa}/${R.Ia.length}, M: ${64*wb(1<<4+R.K)>>10}k +c&&!e&&H("center",null,[H("button[innerText=\u041f\u043e\u043a\u0438\u043d\u0443\u0442\u0456 \u0441\u0432\u0456\u0442]",{onclick:()=>{d(2)}})]),e&&H("div[className=settings]",null,[H("button[innerText=\u041e\u0434\u043d\u043e\u0442\u043e\u043d\u043d\u0456]",{disabled:0===b.T,onclick:()=>{a({T:0})}}),m&&qa(Yc,m,{ia:a,current:b.T})])]}const $c=({I:{tb:a,value:b}})=>(A(a?"div[className=minor]":"div",{innerText:b}),null); +function ad({o:a,N:b}){const c=F({history:null,input:null});A("div[className=menu overlay terminal]",{onclick:d=>{d.target!==c.input&&c.input.focus()}});D(d=>{d&&ob(()=>c.history.scrollTop=1E9,0)},[b.length&&b[b.length-1].id]);return[F(H("div[className=toolbar]",null,[H("button[innerText=\u274c]",{onclick:()=>{a.j=0;a.A=!1;Dc(a)}})])),H("div[className=history]",{R:F(d=>{c.history=d})},[qa($c,b)]),F(H("input[enterkeyhint=send][mozactionhint=send][name=message][required]",{onkeydown:d=>{const e=d.keyCode; +d=d.target;13===e?(Qc(a,d.value),d.value=""):27===e&&(a.j=0,a.A=!1,Dc(a))},R:d=>{c.input=d;ob(()=>d.focus(),0)}}))]}const bd=[["pick",-2],["up",-14],["down",-15],["E",69],["T",84],["F1",112],["F3",114],["...",27]],cd=[["up",-10],["down",-11],["left",-12],["right",-13],["center",-1]],dd=[["up",-16],["down",-17],["left",-18],["right",-19],["center",-3]]; +function ed({o:a}){const b=a.X,c=([d,e])=>H("div",{D:{code:e},F:{button:!0,[d]:!0,active:b.has(e)}});A("div[className=touch]",F({ontouchstart:d=>{let {code:e}=d.target.dataset;if(null!=e&&Nc(a,e=P(e),!0)){const l=d.changedTouches[0].identifier,m=k=>{k.changedTouches[0].identifier===l&&(tb("touchend",m),Nc(a,e,!1))};sb("touchend",m)}return!1}}));return[H("div[className=top]",null,bd.map(([d,e])=>H(`div[innerText=${d}]`,{D:{code:e},F:{button:!0,active:b.has(e)}}))),H("div[className=move]",null,cd.map(c)), +H("div[className=move sec]",null,dd.map(c))]} +function fd({account:a,a:b,config:c,frame:d,cb:e,oa:l}){const m=ua(),k=wa.pointerLockElement===d,f=ia(()=>e.o=Ec(b,d,c,a));D(()=>{const h=g=>{if(0!==f.j)return!0;wa.pointerLockElement===d?Nc(f,-1-g.button,"mousedown"===g.type):Dc(f);return!1},p=g=>{if(wa.pointerLockElement===d){const r=f.config.ua*za/(Ia(f.Pa,f.Qa)*f.la);ub&&(f.ub=g.timeStamp);Lb(f.g,f.Ra=g.movementX*r,f.Sa=-g.movementY*r)}else f.mb=g.clientX,f.nb=g.clientY},v=g=>{b.Ja(!1);if(0===f.j&&!f.A&&5{d.removeEventListener("mousedown",h);d.removeEventListener("mouseup",h);d.removeEventListener("mousemove",p,z);d.removeEventListener("wheel",v,z);qb(f.bb);rb(f.Cb);gc(f.world,f.g);var g=f.u;xc.delete(g);rb(g.zb);e.o=null}});D(()=>{f.config=c;f.u&&(f.u.P=!0);const h=f.world;var p=Ga(Ma(f.config.ga/16*2+2));if(h.K!== +p){var v=f.g;h.$&&gc(h,v);const z=1<<(h.K=p),g=h.$=[];for(let r=0;ru;++u)g.push({ja:!1,l:!1,x:r,y:u,z:C,Fa:0,Ta:0});p=z<{f.la=v;f.Pa=Ia(1,h);f.Qa=Ia(1,p);p=f.config.Y;h=Ga(f.Pa*f.la/p);p=Ga(f.Qa*f.la/p);if(h!==f.ya||p!==f.za)f.ya=h,f.za=p,f.u&&(f.u.P=!0,zc(f.u))},[d.offsetWidth,d.offsetHeight,va.devicePixelRatio||1,c.Y]);D(h=>{h||f.A||0!==f.j||(f.j= +1,ub&&f.Ra|f.Sa&&f.ub>m-100&&(Lb(f.g,-f.Ra,-f.Sa),f.Ra=f.Sa=0,f.u.P=!0));f.A=!h},[c.ka&&0===f.j||k]);D(h=>k&&h&&wa.exitPointerLock(),[f.A||0!==f.j]);D(()=>{if(f.world){if(f.ca&&!f.A){var h=f.g,p=M(5,.01*(m-f.ca));h.da-=.1*h.da*p;h.ea-=.1*h.ea*p;h.fa-=.1*h.fa*p;h.da+=(Ja(h.O)*h.Ua+Ka(h.O)*h.Va)*p;h.ea+=h.ib*p;h.fa+=(-Ka(h.O)*h.Ua+Ja(h.O)*h.Va)*p;Lb(h,h.vb*p*1.5,h.wb*p*1.5);h.G+=h.da*p;h.H+=h.ea*p;h.J+=h.fa*p}if(f.u){h=f.u;++h.$a;p=h.Wa;var v=h.jb;const Z=h.kb,ka=h.o,Qa=ka.config,yb=ka.ta,y=ka.g,O= +ka.ya,ra=ka.za,R=ka.world;var z=0;if(!ka.A||h.P){h.P=!1;var g=Qa.xa;const jd=Qa.ga;var r=y.O,C=y.ha;const kd=y.aa,ld=y.ba,Ra=y.l;var u=y.G;z=y.H;var E=y.J;const md=yb?y.V:-1,nd=R.Z;var S=R.K;const od=null!==vc;var t=1/O,q=1/ra;const la=O>>1,sa=ra>>1,jc=M(O,ra),kc=32z||64<=z?0:$b(R,u&Ba,q&63,E&Ba);if(2!==Ra&&0g)var I=U;else if(0===U)I=0===da?0:1===da?g:da-1,Da=1===da;else if(U=O)break a;Da=!1}var V=(I-la)*pd;ca=B+lc*V;const qc=Ca-r*V,td=oc;V=16757124; +let hb=1,rc=jd,ib=0;2===Ra&&0zb;++zb){const W=(td+zb)%3;let ea=qc;var J=rd;0===W&&(ea=ca,J=x);1===W&&(ea=pc,J=qd);var ta=-1/ea;0ea|0),Va=q+xa*J-(1===W&0>ea|0),Wa=E+ta*J-(2===W&0>ea|0);J*=sc;for(let Ab,Bb,Cb,X;JVa){if(0>xa)break}else if(65600<=Va){if(0ea|W<<1,nc=J);if(od){--X;1===W?6===X?X=25:13===X?X=4:1===X&&0>>24)continue;V=tc&16777215}else V=Gb[X];rc=J;hb=(0===W?.8:2===W?.6:0>16)*hb,255)<<16|M((V>>8&255)*hb,255)<<8|M((V&255)*hb,255);if(ca=(Da=Da&&(Ta!== +sa||Ila+g))&&ma===V){if(6g)break;Z[++I]=ma;if(4>g)break;Z[++I]=ma;if(5>g)break;Z[++I]=ma;if(6>g)break;Z[++I]=ma;break}if(Da||0===I)ma=V;Z[Sa+I]=V}Sa+=O}yb&&!kc&&(Z[O*sa+la]^=16777215)}p.putImageData(v,0,0);yb&&kc&&(v=M(Ga(.05*jc),8),p.fillRect(la-v,sa-1,v<<1,2),p.fillRect(la-1,sa-v,2,v-1),p.fillRect(la-1,sa+1,2,v-1))}h.ob=ka.Ka?`minicraft ${"0.11.4"} ${L(h.qb).toString().padStart(2,"\u00a0")} fps, T: ${L(24*R.eb).toString().padStart(2, +"0")}:${L(24*R.eb%1*60).toString().padStart(2,"0")}; ${ka.A&&500>m%1E3?"":R.time} +R: ${O}x${ra} (x${Qa.Y}), D: ${Qa.ga}, C: ${R.sa}/${R.Ia.length}, M: ${64*vb(1<<4+R.K)>>10}k E: 0/0, M: ${y.l}, I: ${z} Position: ${y.G.toFixed(2)} ${y.H.toFixed(2)} ${y.J.toFixed(2)} -Angle: ${(y.O*Fa).toFixed(2)} ${(y.ha*Fa).toFixed(2)} -Focus: ${0>y.V?"":y.aa+" "+y.V+" "+y.ba+" "+"WEBTSNI"[y.pa]+": "+Fb[ac(R,y.aa,y.V,y.ba)]} -Chunk abs: ${L(y.G)>>4} ${L(y.J)>>4} ${L(y.H)>>4} rel: ${R.La} ${R.Na} ${R.Ma}`:""}}f.ca=m},[m]);oa();const w=F({fb:1});c.T&&(w.fb=c.T);return[H("canvas",{R:F(g=>{f.u=Bc(f,g)})}),f.ta&&2!==f.j&&G(Yc,{N:f.N,na:m}),f.u&&f.Ka&&H("div[className=diagnostics]",{innerText:f.u.ob}),c.ka&&G(fd,{o:f,ab:f.ab}),f.ta&&3!==f.j&&2!==f.g.l&&G(Uc,{g:f.g,M:w.fb,na:m}),3===f.j&&G(Wc,{o:f,M:w.fb,na:m}),1===f.j&&G($c,{a:b,config:c,o:f,oa:l}),2===f.j&&G(bd,{o:f,N:f.N})]} -function hd({I:a,Db:b,Eb:c,Fb:d}){A("div",{F:{selected:a===c},onclick:()=>{d(a.id)}});c=`${a.local?"L":"_"}${a.local&&a.remote?a.local>a.remote?">":a.local{l(m()+1)}),f=F({value:null}),w=ia(()=>ba(function*(){try{const t=!f.value&&!e,r=yield eb(`${"/api/minicraft/"}world?what=${t?"initial":"meta_all"}`);if(!r.ok)throw Error("\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u043f\u0456\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f");const x=yield r.json();if(!t)return x;if("0.11.3"!==x.version_latest)return location.reload(!0),null;ca();b.xb(x.account); -return x.worlds}catch(t){return alert("\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f \u0441\u043f\u0438\u0441\u043a\u0443 \u0441\u0432\u0456\u0442: "+t.message),[]}}()),[e],null),g=ja(()=>{w&&(f.value=w);const t=[];f.value&&t.push(...f.value.map(r=>({account_name:r.account_name,hash:r.hash,id:r.id,label:r.label,local:0,public:r.public,remote:r.modified,writable:r.writable})));for(const r of c.worlds){const x=t.find(B=>B.id===r.id); -if(x){const B=x.local=r.mod_l,Da=x.remote,da=r.mod_r;B>da&&Da>da&&(confirm('\u041a\u043e\u043d\u0444\u043b\u0456\u043a\u0442! \u0421\u0432\u0456\u0442 "'+r.label+'" \u0411\u0443\u043b\u043e \u0437\u043c\u0456\u043d\u0435\u043d\u043e \u044f\u043a \u0442\u0443\u0442, \u0442\u0430\u043a \u0456 \u0432 \u0456\u043d\u0448\u0438\u0445 \u043c\u0456\u0441\u0446\u044f\u0445.\nOK: \u043f\u0440\u0438\u0439\u043d\u044f\u0442\u0438 \u0437 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 ('+yb(Da,!1)+") | \u0421\u043a\u0430\u0441\u0443\u0432\u0430\u0442\u0438: \u0417\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0442\u0435 \u0446\u0435 \u0441\u044e\u0434\u0438 ("+ -yb(B,!1)+")")?b.U(r.id,{mod_l:x.local=da}):b.U(r.id,{mod_r:x.remote=da}))}else 1Ja(x.local,x.remote)-Ja(r.local,r.remote))},[w,c.worlds]),[p,v,z]=pa(c.Ea),h=ja(()=>g.find(t=>t.id===p)||null,[p,g]),q=ja(()=>{let t,r;return null!=(r=null==g?void 0:null==(t=g.find(x=>0{if(null!==q){var t=!1,r=g.find(x=>x.id===q);if(r.localx.json()).then(x=>{if(!t)return Wb(q,x).then(()=> -{b.U(q,{mod_l:r.remote,mod_r:r.remote})})}).catch(x=>{t||("QuotaExceededError"===x.name?(alert("\u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043d\u044c\u043e \u043c\u0456\u0441\u0446\u044f!"),b.hb(q),Xb(q)):alert("\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f \u0441\u0432\u0456\u0442\u0443: "+x.message))});else{if(!r.writable){b.U(q,{mod_l:c.worlds.find(B=>B.id===q).mod_r});return}let x=q;(1===r.remote?eb("/api/minicraft/world", -Object.assign({},id,{body:$a({what:"meta",label:r.label})})).then(B=>{if(!B.ok)throw Error(403===B.status?"\u041d\u0435\u043c\u0430 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0456\u0457. \u0417\u0430\u0440\u0435\u0454\u0441\u0442\u0440\u043e\u0432\u0430\u043d\u0438\u0439?":"\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u043f\u0456\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f");return B.json()}).then(B=>{x=B.id}):Za.resolve()).then(()=>{if(t)throw null;return Vb(q)}).then(B=>{if(t)throw null; -return eb("/api/minicraft/world",Object.assign({},id,{body:$a({what:"data",world:x,data:B})}))}).then(B=>{if(!B.ok)throw Error(403===B.status?"\u041d\u0435\u043c\u0430 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0456\u0457. \u0417\u0430\u0440\u0435\u0454\u0441\u0442\u0440\u043e\u0432\u0430\u043d\u0438\u0439?":"\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u043f\u0456\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f");return B.json()}).then(B=>{ca();x===q?b.U(q,{mod_l:B.modified,mod_r:B.modified}): -(Yb(q,x),b.hb(q),b.gb({id:x,label:r.label,mod_l:B.modified,mod_r:B.modified}),t||z()!==q||v(x));t||k();ha()}).catch(B=>{t||(alert("\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f \u0441\u0432\u0456\u0442\u0443:"+B.message),ca(),b.U(q,{mod_r:0}),ha())})}return()=>{t=!0}}},[q]);const [C,u]=pa(!1);h||u(!1);const [E,S]=pa(!1);return[H("h1[innerText=\u0421\u0432\u0456\u0442\u0456]"),H("button[innerText=\u041e\u043d\u043e\u0432\u0438\u0442\u0438][style=position:absolute;left:0;top:0;height:2rem][title=\u041e\u043d\u043e\u0432\u0438\u0442\u0438 \u0441\u043f\u0438\u0441\u043e\u043a]", -{disabled:!w,onclick:k}),H("button[style=position:absolute;right:0;top:0;height:2rem]",{disabled:0{location.href="/account?redir=minicraft"}}),H("div[className=worlds]",null,[ra(hd,g,{Hb:e,Db:q,Eb:h,Fb:v})]),H("center",null,[H("button[innerText=\u0412\u0456\u0434\u0447\u0438\u043d\u0438\u0442\u0438]",{disabled:!h||!h.local||h.remote>h.local,onclick:()=>{ca();b.ia({Ea:h.id}); -d(0);ha()},title:h?h.local?h.remote>h.local?"\u0421\u0432\u0456\u0442 \u0449\u0435 \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0443\u0454\u0442\u044c\u0441\u044f!":"\u0412\u0432\u0456\u0439\u0442\u0438 \u0443 \u0432\u0438\u0431\u0440\u0430\u043d\u0438\u0439 \u0441\u0432\u0456\u0442 ":"\u0421\u0432\u0456\u0442 \u0449\u0435 \u043d\u0435 \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u0438\u0439!":"\u041d\u0435 \u0432\u0438\u0431\u0440\u0430\u043d\u0438\u0439 \u0441\u0432\u0456\u0442!"}), -H("button[innerText=\u0421\u0432\u0456\u0442...]",{disabled:!h||C,onclick:()=>{u(!0)},title:h?"\u0410\u043a\u0446\u0456\u0457/\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u0438 \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f \u0441\u0432\u0456\u0442\u0443.":"\u041d\u0435 \u0432\u0438\u0431\u0440\u0430\u043d\u0438\u0439 \u0441\u0432\u0456\u0442!"})]),H("hr"),H("center",null,[H("button[innerText=\u041d\u043e\u0432\u0438\u0439 \u0441\u0432\u0456\u0442]",{onclick:()=>{const t=prompt("\u0418\u043c\u044f \u043d\u043e\u0432\u043e\u043c\u0443 \u0441\u0432\u0456\u0442\u0443:\n(\u043c\u0430\u043a\u0441. 16 \u0421\u0438\u043c\u0432\u043e\u043b\u0456\u0432)", -"\u041d\u043e\u0432\u0438\u0439 \u0441\u0432\u0456\u0442");t&&(16r.id))-1,label:t,mod_l:Qa.now(),mod_r:0}))}}),H("button[innerText=\u041d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f]",{onclick:()=>{d(1)}})]),H("center",null,[H("small[innerText=\u0412\u0435\u0440\u0441\u0456\u044f 0.11.3 \u043e\u0442 L3P3]")]),C&&h&&H("div", -{F:{"menu overlay advanced":!0,busy:E},onclick:t=>{"menu overlay advanced"===t.target.className&&u(!1)}},[H("div[className=window]",null,[H("h2",{innerText:`"${h.label}"`,title:h.id}),H("table",null,[!!h.account_name&&H("tr",null,[H("td[innerText=\u0412\u043b\u0430\u0441\u043d\u0438\u043a:]"),H("td",{innerText:h.account_name})]),H("tr",null,[H("td[innerText=\u0417\u043c\u0456\u043d\u0438:]"),H("td",{innerText:yb(Ja(h.local,h.remote),!1)})])]),H("center",null,[H("button[innerText=\u041f\u0435\u0440\u0435\u0439\u043c\u0435\u043d\u0443\u0432\u0430\u0442\u0438]", -{disabled:E||!h.writable,onclick:()=>{const t=prompt("\u041d\u043e\u0432\u0435 \u0438\u043c\u044f \u0441\u0432\u0456\u0442\u0443:\n(\u043c\u0430\u043a\u0441. 16 \u0441\u0438\u043c\u0432\u043e\u043b\u0456\u0432)",h.label);!t||t===h.label||16{if(!r.ok)throw Error(403===r.status?"\u041d\u0435\u043c\u0430 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0456\u0457. \u0417\u0430\u0440\u0435\u0454\u0441\u0442\u0440\u043e\u0432\u0430\u043d\u0438\u0439?": -"\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u043f\u0456\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f");return r.json()}).catch(r=>{alert("\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u0440\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u043d\u043d\u044f \u0441\u0432\u0456\u0442\u0443: "+r.message)}).then(()=>{S(!1)})))},title:h.writable?"\u0417\u043c\u0456\u043d\u0438\u0442\u0438 \u0456\u043c'\u044f \u0441\u0432\u0456\u0442\u0443":"\u0412\u0456\u0434\u0441\u0443\u0442\u043d\u044f \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0456\u044f!"}), -H("button",{disabled:E||!h.local&&!h.writable,innerText:h.local?"\u0432\u0438\u0434\u0430\u043b\u0438\u0442\u0438 (\u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0456)":"\u0432\u0438\u0434\u0430\u043b\u0438\u0442\u0438 ",onclick:()=>{confirm('\u0421\u0432\u0456\u0442 "'+h.label+'" \u0434\u0456\u0439\u0441\u043d\u043e \u0432\u0438\u0434\u0430\u043b\u0438\u0442\u0438?')&&(h.local?(b.hb(h.id),Xb(h.id)):(S(!0),eb("/api/minicraft/world",{method:"DELETE",headers:{"Content-Type":"application/json"},body:$a({what:"world", -world:h.id})}).then(t=>{if(!t.ok)throw Error(403===t.status?"\u041d\u0435\u043c\u0430 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0456\u0457. \u0417\u0430\u0440\u0435\u0454\u0441\u0442\u0440\u043e\u0432\u0430\u043d\u0438\u0439?":"\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u043f\u0456\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f");ca();v(null);u(!1);k();S(!1);ha();return t.json()}).catch(t=>{alert("\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u043f\u0440\u0438 \u0432\u0438\u0434\u0430\u043b\u0435\u043d\u043d\u0456 \u0441\u0432\u0456\u0442\u0443: "+ -t.message);S(!1)})))},title:h.local||h.writable?"\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u0441\u0432\u0456\u0442 ":"\u0412\u0456\u0434\u0441\u0443\u0442\u043d\u044f \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0456\u044f!"})]),H("center",null,[H("button",{disabled:E||!h.remote||!h.writable,innerText:`${"\u041f\u0443\u0431\u043b\u0456\u0447\u043d\u043e "}: ${h.public?"\u0422\u0430\u043a ":"\u041d\u0456"}`,onclick:()=>{S(!0);eb("/api/minicraft/world",{method:"POST",headers:{"Content-Type":"application/json"}, -body:$a({what:"meta",world:h.id,public:!h.public})}).then(t=>{if(!t.ok)throw Error(403===t.status?"\u041d\u0435\u043c\u0430 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0456\u0457. \u0417\u0430\u0440\u0435\u0454\u0441\u0442\u0440\u043e\u0432\u0430\u043d\u0438\u0439?":"\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u043f\u0456\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f");ca();k();S(!1);ha();return t.json()}).catch(t=>{alert("\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u0440\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u043d\u043d\u044f \u0441\u0432\u0456\u0442\u0443: "+ -t.message);S(!1)})},title:h.remote?h.writable?h.public?"\u0417\u0440\u043e\u0431\u0456\u0442\u044c \u0441\u0432\u0456\u0442 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u0438\u0439 ":"\u0417\u0440\u043e\u0431\u0456\u0442\u044c \u0441\u0432\u0456\u0442 \u043f\u0443\u0431\u043b\u0456\u0447\u043d\u0438\u043c":"\u0412\u0456\u0434\u0441\u0443\u0442\u043d\u044f \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0456\u044f!":"\u0421\u0432\u0456\u0442 \u043d\u0435 \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u0438\u0439!"}), -H("button",{disabled:E||!w||0{h.local?h.remote||b.U(h.id,{mod_r:1}):b.gb({id:h.id,label:h.label,mod_l:1,mod_r:h.remote})},title:w?h.local?h.remote?"\u0421\u0432\u0456\u0442 \u0443\u0436\u0435 \u0456\u0441\u043d\u0443\u0454 \u043d\u0430 \u0441\u0430\u0439\u0442\u0456!": +Angle: ${(y.O*Ea).toFixed(2)} ${(y.ha*Ea).toFixed(2)} +Focus: ${0>y.V?"":y.aa+" "+y.V+" "+y.ba+" "+"WEBTSNI"[y.pa]+": "+Eb[$b(R,y.aa,y.V,y.ba)]} +Chunk abs: ${L(y.G)>>4} ${L(y.J)>>4} ${L(y.H)>>4} rel: ${R.La} ${R.Na} ${R.Ma}`:""}}f.ca=m},[m]);na();const w=F({fb:1});c.T&&(w.fb=c.T);return[H("canvas",{R:F(h=>{f.u=Ac(f,h)})}),f.ta&&2!==f.j&&G(Xc,{N:f.N,na:m}),f.u&&f.Ka&&H("div[className=diagnostics]",{innerText:f.u.ob}),c.ka&&G(ed,{o:f,ab:f.ab}),f.ta&&3!==f.j&&2!==f.g.l&&G(Tc,{g:f.g,M:w.fb,na:m}),3===f.j&&G(Vc,{o:f,M:w.fb,na:m}),1===f.j&&G(Zc,{a:b,config:c,o:f,oa:l}),2===f.j&&G(ad,{o:f,N:f.N})]} +function gd({I:a,Db:b,Eb:c,Fb:d}){A("div",{F:{selected:a===c},onclick:()=>{d(a.id)}});c=`${a.local?"L":"_"}${a.local&&a.remote?a.local>a.remote?">":a.local{l(m()+1)}),f=F({value:null}),w=ha(()=>aa(function*(){try{const t=!f.value&&!e,q=yield db(`${"/api/minicraft/"}world?what=${t?"initial":"meta_all"}`);if(!q.ok)throw Error("\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u043f\u0456\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f");const x=yield q.json();if(!t)return x;if("0.11.4"!==x.version_latest)return location.reload(!0),null;ba();b.xb(x.account); +return x.worlds}catch(t){return alert("\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f \u0441\u043f\u0438\u0441\u043a\u0443 \u0441\u0432\u0456\u0442: "+t.message),[]}}()),[e],null),h=ia(()=>{w&&(f.value=w);const t=[];f.value&&t.push(...f.value.map(q=>({account_name:q.account_name,hash:q.hash,id:q.id,label:q.label,local:0,public:q.public,remote:q.modified,writable:q.writable})));for(const q of c.worlds){const x=t.find(B=>B.id===q.id); +if(x){const B=x.local=q.mod_l,Ca=x.remote,ca=q.mod_r;B>ca&&Ca>ca&&(confirm('\u041a\u043e\u043d\u0444\u043b\u0456\u043a\u0442! \u0421\u0432\u0456\u0442 "'+q.label+'" \u0411\u0443\u043b\u043e \u0437\u043c\u0456\u043d\u0435\u043d\u043e \u044f\u043a \u0442\u0443\u0442, \u0442\u0430\u043a \u0456 \u0432 \u0456\u043d\u0448\u0438\u0445 \u043c\u0456\u0441\u0446\u044f\u0445.\nOK: \u043f\u0440\u0438\u0439\u043d\u044f\u0442\u0438 \u0437 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 ('+xb(Ca,!1)+") | \u0421\u043a\u0430\u0441\u0443\u0432\u0430\u0442\u0438: \u0417\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0442\u0435 \u0446\u0435 \u0441\u044e\u0434\u0438 ("+ +xb(B,!1)+")")?b.U(q.id,{mod_l:x.local=ca}):b.U(q.id,{mod_r:x.remote=ca}))}else 1Ia(x.local,x.remote)-Ia(q.local,q.remote))},[w,c.worlds]),[p,v,z]=oa(c.Ea),g=ia(()=>h.find(t=>t.id===p)||null,[p,h]),r=ia(()=>{let t,q;return null!=(q=null==h?void 0:null==(t=h.find(x=>0{if(null!==r){var t=!1,q=h.find(x=>x.id===r);if(q.localx.json()).then(x=>{if(!t)return Vb(r,x).then(()=> +{b.U(r,{mod_l:q.remote,mod_r:q.remote})})}).catch(x=>{t||("QuotaExceededError"===x.name?(alert("\u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043d\u044c\u043e \u043c\u0456\u0441\u0446\u044f!"),b.hb(r),Wb(r)):alert("\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f \u0441\u0432\u0456\u0442\u0443: "+x.message))});else{if(!q.writable){b.U(r,{mod_l:c.worlds.find(B=>B.id===r).mod_r});return}let x=r;(1===q.remote?db("/api/minicraft/world", +Object.assign({},hd,{body:Za({what:"meta",label:q.label})})).then(B=>{if(!B.ok)throw Error(403===B.status?"\u041d\u0435\u043c\u0430 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0456\u0457. \u0417\u0430\u0440\u0435\u0454\u0441\u0442\u0440\u043e\u0432\u0430\u043d\u0438\u0439?":"\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u043f\u0456\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f");return B.json()}).then(B=>{x=B.id}):Ya.resolve()).then(()=>{if(t)throw null;return Ub(r)}).then(B=>{if(t)throw null; +return db("/api/minicraft/world",Object.assign({},hd,{body:Za({what:"data",world:x,data:B})}))}).then(B=>{if(!B.ok)throw Error(403===B.status?"\u041d\u0435\u043c\u0430 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0456\u0457. \u0417\u0430\u0440\u0435\u0454\u0441\u0442\u0440\u043e\u0432\u0430\u043d\u0438\u0439?":"\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u043f\u0456\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f");return B.json()}).then(B=>{ba();x===r?b.U(r,{mod_l:B.modified,mod_r:B.modified}): +(Xb(r,x),b.hb(r),b.gb({id:x,label:q.label,mod_l:B.modified,mod_r:B.modified}),t||z()!==r||v(x));t||k();fa()}).catch(B=>{t||(alert("\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f \u0441\u0432\u0456\u0442\u0443:"+B.message),ba(),b.U(r,{mod_r:0}),fa())})}return()=>{t=!0}}},[r]);const [C,u]=oa(!1);g||u(!1);const [E,S]=oa(!1);return[H("h1[innerText=\u0421\u0432\u0456\u0442\u0456]"),H("button[innerText=\u041e\u043d\u043e\u0432\u0438\u0442\u0438][style=position:absolute;left:0;top:0;height:2rem][title=\u041e\u043d\u043e\u0432\u0438\u0442\u0438 \u0441\u043f\u0438\u0441\u043e\u043a]", +{disabled:!w,onclick:k}),H("button[style=position:absolute;right:0;top:0;height:2rem]",{disabled:0{location.href="/account?redir=minicraft"}}),H("div[className=worlds]",null,[qa(gd,h,{Hb:e,Db:r,Eb:g,Fb:v})]),H("center",null,[H("button[innerText=\u0412\u0456\u0434\u0447\u0438\u043d\u0438\u0442\u0438]",{disabled:!g||!g.local||g.remote>g.local,onclick:()=>{ba();b.ia({Ea:g.id}); +d(0);fa()},title:g?g.local?g.remote>g.local?"\u0421\u0432\u0456\u0442 \u0449\u0435 \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0443\u0454\u0442\u044c\u0441\u044f!":"\u0412\u0432\u0456\u0439\u0442\u0438 \u0443 \u0432\u0438\u0431\u0440\u0430\u043d\u0438\u0439 \u0441\u0432\u0456\u0442 ":"\u0421\u0432\u0456\u0442 \u0449\u0435 \u043d\u0435 \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u0438\u0439!":"\u041d\u0435 \u0432\u0438\u0431\u0440\u0430\u043d\u0438\u0439 \u0441\u0432\u0456\u0442!"}), +H("button[innerText=\u0421\u0432\u0456\u0442...]",{disabled:!g||C,onclick:()=>{u(!0)},title:g?"\u0410\u043a\u0446\u0456\u0457/\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u0438 \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f \u0441\u0432\u0456\u0442\u0443.":"\u041d\u0435 \u0432\u0438\u0431\u0440\u0430\u043d\u0438\u0439 \u0441\u0432\u0456\u0442!"})]),H("hr"),H("center",null,[H("button[innerText=\u041d\u043e\u0432\u0438\u0439 \u0441\u0432\u0456\u0442]",{onclick:()=>{const t=prompt("\u0418\u043c\u044f \u043d\u043e\u0432\u043e\u043c\u0443 \u0441\u0432\u0456\u0442\u0443:\n(\u043c\u0430\u043a\u0441. 16 \u0421\u0438\u043c\u0432\u043e\u043b\u0456\u0432)", +"\u041d\u043e\u0432\u0438\u0439 \u0441\u0432\u0456\u0442");t&&(16q.id))-1,label:t,mod_l:Pa.now(),mod_r:0}))}}),H("button[innerText=\u041d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f]",{onclick:()=>{d(1)}})]),H("center",null,[H("small[innerText=\u0412\u0435\u0440\u0441\u0456\u044f 0.11.4 \u043e\u0442 L3P3]")]),C&&g&&H("div", +{F:{"menu overlay advanced":!0,busy:E},onclick:t=>{"menu overlay advanced"===t.target.className&&u(!1)}},[H("div[className=window]",null,[H("h2",{innerText:`"${g.label}"`,title:g.id}),H("table",null,[!!g.account_name&&H("tr",null,[H("td[innerText=\u0412\u043b\u0430\u0441\u043d\u0438\u043a:]"),H("td",{innerText:g.account_name})]),H("tr",null,[H("td[innerText=\u0417\u043c\u0456\u043d\u0438:]"),H("td",{innerText:xb(Ia(g.local,g.remote),!1)})])]),H("center",null,[H("button[innerText=\u041f\u0435\u0440\u0435\u0439\u043c\u0435\u043d\u0443\u0432\u0430\u0442\u0438]", +{disabled:E||!g.writable,onclick:()=>{const t=prompt("\u041d\u043e\u0432\u0435 \u0438\u043c\u044f \u0441\u0432\u0456\u0442\u0443:\n(\u043c\u0430\u043a\u0441. 16 \u0441\u0438\u043c\u0432\u043e\u043b\u0456\u0432)",g.label);!t||t===g.label||16{if(!q.ok)throw Error(403===q.status?"\u041d\u0435\u043c\u0430 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0456\u0457. \u0417\u0430\u0440\u0435\u0454\u0441\u0442\u0440\u043e\u0432\u0430\u043d\u0438\u0439?": +"\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u043f\u0456\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f");return q.json()}).catch(q=>{alert("\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u0440\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u043d\u043d\u044f \u0441\u0432\u0456\u0442\u0443: "+q.message)}).then(()=>{S(!1)})))},title:g.writable?"\u0417\u043c\u0456\u043d\u0438\u0442\u0438 \u0456\u043c'\u044f \u0441\u0432\u0456\u0442\u0443":"\u0412\u0456\u0434\u0441\u0443\u0442\u043d\u044f \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0456\u044f!"}), +H("button",{disabled:E||!g.local&&!g.writable,innerText:g.local?"\u0432\u0438\u0434\u0430\u043b\u0438\u0442\u0438 (\u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0456)":"\u0432\u0438\u0434\u0430\u043b\u0438\u0442\u0438 ",onclick:()=>{confirm('\u0421\u0432\u0456\u0442 "'+g.label+'" \u0434\u0456\u0439\u0441\u043d\u043e \u0432\u0438\u0434\u0430\u043b\u0438\u0442\u0438?')&&(g.local?(b.hb(g.id),Wb(g.id)):(S(!0),db("/api/minicraft/world",{method:"DELETE",headers:{"Content-Type":"application/json"},body:Za({what:"world", +world:g.id})}).then(t=>{if(!t.ok)throw Error(403===t.status?"\u041d\u0435\u043c\u0430 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0456\u0457. \u0417\u0430\u0440\u0435\u0454\u0441\u0442\u0440\u043e\u0432\u0430\u043d\u0438\u0439?":"\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u043f\u0456\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f");ba();v(null);u(!1);k();S(!1);fa();return t.json()}).catch(t=>{alert("\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u043f\u0440\u0438 \u0432\u0438\u0434\u0430\u043b\u0435\u043d\u043d\u0456 \u0441\u0432\u0456\u0442\u0443: "+ +t.message);S(!1)})))},title:g.local||g.writable?"\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u0441\u0432\u0456\u0442 ":"\u0412\u0456\u0434\u0441\u0443\u0442\u043d\u044f \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0456\u044f!"})]),H("center",null,[H("button",{disabled:E||!g.remote||!g.writable,innerText:`${"\u041f\u0443\u0431\u043b\u0456\u0447\u043d\u043e "}: ${g.public?"\u0422\u0430\u043a ":"\u041d\u0456"}`,onclick:()=>{S(!0);db("/api/minicraft/world",{method:"POST",headers:{"Content-Type":"application/json"}, +body:Za({what:"meta",world:g.id,public:!g.public})}).then(t=>{if(!t.ok)throw Error(403===t.status?"\u041d\u0435\u043c\u0430 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0456\u0457. \u0417\u0430\u0440\u0435\u0454\u0441\u0442\u0440\u043e\u0432\u0430\u043d\u0438\u0439?":"\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u043f\u0456\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f");ba();k();S(!1);fa();return t.json()}).catch(t=>{alert("\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u0440\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u043d\u043d\u044f \u0441\u0432\u0456\u0442\u0443: "+ +t.message);S(!1)})},title:g.remote?g.writable?g.public?"\u0417\u0440\u043e\u0431\u0456\u0442\u044c \u0441\u0432\u0456\u0442 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u0438\u0439 ":"\u0417\u0440\u043e\u0431\u0456\u0442\u044c \u0441\u0432\u0456\u0442 \u043f\u0443\u0431\u043b\u0456\u0447\u043d\u0438\u043c":"\u0412\u0456\u0434\u0441\u0443\u0442\u043d\u044f \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0456\u044f!":"\u0421\u0432\u0456\u0442 \u043d\u0435 \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u0438\u0439!"}), +H("button",{disabled:E||!w||0{g.local?g.remote||b.U(g.id,{mod_r:1}):b.gb({id:g.id,label:g.label,mod_l:1,mod_r:g.remote})},title:w?g.local?g.remote?"\u0421\u0432\u0456\u0442 \u0443\u0436\u0435 \u0456\u0441\u043d\u0443\u0454 \u043d\u0430 \u0441\u0430\u0439\u0442\u0456!": a.rank?"\u0417\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0438\u0442\u0438 \u0441\u0432\u0456\u0442 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440":"\u041d\u0435 \u0437\u0430\u0440\u0435\u0454\u0441\u0442\u0440\u043e\u0432\u0430\u043d\u0438\u0439!":"\u0417\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0438\u0442\u0438 \u0441\u0432\u0456\u0442 \u0437 \u0441\u0435\u0440\u0432\u0435\u0440\u0443":"\u0421\u043f\u0438\u0441\u043e\u043a \u0449\u0435 \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0443\u0454\u0442\u044c\u0441\u044f!"})])])])]} -function ud({account:a,a:b,config:c,cb:d}){const [e,l]=pa(2),m=A("div[className=game]");return[(2===e||1===e)&&G(jd,{account:a,a:b,config:c,oa:l}),1===e&&G($c,{a:b,config:c,o:null,oa:l}),0===e&&G(gd,{account:a,a:b,config:c,frame:m,cb:d,oa:l})]} -function vd(){const [a,b]=ka(Eb),c=F({o:null,sb:0});D(()=>{let k=!1;onbeforeunload=onunload=onpagehide=onblur=()=>{k||(k=!0,c.o&&Gc(c.o),b.Xa())};onpageshow=onfocus=()=>{k=!1};setInterval(()=>(b.Xa(),!Pa&&bb("minicraft.lock",Qa.now())),500);tb("touchend",f=>{c.sb=f.timeStamp},!0)});const d=F(k=>{if("INPUT"===k.target.tagName||!c.o)return!0;b.Ja(!1);Oc(c.o,k.keyCode,"keydown"===k.type);return!1}),e=F(()=>{b.Ja(!0)}),l=F(k=>{999{m?(tb("mousedown",l, -!0),tb("mouseup",l,!0),ub("touchstart",e,!0)):(ub("mousedown",l,!0),ub("mouseup",l,!0),tb("touchstart",e,!0))},[m]);D(zc,[a.config.T]);A("",{onkeydown:d,onkeyup:d,oncontextmenu:xb,ondragstart:xb});return[G(ud,{account:a.account,a:b,config:a.config,cb:c})]}function wd(){close();return[H("h1[innerText=\u043c\u0438\u043d\u0438\u043a\u0440\u0430\u0444\u0442 \u0432\u0436\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u0438\u0439!]")]} -if(window.SSR)qa(vd);else if(Pa){const a=new Pa("minicraft.lock"),b=pb(()=>{qa(vd)},100);a.addEventListener("message",c=>{"yes"===c.data?(rb(b),a.close(),qa(wd)):(a.postMessage("yes"),focus())});a.postMessage("anyone there?")}else{const a=P(N.getItem("minicraft.lock")),b=Qa.now()-1E3;a{qa(P(N.getItem("minicraft.lock"))===a?vd:wd)},a-b)}; +function ud({account:a,a:b,config:c,cb:d}){const [e,l]=oa(2),m=A("div[className=game]");return[(2===e||1===e)&&G(id,{account:a,a:b,config:c,oa:l}),1===e&&G(Zc,{a:b,config:c,o:null,oa:l}),0===e&&G(fd,{account:a,a:b,config:c,frame:m,cb:d,oa:l})]} +function vd(){const [a,b]=ja(Db),c=F({o:null,sb:0});D(()=>{let k=!1;onbeforeunload=onunload=onpagehide=onblur=()=>{k||(k=!0,c.o&&Fc(c.o),b.Xa())};onpageshow=onfocus=()=>{k=!1};setInterval(()=>(b.Xa(),!Oa&&ab("minicraft.lock",Pa.now())),500);sb("touchend",f=>{c.sb=f.timeStamp},!0)});const d=F(k=>{if("INPUT"===k.target.tagName||!c.o)return!0;b.Ja(!1);Nc(c.o,k.keyCode,"keydown"===k.type);return!1}),e=F(()=>{b.Ja(!0)}),l=F(k=>{999{m?(sb("mousedown",l, +!0),sb("mouseup",l,!0),tb("touchstart",e,!0)):(tb("mousedown",l,!0),tb("mouseup",l,!0),sb("touchstart",e,!0))},[m]);D(yc,[a.config.T]);A("",{onkeydown:d,onkeyup:d,oncontextmenu:wb,ondragstart:wb});return[G(ud,{account:a.account,a:b,config:a.config,cb:c})]}function wd(){close();return[H("h1[innerText=\u043c\u0438\u043d\u0438\u043a\u0440\u0430\u0444\u0442 \u0432\u0436\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u0438\u0439!]")]} +if(window.SSR)pa(vd);else if(Oa){const a=new Oa("minicraft.lock"),b=ob(()=>{pa(vd)},100);a.addEventListener("message",c=>{"yes"===c.data?(qb(b),a.close(),pa(wd)):(a.postMessage("yes"),focus())});a.postMessage("anyone there?")}else{const a=P(N.getItem("minicraft.lock")),b=Pa.now()-1E3;a{pa(P(N.getItem("minicraft.lock"))===a?vd:wd)},a-b)};