t2-mapper/docs/_next/static/chunks/b07469fc6c6cd3bb.js
2026-03-09 12:38:40 -07:00

1 line
No EOL
80 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,13070,e=>{e.v({Arrow:"KeyboardOverlay-module__HsRBsa__Arrow",Column:"KeyboardOverlay-module__HsRBsa__Column",Key:"KeyboardOverlay-module__HsRBsa__Key",Root:"KeyboardOverlay-module__HsRBsa__Root",Row:"KeyboardOverlay-module__HsRBsa__Row",Spacer:"KeyboardOverlay-module__HsRBsa__Spacer"})},78295,e=>{e.v({Joystick:"TouchControls-module__AkxfgW__Joystick",Left:"TouchControls-module__AkxfgW__Left TouchControls-module__AkxfgW__Joystick",Right:"TouchControls-module__AkxfgW__Right TouchControls-module__AkxfgW__Joystick"})},65883,e=>{e.v({ButtonLabel:"InspectorControls-module__gNRB6W__ButtonLabel",CheckboxField:"InspectorControls-module__gNRB6W__CheckboxField",Controls:"InspectorControls-module__gNRB6W__Controls",Dropdown:"InspectorControls-module__gNRB6W__Dropdown",Field:"InspectorControls-module__gNRB6W__Field",Group:"InspectorControls-module__gNRB6W__Group",IconButton:"InspectorControls-module__gNRB6W__IconButton",LabelledButton:"InspectorControls-module__gNRB6W__LabelledButton",MapInfoButton:"InspectorControls-module__gNRB6W__MapInfoButton InspectorControls-module__gNRB6W__IconButton InspectorControls-module__gNRB6W__LabelledButton",MissionSelectWrapper:"InspectorControls-module__gNRB6W__MissionSelectWrapper",Toggle:"InspectorControls-module__gNRB6W__Toggle InspectorControls-module__gNRB6W__IconButton"})},36679,e=>{e.v({ButtonLabel:"CopyCoordinatesButton-module__BxovtG__ButtonLabel "+e.i(65883).ButtonLabel,ClipboardCheck:"CopyCoordinatesButton-module__BxovtG__ClipboardCheck",MapPin:"CopyCoordinatesButton-module__BxovtG__MapPin",Root:"CopyCoordinatesButton-module__BxovtG__Root "+e.i(65883).IconButton+" "+e.i(65883).LabelledButton,showClipboardCheck:"CopyCoordinatesButton-module__BxovtG__showClipboardCheck"})},28903,e=>{e.v({ButtonLabel:"LoadDemoButton-module__kGZaoW__ButtonLabel "+e.i(65883).ButtonLabel,DemoIcon:"LoadDemoButton-module__kGZaoW__DemoIcon",Root:"LoadDemoButton-module__kGZaoW__Root "+e.i(65883).IconButton+" "+e.i(65883).LabelledButton})},9607,e=>{e.v({LiveIcon:"JoinServerButton-module__DIR70a__LiveIcon",PingLabel:"JoinServerButton-module__DIR70a__PingLabel "+e.i(65883).ButtonLabel,Pulsing:"JoinServerButton-module__DIR70a__Pulsing",Root:"JoinServerButton-module__DIR70a__Root "+e.i(65883).IconButton+" "+e.i(65883).LabelledButton,TextLabel:"JoinServerButton-module__DIR70a__TextLabel "+e.i(65883).ButtonLabel,blink:"JoinServerButton-module__DIR70a__blink"})},75840,e=>{e.v({BarFillEnergy:"PlayerHUD-module__-E1Scq__BarFillEnergy",BarFillHealth:"PlayerHUD-module__-E1Scq__BarFillHealth",BarTrack:"PlayerHUD-module__-E1Scq__BarTrack",Bars:"PlayerHUD-module__-E1Scq__Bars",ChatColor0:"PlayerHUD-module__-E1Scq__ChatColor0",ChatColor1:"PlayerHUD-module__-E1Scq__ChatColor1",ChatColor2:"PlayerHUD-module__-E1Scq__ChatColor2",ChatColor3:"PlayerHUD-module__-E1Scq__ChatColor3",ChatColor4:"PlayerHUD-module__-E1Scq__ChatColor4",ChatColor5:"PlayerHUD-module__-E1Scq__ChatColor5",ChatColor6:"PlayerHUD-module__-E1Scq__ChatColor6",ChatColor7:"PlayerHUD-module__-E1Scq__ChatColor7",ChatColor8:"PlayerHUD-module__-E1Scq__ChatColor8",ChatColor9:"PlayerHUD-module__-E1Scq__ChatColor9",ChatMessage:"PlayerHUD-module__-E1Scq__ChatMessage",ChatWindow:"PlayerHUD-module__-E1Scq__ChatWindow",Compass:"PlayerHUD-module__-E1Scq__Compass",CompassNSEW:"PlayerHUD-module__-E1Scq__CompassNSEW",CompassRing:"PlayerHUD-module__-E1Scq__CompassRing",PackInvCount:"PlayerHUD-module__-E1Scq__PackInvCount",PackInvIcon:"PlayerHUD-module__-E1Scq__PackInvIcon",PackInvInfinity:"PlayerHUD-module__-E1Scq__PackInvInfinity",PackInvItem:"PlayerHUD-module__-E1Scq__PackInvItem",PackInvItemActive:"PlayerHUD-module__-E1Scq__PackInvItemActive",PackInvItemDim:"PlayerHUD-module__-E1Scq__PackInvItemDim",PackInventoryHUD:"PlayerHUD-module__-E1Scq__PackInventoryHUD",PlayerHUD:"PlayerHUD-module__-E1Scq__PlayerHUD",Reticle:"PlayerHUD-module__-E1Scq__Reticle",ReticleDot:"PlayerHUD-module__-E1Scq__ReticleDot",ReticleImage:"PlayerHUD-module__-E1Scq__ReticleImage",TeamCount:"PlayerHUD-module__-E1Scq__TeamCount",TeamNameEnemy:"PlayerHUD-module__-E1Scq__TeamNameEnemy",TeamNameFriendly:"PlayerHUD-module__-E1Scq__TeamNameFriendly",TeamRow:"PlayerHUD-module__-E1Scq__TeamRow",TeamScore:"PlayerHUD-module__-E1Scq__TeamScore",TeamScores:"PlayerHUD-module__-E1Scq__TeamScores",TopRight:"PlayerHUD-module__-E1Scq__TopRight",WeaponHUD:"PlayerHUD-module__-E1Scq__WeaponHUD",WeaponSeparator:"PlayerHUD-module__-E1Scq__WeaponSeparator"})},56614,e=>{e.v({CloseButton:"ServerBrowser-module__kqm3eq__CloseButton "+e.i(6090).Secondary,Dialog:"ServerBrowser-module__kqm3eq__Dialog",Empty:"ServerBrowser-module__kqm3eq__Empty",Footer:"ServerBrowser-module__kqm3eq__Footer",Header:"ServerBrowser-module__kqm3eq__Header",Hint:"ServerBrowser-module__kqm3eq__Hint",JoinButton:"ServerBrowser-module__kqm3eq__JoinButton "+e.i(6090).DialogButton,Overlay:"ServerBrowser-module__kqm3eq__Overlay",PasswordIcon:"ServerBrowser-module__kqm3eq__PasswordIcon",RefreshButton:"ServerBrowser-module__kqm3eq__RefreshButton "+e.i(6090).DialogButton,Selected:"ServerBrowser-module__kqm3eq__Selected",ServerCount:"ServerBrowser-module__kqm3eq__ServerCount",Table:"ServerBrowser-module__kqm3eq__Table",TableWrapper:"ServerBrowser-module__kqm3eq__TableWrapper",Title:"ServerBrowser-module__kqm3eq__Title"})},3011,e=>{e.v({CanvasContainer:"page-module__E0kJGG__CanvasContainer",LoadingIndicator:"page-module__E0kJGG__LoadingIndicator",Progress:"page-module__E0kJGG__Progress",ProgressBar:"page-module__E0kJGG__ProgressBar",ProgressText:"page-module__E0kJGG__ProgressText",Spinner:"page-module__E0kJGG__Spinner",loadingComplete:"page-module__E0kJGG__loadingComplete",spin:"page-module__E0kJGG__spin"})},31713,e=>{"use strict";var t=e.i(43476),a=e.i(932),r=e.i(71645),n=e.i(75056),s=e.i(90072),o=e.i(66027),l=e.i(54970),i=e.i(12979),c=e.i(32424);let u=(0,r.createContext)(null);function d(e){let r,n=(0,a.c)(3),{runtime:s,children:o}=e;return n[0]!==o||n[1]!==s?(r=(0,t.jsx)(u.Provider,{value:s,children:o}),n[0]=o,n[1]=s,n[2]=r):r=n[2],r}var m=e.i(86608),h=e.i(38433),p=e.i(33870),f=e.i(91996);let _=(0,r.createContext)(null).Provider;e.i(13876);var g=e.i(58647),y=e.i(92224),v=e.i(7368),x=e.i(62395),b=e.i(9672);function k(e,t){if(t)return e.state.datablocks.get(t)}let S=(0,c.createScriptLoader)(),C=(0,p.createScriptCache)(),j={findFiles:e=>{let t=(0,l.default)(e,{nocase:!0});return(0,f.getResourceList)().filter(e=>t(e)).map(e=>{let[,t]=(0,f.getSourceAndPath)(e);return t})},isFile:e=>null!=(0,f.getResourceMap)()[(0,f.getResourceKey)(e)]};function w(e){"batch.flushed"===e.type&&g.engineStore.getState().applyRuntimeBatch(e.events,{tick:e.tick})}function N(e){e instanceof Error&&"AbortError"===e.name||console.error("Mission runtime failed to become ready:",e)}let I=(0,r.memo)(function(e){let n,s,l,c,u,p,f,I=(0,a.c)(13),{name:T,missionType:P,onLoadingChange:B}=e,{data:D}=((f=(0,a.c)(2))[0]!==T?(p={queryKey:["parsedMission",T],queryFn:()=>(0,i.loadMission)(T)},f[0]=T,f[1]=p):p=f[1],(0,o.useQuery)(p)),{ready:E,runtime:M,progress:R}=function(e,t,n){let s,o,l,i=(0,a.c)(6);i[0]===Symbol.for("react.memo_cache_sentinel")?(s={ready:!1,runtime:void 0,progress:0},i[0]=s):s=i[0];let[c,u]=(0,r.useState)(s);return i[1]!==e||i[2]!==t||i[3]!==n?(o=()=>{if(!n)return;let a=new AbortController,r=!1,s=null,o=(0,h.createProgressTracker)(),l=()=>{u(e=>({...e,progress:o.progress}))};o.on("update",l);let{runtime:i,ready:c}=(0,m.runServer)({missionName:e,missionType:t,runtimeOptions:{loadScript:S,fileSystem:j,cache:C,signal:a.signal,progress:o,ignoreScripts:v.ignoreScripts}});return c.then(()=>{if(r||a.signal.aborted)return;g.engineStore.getState().setRuntime(i);let e=i.getObjectByName("MissionGroup");if(e){let t=function e(t,a,r){let n=[],s=r;if("SimGroup"===t._className){if(t._name?.toLowerCase()==="teams")s=void 0;else if(void 0===s&&t._name){let e=t._name.match(/^team(\d+)$/i);e&&(s=parseInt(e[1],10))}}let o=function(e,t,a){let r=e._className,n=`mission_${e._id}`,s=(0,x.getPosition)(e),o=(0,x.getScale)(e),l=function(e){let[t,a,r,n]=e.split(" ").map(parseFloat),s=-(n||0)*Math.PI/360,o=Math.sin(s),l=Math.cos(s),i=Math.sqrt((a||0)*(a||0)+(r||0)*(r||0)+(t||0)*(t||0));return i<1e-8?[0,0,0,1]:[(a||0)/i*o,(r||0)/i*o,(t||0)/i*o,l]}(e.rotation??"1 0 0 0"),i=(0,x.getProperty)(e,"dataBlock")??"",c=k(t,i),u=(0,x.getProperty)(e,"missionTypesList"),d={id:n,className:r,runtimeObject:e,missionTypesList:u},m={...d,position:s,rotation:l,scale:o};switch(r){case"TerrainBlock":return{...d,renderType:"TerrainBlock",terrainData:(0,b.terrainFromMis)(e)};case"InteriorInstance":return{...d,renderType:"InteriorInstance",interiorData:(0,b.interiorFromMis)(e)};case"Sky":return{...d,renderType:"Sky",skyData:(0,b.skyFromMis)(e)};case"Sun":return{...d,renderType:"Sun",sunData:(0,b.sunFromMis)(e)};case"WaterBlock":return{...d,renderType:"WaterBlock",waterData:(0,b.waterBlockFromMis)(e)};case"MissionArea":return{...d,renderType:"MissionArea",missionAreaData:(0,b.missionAreaFromMis)(e)};case"StaticShape":case"Item":case"Turret":case"TSStatic":var h=m,p=e,f=c,_=t,g=r,y=a,v=i;let S="TSStatic"===g?(0,x.getProperty)(p,"shapeName"):(0,x.getProperty)(f,"shapeFile"),C={...h,renderType:"Shape",shapeName:S,shapeType:"Turret"===g?"Turret":"Item"===g?"Item":"TSStatic"===g?"TSStatic":"StaticShape",dataBlock:v||void 0,teamId:y};if("Item"===g&&(C.rotate=function(e){if("string"==typeof e){let t=e.toLowerCase();return"0"!==t&&"false"!==t&&""!==t}return!!e}((0,x.getProperty)(p,"rotate")??(0,x.getProperty)(f,"rotate"))),"Turret"===g){let e=(0,x.getProperty)(p,"initialBarrel");if(e){let t=k(_,e);C.barrelShapeName=(0,x.getProperty)(t,"shapeFile")}}return C;case"ForceFieldBare":return function(e,t,a,r){let n,s=(0,x.getProperty)(a,"color"),o=s?[(n=s.split(" ").map(e=>parseFloat(e)))[0]??0,n[1]??0,n[2]??0]:[1,1,1],l=parseFloat((0,x.getProperty)(a,"baseTranslucency"))||1,i=parseInt((0,x.getProperty)(a,"numFrames"),10)||1,c=parseFloat((0,x.getProperty)(a,"framesPerSec"))||1,u=parseFloat((0,x.getProperty)(a,"scrollSpeed"))||0,d=parseFloat((0,x.getProperty)(a,"umapping"))||1,m=parseFloat((0,x.getProperty)(a,"vmapping"))||1,h=[];for(let e=0;e<i;e++){let t=(0,x.getProperty)(a,`texture${e}`);t&&h.push(t)}return{...e,scale:void 0,renderType:"ForceFieldBare",forceFieldData:{textures:h,color:o,baseTranslucency:l,numFrames:i,framesPerSec:c,scrollSpeed:u,umapping:d,vmapping:m,dimensions:r??[1,1,1]}}}(m,0,c,o);case"AudioEmitter":return{...m,renderType:"AudioEmitter",audioFileName:(0,x.getProperty)(e,"fileName")??void 0,audioVolume:parseFloat((0,x.getProperty)(e,"volume"))||1,audioIs3D:((0,x.getProperty)(e,"is3D")??"0")!=="0",audioIsLooping:((0,x.getProperty)(e,"isLooping")??"0")!=="0",audioMinDistance:parseFloat((0,x.getProperty)(e,"minDistance"))||1,audioMaxDistance:parseFloat((0,x.getProperty)(e,"maxDistance"))||1,audioMinLoopGap:parseFloat((0,x.getProperty)(e,"minLoopGap"))||0,audioMaxLoopGap:parseFloat((0,x.getProperty)(e,"maxLoopGap"))||0};case"Camera":return{...m,renderType:"Camera",cameraDataBlock:i||void 0};case"WayPoint":return{...m,renderType:"WayPoint",label:(0,x.getProperty)(e,"name")||void 0};default:return null}}(t,a,s);if(o&&n.push(o),t._children)for(let r of t._children)n.push(...e(r,a,s));return n}(e,i);y.gameEntityStore.getState().setAllEntities(t)}u({ready:!0,runtime:i,progress:1})}).catch(N),s=i.subscribeRuntimeEvents(w),g.engineStore.getState().setRuntime(i),()=>{r=!0,o.off("update",l),a.abort(),s?.(),g.engineStore.getState().clearRuntime(),y.gameEntityStore.getState().clearEntities(),i.destroy()}},l=[e,t,n],i[1]=e,i[2]=t,i[3]=n,i[4]=o,i[5]=l):(o=i[4],l=i[5]),(0,r.useEffect)(o,l),c}(T,P,D),L=!D||!E||!M;I[0]!==P||I[1]!==D?(n={metadata:D,missionType:P},I[0]=P,I[1]=D,I[2]=n):n=I[2];let H=n;return(I[3]!==L||I[4]!==B||I[5]!==R?(s=()=>{B?.(L,R)},l=[L,R,B],I[3]=L,I[4]=B,I[5]=R,I[6]=s,I[7]=l):(s=I[6],l=I[7]),(0,r.useEffect)(s,l),L)?null:(I[8]!==M?(c=(0,t.jsx)(d,{runtime:M}),I[8]=M,I[9]=c):c=I[9],I[10]!==H||I[11]!==c?(u=(0,t.jsx)(_,{value:H,children:c}),I[10]=H,I[11]=c,I[12]=u):u=I[12],u)});var T=e.i(17751),P=e.i(12598),B=e.i(5729),D=e.i(12631),E=e.i(32865),M=e.i(13070);function R(){let e,r,n,s,o,l,i,c,u,d,m,h,p,f,_,g,y,v,x,b,k,S,C,j,w=(0,a.c)(51),N=(0,E.useRecording)(),I=(0,D.useKeyboardControls)(z),T=(0,D.useKeyboardControls)(W),P=(0,D.useKeyboardControls)(U),B=(0,D.useKeyboardControls)(A),R=(0,D.useKeyboardControls)(O),K=(0,D.useKeyboardControls)(q),$=(0,D.useKeyboardControls)(G),J=(0,D.useKeyboardControls)(F),V=(0,D.useKeyboardControls)(H),Y=(0,D.useKeyboardControls)(L);return N&&"live"!==N.source?null:(w[0]===Symbol.for("react.memo_cache_sentinel")?(e=(0,t.jsx)("div",{className:M.default.Spacer}),w[0]=e):e=w[0],w[1]!==I?(r=(0,t.jsx)("div",{className:M.default.Key,"data-pressed":I,children:"W"}),w[1]=I,w[2]=r):r=w[2],w[3]===Symbol.for("react.memo_cache_sentinel")?(n=(0,t.jsx)("div",{className:M.default.Spacer}),w[3]=n):n=w[3],w[4]!==r?(s=(0,t.jsxs)("div",{className:M.default.Row,children:[e,r,n]}),w[4]=r,w[5]=s):s=w[5],w[6]!==P?(o=(0,t.jsx)("div",{className:M.default.Key,"data-pressed":P,children:"A"}),w[6]=P,w[7]=o):o=w[7],w[8]!==T?(l=(0,t.jsx)("div",{className:M.default.Key,"data-pressed":T,children:"S"}),w[8]=T,w[9]=l):l=w[9],w[10]!==B?(i=(0,t.jsx)("div",{className:M.default.Key,"data-pressed":B,children:"D"}),w[10]=B,w[11]=i):i=w[11],w[12]!==o||w[13]!==l||w[14]!==i?(c=(0,t.jsxs)("div",{className:M.default.Row,children:[o,l,i]}),w[12]=o,w[13]=l,w[14]=i,w[15]=c):c=w[15],w[16]!==s||w[17]!==c?(u=(0,t.jsxs)("div",{className:M.default.Column,children:[s,c]}),w[16]=s,w[17]=c,w[18]=u):u=w[18],w[19]===Symbol.for("react.memo_cache_sentinel")?(d=(0,t.jsx)("span",{className:M.default.Arrow,children:"↑"}),w[19]=d):d=w[19],w[20]!==R?(m=(0,t.jsx)("div",{className:M.default.Row,children:(0,t.jsxs)("div",{className:M.default.Key,"data-pressed":R,children:[d," Space"]})}),w[20]=R,w[21]=m):m=w[21],w[22]===Symbol.for("react.memo_cache_sentinel")?(h=(0,t.jsx)("span",{className:M.default.Arrow,children:"↓"}),w[22]=h):h=w[22],w[23]!==K?(p=(0,t.jsx)("div",{className:M.default.Row,children:(0,t.jsxs)("div",{className:M.default.Key,"data-pressed":K,children:[h," Shift"]})}),w[23]=K,w[24]=p):p=w[24],w[25]!==m||w[26]!==p?(f=(0,t.jsxs)("div",{className:M.default.Column,children:[m,p]}),w[25]=m,w[26]=p,w[27]=f):f=w[27],w[28]===Symbol.for("react.memo_cache_sentinel")?(_=(0,t.jsx)("div",{className:M.default.Spacer}),w[28]=_):_=w[28],w[29]!==$?(g=(0,t.jsx)("div",{className:M.default.Key,"data-pressed":$,children:"↑"}),w[29]=$,w[30]=g):g=w[30],w[31]===Symbol.for("react.memo_cache_sentinel")?(y=(0,t.jsx)("div",{className:M.default.Spacer}),w[31]=y):y=w[31],w[32]!==g?(v=(0,t.jsxs)("div",{className:M.default.Row,children:[_,g,y]}),w[32]=g,w[33]=v):v=w[33],w[34]!==V?(x=(0,t.jsx)("div",{className:M.default.Key,"data-pressed":V,children:"←"}),w[34]=V,w[35]=x):x=w[35],w[36]!==J?(b=(0,t.jsx)("div",{className:M.default.Key,"data-pressed":J,children:"↓"}),w[36]=J,w[37]=b):b=w[37],w[38]!==Y?(k=(0,t.jsx)("div",{className:M.default.Key,"data-pressed":Y,children:"→"}),w[38]=Y,w[39]=k):k=w[39],w[40]!==x||w[41]!==b||w[42]!==k?(S=(0,t.jsxs)("div",{className:M.default.Row,children:[x,b,k]}),w[40]=x,w[41]=b,w[42]=k,w[43]=S):S=w[43],w[44]!==v||w[45]!==S?(C=(0,t.jsxs)("div",{className:M.default.Column,children:[v,S]}),w[44]=v,w[45]=S,w[46]=C):C=w[46],w[47]!==f||w[48]!==C||w[49]!==u?(j=(0,t.jsxs)("div",{className:M.default.Root,children:[u,f,C]}),w[47]=f,w[48]=C,w[49]=u,w[50]=j):j=w[50],j)}function L(e){return e.lookRight}function H(e){return e.lookLeft}function F(e){return e.lookDown}function G(e){return e.lookUp}function q(e){return e.down}function O(e){return e.up}function A(e){return e.right}function U(e){return e.left}function W(e){return e.backward}function z(e){return e.forward}var K=e.i(71753),$=e.i(15080),J=e.i(79123),V=e.i(78295);function Y(e){let t=e.querySelector(".back");t&&(t.style.background="rgba(3, 79, 76, 0.6)",t.style.border="1px solid rgba(0, 219, 223, 0.5)",t.style.boxShadow="inset 0 0 10px rgba(0, 0, 0, 0.7)");let a=e.querySelector(".front");a&&(a.style.background="radial-gradient(circle at 50% 50%, rgba(23, 247, 198, 0.9) 0%, rgba(9, 184, 170, 0.95) 100%)",a.style.border="2px solid rgba(255, 255, 255, 0.4)",a.style.boxShadow="0 2px 4px rgba(0, 0, 0, 0.5), 0 1px 1px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.15), inset 0 -1px 2px rgba(0, 0, 0, 0.3)")}let X=Math.PI/2-.01;function Z({joystickState:a,joystickZone:n,lookJoystickState:s,lookJoystickZone:o}){let{touchMode:l}=(0,J.useControls)();(0,r.useEffect)(()=>{let t=n.current;if(!t)return;let r=null,s=!1;return e.A(84968).then(e=>{s||(r=e.default.create({zone:t,mode:"static",position:{left:"70px",bottom:"70px"},size:120,restOpacity:.9}),Y(t),r.on("move",(e,t)=>{a.current.angle=t.angle.radian,a.current.force=Math.min(1,t.force)}),r.on("end",()=>{a.current.force=0}))}),()=>{s=!0,r?.destroy()}},[a,n,l]),(0,r.useEffect)(()=>{if("dualStick"!==l)return;let t=o.current;if(!t)return;let a=null,r=!1;return e.A(84968).then(e=>{r||(a=e.default.create({zone:t,mode:"static",position:{right:"70px",bottom:"70px"},size:120,restOpacity:.9}),Y(t),a.on("move",(e,t)=>{s.current.angle=t.angle.radian,s.current.force=Math.min(1,t.force)}),a.on("end",()=>{s.current.force=0}))}),()=>{r=!0,a?.destroy()}},[l,s,o]);let i=()=>{document.activeElement instanceof HTMLElement&&document.activeElement.blur()};return"dualStick"===l?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{ref:n,className:V.default.Left,onContextMenu:e=>e.preventDefault(),onTouchStart:i}),(0,t.jsx)("div",{ref:o,className:V.default.Right,onContextMenu:e=>e.preventDefault(),onTouchStart:i})]}):(0,t.jsx)("div",{ref:n,className:V.default.Joystick,onContextMenu:e=>e.preventDefault(),onTouchStart:i})}function Q(e){let t,n,o,l,i,c,u,d,m,h,p=(0,a.c)(25),{joystickState:f,joystickZone:_,lookJoystickState:g}=e,{speedMultiplier:y,touchMode:v}=(0,J.useControls)(),{camera:x,gl:b}=(0,$.useThree)();p[0]===Symbol.for("react.memo_cache_sentinel")?(t=new s.Euler(0,0,0,"YXZ"),p[0]=t):t=p[0];let k=(0,r.useRef)(t),S=(0,r.useRef)(null);p[1]===Symbol.for("react.memo_cache_sentinel")?(n={x:0,y:0},p[1]=n):n=p[1];let C=(0,r.useRef)(n);p[2]===Symbol.for("react.memo_cache_sentinel")?(o=new s.Vector3,p[2]=o):o=p[2];let j=(0,r.useRef)(o);p[3]===Symbol.for("react.memo_cache_sentinel")?(l=new s.Vector3,p[3]=l):l=p[3];let w=(0,r.useRef)(l);p[4]===Symbol.for("react.memo_cache_sentinel")?(i=new s.Vector3,p[4]=i):i=p[4];let N=(0,r.useRef)(i);return p[5]!==x.quaternion?(c=()=>{k.current.setFromQuaternion(x.quaternion,"YXZ")},p[5]=x.quaternion,p[6]=c):c=p[6],p[7]!==x?(u=[x],p[7]=x,p[8]=u):u=p[8],(0,r.useEffect)(c,u),p[9]!==x.quaternion||p[10]!==b.domElement||p[11]!==_||p[12]!==v?(d=()=>{if("moveLookStick"!==v)return;let e=b.domElement,t=e=>{let t=_.current;if(!t)return!1;let a=t.getBoundingClientRect();return e.clientX>=a.left&&e.clientX<=a.right&&e.clientY>=a.top&&e.clientY<=a.bottom},a=e=>{if(null===S.current)for(let a=0;a<e.changedTouches.length;a++){let r=e.changedTouches[a];if(!t(r)){S.current=r.identifier,C.current={x:r.clientX,y:r.clientY};break}}},r=e=>{if(null!==S.current)for(let t=0;t<e.changedTouches.length;t++){let a=e.changedTouches[t];if(a.identifier===S.current){let e=a.clientX-C.current.x,t=a.clientY-C.current.y;C.current={x:a.clientX,y:a.clientY},k.current.setFromQuaternion(x.quaternion,"YXZ"),k.current.y=k.current.y-.004*e,k.current.x=k.current.x-.004*t,k.current.x=Math.max(-X,Math.min(X,k.current.x)),x.quaternion.setFromEuler(k.current);break}}},n=e=>{for(let t=0;t<e.changedTouches.length;t++)if(e.changedTouches[t].identifier===S.current){S.current=null;break}};return e.addEventListener("touchstart",a,{passive:!0}),e.addEventListener("touchmove",r,{passive:!0}),e.addEventListener("touchend",n,{passive:!0}),e.addEventListener("touchcancel",n,{passive:!0}),()=>{e.removeEventListener("touchstart",a),e.removeEventListener("touchmove",r),e.removeEventListener("touchend",n),e.removeEventListener("touchcancel",n),S.current=null}},p[9]=x.quaternion,p[10]=b.domElement,p[11]=_,p[12]=v,p[13]=d):d=p[13],p[14]!==x||p[15]!==b.domElement||p[16]!==_||p[17]!==v?(m=[x,b.domElement,_,v],p[14]=x,p[15]=b.domElement,p[16]=_,p[17]=v,p[18]=m):m=p[18],(0,r.useEffect)(d,m),p[19]!==x||p[20]!==f.current||p[21]!==g||p[22]!==y||p[23]!==v?(h=(e,t)=>{let{force:a,angle:r}=f.current;if("dualStick"===v){let e=g.current;if(e.force>.15){let a=(e.force-.15)/.85,r=Math.cos(e.angle),n=Math.sin(e.angle);k.current.setFromQuaternion(x.quaternion,"YXZ"),k.current.y=k.current.y-r*a*2.5*t,k.current.x=k.current.x+n*a*2.5*t,k.current.x=Math.max(-X,Math.min(X,k.current.x)),x.quaternion.setFromEuler(k.current)}if(a>.08){let e=80*y*((a-.08)/.92),n=Math.cos(r),s=Math.sin(r);x.getWorldDirection(j.current),j.current.normalize(),w.current.crossVectors(x.up,j.current).normalize(),N.current.set(0,0,0).addScaledVector(j.current,s).addScaledVector(w.current,-n),N.current.lengthSq()>0&&(N.current.normalize().multiplyScalar(e*t),x.position.add(N.current))}}else if("moveLookStick"===v&&a>0){let e=80*y*.5;if(x.getWorldDirection(j.current),j.current.normalize(),N.current.copy(j.current).multiplyScalar(e*t),x.position.add(N.current),a>=.15){let e=Math.cos(r),n=Math.sin(r),s=(a-.15)/.85;k.current.setFromQuaternion(x.quaternion,"YXZ"),k.current.y=k.current.y-e*s*1.25*t,k.current.x=k.current.x+n*s*1.25*t,k.current.x=Math.max(-X,Math.min(X,k.current.x)),x.quaternion.setFromEuler(k.current)}}},p[19]=x,p[20]=f.current,p[21]=g,p[22]=y,p[23]=v,p[24]=h):h=p[24],(0,K.useFrame)(h),null}var ee=e.i(11889),et=e.i(56373),ea=e.i(86447),er=e.i(1559),en=e.i(78440),es=e.i(59129),eo=e.i(25998),el=e.i(18364),ei=e.i(70238),ec=e.i(29402),eu=e.i(97442);let ed=new Set(["SkiFree","SkiFree_Daily","SkiFree_Randomizer"]),em={"missions.vl2":"Official","TR2final105-client.vl2":"Team Rabbit 2","z_mappacks/CTF/Classic_maps_v1.vl2":"Classic","z_mappacks/CTF/DynamixFinalPack.vl2":"Official","z_mappacks/CTF/KryMapPack_b3EDIT.vl2":"KryMapPack","z_mappacks/CTF/S5maps.vl2":"S5","z_mappacks/CTF/S8maps.vl2":"S8","z_mappacks/CTF/TWL-MapPack.vl2":"TWL","z_mappacks/CTF/TWL-MapPackEDIT.vl2":"TWL","z_mappacks/CTF/TWL2-MapPack.vl2":"TWL2","z_mappacks/CTF/TWL2-MapPackEDIT.vl2":"TWL2","z_mappacks/TWL_T2arenaOfficialMaps.vl2":"Arena","z_mappacks/xPack2.vl2":"xPack2","z_mappacks/z_DMP2-V0.6.vl2":"DMP2 (Discord Map Pack)","z_mappacks/zDMP-4.7.3DX.vl2":"DMP (Discord Map Pack)","z_mappacks/zDMP-4.7.3DX-ServerOnly.vl2":"DMP (Discord Map Pack)"},eh={"z_mappacks/DM":"DM","z_mappacks/LCTF":"LCTF","z_mappacks/Lak":"LakRabbit"},ep=(0,f.getMissionList)().filter(e=>!ed.has(e)).map(e=>{let t,a=(0,f.getMissionInfo)(e),[r]=(0,f.getSourceAndPath)(a.resourcePath),n=(t=r.match(/^(.*)(\/[^/]+)$/))?t[1]:"",s=em[r]??eh[n]??null;return{resourcePath:a.resourcePath,missionName:e,displayName:a.displayName,sourcePath:r,groupName:s,missionTypes:a.missionTypes}}),ef=new Map(ep.map(e=>[e.missionName,e])),e_=function(e){let t=new Map;for(let a of e){let e=t.get(a.groupName)??[];e.push(a),t.set(a.groupName,e)}return t.forEach((e,a)=>{t.set(a,(0,ec.default)(e,[e=>(e.displayName||e.missionName).toLowerCase()],["asc"]))}),(0,ec.default)(Array.from(t.entries()),[([e])=>"Official"===e?0:null==e?2:1,([e])=>e?e.toLowerCase():""],["asc","asc"])}(ep),eg="u">typeof navigator&&/Mac|iPhone|iPad|iPod/.test(navigator.platform);function ey(e){let r,n,s,o,l,i=(0,a.c)(12),{mission:c}=e,u=c.displayName||c.missionName;return i[0]!==u?(r=(0,t.jsx)("span",{className:eu.default.ItemName,children:u}),i[0]=u,i[1]=r):r=i[1],i[2]!==c.missionTypes?(n=c.missionTypes.length>0&&(0,t.jsx)("span",{className:eu.default.ItemTypes,children:c.missionTypes.map(ev)}),i[2]=c.missionTypes,i[3]=n):n=i[3],i[4]!==r||i[5]!==n?(s=(0,t.jsxs)("span",{className:eu.default.ItemHeader,children:[r,n]}),i[4]=r,i[5]=n,i[6]=s):s=i[6],i[7]!==c.missionName?(o=(0,t.jsx)("span",{className:eu.default.ItemMissionName,children:c.missionName}),i[7]=c.missionName,i[8]=o):o=i[8],i[9]!==s||i[10]!==o?(l=(0,t.jsxs)(t.Fragment,{children:[s,o]}),i[9]=s,i[10]=o,i[11]=l):l=i[11],l}function ev(e){return(0,t.jsx)("span",{className:eu.default.ItemType,"data-mission-type":e,children:e},e)}function ex(e){let n,s,o,l,i,c,u,d,m,h,p,_,g,y,v,x,b,k=(0,a.c)(46),{value:S,missionType:C,onChange:j,disabled:w}=e,[N,I]=(0,r.useState)(""),T=(0,r.useRef)(null),P=(0,r.useRef)(C);k[0]===Symbol.for("react.memo_cache_sentinel")?(n=e=>{(0,r.startTransition)(()=>I(e))},k[0]=n):n=k[0];let B=(0,el.useComboboxStore)({resetValueOnHide:!0,selectedValue:S,setSelectedValue:e=>{if(e){let t=P.current,a=(0,f.getMissionInfo)(e).missionTypes;t&&a.includes(t)||(t=a[0]),j({missionName:e,missionType:t}),T.current?.blur()}},setValue:n});k[1]!==B?(s=()=>{let e=e=>{"k"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),T.current?.focus(),B.show())};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},o=[B],k[1]=B,k[2]=s,k[3]=o):(s=k[2],o=k[3]),(0,r.useEffect)(s,o),k[4]!==S?(l=ef.get(S),k[4]=S,k[5]=l):l=k[5];let D=l;e:{let e,t;if(!N){let e;k[6]===Symbol.for("react.memo_cache_sentinel")?(e={type:"grouped",groups:e_},k[6]=e):e=k[6],i=e;break e}k[7]!==N?(e=(0,ei.matchSorter)(ep,N,{keys:["displayName","missionName","missionTypes","groupName"]}),k[7]=N,k[8]=e):e=k[8];let a=e;k[9]!==a?(t={type:"flat",missions:a},k[9]=a,k[10]=t):t=k[10],i=t}let E=i,M=D?D.displayName||D.missionName:S,R="flat"===E.type?0===E.missions.length:0===E.groups.length,L=e=>(0,t.jsx)(et.ComboboxItem,{value:e.missionName,className:eu.default.Item,focusOnHover:!0,onClick:t=>{if(t.target&&t.target instanceof HTMLElement){let a=t.target.dataset.missionType;a?(P.current=a,e.missionName===S&&j({missionName:e.missionName,missionType:a})):P.current=null}else P.current=null},children:(0,t.jsx)(ey,{mission:e})},e.missionName),H=en.ComboboxProvider;k[11]!==B?(c=()=>{try{document.exitPointerLock()}catch{}B.show()},u=e=>{"Escape"!==e.key||B.getState().open||T.current?.blur()},k[11]=B,k[12]=c,k[13]=u):(c=k[12],u=k[13]),k[14]!==w||k[15]!==M||k[16]!==c||k[17]!==u?(d=(0,t.jsx)(ee.Combobox,{ref:T,autoSelect:!0,disabled:w,placeholder:M,className:eu.default.Input,onFocus:c,onKeyDown:u}),k[14]=w,k[15]=M,k[16]=c,k[17]=u,k[18]=d):d=k[18],k[19]!==M?(m=(0,t.jsx)("span",{className:eu.default.SelectedName,children:M}),k[19]=M,k[20]=m):m=k[20],k[21]!==C?(h=C&&(0,t.jsx)("span",{className:eu.default.ItemType,"data-mission-type":C,children:C}),k[21]=C,k[22]=h):h=k[22],k[23]!==h||k[24]!==m?(p=(0,t.jsxs)("div",{className:eu.default.SelectedValue,children:[m,h]}),k[23]=h,k[24]=m,k[25]=p):p=k[25],k[26]===Symbol.for("react.memo_cache_sentinel")?(_=(0,t.jsx)("kbd",{className:eu.default.Shortcut,children:eg?"⌘K":"^K"}),k[26]=_):_=k[26],k[27]!==p||k[28]!==d?(g=(0,t.jsxs)("div",{className:eu.default.InputWrapper,children:[d,p,_]}),k[27]=p,k[28]=d,k[29]=g):g=k[29];let F=er.ComboboxPopover,G=eu.default,q=ea.ComboboxList,O=eu.default,A="flat"===E.type?E.missions.map(L):E.groups.map(e=>{let[a,n]=e;return a?(0,t.jsxs)(es.ComboboxGroup,{className:eu.default.Group,children:[(0,t.jsx)(eo.ComboboxGroupLabel,{className:eu.default.GroupLabel,children:a}),n.map(L)]},a):(0,t.jsx)(r.Fragment,{children:n.map(L)},"ungrouped")});return k[30]!==R?(y=R&&(0,t.jsx)("div",{className:eu.default.NoResults,children:"No missions found"}),k[30]=R,k[31]=y):y=k[31],k[32]!==q||k[33]!==O.List||k[34]!==A||k[35]!==y?(v=(0,t.jsxs)(q,{className:O.List,children:[A,y]}),k[32]=q,k[33]=O.List,k[34]=A,k[35]=y,k[36]=v):v=k[36],k[37]!==F||k[38]!==G.Popover||k[39]!==v?(x=(0,t.jsx)(F,{gutter:4,fitViewport:!0,autoFocusOnHide:!1,className:G.Popover,children:v}),k[37]=F,k[38]=G.Popover,k[39]=v,k[40]=x):x=k[40],k[41]!==H||k[42]!==B||k[43]!==g||k[44]!==x?(b=(0,t.jsxs)(H,{store:B,children:[g,x]}),k[41]=H,k[42]=B,k[43]=g,k[44]=x,k[45]=b):b=k[45],b}var eb=e.i(11152),ek=e.i(40141);function eS(e){return(0,ek.GenIcon)({tag:"svg",attr:{viewBox:"0 0 384 512"},child:[{tag:"path",attr:{d:"M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM305 273L177 401c-9.4 9.4-24.6 9.4-33.9 0L79 337c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L271 239c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"},child:[]}]})(e)}var eC=e.i(36679);function ej(e){let n,s,o,l,i,c=(0,a.c)(11),{cameraRef:u,missionName:d,missionType:m}=e,{fogEnabled:h}=(0,J.useSettings)(),[p,f]=(0,r.useState)(!1),_=(0,r.useRef)(null);c[0]!==u||c[1]!==h||c[2]!==d||c[3]!==m?(n=async()=>{clearTimeout(_.current);let e=u.current;if(!e)return;let t=function({position:e,quaternion:t}){let a=e=>parseFloat(e.toFixed(3)),r=`${a(e.x)},${a(e.y)},${a(e.z)}`,n=`${a(t.x)},${a(t.y)},${a(t.z)},${a(t.w)}`;return`#c${r}~${n}`}(e),a=new URLSearchParams;a.set("mission",`${d}~${m}`),a.set("fog",h.toString());let r=`${window.location.pathname}?${a}${t}`,n=`${window.location.origin}${r}`;window.history.replaceState(null,"",r);try{await navigator.clipboard.writeText(n),f(!0),_.current=setTimeout(()=>{f(!1)},1100)}catch(e){console.error(e)}},c[0]=u,c[1]=h,c[2]=d,c[3]=m,c[4]=n):n=c[4];let g=n,y=p?"true":"false";return c[5]===Symbol.for("react.memo_cache_sentinel")?(s=(0,t.jsx)(eb.FaMapPin,{className:eC.default.MapPin}),o=(0,t.jsx)(eS,{className:eC.default.ClipboardCheck}),l=(0,t.jsx)("span",{className:eC.default.ButtonLabel,children:" Copy coordinates URL"}),c[5]=s,c[6]=o,c[7]=l):(s=c[5],o=c[6],l=c[7]),c[8]!==g||c[9]!==y?(i=(0,t.jsxs)("button",{type:"button",className:eC.default.Root,"aria-label":"Copy coordinates URL",title:"Copy coordinates URL",onClick:g,"data-copied":y,id:"copyCoordinatesButton",children:[s,o,l]}),c[8]=g,c[9]=y,c[10]=i):i=c[10],i}function ew(e){return(0,ek.GenIcon)({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"M21 3H3c-1.11 0-2 .89-2 2v12a2 2 0 0 0 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5a2 2 0 0 0-2-2zm0 14H3V5h18v12zm-5-6-7 4V7z"},child:[]}]})(e)}e.i(50593);var eN=e.i(17711),eI=e.i(58281);e.i(70847);var eT=e.i(47566),eP=e.i(25311),eB=e.i(89119),eD=e.i(10244);class eE extends eD.StreamEngine{parser;initialBlock;moveTicks=0;absoluteYaw=0;absolutePitch=0;lastAbsYaw=0;lastAbsPitch=0;exhausted=!1;_teamScoresGen=0;_rosterGen=0;_weaponsHudGen=0;_inventoryHudGen=0;_cachedSnapshot=null;_cachedSnapshotTick=-1;_snap=null;constructor(e){super(),this.parser=e,this.registry=e.getRegistry(),this.ghostTracker=e.getGhostTracker();const t=e.initialBlock;this.initialBlock={dataBlocks:t.dataBlocks,initialGhosts:t.initialGhosts,controlObjectGhostIndex:t.controlObjectGhostIndex,controlObjectData:t.controlObjectData,targetEntries:t.targetEntries,sensorGroupColors:t.sensorGroupColors,taggedStrings:t.taggedStrings,initialEvents:t.initialEvents,demoValues:t.demoValues},this.reset()}getDataBlockData(e){let t=this.initialBlock.dataBlocks.get(e);if(t?.data)return t.data;let a=this.parser.getPacketParser();return a.dataBlockDataMap?.get(e)}_shapeConstructorCache=null;getShapeConstructorSequences(e){if(!this._shapeConstructorCache)for(let[,e]of(this._shapeConstructorCache=new Map,this.initialBlock.dataBlocks)){if("TSShapeConstructor"!==e.className||!e.data)continue;let t=e.data.shape,a=e.data.sequences;t&&a&&this._shapeConstructorCache.set(t.toLowerCase(),a)}return this._shapeConstructorCache.get(e.toLowerCase())}getTimeSec(){return this.moveTicks*(eP.TICK_DURATION_MS/1e3)}getCameraYawPitch(e){let t=!this.isPiloting&&"player"===this.lastControlType,a=t?this.absoluteYaw:this.lastAbsYaw,r=t?this.absolutePitch:this.lastAbsPitch;return t&&(this.lastAbsYaw=a,this.lastAbsPitch=r),{yaw:a,pitch:r}}getControlPlayerHeadPitch(e){return(0,eB.clamp)(this.absolutePitch/eB.MAX_PITCH,-1,1)}onTeamScoresChanged(){this._teamScoresGen++}onRosterChanged(){this._rosterGen++}onWeaponsHudChanged(){this._weaponsHudGen++}onInventoryHudChanged(){this._inventoryHudGen++}reset(){for(let[e,t]of(this.parser.reset(),this.ghostTracker=this.parser.getGhostTracker(),this._cachedSnapshot=null,this._cachedSnapshotTick=-1,this._snap=null,this.resetSharedState(),this.initialBlock.taggedStrings))this.netStrings.set(e,t);for(let e of this.initialBlock.targetEntries)e.name&&this.targetNames.set(e.targetId,(0,eB.stripTaggedStringMarkup)(e.name)),this.targetTeams.set(e.targetId,e.sensorGroup),this.targetRenderFlags.set(e.targetId,e.targetData);for(let e of this.initialBlock.sensorGroupColors){let t=this.sensorGroupColors.get(e.group);t||(t=new Map,this.sensorGroupColors.set(e.group,t)),t.set(e.targetGroup,{r:e.r,g:e.g,b:e.b})}if(this.moveTicks=0,this.absoluteYaw=0,this.absolutePitch=0,this.lastAbsYaw=0,this.lastAbsPitch=0,this.lastControlType=(0,eB.detectControlObjectType)(this.initialBlock.controlObjectData)??"player",this.isPiloting="player"===this.lastControlType&&!!(this.initialBlock.controlObjectData?.pilot||this.initialBlock.controlObjectData?.controlObjectGhost!=null),this.lastCameraMode="camera"===this.lastControlType&&"number"==typeof this.initialBlock.controlObjectData?.cameraMode?this.initialBlock.controlObjectData.cameraMode:void 0,this.lastOrbitGhostIndex="camera"===this.lastControlType&&"number"==typeof this.initialBlock.controlObjectData?.orbitObjectGhostIndex?this.initialBlock.controlObjectData.orbitObjectGhostIndex:void 0,"camera"===this.lastControlType){let e=this.initialBlock.controlObjectData?.minOrbitDist,t=this.initialBlock.controlObjectData?.maxOrbitDist,a=this.initialBlock.controlObjectData?.curOrbitDist;"number"==typeof e&&"number"==typeof t&&Number.isFinite(e)&&Number.isFinite(t)?this.lastOrbitDistance=Math.max(0,t-e):"number"==typeof a&&Number.isFinite(a)?this.lastOrbitDistance=Math.max(0,a):this.lastOrbitDistance=void 0}else this.lastOrbitDistance=void 0;let e=this.getAbsoluteRotation(this.initialBlock.controlObjectData);for(let t of(e&&(this.absoluteYaw=e.yaw,this.absolutePitch=e.pitch,this.lastAbsYaw=e.yaw,this.lastAbsPitch=e.pitch),this.exhausted=!1,this.latestFov=100,this.latestControl={ghostIndex:this.initialBlock.controlObjectGhostIndex,data:this.initialBlock.controlObjectData,position:(0,eB.isValidPosition)(this.initialBlock.controlObjectData?.position)?this.initialBlock.controlObjectData?.position:void 0},this.controlPlayerGhostId="player"===this.lastControlType&&this.initialBlock.controlObjectGhostIndex>=0?(0,eP.toEntityId)("Player",this.initialBlock.controlObjectGhostIndex):void 0,this.initialBlock.initialGhosts)){if("create"!==t.type||null==t.classId)continue;let e=this.registry.getGhostParser(t.classId)?.name;if(!e)throw Error(`No ghost parser for classId ${t.classId} (ghost index ${t.index})`);let a=(0,eP.toEntityId)(e,t.index),r={id:a,ghostIndex:t.index,className:e,spawnTick:0,type:(0,eP.toEntityType)(e),rotation:[0,0,0,1]};if(this.applyGhostData(r,t.parsedData),t.parsedData){let a=(0,eT.ghostToSceneObject)(e,t.index,t.parsedData);a&&(r.sceneData=a)}this.entities.set(a,r),this.entityIdByGhostIndex.set(t.index,a)}if(0===this.playerSensorGroup&&"player"===this.lastControlType&&this.latestControl.ghostIndex>=0){let e=this.entityIdByGhostIndex.get(this.latestControl.ghostIndex),t=e?this.entities.get(e):void 0;t?.sensorGroup!=null&&t.sensorGroup>0&&(this.playerSensorGroup=t.sensorGroup)}for(let e of this.initialBlock.initialEvents){let t=this.registry.getEventParser(e.classId)?.name;if("SetSensorGroupEvent"===t&&e.parsedData){let t=e.parsedData.sensorGroup;null!=t&&(this.playerSensorGroup=t)}else if("RemoteCommandEvent"===t&&e.parsedData){let t=this.resolveNetString(e.parsedData.funcName),a=e.parsedData.args;"ServerMessage"===t&&this.handleServerMessage(a),this.handleHudRemoteCommand(t,a)}}let t=function(e){let t={weaponsHud:null,backpackHud:null,inventoryHud:null,teamScores:[],playerRoster:new Map,chatMessages:[],gravity:-20};if(!e.length)return t;let a=0,r=()=>{let t=e[a++];return"<BLANK>"===t?"":t??""};if(r(),a>=e.length)return t;let n=parseInt(r(),10)||0,s=new Map;for(let e=0;e<n;e++){let e=r().split(" "),a=e[0]??"",n=parseInt(e[2],10),o=parseInt(e[4],10);isNaN(n)||isNaN(o)||t.playerRoster.set(n,{name:a,teamId:o}),!isNaN(o)&&o>0&&s.set(o,(s.get(o)??0)+1)}if(a>=e.length||(r(),a>=e.length))return t;{let e=r().split(" "),a=e[0]??"",n="1"===e[1]||"true"===e[1],s=e[2]??"",o="1"===e[4]||"true"===e[4];n&&a&&(t.backpackHud={packIndex:(0,eB.backpackBitmapToIndex)(a),active:o,text:s})}if(a>=e.length)return t;let o=r().split(" "),l=parseInt(o[4],10)||0,i=parseInt(o[5],10)||0,c=parseInt(o[6],10);for(let e=0;e<l;e++)r();let u=new Map;for(let e=0;e<i;e++){let e=r().split(" "),t=parseInt(e[0],10),a=parseInt(e[1],10);isNaN(t)||u.set(t,isNaN(a)?-1:a)}if(t.weaponsHud={slots:u,activeIndex:isNaN(c)?-1:c},a>=e.length)return t;let d=r().split(" "),m=parseInt(d[4],10)||0,h=parseInt(d[5],10)||0,p=parseInt(d[6],10);for(let e=0;e<m;e++)r();{let e=new Map;for(let t=0;t<h;t++){let t=r().split(" "),a=parseInt(t[0],10),n=parseInt(t[1],10);isNaN(a)||isNaN(n)||!(n>0)||e.set(a,n)}e.size>0&&(t.inventoryHud={slots:e,activeSlot:isNaN(p)?-1:p})}if(a>=e.length)return t;let f=r().split(" "),_=f[1]??"",g=parseInt(f[2],10)||0,y=[];for(let e=0;e<g;e++)y.push(r());if("CTFGame"===_&&g>=8)for(let e=0;e<2;e++){let a=4*e,r=e+1;t.teamScores.push({teamId:r,name:y[a]??"",score:parseInt(y[a+1],10)||0,playerCount:s.get(r)??0})}else if("TR2Game"===_&&g>=4)for(let e=0;e<2;e++){let a=2*e,r=e+1;t.teamScores.push({teamId:r,name:y[a+1]??"",score:parseInt(y[a],10)||0,playerCount:s.get(r)??0})}if(a>=e.length)return t;r();for(let n=0;n<10&&!(a>=e.length);n++){let e=r();e&&t.chatMessages.push(e)}if(a<e.length){let e=parseFloat(r());Number.isFinite(e)&&(t.gravity=e)}return t}(this.initialBlock.demoValues);for(let e of(t.weaponsHud&&(this.weaponsHud.slots=t.weaponsHud.slots,this.weaponsHud.activeIndex=t.weaponsHud.activeIndex),t.backpackHud&&(this.backpackHud.packIndex=t.backpackHud.packIndex,this.backpackHud.active=t.backpackHud.active,this.backpackHud.text=t.backpackHud.text),t.inventoryHud&&(this.inventoryHud.slots=t.inventoryHud.slots,this.inventoryHud.activeSlot=t.inventoryHud.activeSlot),this.teamScores=t.teamScores,this.playerRoster=new Map(t.playerRoster),t.chatMessages)){let t=(0,eB.parseColorSegments)(e);if(!t.length)continue;let a=t.map(e=>e.text).join("");if(!a.trim())continue;let r=t[0].colorCode;if(t.some(e=>3===e.colorCode||4===e.colorCode)&&a.includes(": ")){let e=a.indexOf(": ");this.chatMessages.push({timeSec:0,sender:a.slice(0,e),text:a.slice(e+2),kind:"chat",colorCode:r,segments:t})}else this.chatMessages.push({timeSec:0,sender:"",text:a,kind:"server",colorCode:r,segments:t})}this.updateCameraAndHud()}getSnapshot(){if(this._cachedSnapshot&&this._cachedSnapshotTick===this.moveTicks)return this._cachedSnapshot;let e=this.buildSnapshot();return this._cachedSnapshot=e,this._cachedSnapshotTick=this.moveTicks,e}getEffectShapes(){let e=new Set,t=t=>{let a=t.dtsFileName;a&&e.add(a);let r=t.subExplosions;if(Array.isArray(r))for(let t of r){if(null==t)continue;let a=this.getDataBlockData(t);a?.dtsFileName&&e.add(a.dtsFileName)}};for(let[,e]of this.initialBlock.dataBlocks){let a=e.data?.explosion;if(null==a)continue;let r=this.getDataBlockData(a);r&&t(r)}return[...e]}stepToTime(e,t=1/0){let a=Math.floor(1e3*(Number.isFinite(e)?Math.max(0,e):0)/eP.TICK_DURATION_MS),r=!1;a<this.moveTicks&&(this.reset(),r=!0);let n=this.exhausted,s=0;for(;!this.exhausted&&this.moveTicks<a&&s<t&&this.stepOneMoveTick();)s+=1;if(0===s&&!r&&n===this.exhausted&&this._cachedSnapshot&&this._cachedSnapshotTick===this.moveTicks)return this._cachedSnapshot;let o=this.buildSnapshot();return this._cachedSnapshot=o,this._cachedSnapshotTick=this.moveTicks,o}stepOneMoveTick(){for(;;){let e=this.parser.nextBlock();if(!e)return this.exhausted=!0,!1;if(this.handleBlock(e),e.type===eN.BlockTypeMove)return this.moveTicks+=1,this.tickCount=this.moveTicks,this.advanceProjectiles(),this.advanceItems(),this.removeExpiredExplosions(),this.updateCameraAndHud(),!0}}handleBlock(e){if(e.type===eN.BlockTypePacket&&this.isPacketData(e.parsed)){let t=e.parsed;this.processControlObject(t.gameState);let a=t.gameState.controlObjectData;if(a){let e=this.getAbsoluteRotation(a);e&&(this.absoluteYaw=e.yaw,this.absolutePitch=e.pitch,this.lastAbsYaw=e.yaw,this.lastAbsPitch=e.pitch)}for(let e of t.events){let t=this.registry.getEventParser(e.classId)?.name;this.processEvent(e,t)}for(let e of t.ghosts)this.processGhostUpdate(e);return}if(e.type===eN.BlockTypeInfo&&this.isInfoData(e.parsed)){Number.isFinite(e.parsed.value2)&&(this.latestFov=e.parsed.value2);return}if(e.type===eN.BlockTypeMove&&this.isMoveData(e.parsed)){this.absoluteYaw+=e.parsed.yaw??0;let t=2*Math.PI;this.absoluteYaw=(this.absoluteYaw%t+t)%t,this.absolutePitch=(0,eB.clamp)(this.absolutePitch+(e.parsed.pitch??0),-eB.MAX_PITCH,eB.MAX_PITCH)}}buildSnapshot(){let e,t=this.buildEntityList(),a=this.getTimeSec(),r=this._snap,{chatMessages:n,audioEvents:s}=this.buildTimeFilteredEvents(a),o=r&&r.weaponsHudGen===this._weaponsHudGen?r.weaponsHud:{slots:Array.from(this.weaponsHud.slots.entries()).map(([e,t])=>({index:e,ammo:t})),activeIndex:this.weaponsHud.activeIndex},l=r&&r.inventoryHudGen===this._inventoryHudGen?r.inventoryHud:{slots:Array.from(this.inventoryHud.slots.entries()).map(([e,t])=>({slot:e,count:t})),activeSlot:this.inventoryHud.activeSlot},i=r&&r.backpackPackIndex===this.backpackHud.packIndex&&r.backpackActive===this.backpackHud.active&&r.backpackText===this.backpackHud.text?r.backpackHud:this.backpackHud.packIndex>=0?{...this.backpackHud}:null;if(r&&r.teamScoresGen===this._teamScoresGen&&r.rosterGen===this._rosterGen)e=r.teamScores;else{e=this.teamScores.map(e=>({...e}));let t=new Map;for(let{teamId:e}of this.playerRoster.values())e>0&&t.set(e,(t.get(e)??0)+1);for(let a of e)a.playerCount=t.get(a.teamId)??0}return this._snap={teamScoresGen:this._teamScoresGen,rosterGen:this._rosterGen,teamScores:e,weaponsHudGen:this._weaponsHudGen,weaponsHud:o,inventoryHudGen:this._inventoryHudGen,inventoryHud:l,backpackPackIndex:this.backpackHud.packIndex,backpackActive:this.backpackHud.active,backpackText:this.backpackHud.text,backpackHud:i},{timeSec:a,exhausted:this.exhausted,camera:this.camera,entities:t,controlPlayerGhostId:this.controlPlayerGhostId,playerSensorGroup:this.playerSensorGroup,status:this.lastStatus,chatMessages:n,audioEvents:s,weaponsHud:o,backpackHud:i,inventoryHud:l,teamScores:e}}isPacketData(e){return!!e&&"object"==typeof e&&"gameState"in e&&"events"in e&&"ghosts"in e}isMoveData(e){return!!e&&"object"==typeof e&&"yaw"in e}isInfoData(e){return!!e&&"object"==typeof e&&"value2"in e&&"number"==typeof e.value2}}async function eM(e){let t=new eI.DemoParser(new Uint8Array(e)),{header:a,initialBlock:r}=await t.load(),{missionName:n,gameType:s}=function(e){let t=null,a=null;for(let r=0;r<e.length;r++){if("readplayerinfo"!==e[r])continue;let n=e[r+1];if(n){if(n.startsWith("2 ")){let e=n.split(" ");e[4]&&(t=e[4]);continue}if(n.startsWith("3 ")){let e=n.split(" ");e[2]&&(a=e[2])}}}return{missionName:t,gameType:a}}(r.demoValues);return{source:"demo",duration:a.demoLengthMs/1e3,missionName:n??r.missionName??null,gameType:s,streamingPlayback:new eE(t)}}var eR=e.i(28903);function eL(){let e,n,s,o,l,i,c,u,d=(0,a.c)(21),m=(0,E.useRecording)(),h=m?.source==="demo",{setRecording:p}=(0,E.usePlaybackActions)(),f=(0,r.useRef)(null),_=(0,r.useRef)(0);d[0]!==h||d[1]!==p?(e=()=>{if(h){_.current=_.current+1,p(null);return}f.current?.click()},d[0]=h,d[1]=p,d[2]=e):e=d[2];let g=e;d[3]!==p?(n=async e=>{let t=e.target.files?.[0];if(t){e.target.value="";try{let e=await t.arrayBuffer(),a=_.current+1;_.current=a;let r=await eM(e);if(_.current!==a)return;p(r)}catch(e){console.error("Failed to load demo:",e)}}},d[3]=p,d[4]=n):n=d[4];let y=n;d[5]===Symbol.for("react.memo_cache_sentinel")?(s={display:"none"},d[5]=s):s=d[5],d[6]!==y?(o=(0,t.jsx)("input",{ref:f,type:"file",accept:".rec",style:s,onChange:y}),d[6]=y,d[7]=o):o=d[7];let v=h?"Unload demo":"Load demo (.rec)",x=h?"Unload demo":"Load demo (.rec)",b=h?"true":void 0,k=null!=m&&!h;d[8]===Symbol.for("react.memo_cache_sentinel")?(l=(0,t.jsx)(ew,{className:eR.default.DemoIcon}),d[8]=l):l=d[8];let S=h?"Unload demo":"Demo";return d[9]!==S?(i=(0,t.jsx)("span",{className:eR.default.ButtonLabel,children:S}),d[9]=S,d[10]=i):i=d[10],d[11]!==g||d[12]!==i||d[13]!==v||d[14]!==x||d[15]!==b||d[16]!==k?(c=(0,t.jsxs)("button",{type:"button",className:eR.default.Root,"aria-label":v,title:x,onClick:g,"data-active":b,disabled:k,children:[l,i]}),d[11]=g,d[12]=i,d[13]=v,d[14]=x,d[15]=b,d[16]=k,d[17]=c):c=d[17],d[18]!==c||d[19]!==o?(u=(0,t.jsxs)(t.Fragment,{children:[o,c]}),d[18]=c,d[19]=o,d[20]=u):u=d[20],u}function eH(e){return(0,ek.GenIcon)({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M11.251.068a.5.5 0 0 1 .227.58L9.677 6.5H13a.5.5 0 0 1 .364.843l-8 8.5a.5.5 0 0 1-.842-.49L6.323 9.5H3a.5.5 0 0 1-.364-.843l8-8.5a.5.5 0 0 1 .615-.09z"},child:[]}]})(e)}var eF=e.i(12781),eG=e.i(9607);function eq(e){let r,n,s,o,l,i=(0,a.c)(20),{onOpenServerBrowser:c}=e,u=(0,eF.useLiveConnectionOptional)();if(!u)return null;let d="connected"===u.gameStatus,m="connecting"===u.gameStatus||"challenging"===u.gameStatus||"authenticating"===u.gameStatus,h=d?"Disconnect":"Join server",p=d?"Disconnect":"Join server";i[0]!==d||i[1]!==u||i[2]!==c?(r=()=>{d?u.disconnectServer():c()},i[0]=d,i[1]=u,i[2]=c,i[3]=r):r=i[3];let f=d?"true":void 0,_=`${eG.default.LiveIcon} ${d?eG.default.Pulsing:""}`;if(i[4]!==_?(n=(0,t.jsx)(eH,{className:_}),i[4]=_,i[5]=n):n=i[5],i[6]!==m||i[7]!==d?(s=!d&&(0,t.jsx)("span",{className:eG.default.TextLabel,children:m?"Connecting...":"Connect"}),i[6]=m,i[7]=d,i[8]=s):s=i[8],i[9]!==d||i[10]!==u.ping){var g;o=d&&(0,t.jsx)("span",{className:eG.default.PingLabel,children:null!=u.ping?(g=u.ping)>=1e3?g.toLocaleString()+"ms":g+"ms":"Live"}),i[9]=d,i[10]=u.ping,i[11]=o}else o=i[11];return i[12]!==h||i[13]!==p||i[14]!==r||i[15]!==f||i[16]!==n||i[17]!==s||i[18]!==o?(l=(0,t.jsxs)("button",{type:"button",className:eG.default.Root,"aria-label":h,title:p,onClick:r,"data-active":f,children:[n,s,o]}),i[12]=h,i[13]=p,i[14]=r,i[15]=f,i[16]=n,i[17]=s,i[18]=o,i[19]=l):l=i[19],l}function eO(e){return(0,ek.GenIcon)({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"circle",attr:{cx:"12",cy:"12",r:"10"},child:[]},{tag:"line",attr:{x1:"12",y1:"16",x2:"12",y2:"12"},child:[]},{tag:"line",attr:{x1:"12",y1:"8",x2:"12.01",y2:"8"},child:[]}]})(e)}function eA(e){return(0,ek.GenIcon)({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"circle",attr:{cx:"12",cy:"12",r:"3"},child:[]},{tag:"path",attr:{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"},child:[]}]})(e)}var eU=e.i(65883);function eW(e){let n,s,o,l,i,c,u,d,m,h,p,f,_,g,y,v,x,b,k,S,C,j,w,N,I,T,P,B,D,M,R,L,H,F,G,q,O,A,U,W,z=(0,a.c)(95),{missionName:K,missionType:$,onChangeMission:V,onOpenMapInfo:Y,onOpenServerBrowser:X,isTouch:Z,cameraRef:Q}=e,{fogEnabled:ee,setFogEnabled:et,fov:ea,setFov:er,audioEnabled:en,setAudioEnabled:es,animationEnabled:eo,setAnimationEnabled:el}=(0,J.useSettings)(),{speedMultiplier:ei,setSpeedMultiplier:ec,touchMode:eu,setTouchMode:ed}=(0,J.useControls)(),{debugMode:em,setDebugMode:eh}=(0,J.useDebug)(),ep=(0,E.useRecording)(),ef=(0,eF.useLiveConnectionOptional)(),e_=ef?.adapter!=null,eg=null!=ep||e_,ey=eg&&!e_,[ev,eb]=(0,r.useState)(!1),ek=(0,r.useRef)(null),eS=(0,r.useRef)(null),eC=(0,r.useRef)(null);z[0]!==ev?(n=()=>{ev&&ek.current?.focus()},s=[ev],z[0]=ev,z[1]=n,z[2]=s):(n=z[1],s=z[2]),(0,r.useEffect)(n,s),z[3]===Symbol.for("react.memo_cache_sentinel")?(o=e=>{let t=e.relatedTarget;t&&eC.current?.contains(t)||eb(!1)},z[3]=o):o=z[3];let ew=o;z[4]===Symbol.for("react.memo_cache_sentinel")?(l=e=>{"Escape"===e.key&&(eb(!1),eS.current?.focus())},z[4]=l):l=z[4];let eN=l;return z[5]!==eg||z[6]!==K||z[7]!==$||z[8]!==V?(i=(0,t.jsx)("div",{className:eU.default.MissionSelectWrapper,children:(0,t.jsx)(ex,{value:K,missionType:$,onChange:V,disabled:eg})}),z[5]=eg,z[6]=K,z[7]=$,z[8]=V,z[9]=i):i=z[9],z[10]===Symbol.for("react.memo_cache_sentinel")?(c=()=>{eb(ez)},z[10]=c):c=z[10],z[11]===Symbol.for("react.memo_cache_sentinel")?(u=(0,t.jsx)(eA,{}),z[11]=u):u=z[11],z[12]!==ev?(d=(0,t.jsx)("button",{ref:eS,className:eU.default.Toggle,onClick:c,"aria-expanded":ev,"aria-controls":"settingsPanel","aria-label":"Settings",children:u}),z[12]=ev,z[13]=d):d=z[13],z[14]!==Q||z[15]!==K||z[16]!==$?(m=(0,t.jsx)(ej,{missionName:K,missionType:$,cameraRef:Q}),z[14]=Q,z[15]=K,z[16]=$,z[17]=m):m=z[17],z[18]===Symbol.for("react.memo_cache_sentinel")?(h=(0,t.jsx)(eL,{}),z[18]=h):h=z[18],z[19]!==X?(p=X&&(0,t.jsx)(eq,{onOpenServerBrowser:X}),z[19]=X,z[20]=p):p=z[20],z[21]===Symbol.for("react.memo_cache_sentinel")?(f=(0,t.jsx)(eO,{}),_=(0,t.jsx)("span",{className:eU.default.ButtonLabel,children:"Show map info"}),z[21]=f,z[22]=_):(f=z[21],_=z[22]),z[23]!==Y?(g=(0,t.jsxs)("button",{type:"button",className:eU.default.MapInfoButton,"aria-label":"Show map info",onClick:Y,children:[f,_]}),z[23]=Y,z[24]=g):g=z[24],z[25]!==p||z[26]!==g||z[27]!==m?(y=(0,t.jsxs)("div",{className:eU.default.Group,children:[m,h,p,g]}),z[25]=p,z[26]=g,z[27]=m,z[28]=y):y=z[28],z[29]!==et?(v=e=>{et(e.target.checked)},z[29]=et,z[30]=v):v=z[30],z[31]!==ee||z[32]!==v?(x=(0,t.jsx)("input",{id:"fogInput",type:"checkbox",checked:ee,onChange:v}),z[31]=ee,z[32]=v,z[33]=x):x=z[33],z[34]===Symbol.for("react.memo_cache_sentinel")?(b=(0,t.jsx)("label",{htmlFor:"fogInput",children:"Fog?"}),z[34]=b):b=z[34],z[35]!==x?(k=(0,t.jsxs)("div",{className:eU.default.CheckboxField,children:[x,b]}),z[35]=x,z[36]=k):k=z[36],z[37]!==es?(S=e=>{es(e.target.checked)},z[37]=es,z[38]=S):S=z[38],z[39]!==en||z[40]!==S?(C=(0,t.jsx)("input",{id:"audioInput",type:"checkbox",checked:en,onChange:S}),z[39]=en,z[40]=S,z[41]=C):C=z[41],z[42]===Symbol.for("react.memo_cache_sentinel")?(j=(0,t.jsx)("label",{htmlFor:"audioInput",children:"Audio?"}),z[42]=j):j=z[42],z[43]!==C?(w=(0,t.jsxs)("div",{className:eU.default.CheckboxField,children:[C,j]}),z[43]=C,z[44]=w):w=z[44],z[45]!==k||z[46]!==w?(N=(0,t.jsxs)("div",{className:eU.default.Group,children:[k,w]}),z[45]=k,z[46]=w,z[47]=N):N=z[47],z[48]!==el?(I=e=>{el(e.target.checked)},z[48]=el,z[49]=I):I=z[49],z[50]!==eo||z[51]!==I?(T=(0,t.jsx)("input",{id:"animationInput",type:"checkbox",checked:eo,onChange:I}),z[50]=eo,z[51]=I,z[52]=T):T=z[52],z[53]===Symbol.for("react.memo_cache_sentinel")?(P=(0,t.jsx)("label",{htmlFor:"animationInput",children:"Animation?"}),z[53]=P):P=z[53],z[54]!==T?(B=(0,t.jsxs)("div",{className:eU.default.CheckboxField,children:[T,P]}),z[54]=T,z[55]=B):B=z[55],z[56]!==eh?(D=e=>{eh(e.target.checked)},z[56]=eh,z[57]=D):D=z[57],z[58]!==em||z[59]!==D?(M=(0,t.jsx)("input",{id:"debugInput",type:"checkbox",checked:em,onChange:D}),z[58]=em,z[59]=D,z[60]=M):M=z[60],z[61]===Symbol.for("react.memo_cache_sentinel")?(R=(0,t.jsx)("label",{htmlFor:"debugInput",children:"Debug?"}),z[61]=R):R=z[61],z[62]!==M?(L=(0,t.jsxs)("div",{className:eU.default.CheckboxField,children:[M,R]}),z[62]=M,z[63]=L):L=z[63],z[64]!==B||z[65]!==L?(H=(0,t.jsxs)("div",{className:eU.default.Group,children:[B,L]}),z[64]=B,z[65]=L,z[66]=H):H=z[66],z[67]!==ea||z[68]!==ey||z[69]!==er?(F=ey?null:(0,t.jsxs)("div",{className:eU.default.Field,children:[(0,t.jsx)("label",{htmlFor:"fovInput",children:"FOV"}),(0,t.jsx)("input",{id:"fovInput",type:"range",min:75,max:120,step:5,value:ea,onChange:e=>er(parseInt(e.target.value))}),(0,t.jsx)("output",{htmlFor:"fovInput",children:ea})]}),z[67]=ea,z[68]=ey,z[69]=er,z[70]=F):F=z[70],z[71]!==ey||z[72]!==ec||z[73]!==ei?(G=ey?null:(0,t.jsxs)("div",{className:eU.default.Field,children:[(0,t.jsx)("label",{htmlFor:"speedInput",children:"Speed"}),(0,t.jsx)("input",{id:"speedInput",type:"range",min:.1,max:5,step:.05,value:ei,onChange:e=>ec(parseFloat(e.target.value))})]}),z[71]=ey,z[72]=ec,z[73]=ei,z[74]=G):G=z[74],z[75]!==F||z[76]!==G?(q=(0,t.jsxs)("div",{className:eU.default.Group,children:[F,G]}),z[75]=F,z[76]=G,z[77]=q):q=z[77],z[78]!==Z||z[79]!==ed||z[80]!==eu?(O=Z&&(0,t.jsx)("div",{className:eU.default.Group,children:(0,t.jsxs)("div",{className:eU.default.Field,children:[(0,t.jsx)("label",{htmlFor:"touchModeInput",children:"Joystick:"})," ",(0,t.jsxs)("select",{id:"touchModeInput",value:eu,onChange:e=>ed(e.target.value),children:[(0,t.jsx)("option",{value:"dualStick",children:"Dual Stick"}),(0,t.jsx)("option",{value:"moveLookStick",children:"Single Stick"})]})]})}),z[78]=Z,z[79]=ed,z[80]=eu,z[81]=O):O=z[81],z[82]!==ev||z[83]!==y||z[84]!==N||z[85]!==H||z[86]!==q||z[87]!==O?(A=(0,t.jsxs)("div",{className:eU.default.Dropdown,ref:ek,id:"settingsPanel",tabIndex:-1,onKeyDown:eN,onBlur:ew,"data-open":ev,children:[y,N,H,q,O]}),z[82]=ev,z[83]=y,z[84]=N,z[85]=H,z[86]=q,z[87]=O,z[88]=A):A=z[88],z[89]!==A||z[90]!==d?(U=(0,t.jsxs)("div",{ref:eC,children:[d,A]}),z[89]=A,z[90]=d,z[91]=U):U=z[91],z[92]!==U||z[93]!==i?(W=(0,t.jsxs)("div",{id:"controls",className:eU.default.Controls,onKeyDown:eJ,onPointerDown:e$,onClick:eK,children:[i,U]}),z[92]=U,z[93]=i,z[94]=W):W=z[94],W}function ez(e){return!e}function eK(e){return e.stopPropagation()}function e$(e){return e.stopPropagation()}function eJ(e){return e.stopPropagation()}let eV=()=>null;var eY=e.i(31067);let eX=r.forwardRef(({envMap:e,resolution:t=256,frames:a=1/0,makeDefault:n,children:o,...l},i)=>{let c=(0,$.useThree)(({set:e})=>e),u=(0,$.useThree)(({camera:e})=>e),d=(0,$.useThree)(({size:e})=>e),m=r.useRef(null);r.useImperativeHandle(i,()=>m.current,[]);let h=r.useRef(null),p=function(e,t,a){let n=(0,$.useThree)(e=>e.size),o=(0,$.useThree)(e=>e.viewport),l="number"==typeof e?e:n.width*o.dpr,i=n.height*o.dpr,c=("number"==typeof e?void 0:e)||{},{samples:u=0,depth:d,...m}=c,h=null!=d?d:c.depthBuffer,p=r.useMemo(()=>{let e=new s.WebGLRenderTarget(l,i,{minFilter:s.LinearFilter,magFilter:s.LinearFilter,type:s.HalfFloatType,...m});return h&&(e.depthTexture=new s.DepthTexture(l,i,s.FloatType)),e.samples=u,e},[]);return r.useLayoutEffect(()=>{p.setSize(l,i),u&&(p.samples=u)},[u,p,l,i]),r.useEffect(()=>()=>p.dispose(),[]),p}(t);r.useLayoutEffect(()=>{l.manual||(m.current.aspect=d.width/d.height)},[d,l]),r.useLayoutEffect(()=>{m.current.updateProjectionMatrix()});let f=0,_=null,g="function"==typeof o;return(0,K.useFrame)(t=>{g&&(a===1/0||f<a)&&(h.current.visible=!1,t.gl.setRenderTarget(p),_=t.scene.background,e&&(t.scene.background=e),t.gl.render(t.scene,m.current),t.scene.background=_,t.gl.setRenderTarget(null),h.current.visible=!0,f++)}),r.useLayoutEffect(()=>{if(n)return c(()=>({camera:m.current})),()=>c(()=>({camera:u}))},[m,n,c]),r.createElement(r.Fragment,null,r.createElement("perspectiveCamera",(0,eY.default)({ref:m},l),!g&&o),r.createElement("group",{ref:h},g&&o(p.texture)))});function eZ(){let e,r,n=(0,a.c)(3),{fov:s}=(0,J.useSettings)();return n[0]===Symbol.for("react.memo_cache_sentinel")?(e=[0,256,0],n[0]=e):e=n[0],n[1]!==s?(r=(0,t.jsx)(eX,{makeDefault:!0,position:e,fov:s}),n[1]=s,n[2]=r):r=n[2],r}var eQ=e.i(51434),e0=e.i(86855),e1=e.i(68294),e2=e.i(87297),e3=e.i(51475),e4=e.i(63318),e5=e.i(38437);function e6(){let e,r=(0,a.c)(3),n=(0,y.useSceneSun)();if(!n){let e;return r[0]===Symbol.for("react.memo_cache_sentinel")?(e=(0,t.jsx)("ambientLight",{color:"#888888",intensity:1}),r[0]=e):e=r[0],e}return r[1]!==n?(e=(0,t.jsx)(e8,{sunData:n}),r[1]=n,r[2]=e):e=r[2],e}function e8(e){let n,o,l,i,c,u,d,m,h,p,f=(0,a.c)(29),{sunData:_}=e;f[0]!==_.direction?(n=(0,e4.torqueToThree)(_.direction),f[0]=_.direction,f[1]=n):n=f[1];let[g,y,v]=n,x=Math.sqrt(g*g+y*y+v*v),b=g/x,k=y/x,S=v/x;f[2]!==b||f[3]!==k||f[4]!==S?(o=new s.Vector3(b,k,S),f[2]=b,f[3]=k,f[4]=S,f[5]=o):o=f[5];let C=o,j=-(5e3*C.x),w=-(5e3*C.y),N=-(5e3*C.z);f[6]!==j||f[7]!==w||f[8]!==N?(l=new s.Vector3(j,w,N),f[6]=j,f[7]=w,f[8]=N,f[9]=l):l=f[9];let I=l;f[10]!==_.color.b||f[11]!==_.color.g||f[12]!==_.color.r?(i=new s.Color(_.color.r,_.color.g,_.color.b),f[10]=_.color.b,f[11]=_.color.g,f[12]=_.color.r,f[13]=i):i=f[13];let T=i;f[14]!==_.ambient.b||f[15]!==_.ambient.g||f[16]!==_.ambient.r?(c=new s.Color(_.ambient.r,_.ambient.g,_.ambient.b),f[14]=_.ambient.b,f[15]=_.ambient.g,f[16]=_.ambient.r,f[17]=c):c=f[17];let P=c,B=C.y<0;return f[18]!==B?(u=()=>{(0,e5.updateGlobalSunUniforms)(B)},d=[B],f[18]=B,f[19]=u,f[20]=d):(u=f[19],d=f[20]),(0,r.useEffect)(u,d),f[21]!==T||f[22]!==I?(m=(0,t.jsx)("directionalLight",{position:I,color:T,intensity:1,castShadow:!0,"shadow-mapSize-width":8192,"shadow-mapSize-height":8192,"shadow-camera-left":-4096,"shadow-camera-right":4096,"shadow-camera-top":4096,"shadow-camera-bottom":-4096,"shadow-camera-near":100,"shadow-camera-far":12e3,"shadow-bias":-1e-5,"shadow-normalBias":.4,"shadow-radius":2}),f[21]=T,f[22]=I,f[23]=m):m=f[23],f[24]!==P?(h=(0,t.jsx)("ambientLight",{color:P,intensity:1}),f[24]=P,f[25]=h):h=f[25],f[26]!==m||f[27]!==h?(p=(0,t.jsxs)(t.Fragment,{children:[m,h]}),f[26]=m,f[27]=h,f[28]=p):p=f[28],p}var e7=e.i(75840);let e9=(0,i.textureToUrl)("gui/hud_new_compass"),te=(0,i.textureToUrl)("gui/hud_new_NSEW");function tt(e){let r,n,s=(0,a.c)(3),{yaw:o}=e;if(null==o)return null;let l=180*o/Math.PI;s[0]===Symbol.for("react.memo_cache_sentinel")?(r=(0,t.jsx)("img",{src:e9,alt:"",className:e7.default.CompassRing}),s[0]=r):r=s[0];let i=`rotate(${-l}deg)`;return s[1]!==i?(n=(0,t.jsxs)("div",{className:e7.default.Compass,children:[r,(0,t.jsx)("img",{src:te,alt:"",className:e7.default.CompassNSEW,style:{transform:i}})]}),s[1]=i,s[2]=n):n=s[2],n}function ta(e){let r,n=(0,a.c)(2),{value:s}=e,o=Math.max(0,Math.min(100,100*s)),l=`${o}%`;return n[0]!==l?(r=(0,t.jsx)("div",{className:e7.default.BarTrack,children:(0,t.jsx)("div",{className:e7.default.BarFillHealth,style:{width:l}})}),n[0]=l,n[1]=r):r=n[1],r}function tr(e){let r,n=(0,a.c)(2),{value:s}=e,o=Math.max(0,Math.min(100,100*s)),l=`${o}%`;return n[0]!==l?(r=(0,t.jsx)("div",{className:e7.default.BarTrack,children:(0,t.jsx)("div",{className:e7.default.BarFillEnergy,style:{width:l}})}),n[0]=l,n[1]=r):r=n[1],r}let tn={weapon_sniper:"gui/hud_ret_sniper",weapon_shocklance:"gui/hud_ret_shocklance",weapon_targeting:"gui/hud_ret_targlaser"};function ts(){let e,r=(0,a.c)(5),n=(0,g.useEngineSelector)(to);if(void 0===n)return null;let s=tn[!n?"":n.replace(/\.dts$/i,"").toLowerCase()];if(s){let e,a;return r[0]!==s?(e=(0,i.textureToUrl)(s),r[0]=s,r[1]=e):e=r[1],r[2]!==e?(a=(0,t.jsx)("div",{className:e7.default.Reticle,children:(0,t.jsx)("img",{src:e,alt:"",className:e7.default.ReticleImage})}),r[2]=e,r[3]=a):a=r[3],a}return r[4]===Symbol.for("react.memo_cache_sentinel")?(e=(0,t.jsx)("div",{className:e7.default.Reticle,children:(0,t.jsx)("div",{className:e7.default.ReticleDot})}),r[4]=e):e=r[4],e}function to(e){let t=e.playback.streamSnapshot;if(!t||t.camera?.mode!=="first-person")return;let a=t.controlPlayerGhostId;if(a)return t.entities.find(e=>e.id===a)?.weaponShape}let tl={0:{icon:"gui/hud_blaster",label:"Blaster"},1:{icon:"gui/hud_plasma",label:"Plasma"},2:{icon:"gui/hud_chaingun",label:"Chaingun"},3:{icon:"gui/hud_disc",label:"Spinfusor"},4:{icon:"gui/hud_grenlaunch",label:"GL"},5:{icon:"gui/hud_sniper",label:"Laser Rifle"},6:{icon:"gui/hud_elfgun",label:"ELF Gun"},7:{icon:"gui/hud_new_mortar",label:"Mortar"},8:{icon:"gui/hud_missiles",label:"Missile"},9:{icon:"gui/hud_targetlaser",label:"Targeting"},10:{icon:"gui/hud_shocklance",label:"Shocklance"},11:{icon:"gui/hud_disc",label:"Spinfusor"},12:{icon:"gui/hud_grenlaunch",label:"GL"},13:{icon:"gui/hud_chaingun",label:"Chaingun"},14:{icon:"gui/hud_targetlaser",label:"Targeting"},15:{icon:"gui/hud_targetlaser",label:"Targeting"},16:{icon:"gui/hud_shocklance",label:"Shocklance"},17:{icon:"gui/hud_new_mortar",label:"Mortar"}},ti=new Map(Object.entries(tl).map(([e,t])=>[Number(e),(0,i.textureToUrl)(t.icon)])),tc=new Set([9,14,15]),tu=(0,i.textureToUrl)("gui/hud_infinity");function td(e){let r,n,s,o,l=(0,a.c)(12),{slot:i,isSelected:c}=e,u=tl[i.index];if(!u)return null;let d=i.ammo<0,m=`${e7.default.PackInvItem} ${c?e7.default.PackInvItemActive:e7.default.PackInvItemDim}`;return l[0]!==i.index?(r=ti.get(i.index),l[0]=i.index,l[1]=r):r=l[1],l[2]!==u.label||l[3]!==r?(n=(0,t.jsx)("img",{src:r,alt:u.label,className:e7.default.PackInvIcon}),l[2]=u.label,l[3]=r,l[4]=n):n=l[4],l[5]!==d||l[6]!==i.ammo?(s=d?(0,t.jsx)("img",{src:tu,alt:"\\u221E",className:e7.default.PackInvInfinity}):(0,t.jsx)("span",{className:e7.default.PackInvCount,children:i.ammo}),l[5]=d,l[6]=i.ammo,l[7]=s):s=l[7],l[8]!==m||l[9]!==n||l[10]!==s?(o=(0,t.jsxs)("div",{className:m,children:[n,s]}),l[8]=m,l[9]=n,l[10]=s,l[11]=o):o=l[11],o}function tm(){let e,r,n,s,o,l,i=(0,a.c)(15),c=(0,g.useEngineSelector)(th);if(!c||!c.slots.length)return null;if(i[0]!==c.slots){for(let t of(r=[],e=[],c.slots))tc.has(t.index)?e.push(t):r.push(t);i[0]=c.slots,i[1]=e,i[2]=r}else e=i[1],r=i[2];return i[3]!==r||i[4]!==c?(n=r.map(e=>(0,t.jsx)(td,{slot:e,isSelected:e.index===c.activeIndex},e.index)),i[3]=r,i[4]=c,i[5]=n):n=i[5],i[6]!==e.length?(s=e.length>0&&(0,t.jsx)("div",{className:e7.default.WeaponSeparator}),i[6]=e.length,i[7]=s):s=i[7],i[8]!==e||i[9]!==c?(o=e.map(e=>(0,t.jsx)(td,{slot:e,isSelected:e.index===c.activeIndex},e.index)),i[8]=e,i[9]=c,i[10]=o):o=i[10],i[11]!==n||i[12]!==s||i[13]!==o?(l=(0,t.jsxs)("div",{className:e7.default.WeaponHUD,children:[n,s,o]}),i[11]=n,i[12]=s,i[13]=o,i[14]=l):l=i[14],l}function th(e){return e.playback.streamSnapshot?.weaponsHud}let tp={1:"Storm",2:"Inferno",3:"Starwolf",4:"Diamond Sword",5:"Blood Eagle",6:"Phoenix"};function tf(){let e,r,n,s=(0,a.c)(11),o=(0,g.useEngineSelector)(tg),l=(0,g.useEngineSelector)(t_);if(!o?.length)return null;if(s[0]!==l||s[1]!==o){let a,n;s[4]!==l?(a=(e,t)=>{if(l){if(e.teamId===l)return -1;if(t.teamId===l)return 1}return e.teamId-t.teamId},s[4]=l,s[5]=a):a=s[5];let i=[...o].sort(a);e=e7.default.TeamScores,s[6]!==l?(n=e=>{let a=l>0&&e.teamId===l,r=e.name||(tp[e.teamId]??`Team ${e.teamId}`);return(0,t.jsxs)("div",{className:e7.default.TeamRow,children:[(0,t.jsx)("span",{className:a?e7.default.TeamNameFriendly:e7.default.TeamNameEnemy,children:r}),(0,t.jsx)("span",{className:e7.default.TeamScore,children:e.score}),(0,t.jsxs)("span",{className:e7.default.TeamCount,children:["(",e.playerCount,")"]})]},e.teamId)},s[6]=l,s[7]=n):n=s[7],r=i.map(n),s[0]=l,s[1]=o,s[2]=e,s[3]=r}else e=s[2],r=s[3];return s[8]!==e||s[9]!==r?(n=(0,t.jsx)("div",{className:e,children:r}),s[8]=e,s[9]=r,s[10]=n):n=s[10],n}function t_(e){return e.playback.streamSnapshot?.playerSensorGroup}function tg(e){return e.playback.streamSnapshot?.teamScores}let ty={0:e7.default.ChatColor0,1:e7.default.ChatColor1,2:e7.default.ChatColor2,3:e7.default.ChatColor3,4:e7.default.ChatColor4,5:e7.default.ChatColor5,6:e7.default.ChatColor6,7:e7.default.ChatColor7,8:e7.default.ChatColor8,9:e7.default.ChatColor9};function tv(){let e,r,n,s,o=(0,a.c)(13),l=(0,g.useEngineSelector)(tk),i=(0,g.useEngineSelector)(tb);if(!l||!l.length||null==i)return null;let c=i-7.5;if(o[0]!==c||o[1]!==l||o[2]!==i){n=Symbol.for("react.early_return_sentinel");e:{let a,s;o[6]!==c?(a=e=>e.timeSec>c&&""!==e.text.trim(),o[6]=c,o[7]=a):a=o[7];let u=l.filter(a);if(!u.length){n=null;break e}e=e7.default.ChatWindow,o[8]!==i?(s=(e,a)=>{let r=i-e.timeSec,n=r<=6?1:Math.max(0,1-(r-6)/1.5);return(0,t.jsx)("div",{className:e7.default.ChatMessage,style:{opacity:n},children:e.segments?e.segments.map(tx):(0,t.jsxs)("span",{className:null!=e.colorCode&&ty[e.colorCode]?ty[e.colorCode]:ty[0],children:[e.sender?`${e.sender}: `:"",e.text]})},`${e.timeSec}-${a}`)},o[8]=i,o[9]=s):s=o[9],r=u.map(s)}o[0]=c,o[1]=l,o[2]=i,o[3]=e,o[4]=r,o[5]=n}else e=o[3],r=o[4],n=o[5];return n!==Symbol.for("react.early_return_sentinel")?n:(o[10]!==e||o[11]!==r?(s=(0,t.jsx)("div",{className:e,children:r}),o[10]=e,o[11]=r,o[12]=s):s=o[12],s)}function tx(e,a){return(0,t.jsx)("span",{className:ty[e.colorCode]??ty[0],children:e.text},a)}function tb(e){return e.playback.streamSnapshot?.timeSec}function tk(e){return e.playback.streamSnapshot?.chatMessages}let tS=new Map(Object.entries({0:"gui/hud_new_packammo",1:"gui/hud_new_packcloak",2:"gui/hud_new_packenergy",3:"gui/hud_new_packrepair",4:"gui/hud_new_packsatchel",5:"gui/hud_new_packshield",6:"gui/hud_new_packinventory",7:"gui/hud_new_packmotionsens",8:"gui/hud_new_packradar",9:"gui/hud_new_packturretout",10:"gui/hud_new_packturretin",11:"gui/hud_new_packsensjam",12:"gui/hud_new_packturret",13:"gui/hud_new_packturret",14:"gui/hud_new_packturret",15:"gui/hud_new_packturret",16:"gui/hud_new_packturret",17:"gui/hud_new_packturret",18:"gui/hud_satchel_unarmed",19:"gui/hud_new_packenergy"}).map(([e,t])=>[Number(e),(0,i.textureToUrl)(t)])),tC=new Map(Object.entries({1:"gui/hud_new_packcloak_armed",3:"gui/hud_new_packrepair_armed",4:"gui/hud_satchel_armed",5:"gui/hud_new_packshield_armed",11:"gui/hud_new_packsensjam_armed"}).map(([e,t])=>[Number(e),(0,i.textureToUrl)(t)])),tj={0:{icon:"gui/hud_handgren",label:"Grenade"},1:{icon:"gui/hud_mine",label:"Mine"},2:{icon:"gui/hud_beacon",label:"Beacon"},3:{icon:"gui/hud_medpack",label:"Repair Kit"}},tw=new Map(Object.entries(tj).map(([e,t])=>[Number(e),(0,i.textureToUrl)(t.icon)]));function tN(){let e,r,n,s,o,l,i,c=(0,a.c)(25),u=(0,g.useEngineSelector)(tP),d=(0,g.useEngineSelector)(tT),m=u&&u.packIndex>=0;if(m){let t,a;c[0]!==u.active||c[1]!==u.packIndex?(t=u.active?tC.get(u.packIndex):void 0,c[0]=u.active,c[1]=u.packIndex,c[2]=t):t=c[2];let r=t;c[3]!==r||c[4]!==u.packIndex?(a=r??tS.get(u.packIndex),c[3]=r,c[4]=u.packIndex,c[5]=a):a=c[5],e=a}if(c[6]!==d){if(r=new Map,d)for(let e of d.slots)r.set(e.slot,e.count);c[6]=d,c[7]=r}else r=c[7];if(c[8]!==u||c[9]!==r||c[10]!==m||c[11]!==e){l=Symbol.for("react.early_return_sentinel");e:{let a,i=Object.keys(tj).map(Number).sort(tI);if(!m&&!r.size){l=null;break e}n=e7.default.PackInventoryHUD,c[16]!==u||c[17]!==e?(s=e&&(0,t.jsxs)("div",{className:`${e7.default.PackInvItem} ${u.active?e7.default.PackInvItemActive:""}`,children:[(0,t.jsx)("img",{src:e,alt:"",className:e7.default.PackInvIcon}),(0,t.jsx)("span",{className:e7.default.PackInvCount,children:u.text||" "})]}),c[16]=u,c[17]=e,c[18]=s):s=c[18],c[19]!==r?(a=e=>{let a=tj[e],n=tw.get(e);return a&&n?(0,t.jsxs)("div",{className:e7.default.PackInvItem,children:[(0,t.jsx)("img",{src:n,alt:a.label,className:e7.default.PackInvIcon}),(0,t.jsx)("span",{className:e7.default.PackInvCount,children:r.get(e)??0})]},e):null},c[19]=r,c[20]=a):a=c[20],o=i.map(a)}c[8]=u,c[9]=r,c[10]=m,c[11]=e,c[12]=n,c[13]=s,c[14]=o,c[15]=l}else n=c[12],s=c[13],o=c[14],l=c[15];return l!==Symbol.for("react.early_return_sentinel")?l:(c[21]!==n||c[22]!==s||c[23]!==o?(i=(0,t.jsxs)("div",{className:n,children:[s,o]}),c[21]=n,c[22]=s,c[23]=o,c[24]=i):i=c[24],i)}function tI(e,t){return e-t}function tT(e){return e.playback.streamSnapshot?.inventoryHud}function tP(e){return e.playback.streamSnapshot?.backpackHud}function tB(){let e,r,n,s,o,l,i,c,u,d,m,h=(0,a.c)(19),p=(0,E.useRecording)(),f=(0,g.useEngineSelector)(tD);if(!p)return null;let _=f?.status;if(!_)return null;h[0]===Symbol.for("react.memo_cache_sentinel")?(e=(0,t.jsx)(tv,{}),h[0]=e):e=h[0],h[1]!==_.health?(r=(0,t.jsx)(ta,{value:_.health}),h[1]=_.health,h[2]=r):r=h[2],h[3]!==_.energy?(n=(0,t.jsx)(tr,{value:_.energy}),h[3]=_.energy,h[4]=n):n=h[4],h[5]!==r||h[6]!==n?(s=(0,t.jsxs)("div",{className:e7.default.Bars,children:[r,n]}),h[5]=r,h[6]=n,h[7]=s):s=h[7];let y=f?.camera?.yaw;return h[8]!==y?(o=(0,t.jsx)(tt,{yaw:y}),h[8]=y,h[9]=o):o=h[9],h[10]!==s||h[11]!==o?(l=(0,t.jsxs)("div",{className:e7.default.TopRight,children:[s,o]}),h[10]=s,h[11]=o,h[12]=l):l=h[12],h[13]===Symbol.for("react.memo_cache_sentinel")?(c=(0,t.jsx)(tm,{}),u=(0,t.jsx)(tN,{}),d=(0,t.jsx)(tf,{}),i=(0,t.jsx)(ts,{}),h[13]=i,h[14]=c,h[15]=u,h[16]=d):(i=h[13],c=h[14],u=h[15],d=h[16]),h[17]!==l?(m=(0,t.jsxs)("div",{className:e7.default.PlayerHUD,children:[e,l,c,u,d,i]}),h[17]=l,h[18]=m):m=h[18],m}function tD(e){return e.playback.streamSnapshot}var tE=e.i(56614);function tM({open:e,onClose:a,servers:n,loading:s,onRefresh:o,onJoin:l,wsPing:i}){let[c,u]=(0,r.useState)(null),[d,m]=(0,r.useState)("ping"),[h,p]=(0,r.useState)("asc"),f=(0,r.useRef)(null),_=(0,r.useRef)(o);_.current=o;let g=(0,r.useRef)(!1);(0,r.useEffect)(()=>{if(e){f.current?.focus();try{document.exitPointerLock()}catch{}}else g.current=!1},[e]),(0,r.useEffect)(()=>{e&&0===n.length&&!g.current&&(g.current=!0,_.current())},[e]),(0,r.useEffect)(()=>{if(!e)return;let t=e=>{e.stopPropagation(),"Escape"===e.key&&a()};return window.addEventListener("keydown",t,!0),()=>window.removeEventListener("keydown",t,!0)},[e,a]);let y=(0,r.useCallback)(e=>{d===e?p(e=>"asc"===e?"desc":"asc"):(m(e),p("desc"))},[d]),v=(0,r.useMemo)(()=>[...n].sort((e,t)=>{let a=e[d],r=t[d],n="number"==typeof a&&"number"==typeof r?a-r:String(a).localeCompare(String(r));return"asc"===h?n:-n}),[n,h,d]),x=(0,r.useCallback)(()=>{c&&(l(c),a())},[c,l,a]);return e?(0,t.jsx)("div",{className:tE.default.Overlay,onClick:a,children:(0,t.jsxs)("div",{className:tE.default.Dialog,ref:f,tabIndex:-1,onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("div",{className:tE.default.Header,children:[(0,t.jsx)("h2",{className:tE.default.Title,children:"Server Browser"}),(0,t.jsxs)("span",{className:tE.default.ServerCount,children:[n.length," server",1!==n.length?"s":""]}),(0,t.jsx)("button",{className:tE.default.RefreshButton,onClick:o,disabled:s,children:s?"Refreshing...":"Refresh"})]}),(0,t.jsx)("div",{className:tE.default.TableWrapper,children:(0,t.jsxs)("table",{className:tE.default.Table,children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{children:[(0,t.jsx)("th",{onClick:()=>y("name"),children:"Server Name"}),(0,t.jsx)("th",{onClick:()=>y("playerCount"),children:"Players"}),(0,t.jsx)("th",{onClick:()=>y("ping"),children:"Ping"}),(0,t.jsx)("th",{onClick:()=>y("mapName"),children:"Map"}),(0,t.jsx)("th",{onClick:()=>y("gameType"),children:"Type"}),(0,t.jsx)("th",{onClick:()=>y("mod"),children:"Mod"})]})}),(0,t.jsxs)("tbody",{children:[v.map(e=>(0,t.jsxs)("tr",{className:c===e.address?tE.default.Selected:void 0,onClick:()=>u(e.address),onDoubleClick:()=>{u(e.address),l(e.address),a()},children:[(0,t.jsxs)("td",{children:[e.passwordRequired&&(0,t.jsx)("span",{className:tE.default.PasswordIcon,children:"🔒"}),e.name]}),(0,t.jsxs)("td",{children:[e.playerCount,"/",e.maxPlayers]}),(0,t.jsx)("td",{children:null!=i?(e.ping+i).toLocaleString():"—"}),(0,t.jsx)("td",{children:e.mapName}),(0,t.jsx)("td",{children:e.gameType}),(0,t.jsx)("td",{children:e.mod})]},e.address)),0===v.length&&!s&&(0,t.jsx)("tr",{children:(0,t.jsx)("td",{colSpan:6,className:tE.default.Empty,children:"No servers found"})}),s&&0===v.length&&(0,t.jsx)("tr",{children:(0,t.jsx)("td",{colSpan:6,className:tE.default.Empty,children:"Querying master server..."})})]})]})}),(0,t.jsxs)("div",{className:tE.default.Footer,children:[(0,t.jsx)("button",{onClick:x,disabled:!c,className:tE.default.JoinButton,children:"Join"}),(0,t.jsx)("button",{onClick:a,className:tE.default.CloseButton,children:"Cancel"}),(0,t.jsx)("span",{className:tE.default.Hint,children:"Double-click a server to join"})]})]})}):null}var tR=e.i(38847);let tL=(0,r.createContext)({live:!1});function tH(e){let n,s,o=(0,a.c)(5),{children:l}=e,[i]=(0,tR.useQueryState)("features",tR.parseAsString);o[0]!==i?(n=()=>({live:new Set((i??"").split(",").map(tF).filter(Boolean)).has("live")}),o[0]=i,o[1]=n):n=o[1];let[c]=(0,r.useState)(n);return o[2]!==l||o[3]!==c?(s=(0,t.jsx)(tL.Provider,{value:c,children:l}),o[2]=l,o[3]=c,o[4]=s):s=o[4],s}function tF(e){return e.trim().toLowerCase()}var tG=e.i(3011);let tq=(0,r.lazy)(()=>e.A(96239).then(e=>({default:e.DemoPlayback}))),tO=(0,r.lazy)(()=>e.A(93884).then(e=>({default:e.DemoPlaybackControls}))),tA=(0,r.lazy)(()=>e.A(96145).then(e=>({default:e.LiveObserver}))),tU=(0,r.lazy)(()=>e.A(38496).then(e=>({default:e.ChatSoundPlayer}))),tW=(0,r.lazy)(()=>e.A(59197).then(e=>({default:e.MapInfoDialog}))),tz=new T.QueryClient,tK={toneMapping:s.NoToneMapping,outputColorSpace:s.SRGBColorSpace},t$=(0,tR.createParser)({parse(e){let[t,a]=e.split("~"),r=a,n=(0,f.getMissionInfo)(t).missionTypes;return a&&n.includes(a)||(r=n[0]),{missionName:t,missionType:r}},serialize:({missionName:e,missionType:t})=>1===(0,f.getMissionInfo)(e).missionTypes.length?e:`${e}~${t}`,eq:(e,t)=>e.missionName===t.missionName&&e.missionType===t.missionType}).withDefault({missionName:"RiverDance",missionType:"CTF"});function tJ(){let e,o,l,i,c,u,d,m,h,p,_,g,y,v,x,b,k,S,C,j,w,N,I,T,M,L,H,F,G,q,O,A,U,W,z,K,$,V,Y,X,Q,ee,et,ea=(0,a.c)(77),[er,en]=(0,tR.useQueryState)("mission",t$),[es,eo]=(0,tR.useQueryState)("fog",tR.parseAsBoolean);ea[0]!==eo?(e=()=>{eo(null)},ea[0]=eo,ea[1]=e):e=ea[1];let el=e;ea[2]!==el||ea[3]!==en?(o=e=>{window.location.hash="",el(),en(e)},ea[2]=el,ea[3]=en,ea[4]=o):o=ea[4];let ei=o,ec=(X=(0,a.c)(2),Q=(0,r.useRef)(null),X[0]===Symbol.for("react.memo_cache_sentinel")?(V=e=>{let t=window.matchMedia("(pointer: coarse)");return t.addEventListener("change",e),Q.current=t,()=>{t.removeEventListener("change",e)}},X[0]=V):V=X[0],ee=V,X[1]===Symbol.for("react.memo_cache_sentinel")?(Y=()=>Q.current?.matches??null,X[1]=Y):Y=X[1],et=Y,(0,r.useSyncExternalStore)(ee,et,eV)),eu=(0,r.useContext)(tL),ed=(0,eF.useLiveConnection)(),{missionName:em,missionType:eh}=er,[ep,ef]=(0,r.useState)(!1),[e_,eg]=(0,r.useState)(!1),[ey,ev]=(0,r.useState)(0),[ex,eb]=(0,r.useState)(!0),ek=null!=ed.adapter?ed.liveReady?1:"connected"===ed.gameStatus?.8:"authenticating"===ed.gameStatus?.6:"challenging"===ed.gameStatus?.3:"connecting"===ed.gameStatus?.2:.1:null;ea[5]!==ek?(l=()=>{null!=ek&&ev(0)},ea[5]=ek,ea[6]=l):l=ea[6];let eS=null!=ek;ea[7]!==eS?(i=[eS],ea[7]=eS,ea[8]=i):i=ea[8],(0,r.useEffect)(l,i);let eC=ek??ey,ej=eC<1;ea[9]!==ej?(c=()=>{if(ej)eb(!0);else{let e=setTimeout(()=>eb(!1),500);return()=>clearTimeout(e)}},u=[ej],ea[9]=ej,ea[10]=c,ea[11]=u):(c=ea[10],u=ea[11]),(0,r.useEffect)(c,u),ea[12]!==ei?(d=()=>(window.setMissionName=e=>{let t=(0,f.getMissionInfo)(e).missionTypes;ei({missionName:e,missionType:t[0]})},window.getMissionList=f.getMissionList,window.getMissionInfo=f.getMissionInfo,tV),m=[ei],ea[12]=ei,ea[13]=d,ea[14]=m):(d=ea[13],m=ea[14]),(0,r.useEffect)(d,m),ea[15]===Symbol.for("react.memo_cache_sentinel")?(p=()=>{let e=e=>{if("KeyI"!==e.code||e.metaKey||e.ctrlKey||e.altKey)return;let t=e.target;"INPUT"===t.tagName||"TEXTAREA"===t.tagName||t.isContentEditable||ef(!0)};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},h=[],ea[15]=h,ea[16]=p):(h=ea[15],p=ea[16]),(0,r.useEffect)(p,h),ea[17]===Symbol.for("react.memo_cache_sentinel")?(_=(e,t)=>{ev(void 0===t?0:t)},ea[17]=_):_=ea[17];let ew=_,eN=(0,r.useRef)(null);ea[18]===Symbol.for("react.memo_cache_sentinel")?(g={angle:0,force:0},ea[18]=g):g=ea[18];let eI=(0,r.useRef)(g),eT=(0,r.useRef)(null);ea[19]===Symbol.for("react.memo_cache_sentinel")?(y={angle:0,force:0},ea[19]=y):y=ea[19];let eP=(0,r.useRef)(y),eB=(0,r.useRef)(null);return ea[20]!==ej||ea[21]!==eC||ea[22]!==ex?(v=ex&&(0,t.jsxs)("div",{id:"loadingIndicator",className:tG.default.LoadingIndicator,"data-complete":!ej,children:[(0,t.jsx)("div",{className:tG.default.Spinner}),(0,t.jsx)("div",{className:tG.default.Progress,children:(0,t.jsx)("div",{className:tG.default.ProgressBar,style:{width:`${100*eC}%`}})}),(0,t.jsxs)("div",{className:tG.default.ProgressText,children:[Math.round(100*eC),"%"]})]}),ea[20]=ej,ea[21]=eC,ea[22]=ex,ea[23]=v):v=ea[23],ea[24]===Symbol.for("react.memo_cache_sentinel")?(x={type:s.PCFShadowMap},b=e=>{eN.current=e.camera},ea[24]=x,ea[25]=b):(x=ea[24],b=ea[25]),ea[26]!==em||ea[27]!==eh?(k=(0,t.jsx)(tY,{missionName:em,missionType:eh,onLoadingChange:ew}),ea[26]=em,ea[27]=eh,ea[28]=k):k=ea[28],ea[29]===Symbol.for("react.memo_cache_sentinel")?(S=(0,t.jsx)(e6,{}),ea[29]=S):S=ea[29],ea[30]!==eh?(C=(0,t.jsx)(e2.EntityScene,{missionType:eh}),ea[30]=eh,ea[31]=C):C=ea[31],ea[32]===Symbol.for("react.memo_cache_sentinel")?(j=(0,t.jsx)(eZ,{}),w=(0,t.jsx)(e0.DebugElements,{}),ea[32]=j,ea[33]=w):(j=ea[32],w=ea[33]),ea[34]!==ec?(N=(0,t.jsx)(tX,{isTouch:ec,joystickStateRef:eI,joystickZoneRef:eT,lookJoystickStateRef:eP,lookJoystickZoneRef:eB}),ea[34]=ec,ea[35]=N):N=ea[35],ea[36]!==k||ea[37]!==C||ea[38]!==N?(I=(0,t.jsx)(n.Canvas,{frameloop:"always",gl:tK,shadows:x,onCreated:b,children:(0,t.jsx)(e3.TickProvider,{children:(0,t.jsx)(e1.CamerasProvider,{children:(0,t.jsxs)(eQ.AudioProvider,{children:[k,S,C,j,w,N]})})})}),ea[36]=k,ea[37]=C,ea[38]=N,ea[39]=I):I=ea[39],ea[40]!==v||ea[41]!==I?(T=(0,t.jsxs)("div",{id:"canvasContainer",className:tG.default.CanvasContainer,children:[v,I]}),ea[40]=v,ea[41]=I,ea[42]=T):T=ea[42],ea[43]===Symbol.for("react.memo_cache_sentinel")?(M=(0,t.jsx)(tZ,{}),ea[43]=M):M=ea[43],ea[44]!==ec?(L=ec&&(0,t.jsx)(Z,{joystickState:eI,joystickZone:eT,lookJoystickState:eP,lookJoystickZone:eB}),ea[44]=ec,ea[45]=L):L=ea[45],ea[46]!==ec?(H=!1===ec&&(0,t.jsx)(R,{}),ea[46]=ec,ea[47]=H):H=ea[47],ea[48]===Symbol.for("react.memo_cache_sentinel")?(F=()=>ef(!0),ea[48]=F):F=ea[48],ea[49]!==eu.live?(G=eu.live?()=>eg(!0):void 0,ea[49]=eu.live,ea[50]=G):G=ea[50],ea[51]!==ei||ea[52]!==ec||ea[53]!==em||ea[54]!==eh||ea[55]!==G?(q=(0,t.jsx)(eW,{missionName:em,missionType:eh,onChangeMission:ei,onOpenMapInfo:F,onOpenServerBrowser:G,cameraRef:eN,isTouch:ec}),ea[51]=ei,ea[52]=ec,ea[53]=em,ea[54]=eh,ea[55]=G,ea[56]=q):q=ea[56],ea[57]!==ep||ea[58]!==em||ea[59]!==eh?(O=ep&&(0,t.jsx)(r.Suspense,{fallback:null,children:(0,t.jsx)(tW,{open:ep,onClose:()=>ef(!1),missionName:em,missionType:eh??""})}),ea[57]=ep,ea[58]=em,ea[59]=eh,ea[60]=O):O=ea[60],ea[61]===Symbol.for("react.memo_cache_sentinel")?(A=()=>eg(!1),ea[61]=A):A=ea[61],ea[62]!==e_?(U=(0,t.jsx)(t0,{open:e_,onClose:A}),ea[62]=e_,ea[63]=U):U=ea[63],ea[64]===Symbol.for("react.memo_cache_sentinel")?(W=(0,t.jsx)(tQ,{}),z=(0,t.jsx)(t1,{}),ea[64]=W,ea[65]=z):(W=ea[64],z=ea[65]),ea[66]!==T||ea[67]!==L||ea[68]!==H||ea[69]!==q||ea[70]!==O||ea[71]!==U?(K=(0,t.jsxs)(D.KeyboardControls,{map:B.KEYBOARD_CONTROLS,children:[T,M,L,H,q,O,U,W,z]}),ea[66]=T,ea[67]=L,ea[68]=H,ea[69]=q,ea[70]=O,ea[71]=U,ea[72]=K):K=ea[72],ea[73]!==el||ea[74]!==es||ea[75]!==K?($=(0,t.jsx)(P.QueryClientProvider,{client:tz,children:(0,t.jsx)("main",{children:(0,t.jsx)(E.RecordingProvider,{children:(0,t.jsx)(J.SettingsProvider,{fogEnabledOverride:es,onClearFogEnabledOverride:el,children:K})})})}),ea[73]=el,ea[74]=es,ea[75]=K,ea[76]=$):$=ea[76],$}function tV(){delete window.setMissionName,delete window.getMissionList,delete window.getMissionInfo}function tY(e){let r,n=(0,a.c)(5),{missionName:s,missionType:o,onLoadingChange:l}=e,i=(0,E.useRecording)(),{adapter:c}=(0,eF.useLiveConnection)();if(null!=i||null!=c)return null;let u=`${s}~${o}`;return n[0]!==s||n[1]!==o||n[2]!==l||n[3]!==u?(r=(0,t.jsx)(I,{name:s,missionType:o,onLoadingChange:l},u),n[0]=s,n[1]=o,n[2]=l,n[3]=u,n[4]=r):r=n[4],r}function tX(e){let n,s,o,l,i,c=(0,a.c)(18),{isTouch:u,joystickStateRef:d,joystickZoneRef:m,lookJoystickStateRef:h,lookJoystickZoneRef:p}=e,f=(0,E.useRecording)(),_=null!=(0,eF.useLiveConnection)().adapter,g=null!=f||_,y=!g||_;return c[0]!==f?(n=f&&(0,t.jsx)(r.Suspense,{fallback:null,children:(0,t.jsx)(tq,{})}),c[0]=f,c[1]=n):n=c[1],c[2]!==_?(s=_&&(0,t.jsx)(r.Suspense,{fallback:null,children:(0,t.jsx)(tA,{})}),c[2]=_,c[3]=s):s=c[3],c[4]!==g?(o=g&&(0,t.jsx)(r.Suspense,{fallback:null,children:(0,t.jsx)(tU,{})}),c[4]=g,c[5]=o):o=c[5],c[6]!==u||c[7]!==d||c[8]!==m||c[9]!==h||c[10]!==p||c[11]!==y?(l=y&&null!==u&&(u?(0,t.jsx)(Q,{joystickState:d,joystickZone:m,lookJoystickState:h,lookJoystickZone:p}):(0,t.jsx)(B.ObserverControls,{})),c[6]=u,c[7]=d,c[8]=m,c[9]=h,c[10]=p,c[11]=y,c[12]=l):l=c[12],c[13]!==n||c[14]!==s||c[15]!==o||c[16]!==l?(i=(0,t.jsxs)(t.Fragment,{children:[n,s,o,l]}),c[13]=n,c[14]=s,c[15]=o,c[16]=l,c[17]=i):i=c[17],i}function tZ(){let e,r=(0,a.c)(1),n=(0,E.useRecording)(),s=(0,eF.useLiveConnection)();return n||s.adapter?(r[0]===Symbol.for("react.memo_cache_sentinel")?(e=(0,t.jsx)(tB,{}),r[0]=e):e=r[0],e):null}function tQ(){let e,n=(0,a.c)(1),s=(0,E.useRecording)(),o=(0,eF.useLiveConnection)();return s&&null==o.adapter?(n[0]===Symbol.for("react.memo_cache_sentinel")?(e=(0,t.jsx)(r.Suspense,{fallback:null,children:(0,t.jsx)(tO,{})}),n[0]=e):e=n[0],e):null}function t0(e){let r,n,s=(0,a.c)(10),{open:o,onClose:l}=e,i=(0,eF.useLiveConnection)();return s[0]!==i?(r=e=>i.joinServer(e),s[0]=i,s[1]=r):r=s[1],s[2]!==i.listServers||s[3]!==i.servers||s[4]!==i.serversLoading||s[5]!==i.wsPing||s[6]!==l||s[7]!==o||s[8]!==r?(n=(0,t.jsx)(tM,{open:o,onClose:l,servers:i.servers,loading:i.serversLoading,onRefresh:i.listServers,onJoin:r,wsPing:i.wsPing}),s[2]=i.listServers,s[3]=i.servers,s[4]=i.serversLoading,s[5]=i.wsPing,s[6]=l,s[7]=o,s[8]=r,s[9]=n):n=s[9],n}function t1(){let e,t,n=(0,a.c)(3),{setRecording:s}=(0,E.usePlaybackActions)();return n[0]!==s?(e=()=>(window.loadDemoRecording=s,t2),t=[s],n[0]=s,n[1]=e,n[2]=t):(e=n[1],t=n[2]),(0,r.useEffect)(e,t),null}function t2(){delete window.loadDemoRecording}function t3(){let e,n=(0,a.c)(1);return n[0]===Symbol.for("react.memo_cache_sentinel")?(e=(0,t.jsx)(r.Suspense,{children:(0,t.jsx)(tH,{children:(0,t.jsx)(eF.LiveConnectionProvider,{children:(0,t.jsx)(tJ,{})})})}),n[0]=e):e=n[0],e}e.s(["default",()=>t3],31713)}]);