import{l as X,h as k,u as z}from"./schema-B1NKxfZc.js";import{R as S,e as $}from"./renderer-RXgfjzGs.js";import{S as C,c as Y,s as L}from"./sprite-view-Br3916N3.js";import{G as N}from"./Graphics-D2W9cmNd.js";import{T as A}from"./Text-BDlPy57P.js";import"./getTextureBatchBindGroup-TFzx8Qrc.js";import"./Geometry-BsDB1n4r.js";import"./colorToUniform-DJvpt7jY.js";import"./CanvasPool-DPxrIPT6.js";import"./canvasUtils-CoosSawB.js";import"./BatchableSprite-qOYjpB38.js";import"./getPo2TextureFromSource-D6E6088W.js";async function E(){const m=await X(),r=new URLSearchParams(location.search),d=Number(r.get("map")??4),e=new S(m.assetBase);await e.init(document.getElementById("game")),window.__r=e;const y=k("div.hud",{},"loading…");z().append(y),await e.map.setMap(d);const l=e.map.index.bounds;let f=Number(r.get("x")??Math.floor((l.minX+l.maxX)/2)),g=Number(r.get("y")??Math.floor((l.minY+l.maxY)/2));e.lookAt(f,g);const h=new N;e.overhead.addChild(h);let i=null;const x=r.get("sprite");if(x){i=new C(e.sprites),await i.setSprite(Number(x));const a=Number(r.get("sx")??f),n=Number(r.get("sy")??g),t=Y(a-e.map.originX,n-e.map.originY);i.position.set(t.X-48,t.Y),i.zIndex=$(a-e.map.originX,n-e.map.originY),i.play(Number(r.get("action")??3)),i.setHeading(Number(r.get("heading")??4)),e.map.depth.addChild(i)}let p=!1;const b=async()=>{if(!p){p=!0;try{const{want:a,keep:n}=e.wantedSectors(1);await e.map.sync(a,n)}finally{p=!1}}};await b();const w=e.app.canvas;let s=null;w.addEventListener("mousedown",a=>{s={x:a.clientX,y:a.clientY,cx:e.camera.x,cy:e.camera.y}}),window.addEventListener("mouseup",()=>{s=null}),w.addEventListener("mousemove",a=>{s&&e.camera.setCenter(s.cx-(a.clientX-s.x)/e.camera.zoom,s.cy-(a.clientY-s.y)/e.camera.zoom);const n=e.camera.screenToWorld(a.clientX,a.clientY),t=L(n.x,n.y),o=Y(t.lx,t.ly);h.clear().poly([o.X-48,o.Y+24,o.X,o.Y,o.X+48,o.Y+24,o.X,o.Y+48]).stroke({color:16776960,width:1}),y.textContent=`map ${d}  cell ${t.lx+e.map.originX},${t.ly+e.map.originY}  blocked=${e.map.blocked(t.lx+e.map.originX,t.ly+e.map.originY)}  sectors ${e.map.sectors.size}  zoom ${e.camera.zoom.toFixed(2)}  fps ${e.app.ticker.FPS.toFixed(0)}`}),w.addEventListener("wheel",a=>{a.preventDefault(),e.camera.setZoom(e.camera.zoom*(a.deltaY>0?.9:1.1))},{passive:!1});const c=new Set;window.addEventListener("keydown",a=>c.add(a.key)),window.addEventListener("keyup",a=>c.delete(a.key));let u=0;e.onTick(a=>{const n=900*a/1e3/e.camera.zoom;let t=0,o=0;c.has("ArrowLeft")&&(t-=n),c.has("ArrowRight")&&(t+=n),c.has("ArrowUp")&&(o-=n),c.has("ArrowDown")&&(o+=n),(t||o)&&e.camera.setCenter(e.camera.x+t,e.camera.y+o),i?.update(a),e.map.cull(e.camera.bounds(256),e.camera.bounds(0)),u+=a,u>250&&(u=0,b())});const v=new A({text:`map ${d}`,style:{fill:16777215,fontSize:12}});v.visible=!1,e.overhead.addChild(v)}E().catch(m=>{console.error(m),document.body.insertAdjacentText("beforeend",`fatal: ${m.message}`)});
