From 8c56d21df930f24a2392fa5370e7f588be7671d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davy=20H=C3=A9lard?= Date: Sun, 29 Sep 2024 23:46:30 +0200 Subject: [PATCH] Allow to filter tile map collision per layer --- Extensions/TileMap/JsExtension.js | 39 ++++++ .../TileMap/collision/TransformedTileMap.ts | 18 ++- Extensions/TileMap/helper/TileMapHelper.js | 2 +- .../TileMap/helper/TileMapHelper.js.map | 2 +- .../helper/dts/render/TileMapPixiHelper.d.ts | 1 + .../dts/render/TileMapPixiHelper.d.ts.map | 2 +- .../tilemapcollisionmaskruntimeobject.ts | 11 +- .../src/render/TileMapPixiHelper.ts | 121 +++++++++++------- 8 files changed, 143 insertions(+), 53 deletions(-) diff --git a/Extensions/TileMap/JsExtension.js b/Extensions/TileMap/JsExtension.js index da4afaf19095..eb2f625e8803 100644 --- a/Extensions/TileMap/JsExtension.js +++ b/Extensions/TileMap/JsExtension.js @@ -1081,6 +1081,14 @@ const defineCollisionMask = function (extension, _, gd) { objectContent.collisionMaskTag = newValue; return true; } + if (propertyName === 'layerIndex') { + objectContent.layerIndex = parseFloat(newValue); + return true; + } + if (propertyName === 'useAllLayers') { + objectContent.useAllLayers = newValue === '1'; + return true; + } if (propertyName === 'debugMode') { objectContent.debugMode = newValue === '1'; return true; @@ -1149,6 +1157,28 @@ const defineCollisionMask = function (extension, _, gd) { ) ) ); + objectProperties.set( + 'layerIndex', + new gd.PropertyDescriptor(objectContent.layerIndex.toString()) + .setType('number') + .setLabel(_('Layer index')) + .setGroup(_('Layers')) + .setAdvanced() + ); + objectProperties.set( + 'useAllLayers', + new gd.PropertyDescriptor( + objectContent.useAllLayers || + objectContent.useAllLayers === undefined || + objectContent.useAllLayers === null + ? 'true' + : 'false' + ) + .setType('boolean') + .setLabel(_('Use all layers')) + .setGroup(_('Layers')) + .setAdvanced() + ); objectProperties.set( 'debugMode', new gd.PropertyDescriptor(objectContent.debugMode ? 'true' : 'false') @@ -1207,6 +1237,8 @@ const defineCollisionMask = function (extension, _, gd) { tilemapJsonFile: '', tilesetJsonFile: '', collisionMaskTag: '', + layerIndex: 0, + useAllLayers: true, debugMode: false, fillColor: '255;255;255', outlineColor: '255;255;255', @@ -2381,6 +2413,7 @@ module.exports = { _tilemapJsonFile = ''; _tilesetJsonFile = ''; _collisionMaskTag = ''; + _layerIndex = null; _outlineColor = 0xffffff; _fillColor = 0xffffff; _outlineOpacity = 0; @@ -2481,6 +2514,7 @@ module.exports = { const tilemapJsonFile = this._tilemapJsonFile; const tilesetJsonFile = this._tilesetJsonFile; const collisionMaskTag = this._collisionMaskTag; + const layerIndex = this._layerIndex; const outlineColor = this._outlineColor; const fillColor = this._fillColor; const outlineOpacity = this._outlineOpacity; @@ -2509,6 +2543,7 @@ module.exports = { this._pixiObject, tileMap, collisionMaskTag, + layerIndex, outlineSize, outlineColor, outlineOpacity, @@ -2566,6 +2601,8 @@ module.exports = { const tilemapJsonFile = object.content.tilemapJsonFile; const tilesetJsonFile = object.content.tilesetJsonFile; const collisionMaskTag = object.content.collisionMaskTag; + const useAllLayers = object.content.useAllLayers; + const layerIndex = useAllLayers ? null : object.content.layerIndex; const outlineColor = objectsRenderingService.rgbOrHexToHexNumber( object.content.outlineColor ); @@ -2580,6 +2617,7 @@ module.exports = { tilemapJsonFile !== this._tilemapJsonFile || tilesetJsonFile !== this._tilesetJsonFile || collisionMaskTag !== this._collisionMaskTag || + layerIndex !== this._layerIndex || outlineColor !== this._outlineColor || fillColor !== this._fillColor || outlineOpacity !== this._outlineOpacity || @@ -2589,6 +2627,7 @@ module.exports = { this._tilemapJsonFile = tilemapJsonFile; this._tilesetJsonFile = tilesetJsonFile; this._collisionMaskTag = collisionMaskTag; + this._layerIndex = layerIndex; this._outlineColor = outlineColor; this._fillColor = fillColor; this._outlineOpacity = outlineOpacity; diff --git a/Extensions/TileMap/collision/TransformedTileMap.ts b/Extensions/TileMap/collision/TransformedTileMap.ts index 6f677d44a832..4a4965895d47 100644 --- a/Extensions/TileMap/collision/TransformedTileMap.ts +++ b/Extensions/TileMap/collision/TransformedTileMap.ts @@ -12,6 +12,7 @@ namespace gdjs { */ private _source: TileMapHelper.EditableTileMap; tag: string; + private _layerIndex: integer | null; private _layers: Map; // TODO Tiled allows to offset the layers /** @@ -37,9 +38,14 @@ namespace gdjs { /** * @param source The model that describes the tile map. */ - constructor(source: TileMapHelper.EditableTileMap, tag: string) { + constructor( + source: TileMapHelper.EditableTileMap, + tag: string, + layerIndex: number | null = null + ) { this._source = source; this.tag = tag; + this._layerIndex = layerIndex; this._layers = new Map(); this._buildLayersFromTileMap(source, this._layers); } @@ -55,6 +61,16 @@ namespace gdjs { tileMap: TileMapHelper.EditableTileMap, layers: Map ) { + if (this._layerIndex) { + const tileLayer = tileMap.getTileLayer(this._layerIndex); + if (!tileLayer) { + return; + } + layers.set( + tileLayer.id, + new TransformedCollisionTileMapLayer(this, tileLayer) + ); + } for (const sourceLayer of tileMap.getLayers()) { // TODO A visitor could be used to avoid a cast. if (!(sourceLayer instanceof TileMapHelper.EditableTileMapLayer)) { diff --git a/Extensions/TileMap/helper/TileMapHelper.js b/Extensions/TileMap/helper/TileMapHelper.js index ad0900c03200..836bd96b7339 100644 --- a/Extensions/TileMap/helper/TileMapHelper.js +++ b/Extensions/TileMap/helper/TileMapHelper.js @@ -1,2 +1,2 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TileMapHelper={})}(this,(function(e){"use strict";const t=2147483648,i=1073741824,s=536870912;var l;function n(e){const t=l.isFlippedDiagonally(e),i=l.isFlippedHorizontally(e),s=l.isFlippedVertically(e);let n=0;return t?(n=10,!i&&s?n=2:i&&!s?n=6:i&&s&&(n=14)):(n=0,!i&&s?n=8:i&&!s?n=12:i&&s&&(n=4)),n}function o(e,l,n,o){let r=e;return l&&(r|=t),n&&(r|=i),o&&(r|=s),r}!function(e){e.tileIdMask=536870911,e.getTileId=function(t){return t&e.tileIdMask},e.setFlippedHorizontally=function(e,i){return e&=2147483647,i&&(e|=t),e},e.setFlippedVertically=function(e,t){return e&=-1073741825,t&&(e|=i),e},e.setFlippedDiagonally=function(e,t){return e&=-536870913,t&&(e|=s),e},e.isFlippedHorizontally=function(e){return 0!=(e&t)},e.isFlippedVertically=function(e){return 0!=(e&i)},e.isFlippedDiagonally=function(e){return 0!=(e&s)}}(l||(l={}));class r{constructor(e,t,i,s,l){this.tileWidth=e,this.tileHeight=t,this.dimX=i,this.dimY=s,this._tileSet=l,this._layers=[]}static from(e,{tileSize:t,tileSetColumnCount:i,tileSetRowCount:s}){const l=new Map;if(!Number.isInteger(i)||i<=0||!Number.isInteger(s)||s<=0)throw new Error(`Tilemap object badly configured. Tile size ${t} is not compatible with atlas image dimensions, resulting in having ${i} columns and ${s} rows.`);new Array(i*s).fill(0).forEach(((e,t)=>{l.set(t,new u(0))}));const n=new r(t||e.tileWidth,t||e.tileHeight,e.dimX||1,e.dimY||1,l);return e.layers?e.layers.forEach((e=>{n.addTileLayer(h.from(e,n,(e=>ee.toJSObject()))}}getWidth(){return this.tileWidth*this.dimX}getHeight(){return this.tileHeight*this.dimY}getTileHeight(){return this.tileHeight}getTileWidth(){return this.tileWidth}getDimensionX(){return this.dimX}getDimensionY(){return this.dimY}setDimensionX(e){if(e===this.dimX)return;const t=e-this.dimX;for(const e of this.getLayers())e instanceof h&&(t>0?e.increaseDimensions(t,0,0,0):e.reduceDimensions(-t,0,0,0));this.dimX=e}increaseDimensions(e,t,i,s){if(!(e<0||t<0||i<0||s<0||0===e&&0===t&&0===i&&0===s)){for(const l of this.getLayers())l instanceof h&&l.increaseDimensions(e,t,i,s);this.dimX=this.dimX+e+t,this.dimY=this.dimY+i+s}}setDimensionY(e){if(e===this.dimY)return;const t=e-this.dimY;for(const e of this.getLayers())e instanceof h&&(t>0?e.increaseDimensions(0,0,t,0):e.reduceDimensions(0,0,-t,0));this.dimY=e}getTileDefinition(e){return this._tileSet.get(e)}getTileDefinitions(){return this._tileSet.values()}addNewTileLayer(e){const t=new h(this,e);return this._layers.push(t),t}addTileLayer(e){this._layers.push(e)}getTileLayer(e){const t=this._layers.find((t=>t.id===e));return t instanceof h?t:null}addObjectLayer(e){const t=new d(this,e);return this._layers.push(t),t}getBackgroundResourceName(){return this._backgroundResourceName}getLayers(){return this._layers}pointIsInsideTile(e,t,i){const s=Math.floor(e/this.tileWidth),l=Math.floor(t/this.tileHeight);for(const e of this._layers){const t=e;if(!t)continue;const n=t.getTileId(s,l);if(void 0===n)return!1;if(this._tileSet.get(n).hasTaggedHitBox(i))return!0}return!1}setBackgroundResourceName(e){this._backgroundResourceName=e}isEmpty(){return this._layers.every((e=>e.isEmpty()))}getTileId(e,t,i){const s=this.getTileLayer(i);if(!s)return-1;const l=s.getTileId(e,t);return void 0===l?-1:l}setTile(e,t,i,s){const l=this.getTileLayer(i);l&&l.setTile(e,t,s)}flipTileOnY(e,t,i,s){const l=this.getTileLayer(i);l&&l.setFlippedVertically(e,t,s)}flipTileOnX(e,t,i,s){const l=this.getTileLayer(i);l&&l.setFlippedHorizontally(e,t,s)}isTileFlippedOnX(e,t,i){const s=this.getTileLayer(i);return!!s&&s.isFlippedHorizontally(e,t)}isTileFlippedOnY(e,t,i){const s=this.getTileLayer(i);return!!s&&s.isFlippedVertically(e,t)}removeTile(e,t,i){if(e<0||e>=this.dimX||t<0||t>=this.dimY)return;const s=this.getTileLayer(i);s&&s.removeTile(e,t)}trimEmptyColumnsAndRowToFitLayer(e){const t=this.getTileLayer(e);if(!t)return;const i=this.dimY,s=this.dimX;if(t.isEmpty()&&1===this._layers.length)return t.buildEmptyLayer(1,1),this.dimX=1,this.dimY=1,{shiftedRows:0,shiftedColumns:0,poppedRows:i-1,poppedColumns:s-1};const l=t.getTrimmingData();for(const e of this.getLayers())e instanceof h&&e.reduceDimensions(l.columnsToPop,l.columnsToShift,l.rowsToPop,l.rowsToShift);return this.dimX=s-l.columnsToPop-l.columnsToShift,this.dimY=i-l.rowsToPop-l.rowsToShift,{poppedRows:l.rowsToPop,poppedColumns:l.columnsToPop,shiftedRows:l.rowsToShift,shiftedColumns:l.columnsToShift}}}class a{constructor(e,t){this.visible=!0,this.tileMap=e,this.id=t}setVisible(e){this.visible=e}toJSObject(){return{}}isVisible(){return this.visible}isEmpty(){return!0}}class d extends a{constructor(e,t){super(e,t),this.objects=[]}add(e){this.objects.push(e)}isEmpty(){return 0===this.objects.length}}class c{constructor(e,t,i){this.tileId=i,this.x=e,this.y=t}getTileId(){return l.getTileId(this.tileId)}setFlippedHorizontally(e){this.tileId=l.setFlippedHorizontally(this.tileId,e)}setFlippedVertically(e){this.tileId=l.setFlippedVertically(this.tileId,e)}setFlippedDiagonally(e){this.tileId=l.setFlippedDiagonally(this.tileId,e)}isFlippedHorizontally(){return l.isFlippedHorizontally(this.tileId)}isFlippedVertically(){return l.isFlippedVertically(this.tileId)}isFlippedDiagonally(){return l.isFlippedDiagonally(this.tileId)}}class h extends a{constructor(e,t){super(e,t),this.buildEmptyLayer(this.tileMap.getDimensionX(),this.tileMap.getDimensionY()),this._alpha=1}buildEmptyLayer(e,t){this._tiles=[],this._tiles.length=t;for(let t=0;te.forEach(((e,n)=>{const o=l.getTileId(e);i(o)&&s.setTileGID(n,t,e)})))),s}toJSObject(){return{id:this.id,alpha:this._alpha,tiles:this._tiles.map(((e,t)=>Array.from(e.map(((e,i)=>{const s=this.getTileGID(i,t);return void 0===s?-1:s})))))}}getAlpha(){return this._alpha}setAlpha(e){this._alpha=e}isEmpty(){return this._tiles.every((e=>e.every((e=>0===e))))}reduceDimensions(e,t,i,s){(i>0||s>0)&&(this._tiles=this._tiles.slice(s,i?-i:void 0)),(e>0||t>0)&&this._tiles.forEach(((i,s)=>{this._tiles[s]=this._tiles[s].slice(t,e?-e:void 0)}))}increaseDimensions(e,t,i,s){const l=this._tiles.length,n=this._tiles[0].length;if((e>0||t>0)&&this._tiles.forEach(((i,s)=>{const l=new Int32Array(n+e+t).fill(0);l.set(i,t),this._tiles[s]=l})),i>0||s>0){this._tiles.unshift(...new Array(s).fill(0).map((()=>new Int32Array(n+e+t).fill(0)))),this._tiles.length=l+i+s;for(let i=l+s;i=s.length||(s[e]=i+1)}setTileGID(e,t,i){const s=this._tiles[t];!s||e>=s.length||(s[e]=i+1)}getTrimmingData(){let e=0,t=0;const i=this.getDimensionX(),s=this.getDimensionY(),l=new Array(this._tiles.length).fill(this._tiles[0].length),n=new Array(this._tiles.length).fill(this._tiles[0].length);let o=!1;for(let i=0;i=i.length||(i[e]=0)}setFlippedHorizontally(e,t,i){const s=this._tiles[t];if(!s||e>=s.length)return;const n=s[e];0!==n&&(s[e]=l.setFlippedHorizontally(n,i))}setFlippedVertically(e,t,i){const s=this._tiles[t];if(!s||e>=s.length)return;const n=s[e];0!==n&&(s[e]=l.setFlippedVertically(n,i))}setFlippedDiagonally(e,t,i){const s=this._tiles[t];if(!s||e>=s.length)return;const n=s[e];0!==n&&(s[e]=l.setFlippedDiagonally(n,i))}isFlippedHorizontally(e,t){const i=this._tiles[t];return!(!i||e>=i.length)&&l.isFlippedHorizontally(i[e])}isFlippedVertically(e,t){const i=this._tiles[t];return!(!i||e>=i.length)&&l.isFlippedVertically(i[e])}isFlippedDiagonally(e,t){const i=this._tiles[t];return!(!i||e>=i.length)&&l.isFlippedDiagonally(i[e])}getTileGID(e,t){const i=this._tiles[t];if(i&&!(e>=i.length)&&0!==i[e])return i[e]-1}getTileId(e,t){const i=this._tiles[t];if(!i||e>=i.length||0===i[e])return;return l.getTileId(i[e]-1)}getDimensionX(){return 0===this._tiles.length?0:this._tiles[0].length}getDimensionY(){return this._tiles.length}getWidth(){return this.tileMap.getWidth()}getHeight(){return this.tileMap.getHeight()}}class u{constructor(e){this.taggedHitBoxes=[],this.animationLength=null!=e?e:0,this.stackedTiles=[]}addHitBox(e,t,i){let s=this.taggedHitBoxes.find((t=>t.tag===e));s||(s={tag:e,polygons:[],hasFullHitBox:!1},this.taggedHitBoxes.push(s)),s.hasFullHitBox||(s.hasFullHitBox=i),s.polygons.push(t)}hasTaggedHitBox(e){return this.taggedHitBoxes.some((t=>t.tag===e))}getHitBoxes(e){const t=this.taggedHitBoxes.find((t=>t.tag===e));return t&&t.polygons}hasFullHitBox(e){const t=this.taggedHitBoxes.find((t=>t.tag===e));return t&&t.hasFullHitBox}getAnimationLength(){return this.animationLength}getStackTileId(){return this.stackTileId}getStackedTiles(){return this.stackedTiles}hasStackedTiles(){return this.stackedTiles.length>0}setStackedTiles(e,...t){this.stackedTiles=t,this.stackTileId=e}}class p{constructor(){this._cachedValues=new Map,this._callbacks=new Map}getOrLoad(e,t,i){{const t=this._cachedValues.get(e);if(t)return void i(t)}{const t=this._callbacks.get(e);if(t)return void t.push(i);this._callbacks.set(e,[i])}t((t=>{t&&this._cachedValues.set(e,t);const i=this._callbacks.get(e);this._callbacks.delete(e);for(const e of i)e(t)}))}}class g{constructor(){this._levelBackgroundTextures=new Map,this._textures=new Map}setTexture(e,t){this._textures.set(e,t)}getTexture(e){return this._textures.get(e)}getLevelBackgroundTexture(e){return this._levelBackgroundTextures.get(e)}setLevelBackgroundTexture(e,t){this._levelBackgroundTextures.set(e,t)}}const f=(e,t)=>{const{data:i,compression:s}=t;if(!i)return i;let l=4;const n=[];let o=atob(i).split("").map((function(e){return e.charCodeAt(0)}));try{const t=(e,t)=>e[t]+(e[t+1]<<8)+(e[t+2]<<16)+(e[t+3]<<24)>>>0;if("zlib"===s){const i=new Uint8Array(o),s=e.inflate(i);for(;l<=s.length;)n.push(t(s,l-4)),l+=4}else{if("zstd"===s)return console.error("Zstandard compression is not supported for layers in a Tilemap. Use instead zlib compression or no compression."),null;for(;l<=o.length;)n.push(t(o,l-4)),l+=4}return n}catch(e){return console.error("Failed to decompress and unzip base64 layer.data string",e),null}},y=e=>{const l=e&t,n=e&i,o=e&s;return{id:T(536870911&e),flippedHorizontally:!!l,flippedVertically:!!n,flippedDiagonally:!!o}};function T(e){return 0===e?void 0:e-1}var m,_,w,x,I,b;function M(e,t){let i=e<<16;return i+=t,i}function k(e,t,i,s){var l;if(e[s])return e[s];let n=null;const o=t[s];return(null==o?void 0:o.relPath)?(n=i(o.relPath),"res/error48.png"===(null===(l=n.baseTexture)||void 0===l?void 0:l.cacheId)&&(console.error(`The atlas texture "${o.relPath}" can't be loaded`),n=null)):console.error(`The tileset "${o.identifier}" doesn't seems to contain an atlas texture`),e[s]=n,n}!function(e){e.parseAtlas=function(e,t,i,s){if(!e.tiledversion)return console.warn("The loaded Tiled map does not contain a 'tiledversion' key. Are you sure this file has been exported from Tiled (mapeditor.org)?"),null;if(!e.tilesets.length||"source"in e.tilesets[0])return console.warn("The loaded Tiled map seems not to contain any tileset data (nothing in 'tilesets' key)."),null;const l=e.tilesets[0],{tilewidth:n,tileheight:o,tilecount:r,image:a,columns:d,spacing:c,margin:h}=l,u=void 0===l.firstgid?1:l.firstgid;i||(i=s(a));const p=r/d,f=n*d+c*(d-1)+2*h,y=o*p+c*(p-1)+2*h;if(i.width-1?t:0];if(!l||!l.layerInstances)return null;const n={};for(const t of e.defs.tilesets)n[t.uid]=t;const o=new g,r={},a={};for(let e=l.layerInstances.length-1;e>=0;--e){const t=l.layerInstances[e];if("Entities"===t.__type)continue;const i=t.__tilesetDefUid;if("number"!=typeof i)continue;const d=n[i],c=k(a,n,s,i);if(!c)continue;const h={},u=d.tileGridSize;for(const e of[...t.autoLayerTiles,...t.gridTiles]){if(h[e.t])continue;const t=M(i,e.t);if(r[t])h[e.t]=!0;else{try{const[i,s]=e.src,l=new PIXI.Rectangle(i,s,u,u),n=new PIXI.Texture(c,l);o.setTexture(t,n)}catch(e){console.error("An error occurred while creating a PIXI.Texture to be used in a TileMap:",e)}h[e.t]=!0,r[t]=!0}}}if(l.bgRelPath){const e=s(l.bgRelPath),t=new PIXI.Rectangle(0,0,l.pxWid,l.pxHei),i=new PIXI.Texture(e,t);o.setLevelBackgroundTexture(l.bgRelPath,i)}return o}}(_||(_={})),e.PixiTileMapHelper=void 0,(w=e.PixiTileMapHelper||(e.PixiTileMapHelper={})).parseAtlas=function(e,t,i,s){return"ldtk"===e.kind?_.parseAtlas(e.data,t,i,s):"tiled"===e.kind?m.parseAtlas(e.data,t,i,s):(console.warn("The loaded Tiled map data does not contain a 'tiledversion' or '__header__' key. Are you sure this file has been exported from Tiled (mapeditor.org) or LDtk (ldtk.io)?"),null)},w.parseSimpleTileMapAtlas=function(e,t,i,s){const l=new g;for(let n=0;n0&&o.tileAnimX(s,g.getAnimationLength())}}}},w.updatePixiCollisionMask=function(e,t,i,s,l,n,o,r){if(e){e.clear(),e.lineStyle(s,l,n),e.drawRect(0,0,t.getWidth(),t.getHeight());for(const s of t.getLayers()){const l=t.getTileWidth(),n=t.getTileHeight();if(s instanceof h){const t=s;for(let s=0;s-1?t:0];if(!i||!i.layerInstances)return null;const s=new Map;let l=0,n=0,a=0;for(let e=i.layerInstances.length-1;e>=0;--e){const t=i.layerInstances[e],o=t.__tilesetDefUid,r={};for(const e of[...t.autoLayerTiles,...t.gridTiles]){if(r[e.t])continue;const t=M(o,e.t);if(s.has(t)){r[e.t]=!0;continue}const i=new u(0);r[e.t]=!0,s.set(t,i)}"IntGrid"!==t.__type&&"AutoLayer"!==t.__type&&"Tiles"!==t.__type||(0===l?(l=t.__gridSize,n=t.__cWid,a=t.__cHei):t.__gridSize!==l&&console.warn("Grid size is different across layers. Only the first layer grid size will be followed."))}const d=new r(l,l,n,a,s),c=new Map;let h=268435455;for(let e=i.layerInstances.length-1;e>=0;--e){const t=i.layerInstances[e],l=t.__gridSize,n=t.__tilesetDefUid,r=d.addNewTileLayer(e);r.setAlpha(t.__opacity),r.setVisible(t.visible);for(const e of[...t.autoLayerTiles,...t.gridTiles]){const t=Math.floor(e.px[0]/l),i=Math.floor(e.px[1]/l),a=M(n,e.t),d=r.getTileId(t,i);if(void 0===d)r.setTile(t,i,a),r.setFlippedHorizontally(t,i,1===e.f||3===e.f),r.setFlippedVertically(t,i,2===e.f||3===e.f);else{const l=o(a,1===e.f||3===e.f,2===e.f||3===e.f,!1),n=s.get(d);if(null==n?void 0:n.hasStackedTiles()){const e=`${n.getStackedTiles().map((e=>`${e}`)).join(";")};${l}`,o=c.get(e);if(o)r.setTile(t,i,o.getStackTileId());else{const o=new u(0);o.setStackedTiles(h,...n.getStackedTiles(),l),s.set(h,o),h-=1,c.set(e,o),r.setTile(t,i,o.getStackTileId())}}else{const e=r.getTileGID(t,i),n=`${e};${l}`,o=new u(0);o.setStackedTiles(h,e,l),s.set(h,o),h-=1,c.set(n,o),r.setTile(t,i,o.getStackTileId())}}}}return i.bgRelPath&&d.setBackgroundResourceName(i.bgRelPath),d}}(x||(x={})),function(e){e.load=function(e,t){if(!e.tiledversion)return console.warn("The loaded Tiled map does not contain a 'tiledversion' key. Are you sure this file has been exported from Tiled (mapeditor.org)?"),null;const i=new Map;for(const t of e.tilesets){const s=void 0===t.firstgid?1:t.firstgid;if(t.tiles)for(const l of t.tiles){const t=new u(l.animation?l.animation.length:0),n=l.type||l.class;if(l.objectgroup)for(const i of l.objectgroup.objects){const s=i.type||i.class||n;if(!s||0===s.length)continue;let l=null,o=!1;if(i.polygon){const e=i.rotation*Math.PI/180;let t=Math.cos(e),s=Math.sin(e);-1!==t&&1!==t||(s=0),-1!==s&&1!==s||(t=0),l=i.polygon.map((e=>[i.x+e.x*t-e.y*s,i.y+e.x*s+e.y*t]))}else void 0!==i.x&&void 0!==i.y&&void 0!==i.width&&void 0!==i.height&&(l=[[i.x,i.y],[i.x,i.y+i.height],[i.x+i.width,i.y+i.height],[i.x+i.width,i.y]],o=0===i.x&&0===i.y&&i.width===e.tilewidth&&i.height===e.tileheight);l&&t.addHitBox(s,l,o)}else if(n){const i=[[0,0],[0,e.tileheight],[e.tilewidth,e.tileheight],[e.tilewidth,0]];t.addHitBox(n,i,!0)}i.set(T(s+l.id),t)}for(let e=0;e{e(t,i,(e=>{if(!e)return void n(null);const t=b.load(e,s,l);n(t)}))}),n)}getOrLoadSimpleTileMap(e,t,i,s,l,n){n(r.from(e,{tileSize:i,tileSetColumnCount:s,tileSetRowCount:l}))}getOrLoadTextureCache(t,i,s,l,n,o,r){const a=l+"|"+n+"|"+s+"|"+o;this._textureCacheCaches.getOrLoad(a,(r=>{t(l,n,(t=>{if(!t)return void r(null);const l=s?i(s):null,n=e.PixiTileMapHelper.parseAtlas(t,o,l,i);r(n)}))}),r)}getOrLoadSimpleTileMapTextureCache(t,i,s,l,n,o){const r=`${i}|${s}|${l}|${n}`;this._textureCacheCaches.getOrLoad(r,(o=>{if(!i)return void o(null);const r=t(i);o(e.PixiTileMapHelper.parseSimpleTileMapAtlas(r,l,n,s))}),o)}clearCaches(){this._tileMapCache=new p,this._textureCacheCaches=new p}}e.EditableTileMap=r,e.EditableTileMapLayer=h,e.TileDefinition=u,e.TileMapManager=v,e.TileTextureCache=g,Object.defineProperty(e,"__esModule",{value:!0})})); +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TileMapHelper={})}(this,(function(e){"use strict";const t=2147483648,i=1073741824,s=536870912;var l;function n(e){const t=l.isFlippedDiagonally(e),i=l.isFlippedHorizontally(e),s=l.isFlippedVertically(e);let n=0;return t?(n=10,!i&&s?n=2:i&&!s?n=6:i&&s&&(n=14)):(n=0,!i&&s?n=8:i&&!s?n=12:i&&s&&(n=4)),n}function o(e,l,n,o){let r=e;return l&&(r|=t),n&&(r|=i),o&&(r|=s),r}!function(e){e.tileIdMask=536870911,e.getTileId=function(t){return t&e.tileIdMask},e.setFlippedHorizontally=function(e,i){return e&=2147483647,i&&(e|=t),e},e.setFlippedVertically=function(e,t){return e&=-1073741825,t&&(e|=i),e},e.setFlippedDiagonally=function(e,t){return e&=-536870913,t&&(e|=s),e},e.isFlippedHorizontally=function(e){return 0!=(e&t)},e.isFlippedVertically=function(e){return 0!=(e&i)},e.isFlippedDiagonally=function(e){return 0!=(e&s)}}(l||(l={}));class r{constructor(e,t,i,s,l){this.tileWidth=e,this.tileHeight=t,this.dimX=i,this.dimY=s,this._tileSet=l,this._layers=[]}static from(e,{tileSize:t,tileSetColumnCount:i,tileSetRowCount:s}){const l=new Map;if(!Number.isInteger(i)||i<=0||!Number.isInteger(s)||s<=0)throw new Error(`Tilemap object badly configured. Tile size ${t} is not compatible with atlas image dimensions, resulting in having ${i} columns and ${s} rows.`);new Array(i*s).fill(0).forEach(((e,t)=>{l.set(t,new u(0))}));const n=new r(t||e.tileWidth,t||e.tileHeight,e.dimX||1,e.dimY||1,l);return e.layers?e.layers.forEach((e=>{n.addTileLayer(h.from(e,n,(e=>ee.toJSObject()))}}getWidth(){return this.tileWidth*this.dimX}getHeight(){return this.tileHeight*this.dimY}getTileHeight(){return this.tileHeight}getTileWidth(){return this.tileWidth}getDimensionX(){return this.dimX}getDimensionY(){return this.dimY}setDimensionX(e){if(e===this.dimX)return;const t=e-this.dimX;for(const e of this.getLayers())e instanceof h&&(t>0?e.increaseDimensions(t,0,0,0):e.reduceDimensions(-t,0,0,0));this.dimX=e}increaseDimensions(e,t,i,s){if(!(e<0||t<0||i<0||s<0||0===e&&0===t&&0===i&&0===s)){for(const l of this.getLayers())l instanceof h&&l.increaseDimensions(e,t,i,s);this.dimX=this.dimX+e+t,this.dimY=this.dimY+i+s}}setDimensionY(e){if(e===this.dimY)return;const t=e-this.dimY;for(const e of this.getLayers())e instanceof h&&(t>0?e.increaseDimensions(0,0,t,0):e.reduceDimensions(0,0,-t,0));this.dimY=e}getTileDefinition(e){return this._tileSet.get(e)}getTileDefinitions(){return this._tileSet.values()}addNewTileLayer(e){const t=new h(this,e);return this._layers.push(t),t}addTileLayer(e){this._layers.push(e)}getTileLayer(e){const t=this._layers.find((t=>t.id===e));return t instanceof h?t:null}addObjectLayer(e){const t=new d(this,e);return this._layers.push(t),t}getBackgroundResourceName(){return this._backgroundResourceName}getLayers(){return this._layers}pointIsInsideTile(e,t,i){const s=Math.floor(e/this.tileWidth),l=Math.floor(t/this.tileHeight);for(const e of this._layers){const t=e;if(!t)continue;const n=t.getTileId(s,l);if(void 0===n)return!1;if(this._tileSet.get(n).hasTaggedHitBox(i))return!0}return!1}setBackgroundResourceName(e){this._backgroundResourceName=e}isEmpty(){return this._layers.every((e=>e.isEmpty()))}getTileId(e,t,i){const s=this.getTileLayer(i);if(!s)return-1;const l=s.getTileId(e,t);return void 0===l?-1:l}setTile(e,t,i,s){const l=this.getTileLayer(i);l&&l.setTile(e,t,s)}flipTileOnY(e,t,i,s){const l=this.getTileLayer(i);l&&l.setFlippedVertically(e,t,s)}flipTileOnX(e,t,i,s){const l=this.getTileLayer(i);l&&l.setFlippedHorizontally(e,t,s)}isTileFlippedOnX(e,t,i){const s=this.getTileLayer(i);return!!s&&s.isFlippedHorizontally(e,t)}isTileFlippedOnY(e,t,i){const s=this.getTileLayer(i);return!!s&&s.isFlippedVertically(e,t)}removeTile(e,t,i){if(e<0||e>=this.dimX||t<0||t>=this.dimY)return;const s=this.getTileLayer(i);s&&s.removeTile(e,t)}trimEmptyColumnsAndRowToFitLayer(e){const t=this.getTileLayer(e);if(!t)return;const i=this.dimY,s=this.dimX;if(t.isEmpty()&&1===this._layers.length)return t.buildEmptyLayer(1,1),this.dimX=1,this.dimY=1,{shiftedRows:0,shiftedColumns:0,poppedRows:i-1,poppedColumns:s-1};const l=t.getTrimmingData();for(const e of this.getLayers())e instanceof h&&e.reduceDimensions(l.columnsToPop,l.columnsToShift,l.rowsToPop,l.rowsToShift);return this.dimX=s-l.columnsToPop-l.columnsToShift,this.dimY=i-l.rowsToPop-l.rowsToShift,{poppedRows:l.rowsToPop,poppedColumns:l.columnsToPop,shiftedRows:l.rowsToShift,shiftedColumns:l.columnsToShift}}}class a{constructor(e,t){this.visible=!0,this.tileMap=e,this.id=t}setVisible(e){this.visible=e}toJSObject(){return{}}isVisible(){return this.visible}isEmpty(){return!0}}class d extends a{constructor(e,t){super(e,t),this.objects=[]}add(e){this.objects.push(e)}isEmpty(){return 0===this.objects.length}}class c{constructor(e,t,i){this.tileId=i,this.x=e,this.y=t}getTileId(){return l.getTileId(this.tileId)}setFlippedHorizontally(e){this.tileId=l.setFlippedHorizontally(this.tileId,e)}setFlippedVertically(e){this.tileId=l.setFlippedVertically(this.tileId,e)}setFlippedDiagonally(e){this.tileId=l.setFlippedDiagonally(this.tileId,e)}isFlippedHorizontally(){return l.isFlippedHorizontally(this.tileId)}isFlippedVertically(){return l.isFlippedVertically(this.tileId)}isFlippedDiagonally(){return l.isFlippedDiagonally(this.tileId)}}class h extends a{constructor(e,t){super(e,t),this.buildEmptyLayer(this.tileMap.getDimensionX(),this.tileMap.getDimensionY()),this._alpha=1}buildEmptyLayer(e,t){this._tiles=[],this._tiles.length=t;for(let t=0;te.forEach(((e,n)=>{const o=l.getTileId(e);i(o)&&s.setTileGID(n,t,e)})))),s}toJSObject(){return{id:this.id,alpha:this._alpha,tiles:this._tiles.map(((e,t)=>Array.from(e.map(((e,i)=>{const s=this.getTileGID(i,t);return void 0===s?-1:s})))))}}getAlpha(){return this._alpha}setAlpha(e){this._alpha=e}isEmpty(){return this._tiles.every((e=>e.every((e=>0===e))))}reduceDimensions(e,t,i,s){(i>0||s>0)&&(this._tiles=this._tiles.slice(s,i?-i:void 0)),(e>0||t>0)&&this._tiles.forEach(((i,s)=>{this._tiles[s]=this._tiles[s].slice(t,e?-e:void 0)}))}increaseDimensions(e,t,i,s){const l=this._tiles.length,n=this._tiles[0].length;if((e>0||t>0)&&this._tiles.forEach(((i,s)=>{const l=new Int32Array(n+e+t).fill(0);l.set(i,t),this._tiles[s]=l})),i>0||s>0){this._tiles.unshift(...new Array(s).fill(0).map((()=>new Int32Array(n+e+t).fill(0)))),this._tiles.length=l+i+s;for(let i=l+s;i=s.length||(s[e]=i+1)}setTileGID(e,t,i){const s=this._tiles[t];!s||e>=s.length||(s[e]=i+1)}getTrimmingData(){let e=0,t=0;const i=this.getDimensionX(),s=this.getDimensionY(),l=new Array(this._tiles.length).fill(this._tiles[0].length),n=new Array(this._tiles.length).fill(this._tiles[0].length);let o=!1;for(let i=0;i=i.length||(i[e]=0)}setFlippedHorizontally(e,t,i){const s=this._tiles[t];if(!s||e>=s.length)return;const n=s[e];0!==n&&(s[e]=l.setFlippedHorizontally(n,i))}setFlippedVertically(e,t,i){const s=this._tiles[t];if(!s||e>=s.length)return;const n=s[e];0!==n&&(s[e]=l.setFlippedVertically(n,i))}setFlippedDiagonally(e,t,i){const s=this._tiles[t];if(!s||e>=s.length)return;const n=s[e];0!==n&&(s[e]=l.setFlippedDiagonally(n,i))}isFlippedHorizontally(e,t){const i=this._tiles[t];return!(!i||e>=i.length)&&l.isFlippedHorizontally(i[e])}isFlippedVertically(e,t){const i=this._tiles[t];return!(!i||e>=i.length)&&l.isFlippedVertically(i[e])}isFlippedDiagonally(e,t){const i=this._tiles[t];return!(!i||e>=i.length)&&l.isFlippedDiagonally(i[e])}getTileGID(e,t){const i=this._tiles[t];if(i&&!(e>=i.length)&&0!==i[e])return i[e]-1}getTileId(e,t){const i=this._tiles[t];if(!i||e>=i.length||0===i[e])return;return l.getTileId(i[e]-1)}getDimensionX(){return 0===this._tiles.length?0:this._tiles[0].length}getDimensionY(){return this._tiles.length}getWidth(){return this.tileMap.getWidth()}getHeight(){return this.tileMap.getHeight()}}class u{constructor(e){this.taggedHitBoxes=[],this.animationLength=null!=e?e:0,this.stackedTiles=[]}addHitBox(e,t,i){let s=this.taggedHitBoxes.find((t=>t.tag===e));s||(s={tag:e,polygons:[],hasFullHitBox:!1},this.taggedHitBoxes.push(s)),s.hasFullHitBox||(s.hasFullHitBox=i),s.polygons.push(t)}hasTaggedHitBox(e){return this.taggedHitBoxes.some((t=>t.tag===e))}getHitBoxes(e){const t=this.taggedHitBoxes.find((t=>t.tag===e));return t&&t.polygons}hasFullHitBox(e){const t=this.taggedHitBoxes.find((t=>t.tag===e));return t&&t.hasFullHitBox}getAnimationLength(){return this.animationLength}getStackTileId(){return this.stackTileId}getStackedTiles(){return this.stackedTiles}hasStackedTiles(){return this.stackedTiles.length>0}setStackedTiles(e,...t){this.stackedTiles=t,this.stackTileId=e}}class p{constructor(){this._cachedValues=new Map,this._callbacks=new Map}getOrLoad(e,t,i){{const t=this._cachedValues.get(e);if(t)return void i(t)}{const t=this._callbacks.get(e);if(t)return void t.push(i);this._callbacks.set(e,[i])}t((t=>{t&&this._cachedValues.set(e,t);const i=this._callbacks.get(e);this._callbacks.delete(e);for(const e of i)e(t)}))}}class g{constructor(){this._levelBackgroundTextures=new Map,this._textures=new Map}setTexture(e,t){this._textures.set(e,t)}getTexture(e){return this._textures.get(e)}getLevelBackgroundTexture(e){return this._levelBackgroundTextures.get(e)}setLevelBackgroundTexture(e,t){this._levelBackgroundTextures.set(e,t)}}const f=(e,t)=>{const{data:i,compression:s}=t;if(!i)return i;let l=4;const n=[];let o=atob(i).split("").map((function(e){return e.charCodeAt(0)}));try{const t=(e,t)=>e[t]+(e[t+1]<<8)+(e[t+2]<<16)+(e[t+3]<<24)>>>0;if("zlib"===s){const i=new Uint8Array(o),s=e.inflate(i);for(;l<=s.length;)n.push(t(s,l-4)),l+=4}else{if("zstd"===s)return console.error("Zstandard compression is not supported for layers in a Tilemap. Use instead zlib compression or no compression."),null;for(;l<=o.length;)n.push(t(o,l-4)),l+=4}return n}catch(e){return console.error("Failed to decompress and unzip base64 layer.data string",e),null}},y=e=>{const l=e&t,n=e&i,o=e&s;return{id:T(536870911&e),flippedHorizontally:!!l,flippedVertically:!!n,flippedDiagonally:!!o}};function T(e){return 0===e?void 0:e-1}var m,_,w,x,I;function b(e,t){let i=e<<16;return i+=t,i}function k(e,t,i,s){var l;if(e[s])return e[s];let n=null;const o=t[s];return(null==o?void 0:o.relPath)?(n=i(o.relPath),"res/error48.png"===(null===(l=n.baseTexture)||void 0===l?void 0:l.cacheId)&&(console.error(`The atlas texture "${o.relPath}" can't be loaded`),n=null)):console.error(`The tileset "${o.identifier}" doesn't seems to contain an atlas texture`),e[s]=n,n}!function(e){e.parseAtlas=function(e,t,i,s){if(!e.tiledversion)return console.warn("The loaded Tiled map does not contain a 'tiledversion' key. Are you sure this file has been exported from Tiled (mapeditor.org)?"),null;if(!e.tilesets.length||"source"in e.tilesets[0])return console.warn("The loaded Tiled map seems not to contain any tileset data (nothing in 'tilesets' key)."),null;const l=e.tilesets[0],{tilewidth:n,tileheight:o,tilecount:r,image:a,columns:d,spacing:c,margin:h}=l,u=void 0===l.firstgid?1:l.firstgid;i||(i=s(a));const p=r/d,f=n*d+c*(d-1)+2*h,y=o*p+c*(p-1)+2*h;if(i.width-1?t:0];if(!l||!l.layerInstances)return null;const n={};for(const t of e.defs.tilesets)n[t.uid]=t;const o=new g,r={},a={};for(let e=l.layerInstances.length-1;e>=0;--e){const t=l.layerInstances[e];if("Entities"===t.__type)continue;const i=t.__tilesetDefUid;if("number"!=typeof i)continue;const d=n[i],c=k(a,n,s,i);if(!c)continue;const h={},u=d.tileGridSize;for(const e of[...t.autoLayerTiles,...t.gridTiles]){if(h[e.t])continue;const t=b(i,e.t);if(r[t])h[e.t]=!0;else{try{const[i,s]=e.src,l=new PIXI.Rectangle(i,s,u,u),n=new PIXI.Texture(c,l);o.setTexture(t,n)}catch(e){console.error("An error occurred while creating a PIXI.Texture to be used in a TileMap:",e)}h[e.t]=!0,r[t]=!0}}}if(l.bgRelPath){const e=s(l.bgRelPath),t=new PIXI.Rectangle(0,0,l.pxWid,l.pxHei),i=new PIXI.Texture(e,t);o.setLevelBackgroundTexture(l.bgRelPath,i)}return o}}(_||(_={})),e.PixiTileMapHelper=void 0,function(e){function t(e,t,i,s,l){const n=t.tileMap,o=n.getTileWidth(),r=n.getTileHeight();for(let a=0;a0&&o.tileAnimX(s,g.getAnimationLength())}}}},e.updatePixiCollisionMask=function(e,i,s,l,n,o,r,a,d){if(e)if(e.clear(),e.lineStyle(n,o,r),e.drawRect(0,0,i.getWidth(),i.getHeight()),l){t(e,i.getTileLayer(l),s,a,d)}else for(const l of i.getLayers())l instanceof h&&t(e,l,s,a,d)}}(e.PixiTileMapHelper||(e.PixiTileMapHelper={})),function(e){e.load=function(e,t){const i=e.levels[t>-1?t:0];if(!i||!i.layerInstances)return null;const s=new Map;let l=0,n=0,a=0;for(let e=i.layerInstances.length-1;e>=0;--e){const t=i.layerInstances[e],o=t.__tilesetDefUid,r={};for(const e of[...t.autoLayerTiles,...t.gridTiles]){if(r[e.t])continue;const t=b(o,e.t);if(s.has(t)){r[e.t]=!0;continue}const i=new u(0);r[e.t]=!0,s.set(t,i)}"IntGrid"!==t.__type&&"AutoLayer"!==t.__type&&"Tiles"!==t.__type||(0===l?(l=t.__gridSize,n=t.__cWid,a=t.__cHei):t.__gridSize!==l&&console.warn("Grid size is different across layers. Only the first layer grid size will be followed."))}const d=new r(l,l,n,a,s),c=new Map;let h=268435455;for(let e=i.layerInstances.length-1;e>=0;--e){const t=i.layerInstances[e],l=t.__gridSize,n=t.__tilesetDefUid,r=d.addNewTileLayer(e);r.setAlpha(t.__opacity),r.setVisible(t.visible);for(const e of[...t.autoLayerTiles,...t.gridTiles]){const t=Math.floor(e.px[0]/l),i=Math.floor(e.px[1]/l),a=b(n,e.t),d=r.getTileId(t,i);if(void 0===d)r.setTile(t,i,a),r.setFlippedHorizontally(t,i,1===e.f||3===e.f),r.setFlippedVertically(t,i,2===e.f||3===e.f);else{const l=o(a,1===e.f||3===e.f,2===e.f||3===e.f,!1),n=s.get(d);if(null==n?void 0:n.hasStackedTiles()){const e=`${n.getStackedTiles().map((e=>`${e}`)).join(";")};${l}`,o=c.get(e);if(o)r.setTile(t,i,o.getStackTileId());else{const o=new u(0);o.setStackedTiles(h,...n.getStackedTiles(),l),s.set(h,o),h-=1,c.set(e,o),r.setTile(t,i,o.getStackTileId())}}else{const e=r.getTileGID(t,i),n=`${e};${l}`,o=new u(0);o.setStackedTiles(h,e,l),s.set(h,o),h-=1,c.set(n,o),r.setTile(t,i,o.getStackTileId())}}}}return i.bgRelPath&&d.setBackgroundResourceName(i.bgRelPath),d}}(w||(w={})),function(e){e.load=function(e,t){if(!e.tiledversion)return console.warn("The loaded Tiled map does not contain a 'tiledversion' key. Are you sure this file has been exported from Tiled (mapeditor.org)?"),null;const i=new Map;for(const t of e.tilesets){const s=void 0===t.firstgid?1:t.firstgid;if(t.tiles)for(const l of t.tiles){const t=new u(l.animation?l.animation.length:0),n=l.type||l.class;if(l.objectgroup)for(const i of l.objectgroup.objects){const s=i.type||i.class||n;if(!s||0===s.length)continue;let l=null,o=!1;if(i.polygon){const e=i.rotation*Math.PI/180;let t=Math.cos(e),s=Math.sin(e);-1!==t&&1!==t||(s=0),-1!==s&&1!==s||(t=0),l=i.polygon.map((e=>[i.x+e.x*t-e.y*s,i.y+e.x*s+e.y*t]))}else void 0!==i.x&&void 0!==i.y&&void 0!==i.width&&void 0!==i.height&&(l=[[i.x,i.y],[i.x,i.y+i.height],[i.x+i.width,i.y+i.height],[i.x+i.width,i.y]],o=0===i.x&&0===i.y&&i.width===e.tilewidth&&i.height===e.tileheight);l&&t.addHitBox(s,l,o)}else if(n){const i=[[0,0],[0,e.tileheight],[e.tilewidth,e.tileheight],[e.tilewidth,0]];t.addHitBox(n,i,!0)}i.set(T(s+l.id),t)}for(let e=0;e{e(t,i,(e=>{if(!e)return void n(null);const t=I.load(e,s,l);n(t)}))}),n)}getOrLoadSimpleTileMap(e,t,i,s,l,n){n(r.from(e,{tileSize:i,tileSetColumnCount:s,tileSetRowCount:l}))}getOrLoadTextureCache(t,i,s,l,n,o,r){const a=l+"|"+n+"|"+s+"|"+o;this._textureCacheCaches.getOrLoad(a,(r=>{t(l,n,(t=>{if(!t)return void r(null);const l=s?i(s):null,n=e.PixiTileMapHelper.parseAtlas(t,o,l,i);r(n)}))}),r)}getOrLoadSimpleTileMapTextureCache(t,i,s,l,n,o){const r=`${i}|${s}|${l}|${n}`;this._textureCacheCaches.getOrLoad(r,(o=>{if(!i)return void o(null);const r=t(i);o(e.PixiTileMapHelper.parseSimpleTileMapAtlas(r,l,n,s))}),o)}clearCaches(){this._tileMapCache=new p,this._textureCacheCaches=new p}}e.EditableTileMap=r,e.EditableTileMapLayer=h,e.TileDefinition=u,e.TileMapManager=M,e.TileTextureCache=g,Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=TileMapHelper.js.map diff --git a/Extensions/TileMap/helper/TileMapHelper.js.map b/Extensions/TileMap/helper/TileMapHelper.js.map index a02125735343..28b91357af96 100644 --- a/Extensions/TileMap/helper/TileMapHelper.js.map +++ b/Extensions/TileMap/helper/TileMapHelper.js.map @@ -1 +1 @@ -{"version":3,"file":"TileMapHelper.js","sources":["../../../SharedLibs/src/model/GID.ts","../../../SharedLibs/src/model/TileMapModel.ts","../../../SharedLibs/src/render/ResourceCache.ts","../../../SharedLibs/src/render/TileTextureCache.ts","../../../SharedLibs/src/load/tiled/TiledTileMapLoaderHelper.ts","../../../SharedLibs/src/render/tiled/TiledPixiHelper.ts","../../../SharedLibs/src/render/ldtk/LDtkPixiHelper.ts","../../../SharedLibs/src/render/TileMapPixiHelper.ts","../../../SharedLibs/src/load/ldtk/LDtkTileMapLoader.ts","../../../SharedLibs/src/load/tiled/TiledTileMapLoader.ts","../../../SharedLibs/src/load/TileMapLoader.ts","../../../SharedLibs/src/load/ldtk/LDtkTileMapLoaderHelper.ts","../../../SharedLibs/src/render/TileMapManager.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["FLIPPED_HORIZONTALLY_FLAG","FLIPPED_VERTICALLY_FLAG","FLIPPED_DIAGONALLY_FLAG","FlippingHelper","getPixiRotate","tileGID","flippedDiagonally","isFlippedDiagonally","flippedHorizontally","isFlippedHorizontally","flippedVertically","isFlippedVertically","rotate","getTileGID","tileId","tileIdMask","getTileId","setFlippedHorizontally","setFlippedVertically","setFlippedDiagonally","EditableTileMap","constructor","tileWidth","tileHeight","dimX","dimY","tileSet","this","_tileSet","_layers","from","editableTileMapAsJsObject","tileSize","tileSetColumnCount","tileSetRowCount","Map","Number","isInteger","Error","Array","fill","forEach","_","index","set","TileDefinition","tileMap","layers","layerAsJsObject","addTileLayer","EditableTileMapLayer","addNewTileLayer","toJSObject","map","layer","getWidth","getHeight","getTileHeight","getTileWidth","getDimensionX","getDimensionY","setDimensionX","dim","columnDelta","getLayers","increaseDimensions","reduceDimensions","columnsToAppend","columnsToUnshift","rowsToAppend","rowsToUnshift","setDimensionY","rowDelta","getTileDefinition","get","getTileDefinitions","values","id","push","getTileLayer","matchingLayer","find","addObjectLayer","EditableObjectLayer","getBackgroundResourceName","_backgroundResourceName","pointIsInsideTile","x","y","tag","indexX","Math","floor","indexY","tileLayer","undefined","hasTaggedHitBox","setBackgroundResourceName","resourceName","isEmpty","every","layerId","setTile","flipTileOnY","flip","flipTileOnX","isTileFlippedOnX","isTileFlippedOnY","removeTile","trimEmptyColumnsAndRowToFitLayer","initialRowCount","initialColumnCount","length","buildEmptyLayer","shiftedRows","shiftedColumns","poppedRows","poppedColumns","trimmingData","getTrimmingData","columnsToPop","columnsToShift","rowsToPop","rowsToShift","AbstractEditableLayer","visible","setVisible","isVisible","super","objects","add","object","TileObject","_alpha","dimensionX","dimensionY","_tiles","Int32Array","editableTileMapLayerAsJsObject","isTileIdValid","setAlpha","alpha","tiles","row","setTileGID","getAlpha","cell","slice","rowIndex","newRow","unshift","console","error","tilesRow","initialDimensionX","initialDimensionY","columnsToShiftByRow","columnsToPopByRow","isFirstNonEmptyRowFound","isFirstNonEmptyColumnFound","min","animationLength","taggedHitBoxes","stackedTiles","addHitBox","polygon","hasFullHitBox","taggedHitBox","hitbox","polygons","some","getHitBoxes","getAnimationLength","getStackTileId","stackTileId","getStackedTiles","hasStackedTiles","setStackedTiles","ResourceCache","_cachedValues","_callbacks","getOrLoad","key","load","callback","value","callbacks","delete","TileTextureCache","_levelBackgroundTextures","_textures","setTexture","texture","getTexture","getLevelBackgroundTexture","name","setLevelBackgroundTexture","decodeBase64LayerData","pako","tiledLayer","data","compression","decodedData","step1","atob","split","charCodeAt","decodeArray","arr","binData","Uint8Array","decompressedData","inflate","extractTileUidFlippedStates","globalTileUid","getTileIdFromTiledGUI","tiledGUI","TiledPixiHelper","LDtkPixiHelper","PixiTileMapHelper","LDtkTileMapLoader","TiledTileMapLoader","TileMapLoader","getLDtkTileId","tileSetId","uniqueId","getAtlasTexture","atlasTextures","tilesetCache","tilesetId","tileset","relPath","baseTexture","_a","cacheId","identifier","parseAtlas","levelIndex","atlasTexture","tiledversion","warn","tilesets","tiledSet","tilewidth","tileheight","tilecount","image","columns","spacing","margin","firstGid","firstgid","rows","expectedAtlasWidth","expectedAtlasHeight","width","height","textureCache","tileSetIndex","rect","PIXI","Rectangle","Texture","level","levels","layerInstances","defs","uid","levelTileCache","iLayer","__type","__tilesetDefUid","layerTileCache","gridSize","tileGridSize","tile","autoLayerTiles","gridTiles","t","src","bgRelPath","pxWid","pxHei","exports","kind","parseSimpleTileMapAtlas","columnCount","rowCount","updatePixiTileMap","untypedPixiTileMap","displayMode","layerIndex","pixiTileMap","clear","bgResourceName","objectLayer","xPos","yPos","tileDefinition","tileTexture","pixiTilemapFrame","tileAnimX","updatePixiCollisionMask","pixiGraphics","typeFilter","outlineSize","outlineColor","outlineOpacity","fillColor","fillOpacity","lineStyle","drawRect","hitboxes","vertices","beginFill","vertexX","vertexY","swap","moveTo","lineTo","closePath","endFill","ldtkTileMap","ldtkLevel","tileCache","has","tileDef","__gridSize","__cWid","__cHei","editableTileMap","composedTileMap","nextComposedTileId","editableTileLayer","__opacity","px","oldTileId","f","oldTileDef","hash","join","oldTileGID","tiledTileMap","definitions","tiledTileSet","animation","tileClass","type","class","objectgroup","angle","rotation","PI","cos","sin","point","tileIndex","collisionTileMap","tiledObject","gid","tileGid","tileSlotIndex","layerData","encoding","collisionTileLayer","opacity","tileUid","tileMapFileContent","TileMapManager","_tileMapCache","_textureCacheCaches","getManager","instanceHolder","tileMapCollisionMaskManager","identify","info","__header__","app","getOrLoadTileMap","loadTileMap","tileMapJsonResourceName","tileSetJsonResourceName","getOrLoadSimpleTileMap","tileMapAsJsObject","objectName","getOrLoadTextureCache","atlasImageResourceName","getOrLoadSimpleTileMapTextureCache","textureCacheLoadingCallback","clearCaches"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"TileMapHelper.js","sources":["../../../SharedLibs/src/model/GID.ts","../../../SharedLibs/src/model/TileMapModel.ts","../../../SharedLibs/src/render/ResourceCache.ts","../../../SharedLibs/src/render/TileTextureCache.ts","../../../SharedLibs/src/load/tiled/TiledTileMapLoaderHelper.ts","../../../SharedLibs/src/render/tiled/TiledPixiHelper.ts","../../../SharedLibs/src/render/ldtk/LDtkPixiHelper.ts","../../../SharedLibs/src/load/ldtk/LDtkTileMapLoader.ts","../../../SharedLibs/src/load/tiled/TiledTileMapLoader.ts","../../../SharedLibs/src/load/TileMapLoader.ts","../../../SharedLibs/src/load/ldtk/LDtkTileMapLoaderHelper.ts","../../../SharedLibs/src/render/TileMapPixiHelper.ts","../../../SharedLibs/src/render/TileMapManager.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["FLIPPED_HORIZONTALLY_FLAG","FLIPPED_VERTICALLY_FLAG","FLIPPED_DIAGONALLY_FLAG","FlippingHelper","getPixiRotate","tileGID","flippedDiagonally","isFlippedDiagonally","flippedHorizontally","isFlippedHorizontally","flippedVertically","isFlippedVertically","rotate","getTileGID","tileId","tileIdMask","getTileId","setFlippedHorizontally","setFlippedVertically","setFlippedDiagonally","EditableTileMap","constructor","tileWidth","tileHeight","dimX","dimY","tileSet","this","_tileSet","_layers","from","editableTileMapAsJsObject","tileSize","tileSetColumnCount","tileSetRowCount","Map","Number","isInteger","Error","Array","fill","forEach","_","index","set","TileDefinition","tileMap","layers","layerAsJsObject","addTileLayer","EditableTileMapLayer","addNewTileLayer","toJSObject","map","layer","getWidth","getHeight","getTileHeight","getTileWidth","getDimensionX","getDimensionY","setDimensionX","dim","columnDelta","getLayers","increaseDimensions","reduceDimensions","columnsToAppend","columnsToUnshift","rowsToAppend","rowsToUnshift","setDimensionY","rowDelta","getTileDefinition","get","getTileDefinitions","values","id","push","getTileLayer","matchingLayer","find","addObjectLayer","EditableObjectLayer","getBackgroundResourceName","_backgroundResourceName","pointIsInsideTile","x","y","tag","indexX","Math","floor","indexY","tileLayer","undefined","hasTaggedHitBox","setBackgroundResourceName","resourceName","isEmpty","every","layerId","setTile","flipTileOnY","flip","flipTileOnX","isTileFlippedOnX","isTileFlippedOnY","removeTile","trimEmptyColumnsAndRowToFitLayer","initialRowCount","initialColumnCount","length","buildEmptyLayer","shiftedRows","shiftedColumns","poppedRows","poppedColumns","trimmingData","getTrimmingData","columnsToPop","columnsToShift","rowsToPop","rowsToShift","AbstractEditableLayer","visible","setVisible","isVisible","super","objects","add","object","TileObject","_alpha","dimensionX","dimensionY","_tiles","Int32Array","editableTileMapLayerAsJsObject","isTileIdValid","setAlpha","alpha","tiles","row","setTileGID","getAlpha","cell","slice","rowIndex","newRow","unshift","console","error","tilesRow","initialDimensionX","initialDimensionY","columnsToShiftByRow","columnsToPopByRow","isFirstNonEmptyRowFound","isFirstNonEmptyColumnFound","min","animationLength","taggedHitBoxes","stackedTiles","addHitBox","polygon","hasFullHitBox","taggedHitBox","hitbox","polygons","some","getHitBoxes","getAnimationLength","getStackTileId","stackTileId","getStackedTiles","hasStackedTiles","setStackedTiles","ResourceCache","_cachedValues","_callbacks","getOrLoad","key","load","callback","value","callbacks","delete","TileTextureCache","_levelBackgroundTextures","_textures","setTexture","texture","getTexture","getLevelBackgroundTexture","name","setLevelBackgroundTexture","decodeBase64LayerData","pako","tiledLayer","data","compression","decodedData","step1","atob","split","charCodeAt","decodeArray","arr","binData","Uint8Array","decompressedData","inflate","extractTileUidFlippedStates","globalTileUid","getTileIdFromTiledGUI","tiledGUI","TiledPixiHelper","LDtkPixiHelper","LDtkTileMapLoader","TiledTileMapLoader","TileMapLoader","getLDtkTileId","tileSetId","uniqueId","getAtlasTexture","atlasTextures","tilesetCache","tilesetId","tileset","relPath","_a","baseTexture","cacheId","identifier","parseAtlas","levelIndex","atlasTexture","tiledversion","warn","tilesets","tiledSet","tilewidth","tileheight","tilecount","image","columns","spacing","margin","firstGid","firstgid","rows","expectedAtlasWidth","expectedAtlasHeight","width","height","textureCache","tileSetIndex","rect","PIXI","Rectangle","Texture","level","levels","layerInstances","defs","uid","levelTileCache","iLayer","__type","__tilesetDefUid","layerTileCache","gridSize","tileGridSize","tile","autoLayerTiles","gridTiles","t","src","bgRelPath","pxWid","pxHei","exports","PixiTileMapHelper","drawCollisionLayer","pixiGraphics","typeFilter","fillColor","fillOpacity","xPos","yPos","tileDefinition","hitboxes","vertices","beginFill","vertexX","vertexY","swap","moveTo","lineTo","closePath","endFill","kind","parseSimpleTileMapAtlas","columnCount","rowCount","updatePixiTileMap","untypedPixiTileMap","displayMode","layerIndex","pixiTileMap","clear","bgResourceName","objectLayer","tileTexture","pixiTilemapFrame","tileAnimX","updatePixiCollisionMask","outlineSize","outlineColor","outlineOpacity","lineStyle","drawRect","ldtkTileMap","ldtkLevel","tileCache","has","tileDef","__gridSize","__cWid","__cHei","editableTileMap","composedTileMap","nextComposedTileId","editableTileLayer","__opacity","px","oldTileId","f","oldTileDef","hash","join","oldTileGID","tiledTileMap","definitions","tiledTileSet","animation","tileClass","type","class","objectgroup","angle","rotation","PI","cos","sin","point","tileIndex","collisionTileMap","tiledObject","gid","tileGid","tileSlotIndex","layerData","encoding","collisionTileLayer","opacity","tileUid","tileMapFileContent","TileMapManager","_tileMapCache","_textureCacheCaches","getManager","instanceHolder","tileMapCollisionMaskManager","identify","info","__header__","app","getOrLoadTileMap","loadTileMap","tileMapJsonResourceName","tileSetJsonResourceName","getOrLoadSimpleTileMap","tileMapAsJsObject","objectName","getOrLoadTextureCache","atlasImageResourceName","getOrLoadSimpleTileMapTextureCache","textureCacheLoadingCallback","clearCaches"],"mappings":"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"} \ No newline at end of file diff --git a/Extensions/TileMap/helper/dts/render/TileMapPixiHelper.d.ts b/Extensions/TileMap/helper/dts/render/TileMapPixiHelper.d.ts index e4532661c988..a0f39d110b79 100644 --- a/Extensions/TileMap/helper/dts/render/TileMapPixiHelper.d.ts +++ b/Extensions/TileMap/helper/dts/render/TileMapPixiHelper.d.ts @@ -60,6 +60,7 @@ export declare namespace PixiTileMapHelper { pixiGraphics: PIXI.Graphics, tileMap: EditableTileMap, typeFilter: string, + layerIndex: integer | null, outlineSize: integer, outlineColor: integer, outlineOpacity: float, diff --git a/Extensions/TileMap/helper/dts/render/TileMapPixiHelper.d.ts.map b/Extensions/TileMap/helper/dts/render/TileMapPixiHelper.d.ts.map index 275b3845a320..c660f2a534f8 100644 --- a/Extensions/TileMap/helper/dts/render/TileMapPixiHelper.d.ts.map +++ b/Extensions/TileMap/helper/dts/render/TileMapPixiHelper.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"TileMapPixiHelper.d.ts","sourceRoot":"","sources":["../../src/render/TileMapPixiHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAEL,eAAe,EAEhB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,yBAAiB,iBAAiB,CAAC;IACjC;;;;;;;;OAQG;IACH,SAAgB,UAAU,CACxB,OAAO,EAAE,kBAAkB,EAC3B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,EACpD,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,GACnE,gBAAgB,GAAG,IAAI,CAuBzB;IAED;;;;;;;;OAQG;IACH,SAAgB,uBAAuB,CACrC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAC7C,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,gBAAgB,CAqBlB;IAED;;;;;;;;;;;;OAYG;IACH,SAAgB,iBAAiB,CAC/B,kBAAkB,EAAE,GAAG,EACvB,OAAO,EAAE,eAAe,EACxB,YAAY,EAAE,gBAAgB,EAC9B,WAAW,EAAE,OAAO,GAAG,SAAS,GAAG,KAAK,EACxC,UAAU,EAAE,MAAM,GACjB,IAAI,CA0GN;IAED;;OAEG;IACH,SAAgB,uBAAuB,CACrC,YAAY,EAAE,IAAI,CAAC,QAAQ,EAC3B,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,OAAO,EACpB,YAAY,EAAE,OAAO,EACrB,cAAc,EAAE,KAAK,EACrB,SAAS,EAAE,OAAO,EAClB,WAAW,EAAE,KAAK,GACjB,IAAI,CAgEN;CACF"} \ No newline at end of file +{"version":3,"file":"TileMapPixiHelper.d.ts","sourceRoot":"","sources":["../../src/render/TileMapPixiHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAEL,eAAe,EAEhB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,yBAAiB,iBAAiB,CAAC;IACjC;;;;;;;;OAQG;IACH,SAAgB,UAAU,CACxB,OAAO,EAAE,kBAAkB,EAC3B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,EACpD,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,GACnE,gBAAgB,GAAG,IAAI,CAuBzB;IAED;;;;;;;;OAQG;IACH,SAAgB,uBAAuB,CACrC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAC7C,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,gBAAgB,CAqBlB;IAED;;;;;;;;;;;;OAYG;IACH,SAAgB,iBAAiB,CAC/B,kBAAkB,EAAE,GAAG,EACvB,OAAO,EAAE,eAAe,EACxB,YAAY,EAAE,gBAAgB,EAC9B,WAAW,EAAE,OAAO,GAAG,SAAS,GAAG,KAAK,EACxC,UAAU,EAAE,MAAM,GACjB,IAAI,CA0GN;IAED;;OAEG;IACH,SAAgB,uBAAuB,CACrC,YAAY,EAAE,IAAI,CAAC,QAAQ,EAC3B,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,OAAO,GAAG,IAAI,EAC1B,WAAW,EAAE,OAAO,EACpB,YAAY,EAAE,OAAO,EACrB,cAAc,EAAE,KAAK,EACrB,SAAS,EAAE,OAAO,EAClB,WAAW,EAAE,KAAK,GACjB,IAAI,CA6BN;CA8DF"} \ No newline at end of file diff --git a/Extensions/TileMap/tilemapcollisionmaskruntimeobject.ts b/Extensions/TileMap/tilemapcollisionmaskruntimeobject.ts index 66dd1497eecf..73854d1dbc75 100644 --- a/Extensions/TileMap/tilemapcollisionmaskruntimeobject.ts +++ b/Extensions/TileMap/tilemapcollisionmaskruntimeobject.ts @@ -52,6 +52,7 @@ namespace gdjs { * For instance, platforms, jumpthru, ladder, spike, water... */ private _collisionMaskTag: string; + private _layerIndex: integer | null; private _tileMapManager: gdjs.TileMap.TileMapRuntimeManager; /** @@ -80,6 +81,9 @@ namespace gdjs { this._tilemapJsonFile = objectData.content.tilemapJsonFile; this._tilesetJsonFile = objectData.content.tilesetJsonFile; this._collisionMaskTag = objectData.content.collisionMaskTag; + this._layerIndex = objectData.content.useAllLayers + ? null + : objectData.content.layerIndex; this._debugMode = objectData.content.debugMode; this._fillColor = gdjs.rgbOrHexStringToNumber( objectData.content.fillColor @@ -108,7 +112,8 @@ namespace gdjs { ); this._collisionTileMap = new gdjs.TileMap.TransformedCollisionTileMap( editableTileMap, - this._collisionMaskTag + this._collisionMaskTag, + this._layerIndex ); this._renderer = new gdjs.TileMap.TileMapCollisionMaskRenderer( @@ -178,6 +183,7 @@ namespace gdjs { if (oldObjectData.outlineSize !== newObjectData.outlineSize) { this.setOutlineSize(newObjectData.outlineSize); } + // TODO Handle changes to collisionMaskTag, useAllLayers and layerIndex. return true; } @@ -254,7 +260,8 @@ namespace gdjs { this._collisionTileMap = new gdjs.TileMap.TransformedCollisionTileMap( tileMap, - this._collisionMaskTag + this._collisionMaskTag, + this._layerIndex ); // The tile map polygons always keep the same references. // It works because the tilemap is never modified. diff --git a/SharedLibs/TileMapHelper/src/render/TileMapPixiHelper.ts b/SharedLibs/TileMapHelper/src/render/TileMapPixiHelper.ts index ee9ee8584767..f957e0f335d5 100644 --- a/SharedLibs/TileMapHelper/src/render/TileMapPixiHelper.ts +++ b/SharedLibs/TileMapHelper/src/render/TileMapPixiHelper.ts @@ -221,6 +221,7 @@ export namespace PixiTileMapHelper { pixiGraphics: PIXI.Graphics, tileMap: EditableTileMap, typeFilter: string, + layerIndex: integer | null, outlineSize: integer, outlineColor: integer, outlineOpacity: float, @@ -233,60 +234,86 @@ export namespace PixiTileMapHelper { pixiGraphics.lineStyle(outlineSize, outlineColor, outlineOpacity); pixiGraphics.drawRect(0, 0, tileMap.getWidth(), tileMap.getHeight()); - for (const layer of tileMap.getLayers()) { - const tileWidth = tileMap.getTileWidth(); - const tileHeight = tileMap.getTileHeight(); + if (layerIndex) { + const tileMapLayer = tileMap.getTileLayer(layerIndex); + drawCollisionLayer( + pixiGraphics, + tileMapLayer, + typeFilter, + fillColor, + fillOpacity + ); + } else { + for (const layer of tileMap.getLayers()) { + if (layer instanceof EditableTileMapLayer) { + drawCollisionLayer( + pixiGraphics, + layer as EditableTileMapLayer, + typeFilter, + fillColor, + fillOpacity + ); + } + } + } + } - if (layer instanceof EditableTileMapLayer) { - const tileLayer = layer as EditableTileMapLayer; + function drawCollisionLayer( + pixiGraphics: PIXI.Graphics, + tileLayer: EditableTileMapLayer, + typeFilter: string, + fillColor: integer, + fillOpacity: float + ): void { + const tileMap = tileLayer.tileMap; + const tileWidth = tileMap.getTileWidth(); + const tileHeight = tileMap.getTileHeight(); - for (let y = 0; y < tileLayer.tileMap.getDimensionY(); y++) { - for (let x = 0; x < tileLayer.tileMap.getDimensionX(); x++) { - const xPos = tileWidth * x; - const yPos = tileHeight * y; + for (let y = 0; y < tileMap.getDimensionY(); y++) { + for (let x = 0; x < tileMap.getDimensionX(); x++) { + const xPos = tileWidth * x; + const yPos = tileHeight * y; - const tileId = tileLayer.getTileId(x, y)!; - const isFlippedHorizontally = tileLayer.isFlippedHorizontally(x, y); - const isFlippedVertically = tileLayer.isFlippedVertically(x, y); - const isFlippedDiagonally = tileLayer.isFlippedDiagonally(x, y); - const tileDefinition = tileLayer.tileMap.getTileDefinition(tileId); - if (!tileDefinition) { - continue; + const tileId = tileLayer.getTileId(x, y)!; + const isFlippedHorizontally = tileLayer.isFlippedHorizontally(x, y); + const isFlippedVertically = tileLayer.isFlippedVertically(x, y); + const isFlippedDiagonally = tileLayer.isFlippedDiagonally(x, y); + const tileDefinition = tileMap.getTileDefinition(tileId); + if (!tileDefinition) { + continue; + } + const hitboxes = tileDefinition.getHitBoxes(typeFilter); + if (!hitboxes) { + continue; + } + for (const vertices of hitboxes) { + if (vertices.length === 0) continue; + + pixiGraphics.beginFill(fillColor, fillOpacity); + for (let index = 0; index < vertices.length; index++) { + let vertexX = vertices[index][0]; + let vertexY = vertices[index][1]; + // It's important to do the diagonal flipping first, + // because the other flipping "move" the origin. + if (isFlippedDiagonally) { + const swap = vertexX; + vertexX = vertexY; + vertexY = swap; } - const hitboxes = tileDefinition.getHitBoxes(typeFilter); - if (!hitboxes) { - continue; + if (isFlippedHorizontally) { + vertexX = tileWidth - vertexX; } - for (const vertices of hitboxes) { - if (vertices.length === 0) continue; - - pixiGraphics.beginFill(fillColor, fillOpacity); - for (let index = 0; index < vertices.length; index++) { - let vertexX = vertices[index][0]; - let vertexY = vertices[index][1]; - // It's important to do the diagonal flipping first, - // because the other flipping "move" the origin. - if (isFlippedDiagonally) { - const swap = vertexX; - vertexX = vertexY; - vertexY = swap; - } - if (isFlippedHorizontally) { - vertexX = tileWidth - vertexX; - } - if (isFlippedVertically) { - vertexY = tileHeight - vertexY; - } - if (index === 0) { - pixiGraphics.moveTo(xPos + vertexX, yPos + vertexY); - } else { - pixiGraphics.lineTo(xPos + vertexX, yPos + vertexY); - } - } - pixiGraphics.closePath(); - pixiGraphics.endFill(); + if (isFlippedVertically) { + vertexY = tileHeight - vertexY; + } + if (index === 0) { + pixiGraphics.moveTo(xPos + vertexX, yPos + vertexY); + } else { + pixiGraphics.lineTo(xPos + vertexX, yPos + vertexY); } } + pixiGraphics.closePath(); + pixiGraphics.endFill(); } } }