t2-mapper/docs/assets/Mission-BRZHUO2H.js
2026-04-08 23:48:42 -07:00

1 line
No EOL
7.4 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{t as i}from"./useQuery-6REtM5HO.js";import{i as a,l as o}from"./loaders-5n1D4iOD.js";import{t as s}from"./logger-B058WGzf.js";import{a as c,i as l,o as u,s as d}from"./manifest-BIDT_vSa.js";import{t as f}from"./stringUtils-1MyeFdQ_.js";import{c as p,l as m,n as h,o as g,r as _,s as v,t as y}from"./mission-yeigCtfF.js";import{r as b}from"./engineStore-B1KAgiiF.js";import{a as x,i as S,n as C,o as w,r as T,s as E,t as D}from"./misToScene-BfuEJI8y.js";import{j as O}from"./index-BZ0wFa-D.js";var k=t(),A=e(m(),1),j=s(`scriptLoader`);function M(){return async e=>{let t;try{t=a(e)}catch(t){return j.warn(`Script not in manifest: %s (%s)`,e,t),null}try{let n=await fetch(t);return n.ok?await n.text():(j.error(`Script fetch failed: %s (%d)`,e,n.status),null)}catch(t){return j.error(`Script fetch error: %s %o`,e,t),null}}}var N=e(n(),1),P=r(),F=(0,N.createContext)(null);function I(e){let t=(0,k.c)(3),{runtime:n,children:r}=e,i;return t[0]!==r||t[1]!==n?(i=(0,P.jsx)(F.Provider,{value:n,children:r}),t[0]=r,t[1]=n,t[2]=i):i=t[2],i}var L=(0,N.createContext)(null).Provider,R=[`scripts/admin.cs`,`scripts/ai.cs`,`scripts/aiBotProfiles.cs`,`scripts/aiBountyGame.cs`,`scripts/aiChat.cs`,`scripts/aiCnH.cs`,`scripts/aiCTF.cs`,`scripts/aiDeathMatch.cs`,`scripts/aiDebug.cs`,`scripts/aiDefaultTasks.cs`,`scripts/aiDnD.cs`,`scripts/aiHumanTasks.cs`,`scripts/aiHunters.cs`,`scripts/aiInventory.cs`,`scripts/aiObjectiveBuilder.cs`,`scripts/aiObjectives.cs`,`scripts/aiRabbit.cs`,`scripts/aiSiege.cs`,`scripts/aiTDM.cs`,`scripts/aiTeamHunters.cs`,`scripts/deathMessages.cs`,`scripts/graphBuild.cs`,`scripts/navGraph.cs`,`scripts/serverTasks.cs`,`scripts/spdialog.cs`];function z(e,t){if(t)return e.state.datablocks.get(t)}function B(e){if(typeof e==`string`){let t=e.toLowerCase();return t!==`0`&&t!==`false`&&t!==``}return!!e}function V(e){let[t,n,r,i]=e.split(` `).map(parseFloat),a=-(i||0)*Math.PI/360,o=Math.sin(a),s=Math.cos(a),c=Math.sqrt((n||0)*(n||0)+(r||0)*(r||0)+(t||0)*(t||0));return c<1e-8?[0,0,0,1]:[(n||0)/c*o,(r||0)/c*o,(t||0)/c*o,s]}function H(e,t,n){let r=e._className,i=String(e._id),a=y(e),o=_(e),s=V(e.rotation??`1 0 0 0`),c=h(e,`dataBlock`)??``,l=z(t,c),u={id:i,className:r,runtimeObject:e,missionTypesList:h(e,`missionTypesList`)},d={...u,position:a,rotation:s,scale:o};switch(r){case`TerrainBlock`:return{...u,renderType:`TerrainBlock`,terrainData:x(e)};case`InteriorInstance`:return{...u,renderType:`InteriorInstance`,interiorData:D(e)};case`Sky`:return{...u,renderType:`Sky`,skyData:T(e)};case`Sun`:return{...u,renderType:`Sun`,sunData:S(e)};case`WaterBlock`:return{...u,renderType:`WaterBlock`,waterData:w(e)};case`MissionArea`:return{...u,renderType:`MissionArea`,missionAreaData:C(e)};case`StaticShape`:case`Item`:case`Turret`:case`TSStatic`:{let i=h(e,`team`);return U(d,e,l,t,r,i!=null&&i!==``?parseInt(i,10):n,c)}case`ForceFieldBare`:return W(d,e,l,o);case`AudioEmitter`:return{...d,renderType:`AudioEmitter`,audioFileName:h(e,`fileName`)??void 0,audioVolume:parseFloat(h(e,`volume`))||1,audioIs3D:(h(e,`is3D`)??`0`)!==`0`,audioIsLooping:(h(e,`isLooping`)??`0`)!==`0`,audioMinDistance:parseFloat(h(e,`minDistance`))||1,audioMaxDistance:parseFloat(h(e,`maxDistance`))||1,audioMinLoopGap:parseFloat(h(e,`minLoopGap`))||0,audioMaxLoopGap:parseFloat(h(e,`maxLoopGap`))||0};case`Camera`:return{...d,renderType:`Camera`,cameraDataBlock:c||void 0};case`WayPoint`:return{...d,renderType:`WayPoint`,label:h(e,`name`)||void 0};default:return null}}function U(e,t,n,r,i,a,o){let s=i===`TSStatic`?h(t,`shapeName`):h(n,`shapeFile`),c=i===`Turret`?`Turret`:i===`Item`?`Item`:i===`TSStatic`?`TSStatic`:`StaticShape`,l={...e,renderType:`Shape`,shapeName:s,shapeType:c,dataBlock:o||void 0,teamId:a};i===`Item`&&(l.rotate=B(h(t,`rotate`)??h(n,`rotate`)),o.toLowerCase()===`flag`&&a!=null&&(l.skinName=f[a]));let u=h(n,`lightType`);if(u){let e={constantlight:1,pulsinglight:2}[u.toLowerCase()];if(e){l.lightType=e;let t=h(n,`lightColor`);if(t){let e=t.split(/\s+/).map(Number);l.lightColor=[e[0]??1,e[1]??1,e[2]??1,e[3]??1]}else l.lightColor=[1,1,1,1];l.lightTime=Number(h(n,`lightTime`))||1e3,l.lightRadius=Number(h(n,`lightRadius`))||10,l.lightOnlyStatic=B(h(n,`lightOnlyStatic`)),l.isStaticItem=i===`Item`}}if(i===`Turret`){let e=h(t,`initialBarrel`);if(e){let t=z(r,e),n=h(t,`shapeFile`);n&&(l.imageSlots=[{shapeName:n,mountPoint:Number(h(t,`mountPoint`))||0,dataBlockId:0}])}}return l}function W(e,t,n,r){let i=h(n,`color`),a=i?E(i):[1,1,1],o=parseFloat(h(n,`baseTranslucency`))||1,s=parseInt(h(n,`numFrames`),10)||1,c=parseFloat(h(n,`framesPerSec`))||1,l=parseFloat(h(n,`scrollSpeed`))||0,u=parseFloat(h(n,`umapping`))||1,d=parseFloat(h(n,`vmapping`))||1,f=[];for(let e=0;e<s;e++){let t=h(n,`texture${e}`);t&&f.push(t)}let p=r??[1,1,1];return{...e,scale:void 0,renderType:`ForceFieldBare`,forceFieldData:{textures:f,color:a,baseTranslucency:o,numFrames:s,framesPerSec:c,scrollSpeed:l,umapping:u,vmapping:d,dimensions:p}}}function G(e,t){if(!t||!e)return!0;let n=e.toLowerCase().split(/\s+/).filter(Boolean);return n.length===0||n.includes(t.toLowerCase())}function K(e,t,n,r){let i=[],a=r;if(e._className===`SimGroup`){if(e._name?.toLowerCase()===`teams`)a=void 0;else if(a===void 0&&e._name){let t=e._name.match(/^team(\d+)$/i);t&&(a=parseInt(t[1],10))}}let o=H(e,t,a);if(o&&G(o.missionTypesList,n)&&i.push(o),e._children)for(let r of e._children)i.push(...K(r,t,n,a));return i}var q=s(`Mission`),J=M(),Y=p(),X={findFiles:e=>{let t=(0,A.default)(e,{nocase:!0});return c().filter(e=>t(e)).map(e=>{let[,t]=d(e);return t})},isFile:e=>u()[l(e)]!=null};function Z(e){let t=(0,k.c)(2),n;return t[0]===e?n=t[1]:(n={queryKey:[`parsedMission`,e],queryFn:()=>o(e)},t[0]=e,t[1]=n),i(n)}function Q(e,t,n){let r=(0,k.c)(6),i;r[0]===Symbol.for(`react.memo_cache_sentinel`)?(i={ready:!1,runtime:void 0,progress:0},r[0]=i):i=r[0];let[a,o]=(0,N.useState)(i),s,c;return r[1]!==e||r[2]!==t||r[3]!==n?(s=()=>{if(!n)return;let r=new AbortController,i=!1,a=null,s=v(),c=()=>{o(e=>({...e,progress:s.progress}))};s.on(`update`,c);let{runtime:l,ready:u}=g({missionName:e,missionType:t,runtimeOptions:{loadScript:J,fileSystem:X,cache:Y,signal:r.signal,progress:s,ignoreScripts:R}});return u.then(()=>{if(i||r.signal.aborted)return;b.getState().setRuntime(l);let n=l.getObjectByName(`MissionGroup`);if(n){let r=K(n,l,t);O.getState().setAllEntities(r),O.getState().setMissionInfo({missionName:e,missionType:t??void 0})}o({ready:!0,runtime:l,progress:1})}).catch(ee),a=l.subscribeRuntimeEvents($),b.getState().setRuntime(l),()=>{i=!0,s.off(`update`,c),r.abort(),a?.(),b.getState().clearRuntime(),O.getState().clearEntities(),l.destroy()}},c=[e,t,n],r[1]=e,r[2]=t,r[3]=n,r[4]=s,r[5]=c):(s=r[4],c=r[5]),(0,N.useEffect)(s,c),a}function $(e){e.type===`batch.flushed`&&b.getState().applyRuntimeBatch(e.events,{tick:e.tick})}function ee(e){e instanceof Error&&e.name===`AbortError`||q.error(`Mission runtime failed to become ready: %o`,e)}var te=(0,N.memo)(function(e){let t=(0,k.c)(13),{name:n,missionType:r,onLoadingChange:i}=e,{data:a}=Z(n),{ready:o,runtime:s,progress:c}=Q(n,r,a),l=!a||!o||!s,u;t[0]!==r||t[1]!==a?(u={metadata:a,missionType:r},t[0]=r,t[1]=a,t[2]=u):u=t[2];let d=u,f,p;if(t[3]!==l||t[4]!==i||t[5]!==c?(f=()=>{i?.(l,c)},p=[l,c,i],t[3]=l,t[4]=i,t[5]=c,t[6]=f,t[7]=p):(f=t[6],p=t[7]),(0,N.useEffect)(f,p),l)return null;let m;t[8]===s?m=t[9]:(m=(0,P.jsx)(I,{runtime:s}),t[8]=s,t[9]=m);let h;return t[10]!==d||t[11]!==m?(h=(0,P.jsx)(L,{value:d,children:m}),t[10]=d,t[11]=m,t[12]=h):h=t[12],h});export{te as Mission};