Files
lifeRestart/public/libs/laya/min/laya.tiledmap.min.js

1 line
31 KiB
JavaScript

!function(g){g.un,g.uns,g.static;var a=g.class,i=g.getset,s=(g.__newvec,laya.utils.Browser),o=laya.resource.HTMLCanvas,c=(laya.utils.Handler,laya.net.Loader),_=laya.maths.Point,h=laya.maths.Rectangle,d=laya.renders.Render,l=laya.renders.RenderContext,e=laya.display.Sprite,u=laya.resource.Texture,t=function(){var r,p,m;function s(){this._jsonData=null,this._tileTexSetArr=[],this._texArray=[],this._x=0,this._y=0,this._width=0,this._height=0,this._mapW=0,this._mapH=0,this._mapTileW=0,this._mapTileH=0,this._mapSprite=null,this._layerArray=[],this._renderLayerArray=[],this._gridArray=[],this._showGridKey=!1,this._totalGridNum=0,this._gridW=0,this._gridH=0,this._gridWidth=450,this._gridHeight=450,this._jsonLoader=null,this._loader=null,this._tileSetArray=[],this._currTileSet=null,this._completeHandler=null,this._index=0,this._animationDic={},this._properties=null,this._tileProperties={},this._tileProperties2={},this._orientation="orthogonal",this._renderOrder="right-down",this._colorArray=["FF","00","33","66"],this._scale=1,this._pivotScaleX=.5,this._pivotScaleY=.5,this._centerX=0,this._centerY=0,this._viewPortX=0,this._viewPortY=0,this._viewPortWidth=0,this._viewPortHeight=0,this._enableLinear=!0,this._resPath=null,this._pathArray=null,this._limitRange=!1,this._fastDirty=!0,this.autoCache=!0,this.autoCacheType="normal",this.enableMergeLayer=!1,this.removeCoveredTile=!1,this.showGridTextureCount=!1,this.antiCrack=!0,this.cacheAllAfterInit=!1,this._texutreStartDic={},this._rect=new h,this._paddingRect=new h,this._mapRect=new r,this._mapLogicRect=new r,this._mapLastRect=new r,this._mapSprite=new e}a(s,"laya.map.TiledMap");var t=s.prototype;return t.createMap=function(t,i,e,r,h,s,a){void 0===a&&(a=!1),this._enableLinear=s=void 0===s?!0:s,this._limitRange=a,this._rect.x=i.x,this._rect.y=i.y,this._rect.width=i.width,this._rect.height=i.height,this._viewPortWidth=i.width/this._scale,this._viewPortHeight=i.height/this._scale,this._completeHandler=e,r?this._paddingRect.copyFrom(r):this._paddingRect.setTo(0,0,0,0),h&&(this._gridWidth=h.x,this._gridHeight=h.y);h=t.lastIndexOf("/");-1<h?(this._resPath=t.substr(0,h),this._pathArray=this._resPath.split("/")):(this._resPath="",this._pathArray=[]),this._jsonLoader=new c,this._jsonLoader.once("complete",this,this.onJsonComplete),this._jsonLoader.load(t,"json",!1)},t.onJsonComplete=function(t){t=this._jsonData=t;this._properties=t.properties,this._orientation=t.orientation,this._renderOrder=t.renderorder,this._mapW=t.width,this._mapH=t.height,this._mapTileW=t.tilewidth,this._mapTileH=t.tileheight,this._width=this._mapTileW*this._mapW,this._height=this._mapTileH*this._mapH,"staggered"==this._orientation&&(this._height=(.5+.5*this._mapH)*this._mapTileH),this._mapLastRect.top=this._mapLastRect.bottom=this._mapLastRect.left=this._mapLastRect.right=-1;for(var i,e,r=t.tilesets,h=0,h=0;h<r.length;h++)if(i=r[h],(e=new m).init(i),!e.properties||!e.properties.ignore){this._tileProperties[h]=e.tileproperties,this.addTileProperties(e.tileproperties),this._tileSetArray.push(e);var s=i.tiles;if(s)for(var a in s){var o=s[a].animation;if(o){var l=new p;(this._animationDic[a]=l).image=i.image;for(var n=0;n<o.length;n++){var _=o[n];l.mAniIdArray.push(_.tileid),l.mDurationTimeArray.push(_.duration)}}}}this._tileTexSetArr.push(null),0<this._tileSetArray.length&&(e=this._currTileSet=this._tileSetArray.shift(),this._loader=new c,this._loader.once("complete",this,this.onTextureComplete),t=this.mergePath(this._resPath,e.image),this._loader.load(t,"image",!1))},t.mergePath=function(t,i){for(var e="",r=i.split("/"),h=0,s=0,s=r.length-1;0<=s;s--)".."==r[s]&&h++;if(0==h)return e=0<this._pathArray.length?t+"/"+i:i;var a=this._pathArray.length-h;for(a<0&&console.log("[error]path does not exist",this._pathArray,r,t,i),s=0;s<a;s++)0==s?e+=this._pathArray[s]:e=e+"/"+this._pathArray[s];for(s=h;s<r.length;s++)e=e+"/"+r[s];return e},t.onTextureComplete=function(t){this._jsonData;var i=t;d.isWebGL&&!this._enableLinear&&(i.bitmap.minFifter=9728,i.bitmap.magFifter=9728,i.bitmap.enableMerageInAtlas=!1),this._texArray.push(i);var e=this._currTileSet,r=e.tilewidth,h=e.tileheight,s=e.imagewidth,t=e.imageheight,a=(e.firstgid,Math.floor((s-e.margin-r)/(r+e.spacing))+1),o=Math.floor((t-e.margin-h)/(h+e.spacing))+1,l=null;this._texutreStartDic[e.image]=this._tileTexSetArr.length;for(var n=0;n<o;n++)for(var _=0;_<a;_++)(l=new f).offX=e.titleoffsetX,l.offY=e.titleoffsetY-(h-this._mapTileH),l.texture=u.createFromTexture(i,e.margin+(r+e.spacing)*_,e.margin+(h+e.spacing)*n,r,h),this.antiCrack&&this.adptTexture(l.texture),this._tileTexSetArr.push(l),l.gid=this._tileTexSetArr.length;0<this._tileSetArray.length?(e=this._currTileSet=this._tileSetArray.shift(),this._loader.once("complete",this,this.onTextureComplete),t=this.mergePath(this._resPath,e.image),this._loader.load(t,"image",!1)):(this._currTileSet=null,this.initMap())},t.adptTexture=function(t){var i,e,r,h,s,a;t&&(i=t.uv[0],e=t.uv[2],r=t.uv[1],h=t.uv[7],s=1/t.bitmap.width,a=1/t.bitmap.height,t.uv[0]=t.uv[6]=i+s,t.uv[2]=t.uv[4]=e-s,t.uv[1]=t.uv[3]=r+a,t.uv[5]=t.uv[7]=h-a)},t.initMap=function(){var t,i=0,e=0;for(t in this._animationDic){var r=this._animationDic[t],h=this._texutreStartDic[r.image],s=this.getTexture(parseInt(t)+h);if(0<r.mAniIdArray.length){for(s.textureArray=[],s.durationTimeArray=r.mDurationTimeArray,s.isAnimation=!0,i=s.animationTotalTime=0,e=s.durationTimeArray.length;i<e;i++)s.animationTotalTime+=s.durationTimeArray[i];for(i=0,e=r.mAniIdArray.length;i<e;i++){var a=this.getTexture(r.mAniIdArray[i]+h);s.textureArray.push(a)}}}for(this._gridWidth=Math.floor(this._gridWidth/this._mapTileW)*this._mapTileW,this._gridHeight=Math.floor(this._gridHeight/this._mapTileH)*this._mapTileH,this._gridWidth<this._mapTileW&&(this._gridWidth=this._mapTileW),this._gridHeight<this._mapTileH&&(this._gridHeight=this._mapTileH),this._gridW=Math.ceil(this._width/this._gridWidth),this._gridH=Math.ceil(this._height/this._gridHeight),this._totalGridNum=this._gridW*this._gridH,i=0;i<this._gridH;i++){var o=[];this._gridArray.push(o);for(var l=0;l<this._gridW;l++)o.push(null)}for(var n,_,p=this._jsonData.layers,m=!0,c=0;c<p.length;c++){var d,u=p[c];1==u.visible&&((d=new y).init(u,this),this.enableMergeLayer?(u=d.getLayerProperties("layer"),(m=m||!_||u!=n)?(m=!1,d.tarLayer=d,this._mapSprite.addChild(_=d),this._renderLayerArray.push(d)):d.tarLayer=_,n=u):(this._mapSprite.addChild(d),this._renderLayerArray.push(d)),this._layerArray.push(d))}this.removeCoveredTile&&this.adptTiledMapData(),this.cacheAllAfterInit&&this.cacheAllGrid(),this.moveViewPort(this._rect.x,this._rect.y),g.stage.addChild(this.mapSprite()),null!=this._completeHandler&&this._completeHandler.run()},t.addTileProperties=function(t){for(var i in t)this._tileProperties2[i]=t[i]},t.getTileUserData=function(t,i,e){return this._tileProperties2&&this._tileProperties2[t]&&i in this._tileProperties2[t]?this._tileProperties2[t][i]:e},t.adptTiledMapData=function(){for(var t,i=0,e={},i=this._layerArray.length-1;0<=i;i--)(t=this._layerArray[i]._mapData)&&(this.removeCoverd(t,e),this.collectCovers(t,e,i))},t.removeCoverd=function(t,i){for(var e=0,r=t.length,e=0;e<r;e++)i[e]&&(t[e]=0)},t.collectCovers=function(t,i,e){for(var r,h=0,s=t.length,h=0;h<s;h++)0<(r=t[h])&&0<this.getTileUserData(r-1,"type",0)&&(i[h]=r)},t.getTexture=function(t){return t<this._tileTexSetArr.length?this._tileTexSetArr[t]:null},t.getMapProperties=function(t){return this._properties?this._properties[t]:null},t.getTileProperties=function(t,i,e){return this._tileProperties[t]&&this._tileProperties[t][i]?this._tileProperties[t][i][e]:null},t.getSprite=function(t,i,e){if(0<this._tileTexSetArr.length){var r=new n;r.initData(this,!0),r.size(i,e);var h=this._tileTexSetArr[t];return null!=h&&null!=h.texture&&(h.isAnimation?(t=new v,this._index++,t.setTileTextureSet(this._index.toString(),h),r.addAniSprite(t),r.addChild(t)):r.graphics.drawTexture(h.texture,0,0,i,e),r.drawImageNum++),r}return null},t.setViewPortPivotByScale=function(t,i){this._pivotScaleX=t,this._pivotScaleY=i,this._fastDirty=!0},t.moveViewPort=function(t,i){var e,r;this._x=-t,this._y=-i,this._fastDirty?(this._rect.x=t,this._rect.y=i,this.updateViewPort()):(r=e=NaN,e=t-this._rect.x,r=i-this._rect.y,this._rect.x=t,this._rect.y=i,this.updateViewPortFast(e,r))},t.changeViewPort=function(t,i,e,r){t==this._rect.x&&i==this._rect.y&&e==this._rect.width&&r==this._rect.height||(e!=this._rect.width||r!=this._rect.height?(this._fastDirty=!0,this._x=-t,this._y=-i,this._rect.x=t,this._rect.y=i,this._rect.width=e,this._rect.height=r,this._viewPortWidth=e/this._scale,this._viewPortHeight=r/this._scale,this.updateViewPort()):this.moveViewPort(t,i))},t.changeViewPortBySize=function(t,i,e){return null==e&&(e=new h),this._centerX=this._rect.x+this._rect.width*this._pivotScaleX,this._centerY=this._rect.y+this._rect.height*this._pivotScaleY,e.x=this._centerX-t*this._pivotScaleX,e.y=this._centerY-i*this._pivotScaleY,e.width=t,e.height=i,this.changeViewPort(e.x,e.y,e.width,e.height),e},t.updateViewPortFast=function(t,i){this._centerX+=t,this._centerY+=i,this._viewPortX+=t,this._viewPortY+=i;var e=!1,r=i/this._gridHeight,h=t/this._gridWidth;this._mapLogicRect.top+=r,this._mapLogicRect.bottom+=r,this._mapLogicRect.left+=h,this._mapLogicRect.right+=h,this._mapRect.top=0|this._mapLogicRect.top,this._mapRect.bottom=0|this._mapLogicRect.bottom,this._mapRect.left=0|this._mapLogicRect.left,this._mapRect.right=0|this._mapLogicRect.right,this._mapRect.top==this._mapLastRect.top&&this._mapRect.bottom==this._mapLastRect.bottom&&this._mapRect.left==this._mapLastRect.left&&this._mapRect.right==this._mapLastRect.right||(this.clipViewPort(),this._mapLastRect.top=this._mapRect.top,this._mapLastRect.bottom=this._mapRect.bottom,this._mapLastRect.left=this._mapRect.left,this._mapLastRect.right=this._mapRect.right,e=!0),(e=e||0!=t||0!=i)&&this.updateMapLayersPos()},t.updateMapLayersPos=function(){for(var t,i=this._renderLayerArray.length,e=0;e<i;e++)0<(t=this._renderLayerArray[e])._gridSpriteArray.length&&(t.updateAloneObject(),t.pos(-this._viewPortX,-this._viewPortY))},t.updateViewPort=function(){this._fastDirty=!1;var t=this._rect.width*this._pivotScaleX,i=this._rect.height*this._pivotScaleY;this._centerX=this._rect.x+t,this._centerY=this._rect.y+i;var e=!1,r=this._viewPortX;this._viewPortX=this._centerX-t/this._scale,r!=this._viewPortX?e=!0:r=this._viewPortY,this._viewPortY=this._centerY-i/this._scale,e||r==this._viewPortY||(e=!0),this._limitRange&&(this._viewPortX+this._viewPortWidth>this._width&&(this._viewPortX=this._width-this._viewPortWidth),this._viewPortY+this._viewPortHeight>this._height&&(this._viewPortY=this._height-this._viewPortHeight),this._viewPortX<0&&(this._viewPortX=0),this._viewPortY<0&&(this._viewPortY=0));r=this._paddingRect;this._mapLogicRect.top=(this._viewPortY-r.y)/this._gridHeight,this._mapLogicRect.bottom=(this._viewPortY+this._viewPortHeight+r.height+r.y)/this._gridHeight,this._mapLogicRect.left=(this._viewPortX-r.x)/this._gridWidth,this._mapLogicRect.right=(this._viewPortX+this._viewPortWidth+r.width+r.x)/this._gridWidth,this._mapRect.top=0|this._mapLogicRect.top,this._mapRect.bottom=0|this._mapLogicRect.bottom,this._mapRect.left=0|this._mapLogicRect.left,this._mapRect.right=0|this._mapLogicRect.right,this._mapRect.top==this._mapLastRect.top&&this._mapRect.bottom==this._mapLastRect.bottom&&this._mapRect.left==this._mapLastRect.left&&this._mapRect.right==this._mapLastRect.right||(this.clipViewPort(),this._mapLastRect.top=this._mapRect.top,this._mapLastRect.bottom=this._mapRect.bottom,this._mapLastRect.left=this._mapRect.left,this._mapLastRect.right=this._mapRect.right,e=!0),e&&this.updateMapLayersPos()},t.clipViewPort=function(){var t=0,i=0,e=0,r=0;if(this._mapRect.left>this._mapLastRect.left){if(0<(t=this._mapRect.left-this._mapLastRect.left))for(r=this._mapLastRect.left;r<this._mapLastRect.left+t;r++)for(e=this._mapLastRect.top;e<=this._mapLastRect.bottom;e++)this.hideGrid(r,e)}else if(0<(i=Math.min(this._mapLastRect.left,this._mapRect.right+1)-this._mapRect.left))for(r=this._mapRect.left;r<this._mapRect.left+i;r++)for(e=this._mapRect.top;e<=this._mapRect.bottom;e++)this.showGrid(r,e);if(this._mapRect.right>this._mapLastRect.right){if(0<(i=this._mapRect.right-this._mapLastRect.right))for(r=Math.max(this._mapLastRect.right+1,this._mapRect.left);r<=this._mapLastRect.right+i;r++)for(e=this._mapRect.top;e<=this._mapRect.bottom;e++)this.showGrid(r,e)}else if(0<(t=this._mapLastRect.right-this._mapRect.right))for(r=this._mapRect.right+1;r<=this._mapRect.right+t;r++)for(e=this._mapLastRect.top;e<=this._mapLastRect.bottom;e++)this.hideGrid(r,e);if(this._mapRect.top>this._mapLastRect.top){if(0<(t=this._mapRect.top-this._mapLastRect.top))for(e=this._mapLastRect.top;e<this._mapLastRect.top+t;e++)for(r=this._mapLastRect.left;r<=this._mapLastRect.right;r++)this.hideGrid(r,e)}else if(0<(i=Math.min(this._mapLastRect.top,this._mapRect.bottom+1)-this._mapRect.top))for(e=this._mapRect.top;e<this._mapRect.top+i;e++)for(r=this._mapRect.left;r<=this._mapRect.right;r++)this.showGrid(r,e);if(this._mapRect.bottom>this._mapLastRect.bottom){if(0<(i=this._mapRect.bottom-this._mapLastRect.bottom))for(e=Math.max(this._mapLastRect.bottom+1,this._mapRect.top);e<=this._mapLastRect.bottom+i;e++)for(r=this._mapRect.left;r<=this._mapRect.right;r++)this.showGrid(r,e)}else if(0<(t=this._mapLastRect.bottom-this._mapRect.bottom))for(e=this._mapRect.bottom+1;e<=this._mapRect.bottom+t;e++)for(r=this._mapLastRect.left;r<=this._mapLastRect.right;r++)this.hideGrid(r,e)},t.showGrid=function(t,i){if(!(t<0||t>=this._gridW||i<0||i>=this._gridH)){var e,r=0,h=this._gridArray[i][t];if(null==h)h=this.getGridArray(t,i);else for(r=0;r<h.length&&r<this._layerArray.length;r++)this._layerArray[r]&&h[r]&&0==(e=h[r]).visible&&0<e.drawImageNum&&e.show()}},t.cacheAllGrid=function(){for(var t,i=0,e=0,i=0;i<this._gridW;i++)for(e=0;e<this._gridH;e++)t=this.getGridArray(i,e),this.cacheGridsArray(t)},t.cacheGridsArray=function(t){var i;(i=(s._tempContext=!s._tempContext?new l(1,1,o.create("AUTO")):s._tempContext).canvas).context.asBitmap=!1;for(var e,r=0,h=t.length,r=0;r<h;r++)e=t[r],i.clear(),i.size(1,1),e.render(s._tempContext,0,0),e.hide();i.clear(),i.size(1,1)},t.getGridArray=function(t,i){var e,r=0,h=0;if(null==(s=this._gridArray[i][t])){var s=this._gridArray[i][t]=[],a=0,o=0,l=0,n=0,_=this._gridWidth,p=this._gridHeight;switch(this.orientation){case"isometric":var a=Math.floor(t*_),o=Math.floor(t*_+_),l=Math.floor(i*p),n=Math.floor(i*p+p),m=0,c=0,d=0,u=0;break;case"staggered":a=Math.floor(t*_/this._mapTileW),o=Math.floor((t*_+_)/this._mapTileW),l=Math.floor(i*p/(this._mapTileH/2)),n=Math.floor((i*p+p)/(this._mapTileH/2));break;case"orthogonal":a=Math.floor(t*_/this._mapTileW),o=Math.floor((t*_+_)/this._mapTileW),l=Math.floor(i*p/this._mapTileH),n=Math.floor((i*p+p)/this._mapTileH);break;case"hexagonal":var g=2*this._mapTileH/3;a=Math.floor(t*_/this._mapTileW),o=Math.ceil((t*_+_)/this._mapTileW),l=Math.floor(i*p/g),n=Math.ceil((i*p+p)/g)}for(var f,y,v=null,w=0;w<this._layerArray.length;w++){var A,v=this._layerArray[w];switch(this.enableMergeLayer?(v.tarLayer!=y&&(f=null,y=v.tarLayer),f||(f=y.getDrawSprite(t,i),s.push(f)),e=f):(e=v.getDrawSprite(t,i),s.push(e)),this._showGridKey&&(A="#",A+=this._colorArray[Math.floor(Math.random()*this._colorArray.length)],A+=this._colorArray[Math.floor(Math.random()*this._colorArray.length)],A+=this._colorArray[Math.floor(Math.random()*this._colorArray.length)]),this.orientation){case"isometric":var T=this.tileHeight/2,x=this.tileWidth/2,R=this._width/2,d=Math.floor(l/T),u=Math.floor(n/T),m=this._mapW+Math.floor((a-R)/x),c=this._mapW+Math.floor((o-R)/x),x=(this._mapW,2*this._mapH);for(x<=(d=d<0?0:d)&&(d=x-1),u<0&&(n=0),x<=u&&(u=x-1),e.zOrder=this._totalGridNum*w+i*this._gridW+t,r=d;r<u;r++)for(h=0;h<=r;h++){var P=r-h,H=P-h+this._mapW;m<H&&H<=c&&v.drawTileTexture(e,P,h)&&e.drawImageNum++}break;case"staggered":for(e.zOrder=w*this._totalGridNum+i*this._gridW+t,r=l;r<n;r++)for(h=a;h<o;h++)v.drawTileTexture(e,h,r)&&e.drawImageNum++;break;case"orthogonal":case"hexagonal":switch(this._renderOrder){case"right-down":for(e.zOrder=w*this._totalGridNum+i*this._gridW+t,r=l;r<n;r++)for(h=a;h<o;h++)v.drawTileTexture(e,h,r)&&e.drawImageNum++;break;case"right-up":for(e.zOrder=w*this._totalGridNum+(this._gridH-1-i)*this._gridW+t,r=n-1;l<=r;r--)for(h=a;h<o;h++)v.drawTileTexture(e,h,r)&&e.drawImageNum++;break;case"left-down":for(e.zOrder=w*this._totalGridNum+i*this._gridW+(this._gridW-1-t),r=l;r<n;r++)for(h=o-1;a<=h;h--)v.drawTileTexture(e,h,r)&&e.drawImageNum++;break;case"left-up":for(e.zOrder=w*this._totalGridNum+(this._gridH-1-i)*this._gridW+(this._gridW-1-t),r=n-1;l<=r;r--)for(h=o-1;a<=h;h--)v.drawTileTexture(e,h,r)&&e.drawImageNum++}}e.isHaveAnimation||(e.autoSize=!0,this.autoCache&&(e.cacheAs=this.autoCacheType),e.autoSize=!1),this.enableMergeLayer?f&&0<f.drawImageNum&&y&&(y.addChild(f),f.visible=!1,f.show()):(0<e.drawImageNum&&(v.addChild(e),e.visible=!1,e.show()),this._showGridKey&&e.graphics.drawRect(0,0,_,p,null,A))}this.enableMergeLayer&&this.showGridTextureCount&&f&&f.graphics.fillText(f.drawImageNum+"",20,20,null,"#ff0000","left")}return s},t.hideGrid=function(t,i){if(!(t<0||t>=this._gridW||i<0||i>=this._gridH)){var e=this._gridArray[i][t];if(e)for(var r,h=0;h<e.length;h++)0<(r=e[h]).drawImageNum&&null!=r&&r.hide()}},t.getLayerObject=function(t,i){for(var e=null,r=0;r<this._layerArray.length&&(e=this._layerArray[r]).layerName!=t;r++);return e?e.getObjectByName(i):null},t.destroy=function(){this._orientation="orthogonal",this._jsonData=null;var t,i=0;for(this._gridArray=[],i=0;i<this._tileTexSetArr.length;i++)(t=this._tileTexSetArr[i])&&t.clearAll();for(this._tileTexSetArr=[],i=0;i<this._texArray.length;i++)this._texArray[i].destroy();for(this._texArray=[],this._width=0,this._height=0,this._mapW=0,this._mapH=0,this._mapTileW=0,this._mapTileH=0,this._rect.setTo(0,0,0,0),i=0;i<this._layerArray.length;i++)this._layerArray[i].clearAll();this._layerArray=[],this._renderLayerArray=[],this._mapSprite&&(this._mapSprite.destroy(),this._mapSprite=null),this._jsonLoader=null,this._loader=null;var e,r=this._animationDic;for(e in r)delete r[e];for(e in this._properties=null,r=this._tileProperties)delete r[e];this._currTileSet=null,this._completeHandler=null,this._mapRect.clearAll(),this._mapLastRect.clearAll(),this._tileSetArray=[],this._gridWidth=450,this._gridHeight=450,this._gridW=0,this._gridH=0,this._x=0,this._y=0,this._index=0,this._enableLinear=!0,this._resPath=null,this._pathArray=null},t.mapSprite=function(){return this._mapSprite},t.getLayerByName=function(t){for(var i,e=0;e<this._layerArray.length;e++)if(t==(i=this._layerArray[e]).layerName)return i;return null},t.getLayerByIndex=function(t){return t<this._layerArray.length?this._layerArray[t]:null},i(0,t,"orientation",function(){return this._orientation}),i(0,t,"viewPortX",function(){return-this._viewPortX}),i(0,t,"scale",function(){return this._scale},function(t){t<=0||(this._scale=t,this._viewPortWidth=this._rect.width/t,this._viewPortHeight=this._rect.height/t,this._mapSprite.scale(this._scale,this._scale),this.updateViewPort())}),i(0,t,"tileWidth",function(){return this._mapTileW}),i(0,t,"viewPortY",function(){return-this._viewPortY}),i(0,t,"tileHeight",function(){return this._mapTileH}),i(0,t,"width",function(){return this._width}),i(0,t,"numRowsTile",function(){return this._mapH}),i(0,t,"numColumnsTile",function(){return this._mapW}),i(0,t,"height",function(){return this._height}),i(0,t,"viewPortWidth",function(){return this._viewPortWidth}),i(0,t,"viewPortHeight",function(){return this._viewPortHeight}),i(0,t,"x",function(){return this._x}),i(0,t,"y",function(){return this._y}),i(0,t,"gridWidth",function(){return this._gridWidth}),i(0,t,"gridHeight",function(){return this._gridHeight}),i(0,t,"numColumnsGrid",function(){return this._gridW}),i(0,t,"numRowsGrid",function(){return this._gridH}),i(0,t,"renderOrder",function(){return this._renderOrder}),s.ORIENTATION_ORTHOGONAL="orthogonal",s.ORIENTATION_ISOMETRIC="isometric",s.ORIENTATION_STAGGERED="staggered",s.ORIENTATION_HEXAGONAL="hexagonal",s.RENDERORDER_RIGHTDOWN="right-down",s.RENDERORDER_RIGHTUP="right-up",s.RENDERORDER_LEFTDOWN="left-down",s.RENDERORDER_LEFTUP="left-up",s._tempContext=null,s.__init$=function(){function t(){this.left=0,this.top=0,this.right=0,this.bottom=0}function i(){this.mAniIdArray=[],this.mDurationTimeArray=[],this.mTileTexSetArr=[],this.image=null}function e(){this.firstgid=0,this.image="",this.imageheight=0,this.imagewidth=0,this.margin=0,this.name=0,this.properties=null,this.spacing=0,this.tileheight=0,this.tilewidth=0,this.titleoffsetX=0,this.titleoffsetY=0,this.tileproperties=null}a(t,""),t.prototype.clearAll=function(){this.left=this.top=this.right=this.bottom=0},r=t,a(i,""),p=i,a(e,""),e.prototype.init=function(t){this.firstgid=t.firstgid,this.image=t.image,this.imageheight=t.imageheight,this.imagewidth=t.imagewidth,this.margin=t.margin,this.name=t.name,this.properties=t.properties,this.spacing=t.spacing,this.tileheight=t.tileheight,this.tilewidth=t.tilewidth,this.tileproperties=t.tileproperties;t=t.tileoffset;t&&(this.titleoffsetX=t.x,this.titleoffsetY=t.y)},m=e},s}(),f=function(){function t(){this.gid=-1,this.texture=null,this.offX=0,this.offY=0,this.textureArray=null,this.durationTimeArray=null,this.animationTotalTime=0,this.isAnimation=!1,this._spriteNum=0,this._aniDic=null,this._frameIndex=0,this._time=0,this._interval=0,this._preFrameTime=0}a(t,"laya.map.TileTexSet");var i=t.prototype;return i.addAniSprite=function(t,i){0!=this.animationTotalTime&&(null==this._aniDic&&(this._aniDic={}),0==this._spriteNum&&(g.timer.frameLoop(3,this,this.animate),this._preFrameTime=s.now(),this._frameIndex=0,this._time=0,this._interval=0),this._spriteNum++,this._aniDic[t]=i,this.textureArray&&this._frameIndex<this.textureArray.length&&(t=this.textureArray[this._frameIndex],this.drawTexture(i,t)))},i.animate=function(){if(this.textureArray&&0<this.textureArray.length&&this.durationTimeArray&&0<this.durationTimeArray.length){var t=s.now();this._interval=t-this._preFrameTime,this._preFrameTime=t,this._interval>this.animationTotalTime&&(this._interval=this._interval%this.animationTotalTime),this._time+=this._interval;for(var i=this.durationTimeArray[this._frameIndex];this._time>i;){this._time-=i,this._frameIndex++,(this._frameIndex>=this.durationTimeArray.length||this._frameIndex>=this.textureArray.length)&&(this._frameIndex=0);var e,r,h=this.textureArray[this._frameIndex];for(r in this._aniDic)e=this._aniDic[r],this.drawTexture(e,h);i=this.durationTimeArray[this._frameIndex]}}},i.drawTexture=function(t,i){t.graphics.clear(),t.graphics.drawTexture(i.texture,i.offX,i.offY)},i.removeAniSprite=function(t){this._aniDic&&this._aniDic[t]&&(delete this._aniDic[t],this._spriteNum--,0==this._spriteNum&&g.timer.clear(this,this.animate))},i.showDebugInfo=function(){var t=null;return t=0<this._spriteNum?"TileTextureSet::gid:"+this.gid.toString()+" 动画数:"+this._spriteNum.toString():t},i.clearAll=function(){this.gid=-1,this.texture&&(this.texture.destroy(),this.texture=null),this.offX=0,this.offY=0,this.textureArray=null,this.durationTimeArray=null,this.isAnimation=!1,this._spriteNum=0,this._aniDic=null,this._frameIndex=0,this._preFrameTime=0,this._time=0,this._interval=0},t}(),n=function(e){function t(){this.relativeX=0,this.relativeY=0,this.isAloneObject=!1,this.isHaveAnimation=!1,this.aniSpriteArray=null,this.drawImageNum=0,this._map=null,t.__super.call(this)}a(t,"laya.map.GridSprite",e);var i=t.prototype;return i.initData=function(t,i){void 0===i&&(i=!1),this._map=t,this.isAloneObject=i},i._setDisplay=function(t){var i;t||((i=this._$P.cacheCanvas)&&i.ctx&&(i.ctx.canvas.destroy(),i.ctx=null),(i=this._$P._filterCache)&&(i.destroy(),i.recycle(),this._set$P("_filterCache",null)),this._$P._isHaveGlowFilter&&this._set$P("_isHaveGlowFilter",!1)),e.prototype._setDisplay.call(this,t)},i.addAniSprite=function(t){null==this.aniSpriteArray&&(this.aniSpriteArray=[]),this.aniSpriteArray.push(t)},i.show=function(){var t;if(!this.visible&&(this.visible=!0,this.isAloneObject||(t=this.parent)&&t.showGridSprite(this),!d.isWebGL&&this._map.autoCache&&(this.cacheAs=this._map.autoCacheType),null!=this.aniSpriteArray))for(var i=0;i<this.aniSpriteArray.length;i++)this.aniSpriteArray[i].show()},i.hide=function(){var t;if(this.visible&&(this.visible=!1,this.isAloneObject||(t=this.parent)&&t.hideGridSprite(this),!d.isWebGL&&this._map.autoCache&&(this.cacheAs="none"),null!=this.aniSpriteArray))for(var i=0;i<this.aniSpriteArray.length;i++)this.aniSpriteArray[i].hide()},i.updatePos=function(){this.isAloneObject?(this._map&&(this.x=this.relativeX,this.y=this.relativeY),this.x<0||this.x>this._map.viewPortWidth||this.y<0||this.y>this._map.viewPortHeight?this.hide():this.show()):this._map&&(this.x=this.relativeX,this.y=this.relativeY)},i.clearAll=function(){if(this._map&&(this._map=null),this.visible=!1,null!=this.aniSpriteArray)for(var t=0;t<this.aniSpriteArray.length;t++)this.aniSpriteArray[t].clearAll();this.destroy(),this.relativeX=0,this.relativeY=0,this.isHaveAnimation=!1,this.aniSpriteArray=null,this.drawImageNum=0},t}(e),y=function(h){function t(){this._map=null,this._mapData=null,this._tileWidthHalf=0,this._tileHeightHalf=0,this._mapWidthHalf=0,this._mapHeightHalf=0,this._gridSpriteArray=[],this._objDic=null,this._dataDic=null,this._properties=null,this.tarLayer=null,this.layerName=null,this._showGridList=[],this._aloneObjs=[],t.__super.call(this),this._tempMapPos=new _}a(t,"laya.map.MapLayer",h);var i=t.prototype;return i.init=function(t,i){this._map=i,this._mapData=t.data;t.height,t.width;var e=i.tileWidth,r=i.tileHeight;switch(this.layerName=t.name,this._properties=t.properties,this.alpha=t.opacity,this._tileWidthHalf=e/2,this._tileHeightHalf=r/2,this._mapWidthHalf=this._map.width/2-this._tileWidthHalf,this._mapHeightHalf=this._map.height/2,t.type){case"tilelayer":break;case"objectgroup":var h,s=t.objects;0<s.length&&(this._objDic={},this._dataDic={});for(var a=0;a<s.length;a++)if(h=s[a],1==(this._dataDic[h.name]=h).visible){var o=h.width,l=h.height,n=i.getSprite(h.gid,o,l);if(null!=n){switch(this._map.orientation){case"isometric":this.getScreenPositionByTilePos(h.x/r,h.y/r,_.TEMP),n.pivot(o/2,l/2),n.rotation=h.rotation,n.x=n.relativeX=_.TEMP.x+this._map.viewPortX,n.y=n.relativeY=_.TEMP.y+this._map.viewPortY-l/2;break;case"staggered":case"orthogonal":n.pivot(o/2,l/2),n.rotation=h.rotation,n.x=n.relativeX=h.x+o/2,n.y=n.relativeY=h.y-l/2;break;case"hexagonal":n.x=n.relativeX=h.x,n.y=n.relativeY=h.y}this.addChild(n),this._gridSpriteArray.push(n),n.isAloneObject&&(this._showGridList.push(n),this._aloneObjs.push(n)),this._objDic[h.name]=n}}}},i.getObjectByName=function(t){return this._objDic?this._objDic[t]:null},i.getObjectDataByName=function(t){return this._dataDic?this._dataDic[t]:null},i.getLayerProperties=function(t){return this._properties?this._properties[t]:null},i.getTileData=function(t,i){if(0<=i&&i<this._map.numRowsTile&&0<=t&&t<this._map.numColumnsTile){i=i*this._map.numColumnsTile+t,t=this._mapData;if(null!=t&&i<t.length)return t[i]}return 0},i.getScreenPositionByTilePos=function(t,i,e){if(e){switch(this._map.orientation){case"isometric":e.x=this._map.width/2-(i-t)*this._tileWidthHalf,e.y=(i+t)*this._tileHeightHalf;break;case"staggered":t=Math.floor(t),i=Math.floor(i),e.x=t*this._map.tileWidth+(1&i)*this._tileWidthHalf,e.y=i*this._tileHeightHalf;break;case"orthogonal":e.x=t*this._map.tileWidth,e.y=i*this._map.tileHeight;break;case"hexagonal":t=Math.floor(t),i=Math.floor(i);var r=2*this._map.tileHeight/3;e.x=(t*this._map.tileWidth+i%2*this._tileWidthHalf)%this._map.gridWidth,e.y=i*r%this._map.gridHeight}e.x=(e.x+this._map.viewPortX)*this._map.scale,e.y=(e.y+this._map.viewPortY)*this._map.scale}},i.getTileDataByScreenPos=function(t,i){var e=0;return e=this.getTilePositionByScreenPos(t,i,this._tempMapPos)?this.getTileData(Math.floor(this._tempMapPos.x),Math.floor(this._tempMapPos.y)):e},i.getTilePositionByScreenPos=function(t,i,e){t=t/this._map.scale-this._map.viewPortX,i=i/this._map.scale-this._map.viewPortY;var r,h=this._map.tileWidth,s=this._map.tileHeight,a=0,o=0;switch(this._map.orientation){case"isometric":var l=t-this._map.width/2,a=-(l/h-i/s),o=l/h+i/s;return e&&(e.x=o,e.y=a),!0;case"staggered":return e&&(l=r=0,r=Math.floor(t/h)*h+h/2,l=(i-(Math.floor(i/s)*s+s/2))*h/2,a=Math.abs((t-r)*s/2)+Math.abs(l)<=h*s/4?(o=Math.floor(t/h),2*Math.floor(i/s)):(t-=h/2,o=Math.floor(t/h)+1,i-=s/2,2*Math.floor(i/s)+1),e.x=o-(1&a),e.y=a),!0;case"orthogonal":return o=t/h,a=i/s,e&&(e.x=o,e.y=a),!0;case"hexagonal":o=(t-(a=i/(2*s/3))%2*this._tileWidthHalf)/h,e&&(e.x=o,e.y=a)}return!1},i.getDrawSprite=function(t,i){var e=new n;return e.relativeX=t*this._map.gridWidth,e.relativeY=i*this._map.gridHeight,e.initData(this._map),e.updatePos(),this._gridSpriteArray.push(e),e},i.showGridSprite=function(t){for(var i,e=this._showGridList,r=0,h=e.length,s=-1,r=0;r<h;r++){if((i=e[r])==t)return;i.isAloneObject||i.visible||(s=r)}0<=s?e[s]=t:e.push(t)},i.hideGridSprite=function(t){t.visible=!1},i.updateGridPos=function(){for(var t,i=this._showGridList,e=i.length,r=0;r<e;r++)((t=i[r])._style.visible||t.isAloneObject)&&0<t.drawImageNum&&t.updatePos()},i.updateAloneObject=function(){for(var t,i=this._aloneObjs,e=i.length,r=0;r<e;r++)0<(t=i[r]).drawImageNum&&t.updatePos()},i.render=function(t,i,e){var r=this._childs;this._childs=this._showGridList,h.prototype.render.call(this,t,i,e),this._childs=r},i.drawTileTexture=function(t,i,e){if(0<=e&&e<this._map.numRowsTile&&0<=i&&i<this._map.numColumnsTile){var r=e*this._map.numColumnsTile+i,h=this._mapData;if(null!=h&&r<h.length&&0!=h[r]){var s=this._map.getTexture(h[r]);if(s){var a=0,o=0;s.texture;switch(this._map.orientation){case"staggered":a=i*this._map.tileWidth%this._map.gridWidth+(1&e)*this._tileWidthHalf,o=e*this._tileHeightHalf%this._map.gridHeight;break;case"orthogonal":a=i*this._map.tileWidth%this._map.gridWidth,o=e*this._map.tileHeight%this._map.gridHeight;break;case"isometric":a=(this._mapWidthHalf+(i-e)*this._tileWidthHalf)%this._map.gridWidth,o=(i+e)*this._tileHeightHalf%this._map.gridHeight;break;case"hexagonal":var l=2*this._map.tileHeight/3,a=(i*this._map.tileWidth+e%2*this._tileWidthHalf)%this._map.gridWidth,o=e*l%this._map.gridHeight}return s.isAnimation?((h=new v).x=a,h.y=o,h.setTileTextureSet(r.toString(),s),t.addAniSprite(h),t.addChild(h),t.isHaveAnimation=!0):t.graphics.drawTexture(s.texture,a+s.offX,o+s.offY),!0}}}return!1},i.clearAll=function(){this._map=null,this._mapData=null,this._tileWidthHalf=0,this._tileHeightHalf=0,this._mapWidthHalf=0,this._mapHeightHalf=0,this.layerName=null;var t=0;if(this._objDic){for(var i in this._objDic)delete this._objDic[i];this._objDic=null}if(this._dataDic){for(i in this._dataDic)delete this._dataDic[i];this._dataDic=null}for(t=0;t<this._gridSpriteArray.length;t++)this._gridSpriteArray[t].clearAll();this._properties=null,this._tempMapPos=null,this.tarLayer=null},t}(e),v=function(){function t(){this._tileTextureSet=null,this._aniName=null,t.__super.call(this)}a(t,"laya.map.TileAniSprite",e);var i=t.prototype;return i.setTileTextureSet=function(t,i){this._aniName=t,(this._tileTextureSet=i).addAniSprite(this._aniName,this)},i.show=function(){this._tileTextureSet.addAniSprite(this._aniName,this)},i.hide=function(){this._tileTextureSet.removeAniSprite(this._aniName)},i.clearAll=function(){this._tileTextureSet.removeAniSprite(this._aniName),this.destroy(),this._tileTextureSet=null,this._aniName=null},t}();g.__init([t])}((window,document,Laya)),"function"==typeof define&&define.amd&&define("laya.core",["require","exports"],function(t,i){"use strict";for(var e in Object.defineProperty(i,"__esModule",{value:!0}),Laya){var r=Laya[e];r&&r.__isclass&&(i[e]=r)}});