PageSourceSearch

https://theprototype.app/_app/immutable/chunks/DO2bN3uA.js

js theprototype.app collected 2026-10-05 07:12:04 UTC 22,647 bytes, 4 lines download raw bytes

1import{h as e,wn as t}from"./D3qLCeEK.js";import"./OHQUSm6n.js";import{n}from"./CvScdOYl.js";import{$ as r,Jt as i,Mn as a,Tn as o,Xr as s,Yr as c,Yt as l,pr as u,w as d}from"./BC9AvlhT.js";import{f,p}from"./BjxZzSo2.js";import{i as m}from"./BUUlJ0oN.js";import{n as h}from"./BHZEFfbq.js";import{i as g}from"./DHWg9jzn.js";import{o as _}from"./Cz5Vn86C.js";import{f as v}from"./DAqEFG53.js";import{c as y,l as b}from"./BJ1d7ekV.js";import{C as x,G as S,V as C,b as w,f as T,k as E,r as D,x as ee}from"./CXZKoSmh.js";import{S as te,_ as ne,b as re,g as ie,h as ae,i as O,u as oe,v as k,w as se,x as ce,y as le}from"./EcpzOZ9w.js";import{h as ue,s as de}from"./jUHDc502.js";import{w as fe}from"./BFaBkNqh.js";import{n as pe}from"./Dsew_TID.js";import{a as me,i as he,r as ge,s as _e}from"./CxPpKooY.js";import{o as ve}from"./C_0LxCVy.js";import{r as ye}from"./Dl8xgxdz.js";import{i as be,t as xe}from"./DPHhWEAA.js";var Se=t({SHELL_STAGE:()=>A,collectOverflow:()=>M,drawShellPage:()=>De,fitLabel:()=>N,levelGridLayout:()=>Ee}),A={x:0,y:0,w:1100,h:640},j=null;function M(e){let t=j,n=[];j=n;try{return[e(),n]}finally{j=t}}function N(e,t,n,r,i,a=Math.max(10,i*.7)){let o=i,s=()=>e.font=`${r} ${Math.round(o)}px system-ui, sans-serif`;for(s();o>a&&e.measureText(t).width>n;)o-=Math.max(1,i*.04),s();if(e.measureText(t).width<=n)return t;j?.push(t);let c=0,l=t.length;for(;c<l;){let r=c+l+1>>1;e.measureText(t.slice(0,r)+`…`).width<=n?c=r:l=r-1}return t.slice(0,c).trimEnd()+`…`}function Ce(e,t,n,r,i,a){let o=Math.max(0,Math.min(a,r/2,i/2));e.beginPath(),e.moveTo(t+o,n),e.arcTo(t+r,n,t+r,n+i,o),e.arcTo(t+r,n+i,t,n+i,o),e.arcTo(t,n+i,t,n,o),e.arcTo(t,n,t+r,n,o),e.closePath()}var we=110,Te=64;function Ee(e,t,n,r){let i=we+t*Te;if(!t&&e<=20)return{cols:5,rows:4,tw:190,th:96,gap:14,top:i,perPage:20,pages:1,page:0};let a=A.h-72-14-i,o=Math.max(1,Math.floor((a+12)/76)),s=Math.min(96,(a-(o-1)*12)/o),c=6*o,l=Math.max(1,Math.ceil(e/c)),u=n??(r>=0?Math.floor(r/c):0);return{cols:6,rows:o,tw:160,th:s,gap:12,top:i,perPage:c,pages:l,page:Math.min(Math.max(0,u),l-1)}}function De(e,t,n){let r=n.k,i=A.w*r,a=[],o=n.hover??null,s=(t,n,i,s,c,l,u={})=>{Ce(e,i*r,s*r,c*r,l*r,10*r),e.fillStyle=u.disabled?`rgba(55,65,81,0.5)`:u.accent?`#ef562f`:`#1f2937`,e.fill();let d=o===t;e.lineWidth=(d?5:2)*r,e.strokeStyle=d?`#5fd0ff`:`rgba(148,163,184,0.55)`,e.stroke(),e.fillStyle=u.disabled?`rgba(243,244,246,0.5)`:`#f3f4f6`,e.textAlign=`center`,e.textBaseline=`middle`;let f=N(e,n,(c-20)*r,600,26*r);e.fillText(f,(i+c/2)*r,(s+(u.sub?l*.4:l/2))*r),u.sub&&(e.font=`500 ${Math.round(18*r)}px system-ui, sans-serif`,e.fillStyle=`#fbbf24`,e.fillText(u.sub,(i+c/2)*r,(s+l*.74)*r)),u.disabled||a.push({id:t,key:`shell`,kind:`shell`,x:i*r,y:s*r,w:c*r,h:l*r})};e.textAlign=`center`,e.textBaseline=`middle`,e.fillStyle=`#f9fafb`,e.font=`800 ${Math.round(40*r)}px system-ui, sans-serif`,e.fillText(t.title,i/2,46*r),e.fillStyle=`#93c5fd`,e.font=`500 ${Math.round(20*r)}px system-ui, sans-serif`,e.fillText(t.subtitle+(t.fps?`  ·  `+t.fps:``),i/2,84*r);let c=we;if(t.page===`main`)return t.items.forEach((e,t)=>{s(`shell:item:`+e.id,e.label,(A.w-520)/2,c+t*68,520,56,{accent:e.id===`resume`})}),a;let l=A.h-72;if(s(`shell:back`,`Back`,(A.w-300)/2,l,300,54),t.page===`levels`){let n=t.levels?.list??[],i=(t.tabs??[]).slice(0,2);i.forEach((t,n)=>{let i=c+n*Te;e.textAlign=`right`,e.textBaseline=`middle`,e.fillStyle=`#cbd5e1`,e.font=`600 ${Math.round(24*r)}px system-ui, sans-serif`;let a=Math.min(260,(A.w-400)/Math.max(1,t.options.length)),o=(A.w-t.options.length*(a+12)+12)/2+70;e.fillText(t.label,(o-20)*r,(i+25)*r),t.options.forEach((e,r)=>{s(`shell:tab:`+n+`:`+r,e.label,o+r*(a+12),i,a,50,{accent:e.value===t.value})})});let o=n.findIndex(e=>e.id===t.levels?.current),u=Ee(n.length,i.length,t.levelPage,o),d=(A.w-(u.cols*u.tw+(u.cols-1)*u.gap))/2;n.slice(u.page*u.perPage,(u.page+1)*u.perPage).forEach((e,n)=>{let r=d+n%u.cols*(u.tw+u.gap),i=u.top+Math.floor(n/u.cols)*(u.th+u.gap),a=e.stars?`★`.repeat(e.stars):``;s(`shell:level:`+e.id,e.label,r,i,u.tw,u.th,{disabled:!!e.locked,accent:t.levels?.current===e.id,sub:e.locked?`Locked`:a})});let f=(A.w-300)/2;return u.page>0&&s(`shell:lvpage:`+(u.page-1),`‹ Page `+u.page,f-12-200,l,200,54),u.page<u.pages-1&&s(`shell:lvpage:`+(u.page+1),`Page `+(u.page+2)+` ›`,f+300+12,l,200,54),a}if(t.page===`settings`){let n=Math.floor((l-c-10)/50),i=(A.w-1020-30)/2;return t.settings.slice(0,n*2).forEach((t,a)=>{let o=Math.floor(a/n),l=i+o*540,u=c+a%n*50;e.textAlign=`left`,e.textBaseline=`middle`,e.fillStyle=t.game?`#fde68a`:`#e5e7eb`,e.font=`500 ${Math.round(21*r)}px system-ui, sans-serif`,e.fillText(t.label,l*r,(u+22)*r);let d=l+510-220;if(t.type===`toggle`)s(`shell:set:`+t.id+`:next`,t.display,d+60,u
1+2,160,40,{accent:!!t.value});else{s(`shell:set:`+t.id+`:prev`,`‹`,d,u+2,50,40),e.textAlign=`center`,e.fillStyle=`#f3f4f6`;let n=21;for(e.font=`600 ${Math.round(n*r)}px system-ui, sans-serif`;n>12&&e.measureText(t.display).width>108*r;)--n,e.font=`600 ${Math.round(n*r)}px system-ui, sans-serif`;e.fillText(t.display,(d+110)*r,(u+22)*r),s(`shell:set:`+t.id+`:next`,`›`,d+170,u+2,50,40)}}),a}e.textAlign=`left`,e.textBaseline=`middle`,e.font=`500 ${Math.round(22*r)}px system-ui, sans-serif`;let u=120;for(let n of t.help){for(let t of Oe(e,n,(A.w-160)*r)){if(u>l-30)break;e.fillStyle=`#e5e7eb`,e.fillText(t,80*r,u*r),u+=32}n||(u+=6)}return a}function Oe(e,t,n){if(!t)return[``];let r=[],i=``;for(let a of t.split(/\s+/)){let t=i?i+` `+a:a;i&&e.measureText(t).width>n?(r.push(i),i=a):i=t}return i&&r.push(i),r}var ke=t({FOOTER_H:()=>96,HEADSET_PPD:()=>25,STAGE_H:()=>720,STAGE_W:()=>P,drawCard:()=>H,drawPanel:()=>Ge,drawShellPanel:()=>Je,followYaw:()=>Q,footerLayout:()=>Ke,hideVrGamePanel:()=>xt,isPanelScreen:()=>Le,overlayLines:()=>He,panelCrop:()=>Be,panelHover:()=>ft,panelTargetAlong:()=>dt,pokeFrame:()=>vt,pressPanelTarget:()=>pt,setVrStrip:()=>et,stripWorthy:()=>Xe,texelRatio:()=>Ie,uAcross:()=>ht,vrGamePanelDebug:()=>yt,vrGamePanelFrame:()=>ot,vrGameSurface:()=>bt,vrScreens:()=>R}),P=1280,Ae=1.2,je=.22,Me=35,Ne=2,Pe=.15,Fe=`vr:gameStrip`,F=2,I=2;function Ie(e,t,n,r=25){return e/t/(r*180/Math.PI/Math.max(.05,n))}function Le(e){return e?e.input===`menu`||[`menu`,`paused`,`over`].includes(String(e.showWhile??``))?!0:(e.elements??[]).some(e=>y(e.kind)&&e.enabled!==!1):!1}var Re=new Set([`crosshair`,`minimap`,`debug`,`custom`,`damageflash`]),ze=720,L=36;function Be(e){let t=1/0,n=1/0,r=-1/0,i=-1/0;for(let a of e?.elements??[]){if(!b(a.kind)||Re.has(a.kind))continue;let e=E(a,P,720);t=Math.min(t,e.left),n=Math.min(n,e.top),r=Math.max(r,e.left+e.w),i=Math.max(i,e.top+e.h)}if(!Number.isFinite(t))return{x:0,y:0,w:P,h:720};t=Math.max(0,t-L),n=Math.max(0,n-L),r=Math.min(P,r+L),i=Math.min(720,i+L);let a=r-t;if(a<ze){let e=(t+r)/2;a=ze,t=Math.min(Math.max(0,e-a/2),P-a)}return{x:t,y:n,w:a,h:Math.max(120,i-n)}}var Ve=.0016;function R(){let t=e(ye)?.uuid??null,n=[],r=[];for(let e of D(t)){let t=S(e);t&&(Le(t)?n:r).push({key:e,screen:t})}return{panel:n,overlay:r}}function He(e,t){let n=[],r=[...e].sort((e,t)=>(e.y??0)-(t.y??0)||(e.x??0)-(t.x??0));for(let e of r){if(!b(e.kind))continue;let r=t?.[e.id]??null,i=r?.text!==void 0&&r?.text!==null?String(r.text):String(e.label??``);
1if(e.kind===`text`||e.kind===`timer`||e.kind===`richtext`||e.kind===`panel`){let e=i.replace(/\[[^\]]*\]/g,``).replace(/\s+/g,` `).trim();e&&n.push(e)}else if(e.kind===`bar`||e.kind===`progressradial`){let t=Number(r?.value??e.value??0),a=Number(r?.min??e.min??0),o=Number(r?.max??e.max??1),s=o-a>1e-9?Math.round(Math.min(1,Math.max(0,(t-a)/(o-a)))*100):0;n.push((i?i+` `:``)+s+`%`)}else if(e.kind===`list`){let t=Array.isArray(r?.rows)&&r.rows.length?r.rows:String(e.rowsText??``).split(`
2`).filter(Boolean);i&&n.push(i);for(let e of t.slice(0,3))n.push(String(e))}if(n.length>=6)break}return n.slice(0,6)}function z(e,t){if(e==null||e===``)return t;let n=String(e);if(/^[a-z][a-z0-9-]*$/i.test(n)&&!/^(transparent|white|black|red|green|blue|gray|grey|yellow|orange|none)$/i.test(n))try{return getComputedStyle(document.documentElement).getPropertyValue(`--`+n).trim()||t}catch{return t}return n}function B(e,t,n,r,i,a){let o=Math.max(0,Math.min(a,r/2,i/2));e.beginPath(),e.moveTo(t+o,n),e.arcTo(t+r,n,t+r,n+i,o),e.arcTo(t+r,n+i,t,n+i,o),e.arcTo(t,n+i,t,n,o),e.arcTo(t,n,t+r,n,o),e.closePath()}var Ue=new Map,We=0;function Ge(e,t,n,r={}){let i=r.crop??{x:0,y:0,w:1280,h:720},a=e.canvas.width,o=e.canvas.height,s=a/i.w;e.clearRect(0,0,a,o),B(e,0,0,a,o,28*s),e.fillStyle=`rgba(12, 16, 26, 0.9)`,e.fill(),e.lineWidth=3*s,e.strokeStyle=`rgba(148, 163, 184, 0.55)`,e.stroke();let c=[],l=[...(t?.screen?.elements??[]).filter(e=>b(e.kind))].sort((e,t)=>(e.z??0)-(t.z??0));e.save(),e.beginPath(),e.rect(0,0,a,i.h*s),e.clip();for(let a of l){let o=E(a,P,720),l=(o.left-i.x)*s,u=(o.top-i.y)*s,d=o.w*s,f=o.h*s,p=a.style??{},m=n?.[a.id]??null,h=m?.text!==void 0&&m?.text!==null?String(m.text):String(a.label??``),g=Math.max(10,Number(p.size??14))*s,_=String(p.weight??(a.kind===`button`?600:400)),v=z(p.color,`#f3f4f6`),b=a.enabled===!1;e.globalAlpha=Number(p.opacity??1)*(b?.45:1);let S=z(p.bg,a.kind===`button`||a.kind===`toggle`||a.kind===`dropdown`||a.kind===`tabs`?`#374151`:`transparent`),C=Number(p.radius??(a.kind===`button`?8:0))*s;S!==`transparent`&&(B(e,l,u,d,f,C),e.fillStyle=S,e.fill()),p.border&&(B(e,l,u,d,f,C),e.lineWidth=2*s,e.strokeStyle=z(p.border,`rgba(75,85,99,0.7)`),e.stroke()),e.fillStyle=v,e.font=`${_} ${g}px system-ui, sans-serif`,e.textBaseline=`middle`;let w=a.kind===`button`?`center`:String(p.align??`left`);e.textAlign=w===`center`?`center`:w===`right`?`right`:`left`;let T=Number(p.pad??0)*s,D=w===`center`?l+d/2:w===`right`?l+d-T-4*s:l+T+4*s;if(a.kind===`bar`||a.kind===`progressradial`||a.kind===`slider`){let t=Number(a.kind===`slider`?x(a.id,a.value??a.min??0):m?.value??a.value??0),n=Number(m?.min??a.min??0),r=Number(m?.max??a.max??(a.kind===`slider`?100:1)),i=r-n>1e-9?Math.min(1,Math.max(0,(t-n)/(r-n))):0;B(e,l,u+f*.3,d,f*.4,f*.2),e.fillStyle=`rgba(255,255,255,0.15)`,e.fill(),B(e,l,u+f*.3,d*i,f*.4,f*.2),e.fillStyle=z(p.color,`#ef562f`),e.fill(),h&&a.kind!==`slider`&&(e.fillStyle=`#f3f4f6`,e.textAlign=`center`,e.fillText(h,l+d/2,u+f/2))}else if(a.kind===`toggle`){let t=!!x(a.id,a.value);B(e,l+6*s,u+f*.2,f*1.1,f*.6,f*.3),e.fillStyle=t?`#22c55e`:`rgba(255,255,255,0.2)`,e.fill(),e.beginPath(),e.arc(l+6*s+(t?f*.8:f*.3),u+f/2,f*.24,0,Math.PI*2),e.fillStyle=`#fff`,e.fill(),e.fillStyle=v,e.textAlign=`left`,e.fillText(h,l+f*1.3+10*s,u+f/2)}else if(a.kind===`dropdown`||a.kind===`tabs`){let t=ue(a.id,a),n=x(a.id,a.value??(a.kind===`tabs`?0:t[0])),r=a.kind===`tabs`?t[Math.round(Number(n))||0]??``:String(n??``);e.textAlign=`center`,e.fillText((h?h+`: `:``)+`‹ `+r+` ›`,l+d/2,u+f/2)}else if(a.kind===`list`){let t=Array.isArray(m?.rows)&&m.rows.length?m.rows:String(a.rowsText??``).split(`
3`).filter(Boolean),n=Number(a.rowHeight??18)*s,r=u+n/2;h&&(e.fillText(h,D,r),r+=n);for(let i of t){if(r>u+f)break;e.fillText(String(i),D,r),r+=n}}else if(a.kind===`image`){let t=xe(String(a.src??``));if(!t&&a.src&&be(String(a.src)),t){let n=Ue.get(t);n||(n=new Image,n.onload=()=>We+=1,n.src=t,Ue.set(t,n)),n.complete&&n.naturalWidth&&e.drawImage(n,l,u,d,f)}}else if(a.kind!==`crosshair`&&a.kind!==`minimap`&&a.kind!==`debug`&&a.kind!==`custom`&&a.kind!==`damageflash`){if(h&&a.kind===`button`&&!a.wrap)e.fillText(N(e,h,d-10*s,_,g),D,u+f/2);else if(h){let t=a.wrap||a.kind===`richtext`?Ze(e,h.replace(/\[[^\]]*\]/g,``),d-8*s):[h],n=g*1.25,r=u+f/2-(t.length-1)*n/2;for(let i of t)e.fillText(i,D,r),r+=n}}e.globalAlpha=1,y(a.kind)&&!b&&(c.push({id:a.id,key:t?.key??`scene`,kind:a.kind,x:l,y:u,w:d,h:f}),r.hover===a.id&&(B(e,l,u,d,f,C),e.fillStyle=`rgba(95, 208, 255, 0.28)`,e.fill(),B(e,l-4*s,u-4*s,d+8*s,f+8*s,C+4*s),e.lineWidth=6*s,e.strokeStyle=`#5fd0ff`,e.stroke()))}
3return e.restore(),qe(e,i.h*s,s,r,c),c}function Ke(e,t,n){let r=32*t,i=20*t,a=(n>2?240:300)*t,o=Math.max(0,Math.min(a,(e-2*r-(n-1)*i)/n)),s=(e-(n*o+(n-1)*i))/2;return Array.from({length:n},(e,t)=>({x:s+t*(o+i),w:o}))}function qe(e,t,n,r,i){let a=e.canvas.width;e.fillStyle=`rgba(255,255,255,0.06)`,e.fillRect(0,t,a,2*n);let o=[...r.menu?[{id:`menu`,label:r.menu===`open`?`Close menu`:`Menu`}]:[],{id:`edit`,label:`Edit mode`},{id:`strip`,label:r.strip===!1?`Top strip: off`:`Top strip: on`}],s=60*n,c=Ke(a,n,o.length);o.forEach((a,o)=>{let{x:l,w:u}=c[o],d=t+(96*n-s)/2;B(e,l,d,u,s,12*n),e.fillStyle=r.hover===`footer:`+a.id?`#1e4a63`:a.id===`edit`?`#1f2937`:`#111827`,e.fill(),e.lineWidth=(r.hover===`footer:`+a.id?5:2)*n,e.strokeStyle=r.hover===`footer:`+a.id?`#5fd0ff`:`rgba(148,163,184,0.6)`,e.stroke(),e.fillStyle=`#f3f4f6`,e.textAlign=`center`,e.textBaseline=`middle`,e.fillText(N(e,a.label,u-24*n,600,26*n),l+u/2,d+s/2),i.push({id:`footer:`+a.id,key:``,kind:`footer`,footer:a.id,x:l,y:d,w:u,h:s})})}function Je(e,t={}){let n=e.canvas.width,r=e.canvas.height,i=n/A.w;e.clearRect(0,0,n,r),B(e,0,0,n,r,28*i),e.fillStyle=`rgba(12, 16, 26, 0.94)`,e.fill(),e.lineWidth=3*i,e.strokeStyle=`rgba(148, 163, 184, 0.55)`,e.stroke();let a=De(e,Ye(),{k:i,hover:t.hover});return qe(e,A.h*i,i,{...t,menu:`open`},a),a}function Ye(){let t=e(k),n=e(O);return{page:t.page,title:ce(t.page),subtitle:ae(),items:re({vr:!0}),levels:n?{list:n.list,current:n.current}:null,tabs:ne(),levelPage:t.levelPage??null,settings:te({vr:!0}),help:ie({vr:!0})}}function V(e,t,n){if(e.measureText(t).width<=n)return t;let r=0,i=t.length;for(;r<i;){let a=r+i+1>>1;e.measureText(t.slice(0,a)+`…`).width<=n?r=a:i=a-1}return t.slice(0,r).trimEnd()+`…`}function Xe(e){return e.length<=28}function Ze(e,t,n){let r=[];for(let i of t.split(`
4`)){let t=``;for(let a of i.split(/\s+/)){let i=t?t+` `+a:a;t&&e.measureText(i).width>n?(r.push(t),t=a):t=i}t&&r.push(t)}return r.slice(0,12)}function H(e,t,n={}){let r=Math.max(1,Number(n.res)||1);e.setTransform(r,0,0,r,0,0);try{let i=Qe(e,e.canvas.width/r,e.canvas.height/r,t,n);return r===1?i:i.map(e=>({...e,x:e.x*r,y:e.y*r,w:e.w*r,h:e.h*r}))}finally{e.setTransform(1,0,0,1,0,0)}}function Qe(e,t,n,r,i){e.clearRect(0,0,t,n),B(e,0,0,t,n,Math.min(24,n/4)),e.fillStyle=`rgba(12, 16, 26, 0.86)`,e.fill(),e.lineWidth=2,e.strokeStyle=`rgba(148, 163, 184, 0.5)`,e.stroke(),e.fillStyle=i.color??`#f3f4f6`,e.textBaseline=`middle`;let a=[];if(i.big)return e.textAlign=`center`,e.font=`800 ${Math.round(n*.42)}px system-ui, sans-serif`,e.fillText(V(e,r[0]??``,t-40),t/2,r[1]?n*.4:n/2),r[1]&&(e.font=`500 ${Math.round(n*.16)}px system-ui, sans-serif`,e.fillStyle=`#e5e7eb`,e.fillText(r[1],t/2,n*.78)),a;if(i.row)return e.textAlign=`center`,e.font=`600 ${Math.round(n*.46)}px system-ui, sans-serif`,e.fillText(V(e,r.join(`   ·   `),t-24),t/2,n/2),a;let o=i.buttons?64:0,s=Math.max(1,r.length+ +!!i.title),c=Math.min(52,(n-o-36)/s),l=18+c/2;e.textAlign=`left`,i.title&&(e.font=`700 ${Math.round(c*.62)}px system-ui, sans-serif`,e.fillStyle=`#93c5fd`,e.fillText(i.title,18,l),l+=c),e.fillStyle=`#f3f4f6`,e.font=`600 ${Math.round(c*.62)}px system-ui, sans-serif`;for(let n of r)e.fillText(V(e,n,t-36),18,l),l+=c;if(i.buttons){let r=[...i.menu?[{id:`menu`,label:i.menu===`open`?`Close`:`Menu`}]:[],{id:`edit`,label:`Edit`},{id:`strip`,label:i.strip===!1?`Strip off`:`Strip on`}],s=(t-18*(r.length+1))/r.length;r.forEach((t,c)=>{let l=18+c*(s+18),u=n-o+8;B(e,l,u,s,o-22,10),e.fillStyle=`#1f2937`,e.fill(),e.lineWidth=i.hover===`footer:`+t.id?4:2,e.strokeStyle=i.hover===`footer:`+t.id?`#5fd0ff`:`rgba(148,163,184,0.6)`,e.stroke(),e.fillStyle=`#f3f4f6`,e.textAlign=`center`,e.fillText(N(e,t.label,s-12,600,r.length>2?18:22,12),l+s/2,u+(o-22)/2),a.push({id:`footer:`+t.id,key:``,kind:`footer`,footer:t.id,x:l,y:u,w:s,h:o-22})})}return a}var U={};function W(t,n,r,a){let s=U[t],c=e(p);if(!s){let e=document.createElement(`canvas`);e.width=n,e.height=r;let c=e.getContext(`2d`),f=new d(e);f.colorSpace=u,f.anisotropy=4;let p=a*r/n,m=new i(new o(a,p),new l({map:f,transparent:!0,depthTest:!1,depthWrite:!1,side:2}));m.name=t,m.renderOrder=pe,m.visible=!1,m.frustumCulled=!1,m.userData.localOnly=!0,s={name:t,mesh:m,canvas:e,g:c,texture:f,w:a,h:p,hits:[],sig:``},U[t]=s}return c&&s.mesh.parent!==c&&c.add(s.mesh),s}function $e(e,t,n,r){e.canvas.width===t&&e.canvas.height===n&&Math.abs(e.w-r)<1e-6||(e.canvas.width=t,e.canvas.height=n,e.texture.dispose(),e.texture.needsUpdate=!0,e.w=r,e.h=r*n/t,e.mesh.geometry.dispose(),e.mesh.geometry=new o(e.w,e.h))}function G(){return n.getItem(Fe)!==`false`}function et(e){n.setItem(Fe,e?`true`:`false`)}var K={value:NaN,following:!1},q=[null,null],J={presses:0,pokes:0,lastPress:null,edits:0},tt=new s,nt=new a,Y=new s,X=new s,Z=new s,rt=new r;function it(){let t=e(f);if(!t?.xr?.isPresenting)return null;let n=t.xr.getCamera();return n.updateMatrixWorld?.(!0),n.getWorldPosition(tt),n.getWorldQuaternion(nt),{position:tt,quaternion:nt}}function at(e){return rt.setFromQuaternion(e,`YXZ`),rt.y}function Q(e,t,n,r){if(!Number.isFinite(e))return r.following=!1,t;let i=t-e;i=Math.atan2(Math.sin(i),Math.cos(i));let a=Math.abs(i);return!r.following&&a>Me*Math.PI/180&&(r.following=!0),r.following&&a<Ne*Math.PI/180&&(r.following=!1),r.following?e+i*Math.min(1,n*3):e}function ot(t={}){let n=t.head===void 0?it():t.head;t.head===void 0&&n&&me(),ve(n,t.dt??1/72);let r=!!n&&(t.force||h()),{panel:i,overlay:a}=r?R():{panel:[],overlay:[]},o=e(w),s=G();e(T),e(ee),e(g);let c=r&&e(k).open,l=r&&le()?`available`:null,u=i[0]??null,d=c?{key:`shell`,screen:null}:u,f=c?A:Be(d?.screen),p=W(`vr-game-panel`,Math.round(f.w*F),Math.round((f.h+96)*F),f.w*Ve);if(p.mesh.visible=!!d,d&&n){let r=JSON.stringify(c?[`shell`,e(k),e(O)?.list,e(O)?.current,e(_),q,s]:[d.key,d.screen,o,q,s,We,ct(d.screen),l]);r!==p.sig&&(p.sig=r,$e(p,Math.round(f.w*F),Math.round((f.h+96)*F),f.w*Ve),[p.hits,p.overflow]=M(()=>c?Je(p.g,{hover:q[0]??q[1],strip:s}):Ge(p.g,d,o,{hover:q[0]??q[1],strip:s,crop:f,menu:l})),p.texture.needsUpdate=!0);let i=at(n.quaternion);K.value=Q(K.value,i,t.dt??1/72,K),Y.set(-Math.sin(K.value),0,-Math.cos(K.value)),p.mesh.position.copy(n.position).addScaledVector(Y,Ae),p.mesh.position.y=n.position.y-je,p.mesh.rotation.set(-.12,K.value,0,`YXZ`),p.mesh.updateMatrixWorld(!0)}else d||(K.value=NaN);let v=He(a.flatMap(e=>e.screen.elements??[]),o);r&&e(_).showFps&&!e(_e)&&v.unshift(he(e(ge)).main);let y=W(`vr-game-wrist`,320*I,300*I,Pe),b=t.hands?.[0]??null;if(r&&b){let e=JSON.stringify([v,s,q,l,c]);e!==y.sig&&(y.sig=e,[y.hits,y.overflow]=M(()=>H(y.g,v.length?v:[`No score yet`],{title:`Game`,buttons:!0,strip:s,hover:q[0]??q[1],menu:l?c?`open`:`available`:null,res:I})),y.texture.needsUpdate=!0),Z.set(-.01,.035,.21).applyQuaternion(b.quaternion).add(b.position),y.mesh.position.copy(Z),y.mesh.quaternion.copy(b.quaternion).multiply(st),y.mesh.updateMatrixWorld(!0),X.set(0,0,1).applyQuaternion(y.mesh.quaternion),Z.copy(n?n.position:Z).sub(y.mesh.position).normalize(),y.mesh.visible=X.dot(Z)>.35}else y.mesh.visible=!1;let x=v.filter(Xe),S=W(`vr-game-strip`,1024,72,.9);if(S.mesh.visible=r&&s&&x.length>0,S.mesh.visible&&n){let e=JSON.stringify(x);e!==S.sig&&(S.sig=e,H(S.g,x,{row:!0}),S.texture.needsUpdate=!0),lt(S.mesh,n,1.3,.36)}let C=e(m),E=W(`vr-game-announce`,1024,256,.95);if(E.mesh.visible=!!n&&!!C,E.mesh.visible&&n&&C){let e=JSON.stringify([C.id,C.text,C.sub,C.color]);
4e!==E.sig&&(E.sig=e,H(E.g,[C.text,C.sub].filter(Boolean),{big:!0,color:C.color}),E.texture.needsUpdate=!0),lt(E.mesh,n,1.5,.12);let t=C.at+C.ms-Date.now();E.mesh.material.opacity=Math.max(0,Math.min(1,t/300))}return{panel:p.mesh.visible?d?.screen?.id??null:null,lines:v,stripLines:x,wrist:y.mesh.visible,strip:S.mesh.visible,banner:E.mesh.visible}}var st=new a().setFromEuler(new r(-Math.PI/2,0,0));function ct(e){return(e?.elements??[]).filter(e=>y(e.kind)).map(e=>x(e.id,e.value))}function lt(e,t,n,r){Y.set(0,0,-1).applyQuaternion(t.quaternion),X.set(0,1,0).applyQuaternion(t.quaternion),e.position.copy(t.position).addScaledVector(Y,n).addScaledVector(X,r),e.quaternion.copy(t.quaternion),e.updateMatrixWorld(!0)}function ut(e,t){let n=t.x*e.canvas.width,r=(1-t.y)*e.canvas.height;return e.hits.find(e=>n>=e.x&&n<=e.x+e.w&&r>=e.y&&r<=e.y+e.h)??null}function dt(e){let t=null;for(let n of[`vr-game-panel`,`vr-game-wrist`]){let r=U[n];if(!r?.mesh.visible)continue;let i=e.intersectObject(r.mesh,!1)[0];if(!i?.uv)continue;let a=ut(r,i.uv);a&&(!t||i.distance<t.distance)&&(t={surface:n,hit:a,point:i.point.clone(),distance:i.distance})}return t}function ft(e,t){let n=t?dt(t):null;return q[e]=n?.hit.id??null,n}function pt(e,t={}){let n=e?.hit;if(!n)return!1;if(J.presses++,J.lastPress=n.id,v(`click`,e.point?e.point.toArray():null),n.kind===`shell`)return oe(n.id);if(n.kind===`footer`)return n.footer===`menu`?(se(),!0):(n.footer===`edit`?(J.edits++,fe(`edit`)):n.footer===`strip`&&et(!G()),!0);let r=mt(n);if(!r)return!1;if(r.kind===`button`)de(r.id);else if(r.kind===`toggle`)C(r.id,!x(r.id,r.value),{shared:!!r.shared}),de(r.id);else if(r.kind===`slider`){let e=Number(r.min??0),n=Number(r.max??100),i=Number(r.step||1),a=Number.isFinite(t.u)?Number(t.u):.5,o=e+(n-e)*Math.min(1,Math.max(0,a));C(r.id,Math.round(o/i)*i,{shared:!!r.shared})}else if(r.kind===`dropdown`||r.kind===`tabs`){let e=ue(r.id,r);if(!e.length)return!1;if(r.kind===`tabs`){let t=Math.max(0,Math.round(Number(x(r.id,r.value??0))));C(r.id,(t+1)%e.length,{shared:!!r.shared})}else{let t=String(x(r.id,r.value??e[0]));C(r.id,e[(Math.max(0,e.indexOf(t))+1)%e.length],{shared:!!r.shared})}}else de(r.id);return!0}function mt(e){for(let{screen:t}of R().panel){let n=(t.elements??[]).find(t=>t.id===e.id);if(n)return n}return null}function ht(e){let t=U[e.surface];return t?((t.mesh.worldToLocal(e.point.clone()).x/t.w+.5)*t.canvas.width-e.hit.x)/Math.max(1,e.hit.w):.5}
4var gt=.018,_t=.04,$=[!0,!0];function vt(e,t){if(!t)return null;let n=null,r=1/0;for(let i of[`vr-game-panel`,`vr-game-wrist`]){let a=U[i];if(!a?.mesh.visible)continue;let o=a.mesh.worldToLocal(t.clone());if(Math.abs(o.x)>a.w/2||Math.abs(o.y)>a.h/2)continue;let s=Math.abs(o.z);if(r=Math.min(r,s),s>gt||!$[e])continue;let l=ut(a,new c(o.x/a.w+.5,o.y/a.h+.5));if(!l)continue;let u={surface:i,hit:l,point:t.clone(),distance:0};$[e]=!1,J.pokes++,pt(u,{source:`poke`,u:ht(u)}),n=u}return r>_t&&($[e]=!0),n}function yt(){let e={};for(let[t,n]of Object.entries(U))e[t]=n.hits.map(e=>({...e}));let t=Object.values(U).flatMap(e=>e.mesh.visible?(e.overflow??[]).map(t=>e.name+`: `+t):[]);return{...J,hover:[...q],strip:G(),hits:e,overflow:t}}function bt(e){let t=U[e];return t?{mesh:t.mesh,canvas:t.canvas}:null}function xt(){for(let e of Object.values(U))e.mesh.visible=!1;q[0]=q[1]=null,K.value=NaN}export{vt as a,ot as c,Se as d,dt as i,ke as l,xt as n,pt as o,ft as r,ht as s,Q as t,bt as u};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.