1class f{walls;constructor(t=[]){this.walls=t}blockedCircle(t,s,i){for(const e of this.walls){const o=Math.max(e.x,Math.min(t,e.x+e.w)),n=Math.max(e.y,Math.min(s,e.y+e.h)),l=t-o,c=s-n;if(l*l+c*c<i*i)return e}return null}resolveMove(t,s,i,e,o){let n=t+i,l=s,c=!1,r=!1;return this.blockedCircle(n,l,o)&&(n=t,c=!0),l=l+e,this.blockedCircle(n,l,o)&&(l=s,r=!0),{x:n,y:l,hitX:c,hitY:r}}raycast(t,s,i,e,o=2){const n=i-t,l=e-s,c=Math.hypot(n,l);if(c<.01)return this.blockedCircle(i,e,o);const r=Math.max(1,Math.ceil(c/6));for(let a=1;a<=r;a++){const h=a/r,u=this.blockedCircle(t+n*h,s+l*h,o);if(u)return u}return null}isSafeSpawn(t,s,i=24){return!this.blockedCircle(t,s,i)}}export{f as T};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.