Skip to content

Commit 4741ee0

Browse files
committed
Updated docs and lint fixes
1 parent 444dda1 commit 4741ee0

7 files changed

Lines changed: 64 additions & 22 deletions

File tree

CHANGELOG.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
## Version 3.next - in development
44

5+
### New Plugin Manager
6+
7+
TODO
8+
59
### New Features
610

711
* You can pass in your own `canvas` and `context` elements in your Game Config and Phaser will use those to render with instead of creating its own. This also allows you to pass in a WebGL 2 context. Fix #3653 (thanks @tgrajewski)
@@ -11,9 +15,12 @@
1115

1216
### Updates
1317

18+
* Game.step now emits a `prestep` event, which some of the global systems hook in to, like Sound and Input. You can use it to perform pre-step tasks, ideally from plugins.
19+
* Game.step now emits a `step` event. This is emitted once per frame. You can hook into it from plugins or code that exists outside of a Scene.
20+
* Game.step now emits a `poststep` event. This is the last chance you get to do things before the render process begins.
1421
* Optimized TextureTintPipeline.drawBlitter so it skips bobs that have alpha of zero and only calls `setTexture2D` if the bob sourceIndex has changed, previously it called it for every single bob.
1522
* Game.context used to be undefined if running in WebGL. It is now set to be the `WebGLRenderingContext` during WebGLRenderer.init. If you provided your own custom context, it is set to this instead.
16-
* Game.onStepCallback has been removed.
23+
* The Game `onStepCallback` has been removed. You can now listen for the new step events instead.
1724
* Phaser.EventEmitter was incorrectly namespaced, it's now only available under Phaser.Events.EventEmitter (thanks Tigran)
1825

1926
### Bug Fixes

