mirror of
https://github.com/exogen/t2-mapper.git
synced 2026-07-10 22:14:40 +00:00
2 lines
No EOL
19 KiB
JavaScript
2 lines
No EOL
19 KiB
JavaScript
import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{n as i}from"./manifest-BIDT_vSa.js";import{r as a}from"./engineStore-B1KAgiiF.js";var o=e(n(),1),s=d();function c(e,...t){if(!s)return;let n=u(e,...t);performance.mark(n);try{console.log(e,...t)}catch{console.log(n)}}function l(e,...t){s&&console.warn(e,...t)}function u(e,...t){return e.replace(/%[sfdO]/g,e=>{let n=t.shift();return e===`%O`&&n?JSON.stringify(n).replace(/"([^"]+)":/g,`$1:`):String(n)})}function d(){if(typeof window>`u`)return({}.DEBUG||``).includes(`nuqs`);try{let e=`nuqs-localStorage-test`;if(typeof localStorage>`u`)return!1;localStorage.setItem(e,e);let t=localStorage.getItem(e)===e;return localStorage.removeItem(e),t&&(localStorage.getItem(`debug`)||``).includes(`nuqs`)}catch{return!1}}var f={303:`Multiple adapter contexts detected. This might happen in monorepos.`,404:`nuqs requires an adapter to work with your framework.`,409:"Multiple versions of the library are loaded. This may lead to unexpected behavior. Currently using `%s`, but `%s` (via the %s adapter) was about to load on top.",414:`Max safe URL length exceeded. Some browsers may not be able to accept this URL. Consider limiting the amount of state stored in the URL.`,422:"Invalid options combination: `limitUrlUpdates: debounce` should be used in SSR scenarios, with `shallow: false`",429:"URL update rate-limited by the browser. Consider increasing `throttleMs` for key(s) `%s`. %O",500:`Empty search params cache. Search params can't be accessed in Layouts.`,501:"Search params cache already populated. Have you called `parse` twice?"};function p(e){return`[nuqs] ${f[e]}
|
|
See https://nuqs.dev/NUQS-${e}`}function m(e){if(e.size===0)return``;let t=[];for(let[n,r]of e.entries()){let e=n.replace(/#/g,`%23`).replace(/&/g,`%26`).replace(/\+/g,`%2B`).replace(/=/g,`%3D`).replace(/\?/g,`%3F`);t.push(`${e}=${h(r)}`)}return`?`+t.join(`&`)}function h(e){return e.replace(/%/g,`%25`).replace(/\+/g,`%2B`).replace(/ /g,`+`).replace(/#/g,`%23`).replace(/&/g,`%26`).replace(/"/g,`%22`).replace(/'/g,`%27`).replace(/`/g,`%60`).replace(/</g,`%3C`).replace(/>/g,`%3E`).replace(/[\x00-\x1F]/g,e=>encodeURIComponent(e))}var g=(0,o.createContext)({useAdapter(){throw Error(p(404))}});g.displayName=`NuqsAdapterContext`,s&&typeof window<`u`&&(window.__NuqsAdapterContext&&window.__NuqsAdapterContext!==g&&console.error(p(303)),window.__NuqsAdapterContext=g);function _(e){return({children:t,defaultOptions:n,processUrlSearchParams:r,...i})=>(0,o.createElement)(g.Provider,{...i,value:{useAdapter:e,defaultOptions:n,processUrlSearchParams:r}},t)}function v(e){let t=(0,o.useContext)(g);if(!(`useAdapter`in t))throw Error(p(404));return t.useAdapter(e)}var y=()=>(0,o.useContext)(g).defaultOptions,b=()=>(0,o.useContext)(g).processUrlSearchParams;function x(){if(typeof window>`u`||!window.GestureEvent)return 50;try{let e=navigator.userAgent?.match(/version\/([\d\.]+) safari/i);return parseFloat(e[1])>=17?120:320}catch{return 320}}function S(e){return{method:`throttle`,timeMs:e}}var C=S(x());function w(e){return e===null||Array.isArray(e)&&e.length===0}function T(e,t,n){if(typeof e==`string`)n.set(t,e);else{n.delete(t);for(let r of e)n.append(t,r);n.has(t)||n.set(t,``)}return n}function E(){let e=new Map;return{on(t,n){let r=e.get(t)||[];return r.push(n),e.set(t,r),()=>this.off(t,n)},off(t,n){let r=e.get(t);r&&e.set(t,r.filter(e=>e!==n))},emit(t,n){e.get(t)?.forEach(e=>e(n))}}}function D(e,t,n){function r(){e(),n.removeEventListener(`abort`,a)}let i=setTimeout(r,t);function a(){clearTimeout(i),n.removeEventListener(`abort`,a)}n.addEventListener(`abort`,a)}function O(){let e=Promise;if(Promise.hasOwnProperty(`withResolvers`))return Promise.withResolvers();let t=()=>{},n=()=>{};return{promise:new e((e,r)=>{t=e,n=r}),resolve:t,reject:n}}function k(e,t){let n=t;for(let t=e.length-1;t>=0;t--){let r=e[t];if(!r)continue;let i=n;n=()=>r(i)}n()}function A(){return new URLSearchParams(location.search)}var j=class{updateMap=new Map;options={history:`replace`,scroll:!1,shallow:!0};timeMs=C.timeMs;transitions=new Set;resolvers=null;controller=null;lastFlushedAt=0;resetQueueOnNextPush=!1;push({key:e,query:t,options:n},r=C.timeMs){this.resetQueueOnNextPush&&=(this.reset(),!1),c(`[nuqs gtq] Enqueueing %s=%s %O`,e,t,n),this.updateMap.set(e,t),n.history===`push`&&(this.options.history=`push`),n.scroll&&(this.options.scroll=!0),n.shallow===!1&&(this.options.shallow=!1),n.startTransition&&this.transitions.add(n.startTransition),(!Number.isFinite(this.timeMs)||r>this.timeMs)&&(this.timeMs=r)}getQueuedQuery(e){return this.updateMap.get(e)}getPendingPromise({getSearchParamsSnapshot:e=A}){return this.resolvers?.promise??Promise.resolve(e())}flush({getSearchParamsSnapshot:e=A,rateLimitFactor:t=1,...n},r){if(this.controller??=new AbortController,!Number.isFinite(this.timeMs))return c(`[nuqs gtq] Skipping flush due to throttleMs=Infinity`),Promise.resolve(e());if(this.resolvers)return this.resolvers.promise;this.resolvers=O();let i=()=>{this.lastFlushedAt=performance.now();let[t,i]=this.applyPendingUpdates({...n,autoResetQueueOnUpdate:n.autoResetQueueOnUpdate??!0,getSearchParamsSnapshot:e},r);i===null?(this.resolvers.resolve(t),this.resetQueueOnNextPush=!0):this.resolvers.reject(t),this.resolvers=null};return D(()=>{let e=performance.now()-this.lastFlushedAt,n=this.timeMs,r=t*Math.max(0,n-e);c(`[nuqs gtq] Scheduling flush in %f ms. Throttled at %f ms (x%f)`,r,n,t),r===0?i():D(i,r,this.controller.signal)},0,this.controller.signal),this.resolvers.promise}abort(){return this.controller?.abort(),this.controller=new AbortController,this.resolvers?.resolve(new URLSearchParams),this.resolvers=null,this.reset()}reset(){let e=Array.from(this.updateMap.keys());return c(`[nuqs gtq] Resetting queue %s`,JSON.stringify(Object.fromEntries(this.updateMap))),this.updateMap.clear(),this.transitions.clear(),this.options={history:`replace`,scroll:!1,shallow:!0},this.timeMs=C.timeMs,e}applyPendingUpdates(e,t){let{updateUrl:n,getSearchParamsSnapshot:r}=e,i=r();if(c(`[nuqs gtq] Applying %d pending update(s) on top of %s`,this.updateMap.size,i.toString()),this.updateMap.size===0)return[i,null];let a=Array.from(this.updateMap.entries()),o={...this.options},s=Array.from(this.transitions);e.autoResetQueueOnUpdate&&this.reset(),c(`[nuqs gtq] Flushing queue %O with options %O`,a,o);for(let[e,t]of a)t===null?i.delete(e):i=T(t,e,i);t&&(i=t(i));try{return k(s,()=>{n(i,o)}),[i,null]}catch(e){return console.error(p(429),a.map(([e])=>e).join(),e),[i,e]}}},M=new j;function N(e,t,n){let r=(0,o.useCallback)(()=>{let t=Object.fromEntries(e.map(e=>[e,n(e)]));return[JSON.stringify(t),t]},[e.join(`,`),n]),i=(0,o.useRef)(null);return i.current===null&&(i.current=r()),(0,o.useSyncExternalStore)((0,o.useCallback)(n=>{let r=e.map(e=>t(e,n));return()=>r.forEach(e=>e())},[e.join(`,`),t]),()=>{let[e,t]=r();return i.current[0]===e?i.current[1]:(i.current=[e,t],t)},()=>i.current[1])}var P=class{callback;resolvers=O();controller=new AbortController;queuedValue=void 0;constructor(e){this.callback=e}abort(){this.controller.abort(),this.queuedValue=void 0}push(e,t){return this.queuedValue=e,this.controller.abort(),this.controller=new AbortController,D(()=>{let t=this.resolvers;try{c(`[nuqs dq] Flushing debounce queue`,e);let n=this.callback(e);c(`[nuqs dq] Reset debounce queue %O`,this.queuedValue),this.queuedValue=void 0,this.resolvers=O(),n.then(e=>t.resolve(e)).catch(e=>t.reject(e))}catch(e){this.queuedValue=void 0,t.reject(e)}},t,this.controller.signal),this.resolvers.promise}},F=new class{throttleQueue;queues=new Map;queuedQuerySync=E();constructor(e=new j){this.throttleQueue=e}useQueuedQueries(e){return N(e,(e,t)=>this.queuedQuerySync.on(e,t),e=>this.getQueuedQuery(e))}push(e,t,n,r){if(!Number.isFinite(t)){let e=n.getSearchParamsSnapshot??A;return Promise.resolve(e())}let i=e.key;if(!this.queues.has(i)){c("[nuqs dqc] Creating debounce queue for `%s`",i);let e=new P(e=>(this.throttleQueue.push(e),this.throttleQueue.flush(n,r).finally(()=>{this.queues.get(e.key)?.queuedValue===void 0&&(c("[nuqs dqc] Cleaning up empty queue for `%s`",e.key),this.queues.delete(e.key)),this.queuedQuerySync.emit(e.key)})));this.queues.set(i,e)}c(`[nuqs dqc] Enqueueing debounce update %O`,e);let a=this.queues.get(i).push(e,t);return this.queuedQuerySync.emit(i),a}abort(e){let t=this.queues.get(e);return t?(c(`[nuqs dqc] Aborting debounce queue %s=%s`,e,t.queuedValue?.query),this.queues.delete(e),t.abort(),this.queuedQuerySync.emit(e),e=>(e.then(t.resolvers.resolve,t.resolvers.reject),e)):e=>e}abortAll(){for(let[e,t]of this.queues.entries())c(`[nuqs dqc] Aborting debounce queue %s=%s`,e,t.queuedValue?.query),t.abort(),t.resolvers.resolve(new URLSearchParams),this.queuedQuerySync.emit(e);this.queues.clear()}getQueuedQuery(e){let t=this.queues.get(e)?.queuedValue?.query;return t===void 0?this.throttleQueue.getQueuedQuery(e):t}}(M);function I(e,t){return e===t?!0:e===null||t===null||typeof e==`string`||typeof t==`string`||e.length!==t.length?!1:e.every((e,n)=>e===t[n])}function L(e,t,n){try{return e(t)}catch(e){return l("[nuqs] Error while parsing value `%s`: %O"+(n?" (for key `%s`)":``),t,e,n),null}}function R(e){function t(t){if(t===void 0)return null;let n=``;if(Array.isArray(t)){if(t[0]===void 0)return null;n=t[0]}return typeof t==`string`&&(n=t),L(e.parse,n)}return{type:`single`,eq:(e,t)=>e===t,...e,parseServerSide:t,withDefault(e){return{...this,defaultValue:e,parseServerSide(n){return t(n)??e}}},withOptions(e){return{...this,...e}}}}var z=R({parse:e=>e,serialize:String});R({parse:e=>{let t=parseInt(e);return t==t?t:null},serialize:e=>``+Math.round(e)}),R({parse:e=>{let t=parseInt(e);return t==t?t-1:null},serialize:e=>``+Math.round(e+1)}),R({parse:e=>{let t=parseInt(e,16);return t==t?t:null},serialize:e=>{let t=Math.round(e).toString(16);return(t.length&1?`0`:``)+t}}),R({parse:e=>{let t=parseFloat(e);return t==t?t:null},serialize:String});var B=R({parse:e=>e.toLowerCase()===`true`,serialize:String});function V(e,t){return e.valueOf()===t.valueOf()}R({parse:e=>{let t=parseInt(e);return t==t?new Date(t):null},serialize:e=>``+e.valueOf(),eq:V}),R({parse:e=>{let t=new Date(e);return t.valueOf()==t.valueOf()?t:null},serialize:e=>e.toISOString(),eq:V}),R({parse:e=>{let t=new Date(e.slice(0,10));return t.valueOf()==t.valueOf()?t:null},serialize:e=>e.toISOString().slice(0,10),eq:V});var H=E(),U={};function W(e,t={}){let n=(0,o.useId)(),r=y(),i=b(),{history:a=`replace`,scroll:s=r?.scroll??!1,shallow:l=r?.shallow??!0,throttleMs:u=C.timeMs,limitUrlUpdates:d=r?.limitUrlUpdates,clearOnDefault:f=r?.clearOnDefault??!0,startTransition:m,urlKeys:h=U}=t,g=Object.keys(e).join(`,`),_=(0,o.useMemo)(()=>Object.fromEntries(Object.keys(e).map(e=>[e,h[e]??e])),[g,JSON.stringify(h)]),x=v(Object.values(_)),S=x.searchParams,w=(0,o.useRef)({}),T=(0,o.useMemo)(()=>Object.fromEntries(Object.keys(e).map(t=>[t,e[t].defaultValue??null])),[Object.values(e).map(({defaultValue:e})=>e).join(`,`)]),E=F.useQueuedQueries(Object.values(_)),[D,O]=(0,o.useState)(()=>G(e,h,S??new URLSearchParams,E).state),k=(0,o.useRef)(D);if(c("[nuq+ %s `%s`] render - state: %O, iSP: %s",n,g,D,S),Object.keys(w.current).join(`&`)!==Object.values(_).join(`&`)){let{state:t,hasChanged:r}=G(e,h,S,E,w.current,k.current);r&&(c("[nuq+ %s `%s`] State changed: %O",n,g,{state:t,initialSearchParams:S,queuedQueries:E,queryRef:w.current,stateRef:k.current}),k.current=t,O(t)),w.current=Object.fromEntries(Object.entries(_).map(([t,n])=>[n,e[t]?.type===`multi`?S?.getAll(n):S?.get(n)??null]))}(0,o.useEffect)(()=>{let{state:t,hasChanged:r}=G(e,h,S,E,w.current,k.current);r&&(c("[nuq+ %s `%s`] State changed: %O",n,g,{state:t,initialSearchParams:S,queuedQueries:E,queryRef:w.current,stateRef:k.current}),k.current=t,O(t))},[Object.values(_).map(e=>`${e}=${S?.getAll(e)}`).join(`&`),JSON.stringify(E)]),(0,o.useEffect)(()=>{let t=Object.keys(e).reduce((t,r)=>(t[r]=({state:t,query:i})=>{O(a=>{let{defaultValue:o}=e[r],s=_[r],l=t??o??null,u=a[r]??o??null;return Object.is(u,l)?(c("[nuq+ %s `%s`] Cross-hook key sync %s: %O (default: %O). no change, skipping, resolved: %O",n,g,s,t,o,k.current),a):(k.current={...k.current,[r]:l},w.current[s]=i,c("[nuq+ %s `%s`] Cross-hook key sync %s: %O (default: %O). updateInternalState, resolved: %O",n,g,s,t,o,k.current),k.current)})},t),{});for(let r of Object.keys(e)){let e=_[r];c("[nuq+ %s `%s`] Subscribing to sync for `%s`",n,e,g),H.on(e,t[r])}return()=>{for(let r of Object.keys(e)){let e=_[r];c("[nuq+ %s `%s`] Unsubscribing to sync for `%s`",n,e,g),H.off(e,t[r])}}},[g,_]);let A=(0,o.useCallback)((t,r={})=>{let o=Object.fromEntries(Object.keys(e).map(e=>[e,null])),h=typeof t==`function`?t(K(k.current,T))??o:t??o;c("[nuq+ %s `%s`] setState: %O",n,g,h);let v,y=0,b=!1,S=[];for(let[t,n]of Object.entries(h)){let o=e[t],c=_[t];if(!o||n===void 0)continue;(r.clearOnDefault??o.clearOnDefault??f)&&n!==null&&o.defaultValue!==void 0&&(o.eq??((e,t)=>e===t))(n,o.defaultValue)&&(n=null);let h=n===null?null:(o.serialize??String)(n);H.emit(c,{state:n,query:h});let g={key:c,query:h,options:{history:r.history??o.history??a,shallow:r.shallow??o.shallow??l,scroll:r.scroll??o.scroll??s,startTransition:r.startTransition??o.startTransition??m}};if(r?.limitUrlUpdates?.method===`debounce`||d?.method===`debounce`||o.limitUrlUpdates?.method===`debounce`){g.options.shallow===!0&&console.warn(p(422));let e=r?.limitUrlUpdates?.timeMs??d?.timeMs??o.limitUrlUpdates?.timeMs??C.timeMs,t=F.push(g,e,x,i);y<e&&(v=t,y=e)}else{let e=r?.limitUrlUpdates?.timeMs??o?.limitUrlUpdates?.timeMs??d?.timeMs??r.throttleMs??o.throttleMs??u;S.push(F.abort(c)),M.push(g,e),b=!0}}let w=S.reduce((e,t)=>t(e),b?M.flush(x,i):M.getPendingPromise(x));return v??w},[g,a,l,s,u,d?.method,d?.timeMs,m,_,x.updateUrl,x.getSearchParamsSnapshot,x.rateLimitFactor,i,T]);return[(0,o.useMemo)(()=>K(D,T),[D,T]),A]}function G(e,t,n,r,i,a){let o=!1,s=Object.entries(e).reduce((e,[s,c])=>{let l=t?.[s]??s,u=r[l],d=c.type===`multi`?[]:null,f=u===void 0?(c.type===`multi`?n?.getAll(l):n?.get(l))??d:u;return i&&a&&I(i[l]??d,f)?(e[s]=a[s]??null,e):(o=!0,e[s]=(w(f)?null:L(c.parse,f,l))??null,i&&(i[l]=f),e)},{});if(!o){let t=Object.keys(e),n=Object.keys(a??{});o=t.length!==n.length||t.some(e=>!n.includes(e))}return{state:s,hasChanged:o}}function K(e,t){return Object.fromEntries(Object.keys(e).map(n=>[n,e[n]??t[n]??null]))}function q(e,t={}){let{parse:n,type:r,serialize:i,eq:a,defaultValue:s,...c}=t,[{[e]:l},u]=W({[e]:{parse:n??(e=>e),type:r,serialize:i,eq:a,defaultValue:s}},c);return[l,(0,o.useCallback)((t,n={})=>u(n=>({[e]:typeof t==`function`?t(n[e]):t}),n),[e,u])]}var J=t(),Y=R({parse(e){let[t,n]=e.split(`~`),r=n,a=i(t).missionTypes;return(!n||!a.includes(n))&&(r=a[0]),{missionName:t,missionType:r}},serialize({missionName:e,missionType:t}){let n=i(e).missionTypes;return!t||n.length===1?e:`${e}~${t}`},eq(e,t){return e.missionName===t.missionName&&e.missionType===t.missionType}}).withDefault({missionName:`RiverDance`,missionType:`CTF`});function ee(){let e=(0,J.c)(3),[t,n]=q(`mission`,Y),r;return e[0]!==t||e[1]!==n?(r=[t,n],e[0]=t,e[1]=n,e[2]=r):r=e[2],r}function te(){let e=(0,J.c)(3),[t,n]=q(`fog`,B),r;return e[0]!==t||e[1]!==n?(r=[t,n],e[0]=t,e[1]=n,e[2]=r):r=e[2],r}var X=`(pointer: coarse)`,Z=()=>null;function ne(e){let t=window.matchMedia(X);return t.addEventListener(`change`,e),()=>{t.removeEventListener(`change`,e)}}function re(){return window.matchMedia(X).matches}function ie(){return(0,o.useSyncExternalStore)(ne,re,Z)}var Q=!0,ae=[];function oe(e){Q=e;for(let t of ae)t(e)}function se(){return Q}function ce(e){ae.push(e)}function le(e=1){let t=a.getState().playback.rate;return e*(Q?t:1)}var $=r(),ue=.01,de=32/16e3,fe=1/16e3,pe=256/16e3,me=(0,o.createContext)(null),he=(0,o.createContext)(null),ge=(0,o.createContext)(null);function _e(){let e=(0,o.useContext)(me);if(!e)throw Error(`No SettingsContext found. Did you remember to add a <SettingsProvider>?`);return e}function ve(){let e=(0,o.useContext)(he);if(!e)throw Error(`No DebugContext found. Did you remember to add a <SettingsProvider>?`);return e}function ye(){let e=(0,o.useContext)(ge);if(!e)throw Error(`No ControlsContext found. Did you remember to add a <SettingsProvider>?`);return e}function be({children:e}){let[t,n]=(0,o.useState)(!0),[r,i]=(0,o.useState)(!1),[a,s]=(0,o.useState)(.15),[c,l]=(0,o.useState)(de),[u,d]=(0,o.useState)(90),[f,p]=(0,o.useState)(!1),[m,h]=(0,o.useState)(.75),[g,_]=(0,o.useState)(!0),[v,y]=(0,o.useState)(!0),[b,x]=(0,o.useState)(!1),[S,C]=(0,o.useState)(`moveLookStick`),[w,T]=(0,o.useState)(`MapGenius`),[E,D]=(0,o.useState)(!1),[O,k]=(0,o.useState)(!1),[A,j]=(0,o.useState)(!1),[M,N]=(0,o.useState)(!1),[P,F]=(0,o.useState)(null),[I,L]=(0,o.useState)(!0),[R,z]=(0,o.useState)(!0),[B,V]=(0,o.useState)(!0),[H,U]=(0,o.useState)(!1),[W,G]=te(),K=(0,o.useCallback)(()=>{G(null)},[G]),q=(0,o.useCallback)(e=>{n(e),K()},[K]),J=(0,o.useMemo)(()=>({fogEnabled:W??t,setFogEnabled:q,clearFogEnabledOverride:K,highQualityFog:r,setHighQualityFog:i,fov:u,setFov:d,audioEnabled:f,setAudioEnabled:p,animationEnabled:v,setAnimationEnabled:y,warriorName:w,setWarriorName:T,audioVolume:m,setAudioVolume:h,adjustAudioSpeed:g,setAdjustAudioSpeed:_,sidebarOpen:M,setSidebarOpen:N,fpsLimit:P,setFpsLimit:F,showInputOverlay:I,setShowInputOverlay:L,showChat:R,setShowChat:z,showReticle:B,setShowReticle:V}),[t,W,q,K,r,u,f,v,w,m,g,M,P,I,R,B]),Y=(0,o.useMemo)(()=>({debugMode:b,setDebugMode:x,renderOnDemand:H,setRenderOnDemand:U}),[b,x,H]),ee=(0,o.useMemo)(()=>({speedMultiplier:a,setSpeedMultiplier:s,mouseSensitivity:c,setMouseSensitivity:l,touchMode:S,setTouchMode:C,invertScroll:E,setInvertScroll:D,invertDrag:O,setInvertDrag:k,invertJoystick:A,setInvertJoystick:j}),[a,s,c,S,C,E,O,A]),X=ie();(0,o.useEffect)(()=>{if(X==null)return;let e={};try{e=JSON.parse(localStorage.getItem(`settings`)??`{}`)||{}}catch{}e.debugMode!=null&&x(e.debugMode),e.audioEnabled!=null&&p(e.audioEnabled),e.animationEnabled!=null&&y(e.animationEnabled),e.fogEnabled!=null&&n(e.fogEnabled),e.highQualityFog!=null&&i(e.highQualityFog),e.speedMultiplier!=null&&s(Math.max(ue,Math.min(1,e.speedMultiplier))),e.mouseSensitivity!=null&&l(Math.max(fe,Math.min(pe,e.mouseSensitivity))),e.fov!=null&&d(e.fov),e.touchMode!=null&&C(e.touchMode),e.warriorName!=null&&T(e.warriorName),e.audioVolume!=null&&h(e.audioVolume),e.adjustAudioSpeed!=null&&_(e.adjustAudioSpeed),e.invertScroll!=null&&D(e.invertScroll),e.invertDrag!=null&&k(e.invertDrag),e.invertJoystick!=null&&j(e.invertJoystick),(e.fpsLimit===null||Number.isInteger(e.fpsLimit))&&F(e.fpsLimit),e.showInputOverlay!=null&&L(e.showInputOverlay),e.showChat!=null&&z(e.showChat),e.showReticle!=null&&V(e.showReticle),e.sidebarOpen!=null&&(X||N(e.sidebarOpen))},[X]),(0,o.useEffect)(()=>{oe(g)},[g]);let Z=(0,o.useRef)(null);return(0,o.useEffect)(()=>(Z.current&&clearTimeout(Z.current),Z.current=setTimeout(()=>{let e={fogEnabled:t,highQualityFog:r,speedMultiplier:a,mouseSensitivity:c,fov:u,audioEnabled:f,animationEnabled:v,debugMode:b,touchMode:S,warriorName:w,audioVolume:m,adjustAudioSpeed:g,invertScroll:E,invertDrag:O,invertJoystick:A,sidebarOpen:M,fpsLimit:P,showInputOverlay:I,showChat:R,showReticle:B};try{localStorage.setItem(`settings`,JSON.stringify(e))}catch{}},500),()=>{Z.current&&clearTimeout(Z.current)}),[t,r,a,c,u,f,v,b,S,w,m,g,E,O,A,M,P,I,R,B]),(0,$.jsx)(me.Provider,{value:J,children:(0,$.jsx)(he.Provider,{value:Y,children:(0,$.jsx)(ge.Provider,{value:ee,children:e})})})}export{m as _,_e as a,ce as c,z as d,q as f,c as g,_ as h,ve as i,ie as l,E as m,be as n,se as o,I as p,ye as r,le as s,ue as t,ee as u}; |