Skip to content

Commit b714e2a

Browse files
committed
Add methods for looping over & accessing groups of tiles to map & layers
1 parent 74842aa commit b714e2a

5 files changed

Lines changed: 48 additions & 1 deletion

File tree

v3/src/gameobjects/tilemap/Tilemap.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,14 @@ var Tilemap = new Class({
127127
return layer;
128128
},
129129

130+
forEachTile: function (callback, context, tileX, tileY, width, height, layer)
131+
{
132+
layer = this.getLayer(layer);
133+
if (layer === null) { return; }
134+
135+
TilemapComponents.ForEachTile(callback, context, tileX, tileY, width, height, layer);
136+
},
137+
130138
getIndex: function (location, name)
131139
{
132140
for (var i = 0; i < location.length; i++)
@@ -182,6 +190,14 @@ var Tilemap = new Class({
182190
return TilemapComponents.GetTileAt(tileX, tileY, layer, nonNull);
183191
},
184192

193+
getTilesWithin: function (tileX, tileY, width, height, layer)
194+
{
195+
layer = this.getLayer(layer);
196+
if (layer === null) { return null; }
197+
198+
return TilemapComponents.GetTilesWithin(tileX, tileY, width, height, layer);
199+
},
200+
185201
getTilesetIndex: function (name)
186202
{
187203
return this.getIndex(this.tilesets, name);
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
var GetTilesWithin = require("./GetTilesWithin");
2+
3+
var ForEachTile = function (callback, context, tileX, tileY, width, height, layer)
4+
{
5+
var tiles = GetTilesWithin(tileX, tileY, width, height, layer);
6+
tiles.forEach(callback, context);
7+
};
8+
9+
module.exports = ForEachTile;
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
module.exports = {
22

3+
ForEachTile: require('./ForEachTile'),
34
GetTileAt: require('./GetTileAt'),
4-
HasTileAt: require('./HasTileAt')
5+
HasTileAt: require('./HasTileAt'),
6+
GetTilesWithin: require('./GetTilesWithin')
57

68
};

v3/src/gameobjects/tilemap/dynamiclayer/DynamicTilemapLayer.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,11 +96,21 @@ var DynamicTilemapLayer = new Class({
9696
return culledTiles;
9797
},
9898

99+
forEachTile: function (callback, context, tileX, tileY, width, height)
100+
{
101+
return TilemapComponents.ForEachTile(callback, context, tileX, tileY, width, height, this.layer);
102+
},
103+
99104
getTileAt: function (tileX, tileY, nonNull)
100105
{
101106
return TilemapComponents.GetTileAt(tileX, tileY, this.layer, nonNull);
102107
},
103108

109+
getTilesWithin: function (tileX, tileY, width, height)
110+
{
111+
return TilemapComponents.GetTilesWithin(tileX, tileY, width, height, this.layer);
112+
},
113+
104114
hasTileAt: function (tileX, tileY)
105115
{
106116
return TilemapComponents.HasTileAt(tileX, tileY, this.layer);

v3/src/gameobjects/tilemap/staticlayer/StaticTilemapLayer.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,11 +269,21 @@ var StaticTilemapLayer = new Class({
269269
}
270270
},
271271

272+
forEachTile: function (callback, context, tileX, tileY, width, height)
273+
{
274+
return TilemapComponents.ForEachTile(callback, context, tileX, tileY, width, height, this.layer);
275+
},
276+
272277
getTileAt: function (tileX, tileY, nonNull)
273278
{
274279
return TilemapComponents.GetTileAt(tileX, tileY, this.layer, nonNull);
275280
},
276281

282+
getTilesWithin: function (tileX, tileY, width, height)
283+
{
284+
return TilemapComponents.GetTilesWithin(tileX, tileY, width, height, this.layer);
285+
},
286+
277287
hasTileAt: function (tileX, tileY)
278288
{
279289
return TilemapComponents.HasTileAt(tileX, tileY, this.layer);

0 commit comments

Comments
 (0)