screeps-client 0.7.0 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/embedded/_client/{CodePanel-CVrM6x4v.js → CodePanel-DQ-gtCIA.js} +1 -1
  2. package/dist/embedded/_client/MapViewer-CBzlhSR4.js +1 -0
  3. package/dist/embedded/_client/index-B_26EkhX.js +19 -0
  4. package/dist/{standalone/_client/terrain.worker-BgNTQAMk.js → embedded/_client/terrain.worker-CiQZPqa4.js} +1 -1
  5. package/dist/embedded/_client/{vendor-pixi-DseA5gVO.js → vendor-pixi-Df5Nob1b.js} +1 -1
  6. package/dist/embedded/index.html +2 -2
  7. package/dist/embedded/themes/default/test.json +83 -11
  8. package/dist/embedded/themes/default/test.png +0 -0
  9. package/dist/standalone/_client/{CodePanel-CwVNxrB0.js → CodePanel-DDVe4v82.js} +1 -1
  10. package/dist/standalone/_client/MapViewer-ChA27vix.js +1 -0
  11. package/dist/standalone/_client/index-D3lZ5ALP.js +19 -0
  12. package/dist/{xxscreeps-mod/_client/terrain.worker-BgNTQAMk.js → standalone/_client/terrain.worker-CiQZPqa4.js} +1 -1
  13. package/dist/standalone/_client/{vendor-pixi-_F6CfCZH.js → vendor-pixi-NbxvK8iu.js} +1 -1
  14. package/dist/standalone/index.html +2 -2
  15. package/dist/standalone/themes/default/test.json +83 -11
  16. package/dist/standalone/themes/default/test.png +0 -0
  17. package/dist/xxscreeps-mod/_client/{CodePanel-D6kl0sq1.js → CodePanel-4SfZ7lcX.js} +1 -1
  18. package/dist/xxscreeps-mod/_client/MapViewer-CRlkqmaa.js +1 -0
  19. package/dist/xxscreeps-mod/_client/index-DheecpH5.js +19 -0
  20. package/dist/{embedded/_client/terrain.worker-BgNTQAMk.js → xxscreeps-mod/_client/terrain.worker-CiQZPqa4.js} +1 -1
  21. package/dist/xxscreeps-mod/_client/{vendor-pixi-DoK_ycfH.js → vendor-pixi-DCKL8Yf2.js} +1 -1
  22. package/dist/xxscreeps-mod/index.html +2 -2
  23. package/dist/xxscreeps-mod/themes/default/test.json +83 -11
  24. package/dist/xxscreeps-mod/themes/default/test.png +0 -0
  25. package/package.json +1 -1
  26. package/dist/embedded/_client/MapViewer-COMbpdgT.js +0 -1
  27. package/dist/embedded/_client/index-DDx5QnXZ.js +0 -19
  28. package/dist/standalone/_client/MapViewer-B3Ow_Bmv.js +0 -1
  29. package/dist/standalone/_client/index-q2IQJ_hs.js +0 -19
  30. package/dist/xxscreeps-mod/_client/MapViewer-B2pRqyZI.js +0 -1
  31. package/dist/xxscreeps-mod/_client/index-DGByyYWv.js +0 -19
