11var Class = require ( '../../utils/Class' ) ;
2- var GenerateEmptyMapData = require ( './GenerateEmptyMapData' ) ;
2+ var GenerateEmptyMapData = require ( './emptymap/GenerateEmptyMapData' ) ;
3+ var GenerateEmptyMapLayer = require ( './emptymap/GenerateEmptyMapLayer' ) ;
34var StaticTilemapLayer = require ( './staticlayer/StaticTilemapLayer.js' ) ;
45var DynamicTilemapLayer = require ( './dynamiclayer/DynamicTilemapLayer.js' ) ;
56var Tileset = require ( './Tileset' ) ;
67var Formats = require ( './Formats' ) ;
78var TilemapComponents = require ( './components' ) ;
9+ var Tile = require ( './Tile' ) ;
810
911var Tilemap = new Class ( {
1012
@@ -91,6 +93,47 @@ var Tilemap = new Class({
9193 return tileset ;
9294 } ,
9395
96+ // Creates & selects
97+ createBlankDynamicLayer : function ( name , tileset , x , y , width , height , tileWidth , tileHeight ) {
98+ if ( tileWidth === undefined ) { tileWidth = this . tileWidth ; }
99+ if ( tileHeight === undefined ) { tileHeight = this . tileHeight ; }
100+ if ( width === undefined ) { width = this . width ; }
101+ if ( height === undefined ) { height = this . height ; }
102+ if ( x === undefined ) { x = 0 ; }
103+ if ( y === undefined ) { y = 0 ; }
104+
105+ var index = this . getLayerIndex ( name ) ;
106+
107+ if ( index !== null )
108+ {
109+ console . warn ( 'Cannot create blank layer: layer with matching name already exists ' + name ) ;
110+ return ;
111+ }
112+
113+ var layer = GenerateEmptyMapLayer ( name , tileWidth , tileHeight , width , height ) ;
114+
115+ var row ;
116+ for ( var tileY = 0 ; tileY < height ; tileY ++ )
117+ {
118+ row = [ ] ;
119+ for ( var tileX = 0 ; tileX < width ; tileX ++ )
120+ {
121+ row . push ( new Tile ( layer , - 1 , tileX , tileY , tileWidth , tileHeight ) ) ;
122+ }
123+ layer . data . push ( row ) ;
124+ }
125+
126+ this . layers . push ( layer ) ;
127+ this . currentLayerIndex = this . layers . length - 1 ;
128+
129+ // TODO: decide about v2 trimming to game width/height
130+
131+ var dynamicLayer = new DynamicTilemapLayer ( this . scene , this , this . currentLayerIndex , tileset , x , y ) ;
132+ this . scene . sys . displayList . add ( dynamicLayer ) ;
133+ return dynamicLayer ;
134+ } ,
135+
136+ // Creates & selects
94137 createStaticLayer : function ( layerID , tileset , x , y )
95138 {
96139 var index = this . getLayerIndex ( layerID ) ;
@@ -104,11 +147,14 @@ var Tilemap = new Class({
104147 // TODO: new feature, allow multiple CSV layers
105148 // TODO: display dimension
106149
150+ this . currentLayerIndex = index ;
151+
107152 var layer = new StaticTilemapLayer ( this . scene , this , index , tileset , x , y ) ;
108153 this . scene . sys . displayList . add ( layer ) ;
109154 return layer ;
110155 } ,
111156
157+ // Creates & selects
112158 createDynamicLayer : function ( layerID , tileset , x , y )
113159 {
114160 var index = this . getLayerIndex ( layerID ) ;
@@ -122,6 +168,8 @@ var Tilemap = new Class({
122168 // TODO: new feature, allow multiple CSV layers
123169 // TODO: display dimension
124170
171+ this . currentLayerIndex = index ;
172+
125173 var layer = new DynamicTilemapLayer ( this . scene , this , index , tileset , x , y ) ;
126174 this . scene . sys . displayList . add ( layer ) ;
127175 return layer ;
0 commit comments