Skip to content

Commit 8aafefa

Browse files
Merge remote-tracking branch 'origin/master'
2 parents 6577a23 + fd4f08e commit 8aafefa

32 files changed

Lines changed: 457 additions & 261 deletions

v3/src/events/EventDispatcher.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ var EventDispatcher = new Class({
212212
{
213213
for (var binding in this.bindings)
214214
{
215-
binding.destroy();
215+
this.bindings[binding].destroy();
216216
}
217217

218218
this.bindings = {};

v3/src/gameobjects/index.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ var GameObjects = {
4141
Text: require('./text/static/TextFactory'),
4242
Tilemap: require('./tilemap/TilemapFactory'),
4343
TileSprite: require('./tilesprite/TileSpriteFactory'),
44-
Zone: require('./zone/ZoneFactory'),
44+
Zone: require('./zone/ZoneFactory')
4545
},
4646

4747
Creators: {
@@ -51,14 +51,14 @@ var GameObjects = {
5151
Graphics: require('./graphics/GraphicsCreator'),
5252
Group: require('./group/GroupCreator'),
5353
Image: require('./image/ImageCreator'),
54-
ParticleEmitter: require('./particles/ParticleManagerCreator'),
54+
Particles: require('./particles/ParticleManagerCreator'),
5555
Sprite: require('./sprite/SpriteCreator'),
5656
Sprite3D: require('./sprite3d/Sprite3DCreator'),
5757
StaticBitmapText: require('./bitmaptext/static/BitmapTextCreator'),
5858
Text: require('./text/static/TextCreator'),
5959
Tilemap: require('./tilemap/TilemapCreator'),
6060
TileSprite: require('./tilesprite/TileSpriteCreator'),
61-
Zone: require('./zone/ZoneCreator'),
61+
Zone: require('./zone/ZoneCreator')
6262
}
6363

6464
};

v3/src/gameobjects/particles/ParticleEmitterManager.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ var ParticleEmitterManager = new Class({
3333
this.frame = null;
3434
this.frameNames = [];
3535

36-
if (typeof frame === 'object' || Array.isArray(frame))
36+
// frame is optional and can contain the emitters array or object if skipped
37+
if (frame !== null && (typeof frame === 'object' || Array.isArray(frame)))
3738
{
3839
emitters = frame;
3940
frame = null;
@@ -45,7 +46,7 @@ var ParticleEmitterManager = new Class({
4546

4647
this.wells = new List(this);
4748

48-
if (emitters !== undefined)
49+
if (emitters)
4950
{
5051
// An array of emitter configs?
5152
if (!Array.isArray(emitters))

v3/src/gameobjects/particles/ParticleManagerCanvasRenderer.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,6 @@ var ParticleManagerCanvasRenderer = function (renderer, emitterManager, interpol
4545
}
4646

4747
var frame = particle.frame;
48-
var dx = frame.x;
49-
var dy = frame.y;
5048
var width = frame.width;
5149
var height = frame.height;
5250
var ox = width * 0.5;
Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,33 @@
1-
var BuildGameObject = require('../BuildGameObject');
21
var GameObjectCreator = require('../../scene/plugins/GameObjectCreator');
2+
var GetFastValue = require('../../utils/object/GetFastValue');
33
var GetAdvancedValue = require('../../utils/object/GetAdvancedValue');
44
var ParticleEmitterManager = require('./ParticleEmitterManager');
55

66
// When registering a factory function 'this' refers to the GameObjectCreator context.
7+
//
8+
// There are several properties available to use:
9+
//
10+
// this.scene - a reference to the Scene that owns the GameObjectFactory
11+
// this.displayList - a reference to the Display List the Scene owns
12+
// this.updateList - a reference to the Update List the Scene owns
713

814
GameObjectCreator.register('particles', function (config)
915
{
1016
var key = GetAdvancedValue(config, 'key', null);
1117
var frame = GetAdvancedValue(config, 'frame', null);
12-
var emitters = GetAdvancedValue(config, 'emitters', null);
18+
var emitters = GetFastValue(config, 'emitters', null);
1319

20+
// frame is optional and can contain the emitters array or object if skipped
1421
var manager = new ParticleEmitterManager(this.scene, key, frame, emitters);
1522

16-
BuildGameObject(this.scene, manager, config);
23+
var add = GetFastValue(config, 'add', false);
24+
25+
if (add)
26+
{
27+
this.displayList.add(manager);
28+
}
29+
30+
this.updateList.add(manager);
1731

1832
return manager;
1933
});

v3/src/gameobjects/tilemap/Tilemap.js

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -292,11 +292,11 @@ var Tilemap = new Class({
292292
return TilemapComponents.GetTileAt(tileX, tileY, nonNull, layer);
293293
},
294294

295-
getTileAtWorldXY: function (worldX, worldY, nonNull, layer)
295+
getTileAtWorldXY: function (worldX, worldY, nonNull, camera, layer)
296296
{
297297
layer = this.getLayer(layer);
298298
if (layer === null) { return null; }
299-
return TilemapComponents.GetTileAtWorldXY(worldX, worldY, nonNull, layer);
299+
return TilemapComponents.GetTileAtWorldXY(worldX, worldY, nonNull, camera, layer);
300300
},
301301

302302
getTilesWithin: function (tileX, tileY, width, height, layer)
@@ -318,6 +318,13 @@ var Tilemap = new Class({
318318
return TilemapComponents.HasTileAt(tileX, tileY, layer);
319319
},
320320

321+
hasTileAtWorldXY: function (worldX, worldY, camera, layer)
322+
{
323+
layer = this.getLayer(layer);
324+
if (layer === null) { return null; }
325+
return TilemapComponents.HasTileAtWorldXY(worldX, worldY, camera, layer);
326+
},
327+
321328
layer: {
322329
get: function ()
323330
{
@@ -338,6 +345,14 @@ var Tilemap = new Class({
338345
return TilemapComponents.PutTile(tile, tileX, tileY, layer);
339346
},
340347

348+
putTileWorldXY: function (tile, worldX, worldY, camera, layer)
349+
{
350+
layer = this.getLayer(layer);
351+
if (this._isStaticCall(layer, 'putTileWorldXY')) { return null; }
352+
if (layer === null) { return null; }
353+
return TilemapComponents.PutTileWorldXY(tile, worldX, worldY, camera, layer);
354+
},
355+
341356
randomize: function (tileX, tileY, width, height, indices, layer)
342357
{
343358
layer = this.getLayer(layer);
@@ -364,6 +379,14 @@ var Tilemap = new Class({
364379
return TilemapComponents.RemoveTile(tileX, tileY, replaceWithNull, layer);
365380
},
366381

382+
removeTileWorldXY: function (worldX, worldY, replaceWithNull, camera, layer)
383+
{
384+
layer = this.getLayer(layer);
385+
if (this._isStaticCall(layer, 'removeTileWorldXY')) { return null; }
386+
if (layer === null) { return null; }
387+
return TilemapComponents.RemoveTileWorldXY(worldX, worldY, replaceWithNull, camera, layer);
388+
},
389+
367390
replaceByIndex: function (findIndex, newIndex, tileX, tileY, width, height, layer)
368391
{
369392
layer = this.getLayer(layer);

v3/src/gameobjects/tilemap/components/GetTileAtWorldXY.js

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
var GetTileAt = require('./GetTileAt');
2-
var SnapFloor = require('../../../math/snap/SnapFloor');
2+
var WorldToTileX = require('./WorldToTileX');
3+
var WorldToTileY = require('./WorldToTileY');
34

4-
// NOTE: phaser v2 version doesn't account for TilemapLayer's XY, so neither does this version
5-
// currently.
6-
7-
var GetTileAtWorldXY = function (worldX, worldY, nonNull, layer)
5+
var GetTileAtWorldXY = function (worldX, worldY, nonNull, camera, layer)
86
{
9-
var tileX = SnapFloor(worldX, layer.tileWidth) / layer.tileWidth;
10-
var tileY = SnapFloor(worldY, layer.tileHeight) / layer.tileHeight;
7+
var tileX = WorldToTileX(worldX, camera, layer);
8+
var tileY = WorldToTileY(worldY, camera, layer);
119

1210
return GetTileAt(tileX, tileY, nonNull, layer);
1311
};
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
var HasTileAt = require('./HasTileAt');
2+
var WorldToTileX = require('./WorldToTileX');
3+
var WorldToTileY = require('./WorldToTileY');
4+
5+
var HasTileAtWorldXY = function (worldX, worldY, camera, layer)
6+
{
7+
var tileX = WorldToTileX(worldX, camera, layer);
8+
var tileY = WorldToTileY(worldY, camera, layer);
9+
10+
return HasTileAt(tileX, tileY, layer);
11+
};
12+
13+
module.exports = HasTileAtWorldXY;
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
var PutTile = require('./PutTile');
2+
var WorldToTileX = require('./WorldToTileX');
3+
var WorldToTileY = require('./WorldToTileY');
4+
5+
var PutTileWorldXY = function (tile, worldX, worldY, camera, layer)
6+
{
7+
var tileX = WorldToTileX(worldX, camera, layer);
8+
var tileY = WorldToTileY(worldY, camera, layer);
9+
return PutTile(tile, tileX, tileY, layer);
10+
};
11+
12+
module.exports = PutTileWorldXY;
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
var RemoveTile = require('./RemoveTile');
2+
var WorldToTileX = require('./WorldToTileX');
3+
var WorldToTileY = require('./WorldToTileY');
4+
5+
var RemoveTileWorldXY = function (worldX, worldY, replaceWithNull, camera, layer)
6+
{
7+
var tileX = WorldToTileX(worldX, camera, layer);
8+
var tileY = WorldToTileY(worldY, camera, layer);
9+
return RemoveTile(tileX, tileY, replaceWithNull, layer);
10+
};
11+
12+
module.exports = RemoveTileWorldXY;

0 commit comments

Comments
 (0)