@@ -1 +0,0 @@
1
- import{T as e,h as t,w as n,y as r}from"./vendor-codemirror-B_kaIH0M.js";import{S as i,a,c as o,d as s,f as c,g as l,h as u,i as d,l as f,m as p,n as m,o as h,p as g,r as _,s as v,t as y,u as b,x}from"./index-q2IQJ_hs.js";var S=x(`<div style=width:100%;height:100%;position:relative><canvas style=display:block>`),{log:C,error:w}=l(`map`);function T(l){let x,T=null,[E,D]=r([]),[O,k]=r(1),[A,j]=r(l.originRoom??null),M=null,N=null,P=new Map,F=new Map,I=new Map,L=new Map,R=e=>{let t=u();if(!t)return!0;let n=o(e);return!!n&&v(n.x,n.y,t)},z=e=>{let t=F.get(e);return{room:e,owner:t?.username??(t?.own?.user?`user:${t.own.user}`:null),mineral:t?.mineral??null,density:t?.density??null}},B=[],V=null,H=()=>{V=null;let e=c();if(!e||!T)return;let t=new Set(E());if(B=B.filter(e=>t.has(e)&&!T.hasRoom(e)),B.length===0)return;let n=B.splice(0,200);e.stores.room.terrainBulk(n,l.shard).then(e=>{for(let[t,n]of e){T?.setRoomTerrain(t,n);let e=I.get(t);e!==void 0&&T?.setRoomOwned(t,e)}for(let t of n)e.has(t)||T?.markRoomFetched(t)}).catch(e=>w(`terrain fetch failed:`,e)).finally(()=>{B.length>0&&(V=setTimeout(H,0))})};return t(()=>{c(),l.shard,F.clear(),I.clear()}),e(()=>{x&&(async()=>{if(T=new y({onRoomHover:e=>{l.onHoveredRoomChanged?.(e?z(e):null)},onRoomClick:e=>{A()===e?R(e)&&setTimeout(()=>l.onNavigateToRoom(e),0):(j(e),T?.setSelectedRoom(e),l.onSelectedRoomChanged?.(z(e)))},onVisibleRoomsChanged:e=>{let t=e.length===0;N!==t&&(N=t,C(t?`zoom out — too many rooms visible, terrain loading paused`:`zoom in — terrain loading active, ${e.length} rooms visible`)),D(e)},onZoomChanged:e=>{k(e),l.onZoomChanged?.(e)}}),await T.init(x),!T)return;l.initialZoom!==void 0&&l.initialZoom>0&&T.setZoom(l.initialZoom),l.onZoomChanged?.(T.zoom);let e=u();if(e&&T.setBounds(e.minX,e.maxX,e.minY,e.maxY),l.originRoom){let e=o(l.originRoom);e&&T.centerOn(e.x,e.y),T.setSelectedRoom(l.originRoom),l.onSelectedRoomChanged?.(z(l.originRoom))}else{let e=c();if(e)try{let t=await e.http.user.worldStartRoom(l.shard??`shard0`);if(!T)return;let n=Array.isArray(t?.room)?t.room[0]:t?.room;if(typeof n==`string`){let e=o(n);e&&T.centerOn(e.x,e.y)}}catch(e){w(`worldStartRoom failed:`,e)}}})()}),n(()=>{V!==null&&(clearTimeout(V),V=null),B=[];for(let e of P.values())e.dispose();P.clear(),T?.destroy(),T=null}),t(()=>{_({currentRoom:A,worldBounds:u,onMove:(e,t)=>{let n=d(e,t);j(n),T?.setSelectedRoom(n),T?.centerOn(e,t,!0),l.onSelectedRoomChanged?.(z(n)),l.onHoveredRoomChanged?.(z(n))}});let e=e=>{let t=e.target?.tagName??``,n=e.target?.isContentEditable??!1;if(!(t===`INPUT`||t===`TEXTAREA`||n)&&e.key===`m`){let e=A();e&&R(e)&&l.onNavigateToRoom(e)}};window.addEventListener(`keydown`,e),n(()=>window.removeEventListener(`keydown`,e))}),t(()=>{let e=c(),t=E(),n=l.shard;if(!e||t.length===0)return;let r=new Set(t),i=t.filter(e=>!T?.hasRoom(e));if(i.length>0){let e=t.reduce((e,t)=>e+(o(t)?.x??0),0)/t.length,n=t.reduce((e,t)=>e+(o(t)?.y??0),0)/t.length;B=i.slice().sort((t,r)=>{let i=o(t),a=o(r);return(i?Math.abs(i.x-e)+Math.abs(i.y-n):999)-(a?Math.abs(a.x-e)+Math.abs(a.y-n):999)}),V===null&&(V=setTimeout(H,0))}e.stores.mapStats.request(t,`owner0`,n??void 0);let a=O()>=.4;if(a!==M&&(M=a,l.onSubscriptionStateChanged?.(a),a||T?.clearAllMap2()),a){let r=new Set(t.map(e=>`${e}/${n}`));for(let[e,t]of P)r.has(e)||(t.dispose(),P.delete(e),T?.clearRoomMap2(e.split(`/`)[0]));for(let r of t){let t=`${r}/${n}`;P.has(t)||P.set(t,e.stores.map.subscribeMap2(r,n))}}else{for(let[,e]of P)e.dispose();P.clear()}T?.clearInvisibleRooms(r)}),t(()=>{T?.setShowRoomNames(f()),T&&(T.currentShard=l.shard??`shard0`)}),t(()=>{T?.setUnclaimableOverlayVisible(s())}),t(()=>{T?.setMapVisualVisible(b())}),t(()=>{T?.setOverlayMode(m())}),t(()=>{let e=c(),t=l.shard;e&&e.stores.server.worldInfo(t??void 0).then(e=>{C(`worldInfo(shard=${t??`none`}) — x: [${e.minX}, ${e.maxX}] y: [${e.minY}, ${e.maxY}]`),g(e)}).catch(e=>{C(`worldInfo(shard=${t??`none`}) failed:`,e)})}),t(()=>{T?.setCurrentUser(p()?._id??null)}),t(()=>{let e=u();e?(T?.setBounds(e.minX,e.maxX,e.minY,e.maxY),C(`worldBounds applied — shard: ${l.shard??`none`} x: [${e.minX}, ${e.maxX}] y: [${e.minY}, ${e.maxY}] (fetched for shard: ${e.shard??`none`})`)):(T?.clearBounds(),C(`worldBounds — none (shard: ${l.shard??`none`})`))}),t(()=>{let e=c();if(!e)return;let t=e.stores.user.subscribeMapVisual(l.shard),r=e.stores.user.on(`user:mapVisual`,({shard:e,data:t})=>{e===l.shard&&(t?T?.setMapVisual(t):T?.clearMapVisual())});n(()=>{t.dispose(),r.dispose()})}),t(()=>{let e=c();if(!e)return;let t=e.stores.map.on(`room:map2update`,({room:e,shard:t,data:n,source:r})=>{t===l.shard&&T?.setRoomMap2(e,n,r)});n(()=>t.dispose())}),t(()=>{let e=c();if(!e)return;let t=p()?._id,r=new Set(E()),i=e.stores.mapStats.on(`mapStats:room`,({room:e,stat:n})=>{F.set(e,n);let i=o(e),s=i?a(i.x,i.y)||h(i.x,i.y):!1,c=n.status===`out of borders`,u=!!(n.own&&n.own.user===t),d=!!(n.own&&n.own.user!==t),f=u?`own`:s||c||d?`other`:`none`;I.set(e,f),r.has(e)&&(T?.setRoomOwned(e,f),T?.setRoomSafeMode(e,!!n.safeMode)),T?.setRoomMineral(e,n.mineral,n.density);let p=n.badge?JSON.stringify(n.badge):``;L.get(e)!==p&&(L.set(e,p),T?.setRoomBadge(e,n.badge,n.own?.level)),A()===e&&l.onSelectedRoomChanged?.(z(e))});n(()=>i.dispose())}),(()=>{var e=S(),t=e.firstChild;return i(e=>x=e,t),e})()}export{T as MapViewer};