From 81c6124a4d3d1635f69ac80633b147568fceea6f Mon Sep 17 00:00:00 2001 From: Richard Davey Date: Thu, 13 Apr 2017 00:35:27 +0100 Subject: [PATCH] Added more toJSON GameObject functions. --- v3/src/checksum.js | 2 +- v3/src/components/ToJSON.js | 19 +++++++--------- v3/src/gameobjects/GameObject.js | 7 ++++++ .../bitmaptext/static/BitmapText.js | 18 +++++++++++++++ v3/src/gameobjects/sprite/Sprite.js | 9 ++++++++ v3/src/gameobjects/text/static/Text.js | 22 +++++++++++++++++++ 6 files changed, 65 insertions(+), 12 deletions(-) diff --git a/v3/src/checksum.js b/v3/src/checksum.js index 004379fed..7ddca0186 100644 --- a/v3/src/checksum.js +++ b/v3/src/checksum.js @@ -1,4 +1,4 @@ var CHECKSUM = { -build: 'd62d2ed0-1f8b-11e7-b52d-db08b948d03e' +build: 'dd446940-1fd6-11e7-b0f6-9b5f5f41e111' }; module.exports = CHECKSUM; \ No newline at end of file diff --git a/v3/src/components/ToJSON.js b/v3/src/components/ToJSON.js index 48af035c3..0fd508c2d 100644 --- a/v3/src/components/ToJSON.js +++ b/v3/src/components/ToJSON.js @@ -6,11 +6,9 @@ var ToJSON = function (gameObject) var out = { name: gameObject.name, type: gameObject.type, - position: { - x: gameObject.x, - y: gameObject.y, - z: gameObject.z - }, + x: gameObject.x, + y: gameObject.y, + z: gameObject.z, scale: { x: gameObject.scaleX, y: gameObject.scaleY @@ -19,23 +17,22 @@ var ToJSON = function (gameObject) x: gameObject.originX, y: gameObject.originY }, - flip: { - x: gameObject.flipX, - y: gameObject.flipY - }, + flipX: gameObject.flipX, + flipY: gameObject.flipY, rotation: gameObject.rotation, alpha: gameObject.alpha, visible: gameObject.visible, scaleMode: gameObject.scaleMode, blendMode: gameObject.blendMode, textureKey: '', - frameKey: '' + frameKey: '', + data: {} }; if (gameObject.texture) { out.textureKey = gameObject.texture.key; - out.frameKey = gameObject.frame.key; + out.frameKey = gameObject.frame.name; } return out; diff --git a/v3/src/gameobjects/GameObject.js b/v3/src/gameobjects/GameObject.js index 0b6fb8627..db4562c56 100644 --- a/v3/src/gameobjects/GameObject.js +++ b/v3/src/gameobjects/GameObject.js @@ -5,6 +5,7 @@ */ var Class = require('../utils/Class'); +var Components = require('../components'); /** * This is the base Game Object class that you can use when creating your own extended Game Objects. @@ -37,6 +38,12 @@ var GameObject = new Class({ { }, + // Can be overridden by custom Game Objects, but provides default export functionality + toJSON: function () + { + return Components.ToJSON(this); + }, + destroy: function () { this.parent.remove(this); diff --git a/v3/src/gameobjects/bitmaptext/static/BitmapText.js b/v3/src/gameobjects/bitmaptext/static/BitmapText.js index cad5a2df6..f22dd8319 100644 --- a/v3/src/gameobjects/bitmaptext/static/BitmapText.js +++ b/v3/src/gameobjects/bitmaptext/static/BitmapText.js @@ -30,6 +30,7 @@ var BitmapText = new Class({ GameObject.call(this, state, 'BitmapText'); + this.font = font; this.fontData = this.state.sys.cache.bitmapFont.get(font); this.text = text; @@ -76,6 +77,23 @@ var BitmapText = new Class({ // global = the BitmapText, taking into account scale and world position return GetBitmapTextSize(this); + }, + + toJSON: function () + { + var out = Components.ToJSON(this); + + // Extra data is added here + + var data = { + font: this.font, + text: this.text, + fontSize: this.fontSize + }; + + out.data = data; + + return out; } }); diff --git a/v3/src/gameobjects/sprite/Sprite.js b/v3/src/gameobjects/sprite/Sprite.js index c56dee4da..a32a134e6 100644 --- a/v3/src/gameobjects/sprite/Sprite.js +++ b/v3/src/gameobjects/sprite/Sprite.js @@ -45,6 +45,15 @@ var Sprite = new Class({ play: function (key, startFrame) { return this.anims.play(key, startFrame); + }, + + toJSON: function () + { + var data = Components.ToJSON(this); + + // Extra Sprite data is added here + + return data; } }); diff --git a/v3/src/gameobjects/text/static/Text.js b/v3/src/gameobjects/text/static/Text.js index 4de885946..16fb8f431 100644 --- a/v3/src/gameobjects/text/static/Text.js +++ b/v3/src/gameobjects/text/static/Text.js @@ -265,6 +265,28 @@ var Text = new Class({ this.dirty = true; return this; + }, + + toJSON: function () + { + var out = Components.ToJSON(this); + + // Extra Text data is added here + // TODO: TextStyle.toJSON + + var data = { + autoRound: this.autoRound, + text: this.text, + resolution: this.resolution, + padding: { + x: this.padding.x, + y: this.padding.y + } + }; + + out.data = data; + + return out; } });