function _assertThisInitialized(r){if(void 0===r)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return r} function _createForOfIteratorHelperLoose(r,y){var x="undefined"!==typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(x)return(x=x.call(r)).next.bind(x);if(Array.isArray(r)||(x=_unsupportedIterableToArray(r))||y&&r&&"number"===typeof r.length){x&&(r=x);var E=0;return function(){return E>=r.length?{done:!0}:{done:!1,value:r[E++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");} function _unsupportedIterableToArray(r,y){if(r){if("string"===typeof r)return _arrayLikeToArray(r,y);var x=Object.prototype.toString.call(r).slice(8,-1);"Object"===x&&r.constructor&&(x=r.constructor.name);if("Map"===x||"Set"===x)return Array.from(r);if("Arguments"===x||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(x))return _arrayLikeToArray(r,y)}}function _arrayLikeToArray(r,y){if(null==y||y>r.length)y=r.length;for(var x=0,E=Array(y);xd?d:k}function E(k){return k.charAt(0).toUpperCase()+k.substring(1)}function U(k){for(var h=arguments.length,d=Array(1h;h++)d[h+1]+= 16*d[h],d.splice(h,1);else d=(h=k.match(/rgb\(([0-9, ]+)\)/i))?h[1].split(/\s*,\s*/).map(function(a){return parseInt(a)}):[0,0,0];V[k]=d}return d.slice()}function ea(k){for(var h=arguments.length,d=Array(1h;h++)for(a=0;ab;b++)a[b]=Math.round(a[b]+d*(h[b]-k[b]));return a}function ha(k,h,d){void 0===d&&(d=.5);k=W(k);h=W(h);for(var a=0;3>a;a++)k[a]+= d*(h[a]-k[a]);return ia(k)}function W(k){var h=k[0]/255,d=k[1]/255;k=k[2]/255;var a=Math.max(h,d,k),b=Math.min(h,d,k),c=0,e=(a+b)/2;if(a==b)b=0;else{var f=a-b;b=.5d&&(d+=1);1d?h:d<2/3?k+(h-k)*(2/3-d)*6:k}function ia(k){var h=k[2];if(0==k[1])return h=Math.round(255*h),[h,h,h];var d=k[1];d=.5>h?h*(1+d):h+d-h*d;var a=2* h-d;h=X(a,d,k[0]+1/3);var b=X(a,d,k[0]);k=X(a,d,k[0]-1/3);return[Math.round(255*h),Math.round(255*b),Math.round(255*k)]}function oa(k,h,d){var a=k.createShader(k.VERTEX_SHADER);k.shaderSource(a,h);k.compileShader(a);if(!k.getShaderParameter(a,k.COMPILE_STATUS))throw Error(k.getShaderInfoLog(a)||"");h=k.createShader(k.FRAGMENT_SHADER);k.shaderSource(h,d);k.compileShader(h);if(!k.getShaderParameter(h,k.COMPILE_STATUS))throw Error(k.getShaderInfoLog(h)||"");d=k.createProgram();k.attachShader(d,a);k.attachShader(d, h);k.linkProgram(d);if(!k.getProgramParameter(d,k.LINK_STATUS))throw Error(k.getProgramInfoLog(d)||"");return d}function pa(k){var h=new Float32Array([0,0,1,0,0,1,1,1]),d=k.createBuffer();k.bindBuffer(k.ARRAY_BUFFER,d);k.bufferData(k.ARRAY_BUFFER,h,k.STATIC_DRAW);k.enableVertexAttribArray(0);k.vertexAttribPointer(0,2,k.FLOAT,!1,0,0)}function Q(k){if(!(k in Y)){if("transparent"==k)var h=[0,0,0,0];else if(-1d;d++)h[d]/=255}else h= P(k).map(function(a){return a/255}),h.push(1);Y[k]=h}return Y[k]}function Z(k){k=P(k);return 36*Math.floor(.0234375*k[0])+6*Math.floor(.0234375*k[1])+1*Math.floor(.0234375*k[2])+16}function aa(k,h){var d=[],a=0;k.replace(qa,function(c,e,f,g){var l=k.substring(a,g);l.length&&d.push({type:0,value:l});d.push({type:"c"==e?2:3,value:f.trim()});a=g+c.length;return""});var b=k.substring(a);b.length&&d.push({type:0,value:b});return ra(d,h)}function ra(k,h){h||=Infinity;for(var d=0,a=0,b=-1;dh){for(e=-1;;){var f=c.value.indexOf(" ",e+1);if(-1==f)break;if(a+f>h)break;e=f}-1!=e?c.value=R(k,d,e,!0):-1!=b?(d=k[b],c=d.value.lastIndexOf(" "),d.value=R(k,b,c,!0),d=b):c.value=R(k,d,h-a,!1)}else a+=c.value.length, -1!=c.value.indexOf(" ")&&(b=d);d++}else k.splice(d,1)}}k.push({type:1});h=null;for(a=0;ad?1/d:d;this._s0=2.3283064365386963E-10*(d>>>0);d=69069*d+1>>>0;this._s1=2.3283064365386963E-10*d;this._s2=2.3283064365386963E-10*(69069*d+1>>>0);this._c=1;return this};h.getUniform=function(){var d=2091639*this._s0+2.3283064365386963E-10*this._c;this._s0=this._s1;this._s1=this._s2;this._c=d|0;return this._s2= d-this._c};h.getUniformInt=function(d,a){var b=Math.max(d,a);d=Math.min(d,a);return Math.floor(this.getUniform()*(b-d+1))+d};h.getNormal=function(d,a){void 0===d&&(d=0);void 0===a&&(a=1);do{var b=2*this.getUniform()-1;var c=2*this.getUniform()-1;c=b*b+c*c}while(1a|| 0>b||a>=c.width||b>=c.height?[-1,-1]:this._normalizedEventToPosition(a,b)};return h}(M);U.map={s:"toString"};var sa=Object.freeze({__proto__:null,mod:y,clamp:x,capitalize:E,format:U}),S=function(k){function h(){var a=k.call(this)||this;a._spacingX=0;a._spacingY=0;a._hexSize=0;return a}_inheritsLoose(h,k);var d=h.prototype;d.draw=function(a,b){var c=a[2],e=a[3],f=a[4];a=[(a[0]+1)*this._spacingX,a[1]*this._spacingY+this._hexSize];this._options.transpose&&a.reverse();b&&(this._ctx.fillStyle=f,this._fill(a[0], a[1]));if(c)for(this._ctx.fillStyle=e,b=[].concat(c),c=0;cd;d++)for(b=0;bd;d++){for(b=0;bh;h++){for(a=0;ad;d++)k[d]+=h instanceof Array?Math.round(t.getNormal(0,h[d])):h;return k},rgb2hsl:W,hsl2rgb:ia,toRGB:function(k){return"rgb("+k.map(function(h){return x(h,0,255)}).join(",")+")"},toHex:function(k){return"#"+k.map(function(h){return x(h,0,255).toString(16).padStart(2,"0")}).join("")}});var D=function(k){function h(){var a= k.call(this)||this;a._uniforms={};try{a._gl=a._initWebGL()}catch(b){"string"===typeof b?alert(b):b instanceof Error&&alert(b.message)}return a}_inheritsLoose(h,k);h.isSupported=function(){return!!document.createElement("canvas").getContext("webgl2",{preserveDrawingBuffer:!0})};var d=h.prototype;d.schedule=function(a){requestAnimationFrame(a)};d.getContainer=function(){return this._gl.canvas};d.setOptions=function(a){var b=this;k.prototype.setOptions.call(this,a);this._updateSize();var c=this._options.tileSet; c&&"complete"in c&&!c.complete?c.addEventListener("load",function(){return b._updateTexture(c)}):this._updateTexture(c)};d.draw=function(a,b){var c=this._gl,e=this._options,f=a[0],g=a[1],l=a[2],m=a[3];a=a[4];c.scissor(f*e.tileWidth,c.canvas.height-(g+1)*e.tileHeight,e.tileWidth,e.tileHeight);b&&(e.tileColorize?c.clearColor(0,0,0,0):c.clearColor.apply(c,Q(a)),c.clear(c.COLOR_BUFFER_BIT));if(l)for(b=[].concat(l),l=[].concat(a),m=[].concat(m),c.uniform2fv(this._uniforms.targetPosRel,[f,g]),f=0;fa||0>b||a>=c.width||b>=c.height?[-1,-1]:this._normalizedEventToPosition(a,b)};d._initWebGL=function(){var a=this,b=document.createElement("canvas").getContext("webgl2",{preserveDrawingBuffer:!0}); window.gl=b;var c=oa(b,ta,ua);b.useProgram(c);pa(b);va.forEach(function(e){return a._uniforms[e]=b.getUniformLocation(c,e)});this._program=c;b.enable(b.BLEND);b.blendFuncSeparate(b.SRC_ALPHA,b.ONE_MINUS_SRC_ALPHA,b.ONE,b.ONE_MINUS_SRC_ALPHA);b.enable(b.SCISSOR_TEST);return b};d._normalizedEventToPosition=function(a,b){return[Math.floor(a/this._options.tileWidth),Math.floor(b/this._options.tileHeight)]};d._updateSize=function(){var a=this._gl,b=this._options,c=[b.width*b.tileWidth,b.height*b.tileHeight]; a.canvas.width=c[0];a.canvas.height=c[1];a.viewport(0,0,c[0],c[1]);a.uniform2fv(this._uniforms.tileSize,[b.tileWidth,b.tileHeight]);a.uniform2fv(this._uniforms.targetSize,c)};d._updateTexture=function(a){var b=this._gl,c=b.createTexture();b.bindTexture(b.TEXTURE_2D,c);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,b.NEAREST);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,b.NEAREST);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,b.REPEAT);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,b.REPEAT); b.pixelStorei(b.UNPACK_FLIP_Y_WEBGL,0);b.texImage2D(b.TEXTURE_2D,0,b.RGBA,b.RGBA,b.UNSIGNED_BYTE,a)};return h}(M),va="targetPosRel tilesetPosAbs tileSize targetSize colorize bg tint".split(" "),ta="#version 300 es\n\nin vec2 tilePosRel;\nout vec2 tilesetPosPx;\n\nuniform vec2 tilesetPosAbs;\nuniform vec2 tileSize;\nuniform vec2 targetSize;\nuniform vec2 targetPosRel;\n\nvoid main() {\n\tvec2 targetPosPx = (targetPosRel + tilePosRel) * tileSize;\n\tvec2 targetPosNdc = ((targetPosPx / targetSize)-0.5)*2.0;\n\ttargetPosNdc.y *= -1.0;\n\n\tgl_Position = vec4(targetPosNdc, 0.0, 1.0);\n\ttilesetPosPx = tilesetPosAbs + tilePosRel * tileSize;\n}", ua="#version 300 es\nprecision highp float;\n\nin vec2 tilesetPosPx;\nout vec4 fragColor;\nuniform sampler2D image;\nuniform bool colorize;\nuniform vec4 bg;\nuniform vec4 tint;\n\nvoid main() {\n\tfragColor = vec4(0, 0, 0, 1);\n\n\tvec4 texel = texelFetch(image, ivec2(tilesetPosPx), 0);\n\n\tif (colorize) {\n\t\ttexel.rgb = tint.a * tint.rgb + (1.0-tint.a) * texel.rgb;\n\t\tfragColor.rgb = texel.a*texel.rgb + (1.0-texel.a)*bg.rgb;\n\t\tfragColor.a = texel.a + (1.0-texel.a)*bg.a;\n\t} else {\n\t\tfragColor = texel;\n\t}\n}", Y={},z=function(k){function h(){var a=k.call(this)||this;a._offset=[0,0];a._cursor=[-1,-1];a._lastColor="";return a}_inheritsLoose(h,k);var d=h.prototype;d.schedule=function(a){setTimeout(a,1E3/60)};d.setOptions=function(a){k.prototype.setOptions.call(this,a);var b=[a.width,a.height];this._offset=this.computeSize().map(function(c,e){return Math.floor((c-b[e])/2)})};d.clear=function(){process.stdout.write("\u001b[0;48;5;"+Z(this._options.bg)+"m\u001b[2J")};d.draw=function(a,b){var c=a[2],e=a[3],f= a[4],g=this._offset[0]+a[0],l=this._offset[1]+a[1];a=this.computeSize();if(!(0>g||g>=a[0]||0>l||l>=a[1])){if(g!==this._cursor[0]||l!==this._cursor[1])process.stdout.write("\u001b["+(l+1)+";"+(g+1)+"H"),this._cursor[0]=g,this._cursor[1]=l;b&&(c||=" ");c&&(b="\u001b[0;38;5;"+Z(e)+";48;5;"+Z(f)+"m",b!==this._lastColor&&(process.stdout.write(b),this._lastColor=b),"\t"!=c&&(c=[].concat(c),process.stdout.write(c[0])),this._cursor[0]++,this._cursor[0]>=a[0]&&(this._cursor[0]=0,this._cursor[1]++))}};d.computeFontSize= function(){throw Error("Terminal backend has no notion of font size");};d.eventToPosition=function(a,b){return[a,b]};d.computeSize=function(){return[process.stdout.columns,process.stdout.rows]};return h}(M),qa=/%([bc]){([^}]*)}/g;M=Object.freeze({__proto__:null,TYPE_TEXT:0,TYPE_NEWLINE:1,TYPE_FG:2,TYPE_BG:3,measure:function(k,h){var d={width:0,height:1};k=aa(k,h);for(var a=h=0;a>8,17===p||46<=p&&159>=p||172<=p&&215>=p||43360<=m&&43391>=m)){this.draw(g+0,a,v,e,f);this.draw(g+1,a,"\t",e,f);g+=2;continue}p=65280m||65500m||65518this._options.order?d=d.slice(-this._options.order):d.lengtha)return b=this._visibleCoords(0,b,c,e),a=this._visibleCoords(360+a,360,c,e),b||a;for(var f=0;fb[0])return a=this._checkVisibility(a, [a[1],a[1]],c,e),b=this._checkVisibility([0,1],b,c,e),(a+b)/2;for(var f=0,g=!1;fl&&f%2&&(n=!1);if(!n)return 0;g=l-f+1;if(g%2)f%2?(l=e[f],l=(b[0]*l[1]-l[0]*b[1])/(l[1]*b[1]),c&&e.splice(f,g,b)):(l=e[l],l=(l[0]*a[1]-a[0]*l[1])/(a[1]*l[1]),c&&e.splice(f,g,a));else if(f%2)m=e[f], l=e[l],l=(l[0]*m[1]-m[0]*l[1])/(m[1]*l[1]),c&&e.splice(f,g);else return c&&e.splice(f,g,a,b),1;return l/((b[0]*a[1]-a[0]*b[1])/(a[1]*b[1]))};return h}(z);var G=[[-1,0,0,1],[0,-1,1,0],[0,-1,-1,0],[-1,0,0,-1],[1,0,0,-1],[0,1,-1,0],[0,1,1,0],[1,0,0,1]];z=function(k){function h(){return k.apply(this,arguments)||this}_inheritsLoose(h,k);var d=h.prototype;d.compute=function(a,b,c,e){e(a,b,0,1);for(var f=0;f=u;){u+=1;var B= a+u*l+v*m,ba=b+u*n+v*p,na=(u-.5)/(v+.5),ca=(u+.5)/(v-.5);if(!(ca>e)){if(nathis._options.timeLimit)return null;this._map=this._fillMap(1);this._dug=0;this._rooms=[];this._unconnected=[];this._generateRooms();if(!(2>this._rooms.length)&&this._generateCorridors())break}if(a)for(b= 0;bthis._options.roomDugPercentage)break}while(c)};d._generateRoom=function(){for(var a=0;a=l&&f[c]<=m){e=f.slice();l=0;switch(g){case 0:l=b.getTop()-1;break;case 1:l=b.getRight()+1;break;case 2:l=b.getBottom()+1;break;case 3:l=b.getLeft()-1}e[(c+1)%2]=l;this._digLine([f,e])}else if(f[c]m+1){e=f[c]-e[c];l=0;switch(g){case 0:case 1:l=0>e?3:1;break;case 2:case 3:l=0>e?1:3}e=this._placeInWall(b,(g+l)%4);if(!e)return!1;g=[0,0];g[c]=f[c];c=(c+1)%2;g[c]=e[c];this._digLine([f,g,e])}else{l=(c+1)%2;e=this._placeInWall(b,g);if(!e)return!1; g=Math.round((e[l]+f[l])/2);m=[0,0];var n=[0,0];m[c]=f[c];m[l]=g;n[c]=e[c];n[l]=g;this._digLine([f,m,n,e])}a.addDoor(f[0],f[1]);b.addDoor(e[0],e[1]);c=this._unconnected.indexOf(a);-1!=c&&(this._unconnected.splice(c,1),this._connected.push(a));c=this._unconnected.indexOf(b);-1!=c&&(this._unconnected.splice(c,1),this._connected.push(b));return!0};d._placeInWall=function(a,b){var c=[0,0],e=[0,0],f=0;switch(b){case 0:e=[1,0];c=[a.getLeft(),a.getTop()-1];f=a.getRight()-a.getLeft()+1;break;case 1:e=[0, 1];c=[a.getRight()+1,a.getTop()];f=a.getBottom()-a.getTop()+1;break;case 2:e=[1,0];c=[a.getLeft(),a.getBottom()+1];f=a.getRight()-a.getLeft()+1;break;case 3:e=[0,1],c=[a.getLeft()-1,a.getTop()],f=a.getBottom()-a.getTop()+1}a=[];b=-2;for(var g=0;ga||0>b||a>=this._width||b>=this._height?!1:1==this._map[a][b]};d._canBeDugCallback=function(a,b){return 1>a||1>b||a+1>=this._width||b+1>=this._height?!1:1==this._map[a][b]};return h}(L);var I=function(k){function h(a,b,c){void 0===c&&(c={});a=k.call(this,a,b)||this;a._options={born:[5,6,7,8],survive:[4, 5,6,7,8],topology:8};a.setOptions(c);a._dirs=C[a._options.topology];a._map=a._fillMap(0);return a}_inheritsLoose(h,k);var d=h.prototype;d.randomize=function(a){for(var b=0;bg||g>=this._width|| 0>f||f>=this._height||(c+=1==this._map[g][f]?1:0)}return c};d.connect=function(a,b,c){b||=0;var e=[],f={},g=1,l=[0,0];6==this._options.topology&&(g=2,l=[0,1]);for(var m=0;mm&&!(g.lengthf);m++);return[c,e]};d._getClosest=function(a,b){var c=null,e=null,f;for(f in b){var g=b[f],l=(g[0]-a[0])*(g[0]-a[0])+(g[1]-a[1])*(g[1]-a[1]);if(null==e||lm[1]&&(l--,p=1);n=nm[0]?n-p:m[1]%2?n-p:n+p;this._map[n][l]=f;p=[n,l];var q=this._pointKey(p);c[q]=p;delete e[q]}g&&g(b,a)};d._freeSpace=function(a,b,c){return 0<=a&&athis._options.timeLimit)break;var f=this._findWall();if(!f)break;var g=f.split(",");f=parseInt(g[0]);g=parseInt(g[1]);var l=this._getDiggingDirection(f,g);if(l){var m=0;do if(m++,this._tryFeature(f,g,l[0],l[1])){this._removeSurroundingWalls(f,g); this._removeSurroundingWalls(f-l[0],g-l[1]);break}while(ma||0>b||a>=this._width||b>=this._height?!1:1== this._map[a][b]};d._canBeDugCallback=function(a,b){return 1>a||1>b||a+1>=this._width||b+1>=this._height?!1:1==this._map[a][b]};d._priorityWallCallback=function(a,b){this._walls[a+","+b]=2};d._firstRoom=function(){var a=T.createRandomCenter(Math.floor(this._width/2),Math.floor(this._height/2),this._options);this._rooms.push(a);a.create(this._digCallback)};d._findWall=function(){var a=[],b=[],c;for(c in this._walls)2==this._walls[c]?b.push(c):a.push(c);a=b.length?b:a;if(!a.length)return null;a=t.getItem(a.sort()); delete this._walls[a];return a};d._tryFeature=function(a,b,c,e){var f=t.getWeightedValue(this._features);a=ya[f].createRandomAt(a,b,c,e,this._options);if(!a.isValid(this._isWallCallback,this._canBeDugCallback))return!1;a.create(this._digCallback);a instanceof T&&this._rooms.push(a);a instanceof da&&(a.createPriorityWalls(this._priorityWallCallback),this._corridors.push(a));return!0};d._removeSurroundingWalls=function(a,b){for(var c=C[4],e=0;e=a||0>=b||a>=this._width-1||b>=this._height-1)return null;for(var c=null,e=C[4],f=0;fp;p++){var q=l+2*g[p][0];var u=m+2*g[p][1];if(this._isFree(e, q,u,b,c)){e[q][u]=0;e[l+g[p][0]][m+g[p][1]]=0;l=q;m=u;n=!1;f++;break}}}while(!n)}}while(f+1b;b++)a[b][0]=0,a[b][1]=0;switch(Math.floor(4*t.getUniform())){case 0:a[0][0]=-1;a[1][0]=1;a[2][1]=-1;a[3][1]=1;break;case 1:a[3][0]=-1;a[2][0]=1;a[1][1]=-1;a[0][1]=1;break;case 2:a[2][0]=-1;a[3][0]=1;a[0][1]=-1;a[1][1]=1;break;case 3:a[1][0]=-1,a[0][0]=1,a[3][1]=-1,a[2][1]= 1}};d._isFree=function(a,b,c,e,f){return 1>b||1>c||b>=e||c>=f?!1:a[b][c]};return h}(z);z=function(k){function h(a,b,c){a=k.call(this,a,b)||this;a.map=[];a.rooms=[];a.connectedCells=[];c=Object.assign({cellWidth:3,cellHeight:3},c);c.hasOwnProperty("roomWidth")||(c.roomWidth=a._calculateRoomSize(a._width,c.cellWidth));c.hasOwnProperty("roomHeight")||(c.roomHeight=a._calculateRoomSize(a._height,c.cellHeight));a._options=c;return a}_inheritsLoose(h,k);var d=h.prototype;d.create=function(a){this.map=this._fillMap(1); this.rooms=[];this.connectedCells=[];this._initRooms();this._connectRooms();this._connectUnconnectedRooms();this._createRandomRoomConnections();this._createRooms();this._createCorridors();if(a)for(var b=0;ba&&(a=2);2>c&&(c=2);return[a,c]};d._initRooms=function(){for(var a=0;ag||g>=this._options.cellWidth||0>f||f>=this._options.cellHeight)){var l=this.rooms[a][b];if(0p||p>=a||0>n||n>=b)){e=this.rooms[p][n];f=!0;if(0==e.connections.length)break;for(p=0;pu-(v.y+v.height);)u++;if(0q-(v.x+v.width);)q++;v=Math.round(t.getUniformInt(0,f-l)/2);for(var B=Math.round(t.getUniformInt(0,g-m)/2);q+v+l>=a;)v?v--:l--;for(;u+B+m>=b;)B?B--:m--;q+=v;u+=B;this.rooms[w][A].x=q;this.rooms[w][A].y= u;this.rooms[w][A].width=l;this.rooms[w][A].height=m;for(v=q;vc.cellx?(f=2,g=4):e.cellxc.celly?(f=3,g=1):(f=1,g=3),this._drawCorridor(this._getWallPosition(c,f),this._getWallPosition(e,g))}};return h}(z);D={Arena:D,Uniform:H,Cellular:I,Digger:L,EllerMaze:za,DividedMaze:Aa,IceyMaze:Ba,Rogue:z};var Ca=.5*(Math.sqrt(3)-1),O=(3-Math.sqrt(3))/6;z={Simplex:function(k){function h(d){void 0===d&&(d=256);var a=k.call(this)||this;a._gradients=[[0,-1],[1,-1],[1,0],[1,1],[0,1],[-1,1],[-1,0],[-1, -1]];for(var b=[],c=0;cu){var v=1;var w=0}else v=0,w=1;q=m-v+O;var A=u-w+O;a=m-1+2*O;d=u-1+2*O;n=y(n,e);e=y(p,e);var B=.5-m*m-u*u;0<=B&&(B*=B, p=c[n+b[e]],f=this._gradients[p],f=B*B*(f[0]*m+f[1]*u));m=.5-q*q-A*A;0<=m&&(m*=m,p=c[n+v+b[e+w]],g=this._gradients[p],g=m*m*(g[0]*q+g[1]*A));m=.5-a*a-d*d;0<=m&&(m*=m,p=c[n+1+b[e+1]],b=this._gradients[p],l=m*m*(b[0]*a+b[1]*d));return 70*(f+g+l)};return h}(function(){})};I=function(){function k(h,d,a,b){void 0===b&&(b={});this._toX=h;this._toY=d;this._passableCallback=a;this._options=Object.assign({topology:8},b);this._dirs=C[this._options.topology];8==this._options.topology&&(this._dirs=[this._dirs[0], this._dirs[2],this._dirs[4],this._dirs[6],this._dirs[1],this._dirs[3],this._dirs[5],this._dirs[7]])}k.prototype._getNeighbors=function(h,d){for(var a=[],b=0;bm;m++){var n=Math.round(e[m]*f);g[m]=n;l+=n}l>this._options.emissionThreshold&&(b[c]=g)}}return b};h._emitLightFromCell=function(d,a,b,c){var e=d+","+a;d=e in this._fovCache? this._fovCache[e]:this._updateFOV(d,a);for(var f in d){a=d[f];f in c?e=c[f]:(e=[0,0,0],c[f]=e);for(var g=0;3>g;g++)e[g]+=Math.round(b[g]*a)}return this};h._updateFOV=function(d,a){var b={};this._fovCache[d+","+a]=b;var c=this._options.range;this._fov.compute(d,a,c,function(e,f,g,l){g=l*(1-g/c);0!=g&&(b[e+","+f]=g)}.bind(this));return b};return k}();r.Color=N;r.DEFAULT_HEIGHT=25;r.DEFAULT_WIDTH=80;r.DIRS=C;r.Display=K;r.Engine=I;r.EventQueue=ma;r.FOV=F;r.KEYS={VK_CANCEL:3,VK_HELP:6,VK_BACK_SPACE:8, VK_TAB:9,VK_CLEAR:12,VK_RETURN:13,VK_ENTER:14,VK_SHIFT:16,VK_CONTROL:17,VK_ALT:18,VK_PAUSE:19,VK_CAPS_LOCK:20,VK_ESCAPE:27,VK_SPACE:32,VK_PAGE_UP:33,VK_PAGE_DOWN:34,VK_END:35,VK_HOME:36,VK_LEFT:37,VK_UP:38,VK_RIGHT:39,VK_DOWN:40,VK_PRINTSCREEN:44,VK_INSERT:45,VK_DELETE:46,VK_0:48,VK_1:49,VK_2:50,VK_3:51,VK_4:52,VK_5:53,VK_6:54,VK_7:55,VK_8:56,VK_9:57,VK_COLON:58,VK_SEMICOLON:59,VK_LESS_THAN:60,VK_EQUALS:61,VK_GREATER_THAN:62,VK_QUESTION_MARK:63,VK_AT:64,VK_A:65,VK_B:66,VK_C:67,VK_D:68,VK_E:69,VK_F:70, VK_G:71,VK_H:72,VK_I:73,VK_J:74,VK_K:75,VK_L:76,VK_M:77,VK_N:78,VK_O:79,VK_P:80,VK_Q:81,VK_R:82,VK_S:83,VK_T:84,VK_U:85,VK_V:86,VK_W:87,VK_X:88,VK_Y:89,VK_Z:90,VK_CONTEXT_MENU:93,VK_NUMPAD0:96,VK_NUMPAD1:97,VK_NUMPAD2:98,VK_NUMPAD3:99,VK_NUMPAD4:100,VK_NUMPAD5:101,VK_NUMPAD6:102,VK_NUMPAD7:103,VK_NUMPAD8:104,VK_NUMPAD9:105,VK_MULTIPLY:106,VK_ADD:107,VK_SEPARATOR:108,VK_SUBTRACT:109,VK_DECIMAL:110,VK_DIVIDE:111,VK_F1:112,VK_F2:113,VK_F3:114,VK_F4:115,VK_F5:116,VK_F6:117,VK_F7:118,VK_F8:119,VK_F9:120, VK_F10:121,VK_F11:122,VK_F12:123,VK_F13:124,VK_F14:125,VK_F15:126,VK_F16:127,VK_F17:128,VK_F18:129,VK_F19:130,VK_F20:131,VK_F21:132,VK_F22:133,VK_F23:134,VK_F24:135,VK_NUM_LOCK:144,VK_SCROLL_LOCK:145,VK_CIRCUMFLEX:160,VK_EXCLAMATION:161,VK_DOUBLE_QUOTE:162,VK_HASH:163,VK_DOLLAR:164,VK_PERCENT:165,VK_AMPERSAND:166,VK_UNDERSCORE:167,VK_OPEN_PAREN:168,VK_CLOSE_PAREN:169,VK_ASTERISK:170,VK_PLUS:171,VK_PIPE:172,VK_HYPHEN_MINUS:173,VK_OPEN_CURLY_BRACKET:174,VK_CLOSE_CURLY_BRACKET:175,VK_TILDE:176,VK_COMMA:188, VK_PERIOD:190,VK_SLASH:191,VK_BACK_QUOTE:192,VK_OPEN_BRACKET:219,VK_BACK_SLASH:220,VK_CLOSE_BRACKET:221,VK_QUOTE:222,VK_META:224,VK_ALTGR:225,VK_WIN:91,VK_KANA:21,VK_HANGUL:21,VK_EISU:22,VK_JUNJA:23,VK_FINAL:24,VK_HANJA:25,VK_KANJI:25,VK_CONVERT:28,VK_NONCONVERT:29,VK_ACCEPT:30,VK_MODECHANGE:31,VK_SELECT:41,VK_PRINT:42,VK_EXECUTE:43,VK_SLEEP:95};r.Lighting=L;r.Map=D;r.Noise=z;r.Path=H;r.RNG=t;r.Scheduler=J;r.StringGenerator=S;r.Text=M;r.Util=sa;Object.defineProperty(r,"__esModule",{value:!0})});