From d596d6377dd4fa2d8065d168f72291bfcf6c2e5f Mon Sep 17 00:00:00 2001 From: Rex Date: Mon, 7 Aug 2023 07:25:15 +0800 Subject: [PATCH] Use game instance as 1st parameter --- docs/docs/charactercache.md | 10 +++++++--- examples/charactercache/page.js | 2 +- examples/charactercache/settext.js | 2 +- examples/charactercache/textbox.js | 2 +- examples/charactercache/typing.js | 2 +- plugins/charactercache-plugin.d.ts | 6 +++++- plugins/charactercache-plugin.js | 6 ++++++ plugins/texture/charactercache/CharacterCache.js | 2 ++ 8 files changed, 24 insertions(+), 8 deletions(-) diff --git a/docs/docs/charactercache.md b/docs/docs/charactercache.md index b0d502ae4e..f34ef3ece1 100644 --- a/docs/docs/charactercache.md +++ b/docs/docs/charactercache.md @@ -24,7 +24,7 @@ Generate bitmapfont from [text game object](text.md), or [bbcode text game objec ``` - Add character-cache object ```javascript - var characterCache = scene.plugins.get('rexcharactercacheplugin').add(scene, config); + var characterCache = scene.plugins.get('rexcharactercacheplugin').add(config); ``` #### Import plugin @@ -53,7 +53,7 @@ Generate bitmapfont from [text game object](text.md), or [bbcode text game objec ``` - Add character-cache object ```javascript - var characterCache = scene.plugins.get('rexCharacterCache').add(scene, config); + var characterCache = scene.plugins.get('rexCharacterCache').add(config); ``` #### Import class @@ -67,6 +67,10 @@ Generate bitmapfont from [text game object](text.md), or [bbcode text game objec import CharacterCache from 'phaser3-rex-plugins/plugins/charactercache.js'; ``` - Add character-cache object + ```javascript + var characterCache = new CharacterCache(game, config); + ``` + or ```javascript var characterCache = new CharacterCache(scene, config); ``` @@ -74,7 +78,7 @@ Generate bitmapfont from [text game object](text.md), or [bbcode text game objec ### Create instance ```javascript -var characterCache = scene.plugins.get('rexCharacterCache').add(scene, { +var characterCache = scene.plugins.get('rexCharacterCache').add({ key: '', cellWidth: 32, cellHeight: 32, diff --git a/examples/charactercache/page.js b/examples/charactercache/page.js index eba7203b4e..41487c79f7 100644 --- a/examples/charactercache/page.js +++ b/examples/charactercache/page.js @@ -13,7 +13,7 @@ class Demo extends Phaser.Scene { } create() { - var characterCache = this.plugins.get('rexCharacterCache').add(this, { + var characterCache = this.plugins.get('rexCharacterCache').add({ key: 'font', cellWidth: 32, cellHeight: 32, diff --git a/examples/charactercache/settext.js b/examples/charactercache/settext.js index 9ad5dbade0..5a356f745c 100644 --- a/examples/charactercache/settext.js +++ b/examples/charactercache/settext.js @@ -12,7 +12,7 @@ class Demo extends Phaser.Scene { } create() { - var characterCache = this.plugins.get('rexCharacterCache').add(this, { + var characterCache = this.plugins.get('rexCharacterCache').add({ key: 'font', cellWidth: 32, cellHeight: 32, diff --git a/examples/charactercache/textbox.js b/examples/charactercache/textbox.js index 301baafdc5..598a8704f4 100644 --- a/examples/charactercache/textbox.js +++ b/examples/charactercache/textbox.js @@ -18,7 +18,7 @@ class Demo extends Phaser.Scene { } create() { - var characterCache = this.plugins.get('rexCharacterCache').add(this, { + var characterCache = this.plugins.get('rexCharacterCache').add({ key: 'font', cellWidth: 32, cellHeight: 32, diff --git a/examples/charactercache/typing.js b/examples/charactercache/typing.js index 4489cb45f8..5d6cd793b1 100644 --- a/examples/charactercache/typing.js +++ b/examples/charactercache/typing.js @@ -13,7 +13,7 @@ class Demo extends Phaser.Scene { } create() { - var characterCache = this.plugins.get('rexCharacterCache').add(this, { + var characterCache = this.plugins.get('rexCharacterCache').add({ key: 'font', cellWidth: 32, cellHeight: 32, diff --git a/plugins/charactercache-plugin.d.ts b/plugins/charactercache-plugin.d.ts index 74673f76f5..c3bcf9b833 100644 --- a/plugins/charactercache-plugin.d.ts +++ b/plugins/charactercache-plugin.d.ts @@ -2,7 +2,11 @@ import CharacterCache from './charactercache'; export default class CharacterCachePlugin extends Phaser.Plugins.BasePlugin { add( - scene: Phaser.Scene, + config: CharacterCache.IConfig + ): CharacterCache; + + add( + scene: Phaser.Scene | Phaser.Game, config: CharacterCache.IConfig ): CharacterCache; diff --git a/plugins/charactercache-plugin.js b/plugins/charactercache-plugin.js index b4856ac25d..b2fc6a5402 100644 --- a/plugins/charactercache-plugin.js +++ b/plugins/charactercache-plugin.js @@ -1,5 +1,7 @@ import CharacterCache from './charactercache.js'; +const IsPlainObject = Phaser.Utils.Objects.IsPlainObject; + class CharacterCachePlugin extends Phaser.Plugins.BasePlugin { constructor(pluginManager) { @@ -12,6 +14,10 @@ class CharacterCachePlugin extends Phaser.Plugins.BasePlugin { } add(scene, config) { + if (IsPlainObject(scene)) { + config = scene; + scene = this.game; + } return new CharacterCache(scene, config); } } diff --git a/plugins/texture/charactercache/CharacterCache.js b/plugins/texture/charactercache/CharacterCache.js index 2716d9eb67..2305801163 100644 --- a/plugins/texture/charactercache/CharacterCache.js +++ b/plugins/texture/charactercache/CharacterCache.js @@ -53,6 +53,8 @@ class CharacterCache { if (this.textObject) { this.textObject.destroy(); } + + this.game = null; } destroy() {