src/boot/Config.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,6 @@ var ValueToColor = require('../display/color/ValueToColor');
113113
* @since 3.0.0
114114
*
115115
* @param {GameConfig} [GameConfig] - The configuration object for your Phaser Game instance.
116-
*
117116
*/
118117
var Config = new Class({
119118

@@ -452,9 +451,11 @@ var Config = new Class({
452451
* the default plugins like previously, or a config object.
453452
*
454453
* plugins: {
455-
* install: [
456-
* { key: 'TestPlugin', plugin: TestPlugin, start: false, isScenePlugin: false },
457-
* { key: 'WireFramePlugin', plugin: WireFramePlugin, start: true, isScenePlugin: true }
454+
* global: [
455+
* { key: 'TestPlugin', plugin: TestPlugin, start: true },
456+
* ],
457+
* scene: [
458+
* { key: 'WireFramePlugin', plugin: WireFramePlugin, systemKey: 'wireFramePlugin', sceneKey: 'wireframe' }
458459
* ],
459460
* default: [], OR
460461
* defaultMerge: {

src/boot/Game.js

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ var Device = require('../device');
1717
var DOMContentLoaded = require('../dom/DOMContentLoaded');
1818
var EventEmitter = require('eventemitter3');
1919
var InputManager = require('../input/InputManager');
20-
var NOOP = require('../utils/NOOP');
2120
var PluginManager = require('../plugins/PluginManager');
2221
var SceneManager = require('../scene/SceneManager');
2322
var SoundManagerCreator = require('../sound/SoundManagerCreator');
@@ -328,6 +327,40 @@ var Game = new Class({
328327
eventEmitter.on('focus', this.onFocus, this);
329328
},
330329

330+
/**
331+
* Game Pre-Step event.
332+
*
333+
* This event is dispatched before the main Step starts.
334+
* By this point none of the Scene updates have happened.
335+
* Hook into it from plugins or systems that need to update before the Scene Manager does.
336+
*
337+
* @event Phaser.Game#prestepEvent
338+
* @param {number} time - [description]
339+
* @param {number} delta - [description]
340+
*/
341+
342+
/**
343+
* Game Step event.
344+
*
345+
* This event is dispatched after Pre-Step and before the Scene Manager steps.
346+
* Hook into it from plugins or systems that need to update before the Scene Manager does, but after core Systems.
347+
*
348+
* @event Phaser.Game#stepEvent
349+
* @param {number} time - [description]
350+
* @param {number} delta - [description]
351+
*/
352+
353+
/**
354+
* Game Post-Step event.
355+
*
356+
* This event is dispatched after the Scene Manager has updated.
357+
* Hook into it from plugins or systems that need to do things before the render starts.
358+
*
359+
* @event Phaser.Game#poststepEvent
360+
* @param {number} time - [description]
361+
* @param {number} delta - [description]
362+
*/
363+
331364
/**
332365
* Game Pre-Render event.
333366
*
@@ -358,6 +391,9 @@ var Game = new Class({
358391
* It will then render each Scene in turn, via the Renderer. This process emits `prerender` and `postrender` events.
359392
*
360393
* @method Phaser.Game#step
394+
* @fires Phaser.Game#prestepEvent
395+
* @fires Phaser.Game#stepEvent
396+
* @fires Phaser.Game#poststepEvent
361397
* @fires Phaser.Game#prerenderEvent
362398
* @fires Phaser.Game#postrenderEvent
363399
* @since 3.0.0

src/events/index.js

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,4 @@
88
* @namespace Phaser.Events
99
*/
1010

11-
module.exports = {
12-
13-
EventEmitter: require('./EventEmitter')
14-
15-
};
11+
module.exports = { EventEmitter: require('./EventEmitter') };

src/loader/filetypes/PluginFile.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ var File = require('../File');
1010
var FileTypesManager = require('../FileTypesManager');
1111
var GetFastValue = require('../../utils/object/GetFastValue');
1212
var IsPlainObject = require('../../utils/object/IsPlainObject');
13-
var PluginManager = require('../../plugins/PluginManager');
1413

1514
/**
1615
* @typedef {object} Phaser.Loader.FileTypes.PluginFileConfig

src/loader/filetypes/ScenePluginFile.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ var File = require('../File');
1010
var FileTypesManager = require('../FileTypesManager');
1111
var GetFastValue = require('../../utils/object/GetFastValue');
1212
var IsPlainObject = require('../../utils/object/IsPlainObject');
13-
var PluginManager = require('../../plugins/PluginManager');
1413

1514
/**
1615
* @typedef {object} Phaser.Loader.FileTypes.ScenePluginFileConfig

src/plugins/PluginManager.js

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77
var Class = require('../utils/Class');
88
var EventEmitter = require('eventemitter3');
9-
var IsPlainObject = require('../utils/object/IsPlainObject');
109
var GetFastValue = require('../utils/object/GetFastValue');
1110

1211
// Contains the plugins that Phaser uses globally and locally.
@@ -83,6 +82,11 @@ var PluginManager = new Class({
8382
boot: function ()
8483
{
8584
var i;
85+
var entry;
86+
var key;
87+
var plugin;
88+
var start;
89+
var mapping;
8690
var config = this.game.config;
8791

8892
// Any plugins to install?
@@ -93,13 +97,13 @@ var PluginManager = new Class({
9397

9498
for (i = 0; i < list.length; i++)
9599
{
96-
var entry = list[i];
100+
entry = list[i];
97101

98102
// { key: 'TestPlugin', plugin: TestPlugin, start: true }
99103

100-
var key = GetFastValue(entry, 'key', null);
101-
var plugin = GetFastValue(entry, 'plugin', null);
102-
var start = GetFastValue(entry, 'start', false);
104+
key = GetFastValue(entry, 'key', null);
105+
plugin = GetFastValue(entry, 'plugin', null);
106+
start = GetFastValue(entry, 'start', false);
103107

104108
if (key && plugin)
105109
{
@@ -115,13 +119,13 @@ var PluginManager = new Class({
115119

116120
for (i = 0; i < list.length; i++)
117121
{
118-
var entry = list[i];
122+
entry = list[i];
119123

120124
// { key: 'moveSpritePlugin', plugin: MoveSpritePlugin, , mapping: 'move' }
121125

122-
var key = GetFastValue(entry, 'key', null);
123-
var plugin = GetFastValue(entry, 'plugin', null);
124-
var mapping = GetFastValue(entry, 'mapping', null);
126+
key = GetFastValue(entry, 'key', null);
127+
plugin = GetFastValue(entry, 'plugin', null);
128+
mapping = GetFastValue(entry, 'mapping', null);
125129

126130
if (key && plugin)
127131
{

0 commit comments

Comments
 (0)