Skip to content

Commit e017a71

Browse files
committed
Game emits a boot event, which its managers listen for
1 parent 3ba7749 commit e017a71

5 files changed

Lines changed: 41 additions & 18 deletions

File tree

src/animations/AnimationManager.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,10 @@ var AnimationManager = new Class({
6767
* @property {boolean} [paused=false]
6868
*/
6969
this.paused = false;
70+
71+
this.name = 'AnimationManager';
72+
73+
game.events.once('boot', this.boot, this);
7074
},
7175

7276
/**
@@ -77,9 +81,9 @@ var AnimationManager = new Class({
7781
*
7882
* @param {[type]} textureManager - [description]
7983
*/
80-
boot: function (textureManager)
84+
boot: function ()
8185
{
82-
this.textureManager = textureManager;
86+
this.textureManager = this.game.textures;
8387
},
8488

8589
/**

src/boot/Game.js

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -187,15 +187,7 @@ var Game = new Class({
187187

188188
AddToDOM(this.canvas, this.config.parent);
189189

190-
this.textures.boot();
191-
192-
this.anims.boot(this.textures);
193-
194-
this.plugins.boot();
195-
196-
this.input.boot();
197-
198-
this.scene.boot();
190+
this.events.emit('boot');
199191

200192
this.isRunning = true;
201193

src/input/InputManager.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ var InputManager = new Class({
4343
// this._tempMatrix = new TransformMatrix();
4444
this._tempPoint = { x: 0, y: 0 };
4545
this._tempHitTest = [];
46+
47+
game.events.once('boot', this.boot, this);
4648
},
4749

4850
/**

src/scene/SceneManager.js

Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ var SceneManager = new Class({
5656
});
5757
}
5858
}
59+
60+
game.events.once('boot', this.boot, this);
5961
},
6062

6163
/**
@@ -185,11 +187,16 @@ var SceneManager = new Class({
185187
scene.init.call(scene, scene.sys.settings.data);
186188
}
187189

188-
var loader = scene.sys.load;
189-
190-
loader.reset();
190+
var loader;
191191

192-
if (scene.preload)
192+
if (scene.sys.load)
193+
{
194+
loader = scene.sys.load;
195+
196+
loader.reset();
197+
}
198+
199+
if (loader && scene.preload)
193200
{
194201
scene.preload(this.game);
195202

@@ -349,6 +356,7 @@ var SceneManager = new Class({
349356

350357
// Default required functions
351358

359+
/*
352360
if (!newScene.init)
353361
{
354362
newScene.init = NOOP;
@@ -368,16 +376,19 @@ var SceneManager = new Class({
368376
{
369377
newScene.shutdown = NOOP;
370378
}
379+
*/
371380

372381
if (!newScene.update)
373382
{
374383
newScene.update = NOOP;
375384
}
376385

386+
/*
377387
if (!newScene.render)
378388
{
379389
newScene.render = NOOP;
380390
}
391+
*/
381392

382393
return newScene;
383394
}
@@ -446,11 +457,16 @@ var SceneManager = new Class({
446457

447458
// Extract callbacks or set NOOP
448459

449-
var defaults = [ 'init', 'preload', 'create', 'shutdown', 'update', 'render' ];
460+
var defaults = [ 'init', 'preload', 'create', 'update', 'render' ];
450461

451462
for (var i = 0; i < defaults.length; i++)
452463
{
453-
newScene[defaults[i]] = GetValue(sceneConfig, defaults[i], NOOP);
464+
var sceneCallback = GetValue(sceneConfig, defaults[i], null);
465+
466+
if (sceneCallback)
467+
{
468+
newScene[defaults[i]] = sceneCallback;
469+
}
454470
}
455471

456472
// Now let's move across any other functions or properties that may exist
@@ -932,7 +948,12 @@ var SceneManager = new Class({
932948

933949
scene.sys.start(data);
934950

935-
var loader = scene.sys.load;
951+
var loader;
952+
953+
if (scene.sys.load)
954+
{
955+
loader = scene.sys.load;
956+
}
936957

937958
// Files payload?
938959
if (loader && Array.isArray(scene.sys.settings.files))

src/textures/TextureManager.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,14 @@ var TextureManager = new Class({
2323
{
2424
this.game = game;
2525

26+
this.name = 'TextureManager';
27+
2628
this.list = {};
2729

2830
this._tempCanvas = CanvasPool.create2D(this, 1, 1);
2931
this._tempContext = this._tempCanvas.getContext('2d');
32+
33+
game.events.once('boot', this.boot, this);
3034
},
3135

3236
boot: function ()

0 commit comments

Comments
 (0)