t2-mapper/docs/assets/Mission-cbpPn20B.js
2026-03-14 17:12:37 -07:00

1 line
No EOL
6.8 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{a as i,i as a,o,s}from"./manifest-CnxBQu_n.js";import{t as c}from"./logger-CiAJCFpz.js";import"./traditional-CVpSAKe0.js";import{c as l,l as u,n as d,o as f,r as p,s as m,t as h}from"./mission-BLbEDC74.js";import{r as g}from"./engineStore-CLELjjpY.js";import{Dt as _,N as v,P as y,Q as b,at as x,ct as S,it as C,lt as w,ot as T,st as E}from"./index-BBAkb8y-.js";var D=e(u(),1),O=t(),k=c(`scriptLoader`);function A(){return async e=>{let t;try{t=v(e)}catch(t){return k.warn(`Script not in manifest: %s (%s)`,e,t),null}try{let n=await fetch(t);return n.ok?await n.text():(k.error(`Script fetch failed: %s (%d)`,e,n.status),null)}catch(t){return k.error(`Script fetch error: %s %o`,e,t),null}}}var j=e(n(),1),M=r(),N=(0,j.createContext)(null);function P(e){let t=(0,O.c)(3),{runtime:n,children:r}=e,i;return t[0]!==r||t[1]!==n?(i=(0,M.jsx)(N.Provider,{value:n,children:r}),t[0]=r,t[1]=n,t[2]=i):i=t[2],i}var F=(0,j.createContext)(null).Provider,I=[`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 L(e,t){if(t)return e.state.datablocks.get(t)}function R(e){if(typeof e==`string`){let t=e.toLowerCase();return t!==`0`&&t!==`false`&&t!==``}return!!e}function z(e){let t=e.split(` `).map(e=>parseFloat(e));return[t[0]??0,t[1]??0,t[2]??0]}function B(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 V(e,t,n){let r=e._className,i=`mission_${e._id}`,a=h(e),o=p(e),s=B(e.rotation??`1 0 0 0`),c=d(e,`dataBlock`)??``,l=L(t,c),u={id:i,className:r,runtimeObject:e,missionTypesList:d(e,`missionTypesList`)},f={...u,position:a,rotation:s,scale:o};switch(r){case`TerrainBlock`:return{...u,renderType:`TerrainBlock`,terrainData:S(e)};case`InteriorInstance`:return{...u,renderType:`InteriorInstance`,interiorData:C(e)};case`Sky`:return{...u,renderType:`Sky`,skyData:T(e)};case`Sun`:return{...u,renderType:`Sun`,sunData:E(e)};case`WaterBlock`:return{...u,renderType:`WaterBlock`,waterData:w(e)};case`MissionArea`:return{...u,renderType:`MissionArea`,missionAreaData:x(e)};case`StaticShape`:case`Item`:case`Turret`:case`TSStatic`:return H(f,e,l,t,r,n,c);case`ForceFieldBare`:return U(f,e,l,o);case`AudioEmitter`:return{...f,renderType:`AudioEmitter`,audioFileName:d(e,`fileName`)??void 0,audioVolume:parseFloat(d(e,`volume`))||1,audioIs3D:(d(e,`is3D`)??`0`)!==`0`,audioIsLooping:(d(e,`isLooping`)??`0`)!==`0`,audioMinDistance:parseFloat(d(e,`minDistance`))||1,audioMaxDistance:parseFloat(d(e,`maxDistance`))||1,audioMinLoopGap:parseFloat(d(e,`minLoopGap`))||0,audioMaxLoopGap:parseFloat(d(e,`maxLoopGap`))||0};case`Camera`:return{...f,renderType:`Camera`,cameraDataBlock:c||void 0};case`WayPoint`:return{...f,renderType:`WayPoint`,label:d(e,`name`)||void 0};default:return null}}function H(e,t,n,r,i,a,o){let s=i===`TSStatic`?d(t,`shapeName`):d(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};if(i===`Item`&&(l.rotate=R(d(t,`rotate`)??d(n,`rotate`))),i===`Turret`){let e=d(t,`initialBarrel`);e&&(l.barrelShapeName=d(L(r,e),`shapeFile`))}return l}function U(e,t,n,r){let i=d(n,`color`),a=i?z(i):[1,1,1],o=parseFloat(d(n,`baseTranslucency`))||1,s=parseInt(d(n,`numFrames`),10)||1,c=parseFloat(d(n,`framesPerSec`))||1,l=parseFloat(d(n,`scrollSpeed`))||0,u=parseFloat(d(n,`umapping`))||1,f=parseFloat(d(n,`vmapping`))||1,p=[];for(let e=0;e<s;e++){let t=d(n,`texture${e}`);t&&p.push(t)}let m=r??[1,1,1];return{...e,scale:void 0,renderType:`ForceFieldBare`,forceFieldData:{textures:p,color:a,baseTranslucency:o,numFrames:s,framesPerSec:c,scrollSpeed:l,umapping:u,vmapping:f,dimensions:m}}}function W(e,t){if(!t||!e)return!0;let n=e.toLowerCase().split(/\s+/).filter(Boolean);return n.length===0||n.includes(t.toLowerCase())}function G(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=V(e,t,a);if(o&&W(o.missionTypesList,n)&&i.push(o),e._children)for(let r of e._children)i.push(...G(r,t,n,a));return i}var K=c(`Mission`),q=A(),J=l(),Y={findFiles:e=>{let t=(0,D.default)(e,{nocase:!0});return i().filter(e=>t(e)).map(e=>{let[,t]=s(e);return t})},isFile:e=>o()[a(e)]!=null};function X(e){let t=(0,O.c)(2),n;return t[0]===e?n=t[1]:(n={queryKey:[`parsedMission`,e],queryFn:()=>y(e)},t[0]=e,t[1]=n),_(n)}function Z(e,t,n){let r=(0,O.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,j.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=m(),c=()=>{o(e=>({...e,progress:s.progress}))};s.on(`update`,c);let{runtime:l,ready:u}=f({missionName:e,missionType:t,runtimeOptions:{loadScript:q,fileSystem:Y,cache:J,signal:r.signal,progress:s,ignoreScripts:I}});return u.then(()=>{if(i||r.signal.aborted)return;g.getState().setRuntime(l);let n=l.getObjectByName(`MissionGroup`);if(n){let r=G(n,l,t);b.getState().setAllEntities(r),b.getState().setMissionInfo({missionName:e,missionType:t??void 0})}o({ready:!0,runtime:l,progress:1})}).catch($),a=l.subscribeRuntimeEvents(Q),g.getState().setRuntime(l),()=>{i=!0,s.off(`update`,c),r.abort(),a?.(),g.getState().clearRuntime(),b.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,j.useEffect)(s,c),a}function Q(e){e.type===`batch.flushed`&&g.getState().applyRuntimeBatch(e.events,{tick:e.tick})}function $(e){e instanceof Error&&e.name===`AbortError`||K.error(`Mission runtime failed to become ready: %o`,e)}var ee=(0,j.memo)(function(e){let t=(0,O.c)(13),{name:n,missionType:r,onLoadingChange:i}=e,{data:a}=X(n),{ready:o,runtime:s,progress:c}=Z(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,j.useEffect)(f,p),l)return null;let m;t[8]===s?m=t[9]:(m=(0,M.jsx)(P,{runtime:s}),t[8]=s,t[9]=m);let h;return t[10]!==d||t[11]!==m?(h=(0,M.jsx)(F,{value:d,children:m}),t[10]=d,t[11]=m,t[12]=h):h=t[12],h});export{ee as Mission};