diff --git a/.jshintrc b/.jshintrc
index 158ff88900..0e00ed54f3 100644
--- a/.jshintrc
+++ b/.jshintrc
@@ -18,7 +18,7 @@
"boss" : true, // Tolerate assignments inside if, for & while. Usually conditions & loops are for comparison, not assignments.
"camelcase" : true, // Force all variable names to use either camelCase style or UPPER_CASE with underscores.
"curly" : true, // Require {} for every new block or scope.
- "eqeqeq" : true, // Require triple equals i.e. `===`.
+ "eqeqeq" : true, // Require triple equals i.e. `===`.
"eqnull" : true, // Tolerate use of `== null`.
"evil" : false, // Tolerate use of `eval`.
"expr" : false, // Tolerate `ExpressionStatement` as Programs.
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 92146a3c15..10632af66d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,69 @@
# Change Log
+## Version 2.6.2 - "Kore Springs" - 26th August 2016
+
+### New Features
+
+* Group.getRandomExists will return a random child from the Group that has exists set to true.
+* Group.getAll will return all children in the Group, or a section of the Group, with the optional ability to test if the child has a property matching the given value or not.
+* Group.iterate has a new `returnType`: `RETURN_ALL`. This allows you to return all children that pass the iteration test in an array.
+* The property `checkCollision.none` in the ArcadePhysics.Body class was available, but never used internally. It is now used and checked by the `separate` method. By setting `checkCollision.none = true` you can disable all collision and overlap checks on a Body, but still retain its motion updates (thanks @samme #2661)
+* Math.rotateToAngle takes two angles (in radians), and an interpolation value, and returns a new angle, based on the shortest rotational distance between the two.
+* Math.getShortestAngle will return the shortest angle between the two given angles. Angles are in the range -180 to 180, which is what `Sprite.angle` uses. So you can happily feed this method two sprite angles, and get the shortest angle back between them (#2494)
+
+### Updates
+
+* TypeScript definitions fixes and updates (thanks @calvindavis @AlvaroBarua)
+* Docs typo fixes (thanks @rroylance @Owumaro @boniatillo-com @samme @kjav)
+* The InputHandler.flagged property has been removed. It was never used internally, or exposed via the API, so was just overhead.
+* The src/system folder has been removed and all files relocated to the src/utils folder. This doesn't change anything from an API point of view, but did change the grunt build scripts slightly.
+* BitmapData.shadow and BitmapData.text now both `return this` keeping them in-line with the docs (thanks @greeny #2634)
+* Group.align has had its arguments changed so that it's now `(width, height, ...)` instead of `(rows, columns, ...)` (thanks @deargle #2643)
+* Group.align now returns `true` if the Group was aligned, or `false` if not.
+* The Loader.headers object has a new property `requestedWith`. By default this is set to `false`, but it can be used to set the `X-Requested-With` header to `XMLHttpRequest` (or any other value you need). To enable this do `this.load.headers.requestedWith = 'XMLHttpRequest'` before adding anything to the Loader.
+* ScaleManager.hasPhaserSetFullScreen is a new boolean that identifies if the browser is in full screen mode or not, and if Phaser was the one that requested it. As it's possible to enter full screen mode outside of Phaser, and it then gets confused about what bounding parent to use.
+* Phaser.Tileset has a new property `lastgid` which is populated automatically by the TilemapParser when importing Tiled map data, or can be set manually if building your own tileset.
+* Stage will now check if `document.hidden` is available first, and if it is then never even check for the prefixed versions. This stops warnings like "mozHidden and mozVisibilityState are deprecated" in newer versions of browsers and retain backward compatibility (thanks @leopoldobrines7 #2656)
+* As a result of changes in #2573 Graphics objects were calling `updateLocalBounds` on any shape change, which could cause dramatic performances drops in Graphics heavy situations (#2618). Graphics objects now have a new flag `_boundsDirty` which is used to detect if the bounds have been invalidated, i.e. by a Graphics being cleared or drawn to. If this is set to true then `updateLocalBounds` is called once in the `postUpdate` method (thanks @pengchuan #2618)
+* Phaser.Image now has the ScaleMinMax component.
+* Animations now allow for speeds greater than 0, rather than forcing them to be greater than 1. This allows you to have animation speeds slower than 1 frame per second (thanks @jayrobin #2664)
+* Weapon.fire and all related methods (fireAtXY, fireAtPointer, fireAtSprite) now all return the instance of the Phaser.Bullet that was fired, or `null` if nothing was fired. Previously it would return a boolean, but this change allows you to perform additional processing on the Bullet as required (thanks @JTronLabs #2696)
+* Sound.loopFull now returns the Sound instance that was looped (thanks @hilts-vaughan #2697)
+* ArcadePhysics Body.rotation now reads its initial value from sprite.angle instead of sprite.rotation. The property was immediately replaced with the correct value in Body.preUpdate regardless, but it keeps it consistent (thanks @samme #2708)
+* Weapon.fire now tracks rotation properly, when using an offset and tracking a sprite (thanks @bobonthenet #2672)
+
+### Bug Fixes
+
+* A Group with `inputEnableChildren` set would re-start the Input Handler on a Sprite, even if that handler had been disabled previously.
+* Weapon.autofire wouldn't fire after the first bullet, or until `fire` was called, neither of which are requirements. If you now set this boolean the Weapon will fire continuously until you toggle it back to false (thanks @alverLopez #2647)
+* ArcadePhysics.World.angleBetweenCenters now uses `centerX` and `centerY` properties to check for the angle between, instead of `center.x/y` as that property no longer exists (thanks @leopoldobrines7 #2654)
+* The Emitter.makeParticles `collide` argument didn't work, as a result of #2661, but is now properly respected thanks to that change (thanks @samme #2662)
+* Sound.play would throw the error "Uncaught DOMException: Failed to execute 'disconnect' on 'AudioNode': the given destination is not connected." in Chrome, if you tried to play an audio marker that didn't exist, while a valid marker was already playing.
+* Text bounds would incorrectly displace if the Text resolution was greater than 1 (thanks @valent-novem #2685)
+* TilemapParser would calculate widthInPixels and heightInPixels were being read incorrectly from JSON data (capitalisation of properties) (thanks @hexus #2691)
+* A tinted Texture in Canvas mode wouldn't be updated properly if it was also cropped, beyond the initial crop. Now a cropped texture will re-tint itself every time the crop is updated, and has changed (thanks @phoenixyjll #2688)
+* The Weapon.fireRateVariance property was never taken into account internally. It's now applied to the firing rate correctly (thanks @noseglid #2715)
+* Text.updateText now sets `Text.dirty = false`, which stops Text objects from having `updateText` called twice on them after creation.
+
+### Pixi Updates
+
+Please note that Phaser uses a custom build of Pixi and always has done. The following changes have been made to our custom build, not to Pixi in general.
+
+* This version contains significant fixes for `DisplayObject.getBounds` and `DisplayObjectContainer.getBounds`. The methods can now accept an optional argument `targetCoordinateSpace` which makes it much more flexible, allowing you to check the bounds against any target, not just local and global ones. If the `targetCoordinateSpace` is a valid DisplayObject:
+
+ - If it's a parent of the caller at some level it will return the bounds
+ relative to it.
+ - if it's not parenting the caller at all, it will get the global bounds of
+ it, and the caller and will calculate the x and y bounds of the caller
+ relative to the targetCoordinateSpace DisplayObject.
+
+As a result this also fixes how empty Groups are treated when they have no other children except Groups. So now calculations are correct.
+* DisplayObjectContainer.contains(child) is a new method which determines whether the specified display object is a child of the DisplayObjectContainer instance or the instance itself. This method is used in the new getBounds function.
+* Corrected DisplayObjects default `_bounds` rect from (0, 0, 1, 1) to (0, 0, 0, 0).
+* Thanks to @fmflame for his hard work on the above (#2639 #2627)
+* The methods `setStageReference` and `removeStageReference` have been removed from all Pixi classes. Objects no longer have `stage` properties, or references to the Stage object. This is because no reference to the Stage is required for any calculations, and Phaser can only have 1 Stage, so adding and removing references to it were superfluous actions.
+* The file pixi/utils/Polyk.js has been removed, as it was no longer used with Pixi or Phaser (we replaced it with EarCut a while ago)
+
## Version 2.6.1 - "Caemlyn" - 11th July 2016
### Bug Fixes
diff --git a/README.md b/README.md
index 275c3e26db..3607a02185 100644
--- a/README.md
+++ b/README.md
@@ -38,11 +38,13 @@ Grab the source and join in the fun!
-> In Development
+> 26th August 2016
-This is the development branch, where we are building Phaser 2.6.2.
+Summer is nearly over, the nights are drawing in, and the Phaser releases continue. After enjoying a short break in August, we're back with Phaser 2.6.2. This is mostly a maintenance release, with a lot of attention paid to clearing bugs, and improving features. There's also some significant updates to our fork of Pixi, setting the scene for the next iteration of Phaser.
-Check the [Change Log](#change-log) to see what we've done so far. Or switch to the master branch for the current stable release.
+Check the [Change Log](#change-log) for the complete list of what's new and updated.
+
+With 2.6.2 out, we'll now turn our attention to merging in all of the renderer updates we've built over the past few months. They are going to form the basis of the Phaser 3.0 release. The bump in version number due to the dramatic internal changes we're making. Follow our progress in the Phaser World newsletter for details. It's going to be an exciting September for sure :)
As always, keep you eyes on the Phaser web site, and subscribe to our weekly [newsletter](#newsletter). You can also follow me on [Twitter](https://twitter.com/photonstorm) or chat to me in the Phaser [Slack](http://phaser.io/community/slack) channel.
@@ -156,7 +158,7 @@ As well as the [book](http://phaser.io/interphase) you get all the source code,
### Phaser Editor - A complete Phaser Editor
-[Phaser Editor](http://phasereditor.boniatillo.com/) is a brand new Eclipse based editor that offers lots of built-in tools specifically for Phaser developers. Handy features include Smart code auto-completion, built-in web server, documentation search, asset management, texture atlas creator, audio sprite creator, asset previews and lots more.
+[Phaser Editor](http://phaser.io/shop/apps/phaser-editor) is a brand new Eclipse based editor that offers lots of built-in tools specifically for Phaser developers. Handy features include Smart code auto-completion, built-in web server, documentation search, asset management, texture atlas creator, audio sprite creator, asset previews and lots more.
### Game Mechanic Explorer
@@ -305,7 +307,7 @@ You can read all about the philosophy behind Lazer [here](http://phaser.io/news/
![Change Log](http://phaser.io/images/github/div-change-log.png "Change Log")
-## Version 2.6.2 - "Kore Springs" - In Development
+## Version 2.6.2 - "Kore Springs" - 26th August 2016
### New Features
diff --git a/build/creature.js b/build/creature.js
new file mode 100644
index 0000000000..6873e9083b
--- /dev/null
+++ b/build/creature.js
@@ -0,0 +1,7207 @@
+/**
+ * @fileoverview gl-matrix - High performance matrix and vector operations
+ * @author Brandon Jones
+ * @author Colin MacKenzie IV
+ * @version 2.2.2
+ */
+
+/* Copyright (c) 2013, Brandon Jones, Colin MacKenzie IV. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+
+(function(_global) {
+ "use strict";
+
+ var shim = {};
+ if (typeof(exports) === 'undefined') {
+ if(typeof define == 'function' && typeof define.amd == 'object' && define.amd) {
+ shim.exports = {};
+ define(function() {
+ return shim.exports;
+ });
+ } else {
+ // gl-matrix lives in a browser, define its namespaces in global
+ shim.exports = typeof(window) !== 'undefined' ? window : _global;
+ }
+ }
+ else {
+ // gl-matrix lives in commonjs, define its namespaces in exports
+ shim.exports = exports;
+ }
+
+ (function(exports) {
+ /* Copyright (c) 2013, Brandon Jones, Colin MacKenzie IV. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+
+if(!GLMAT_EPSILON) {
+ var GLMAT_EPSILON = 0.000001;
+}
+
+if(!GLMAT_ARRAY_TYPE) {
+ var GLMAT_ARRAY_TYPE = (typeof Float32Array !== 'undefined') ? Float32Array : Array;
+}
+
+if(!GLMAT_RANDOM) {
+ var GLMAT_RANDOM = Math.random;
+}
+
+/**
+ * @class Common utilities
+ * @name glMatrix
+ */
+var glMatrix = {};
+
+/**
+ * Sets the type of array used when creating new vectors and matrices
+ *
+ * @param {Type} type Array type, such as Float32Array or Array
+ */
+glMatrix.setMatrixArrayType = function(type) {
+ GLMAT_ARRAY_TYPE = type;
+}
+
+if(typeof(exports) !== 'undefined') {
+ exports.glMatrix = glMatrix;
+}
+
+var degree = Math.PI / 180;
+
+/**
+* Convert Degree To Radian
+*
+* @param {Number} Angle in Degrees
+*/
+glMatrix.toRadian = function(a){
+ return a * degree;
+}
+;
+/* Copyright (c) 2013, Brandon Jones, Colin MacKenzie IV. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/**
+ * @class 2 Dimensional Vector
+ * @name vec2
+ */
+
+var vec2 = {};
+
+/**
+ * Creates a new, empty vec2
+ *
+ * @returns {vec2} a new 2D vector
+ */
+vec2.create = function() {
+ var out = new GLMAT_ARRAY_TYPE(2);
+ out[0] = 0;
+ out[1] = 0;
+ return out;
+};
+
+/**
+ * Creates a new vec2 initialized with values from an existing vector
+ *
+ * @param {vec2} a vector to clone
+ * @returns {vec2} a new 2D vector
+ */
+vec2.clone = function(a) {
+ var out = new GLMAT_ARRAY_TYPE(2);
+ out[0] = a[0];
+ out[1] = a[1];
+ return out;
+};
+
+/**
+ * Creates a new vec2 initialized with the given values
+ *
+ * @param {Number} x X component
+ * @param {Number} y Y component
+ * @returns {vec2} a new 2D vector
+ */
+vec2.fromValues = function(x, y) {
+ var out = new GLMAT_ARRAY_TYPE(2);
+ out[0] = x;
+ out[1] = y;
+ return out;
+};
+
+/**
+ * Copy the values from one vec2 to another
+ *
+ * @param {vec2} out the receiving vector
+ * @param {vec2} a the source vector
+ * @returns {vec2} out
+ */
+vec2.copy = function(out, a) {
+ out[0] = a[0];
+ out[1] = a[1];
+ return out;
+};
+
+/**
+ * Set the components of a vec2 to the given values
+ *
+ * @param {vec2} out the receiving vector
+ * @param {Number} x X component
+ * @param {Number} y Y component
+ * @returns {vec2} out
+ */
+vec2.set = function(out, x, y) {
+ out[0] = x;
+ out[1] = y;
+ return out;
+};
+
+/**
+ * Adds two vec2's
+ *
+ * @param {vec2} out the receiving vector
+ * @param {vec2} a the first operand
+ * @param {vec2} b the second operand
+ * @returns {vec2} out
+ */
+vec2.add = function(out, a, b) {
+ out[0] = a[0] + b[0];
+ out[1] = a[1] + b[1];
+ return out;
+};
+
+/**
+ * Subtracts vector b from vector a
+ *
+ * @param {vec2} out the receiving vector
+ * @param {vec2} a the first operand
+ * @param {vec2} b the second operand
+ * @returns {vec2} out
+ */
+vec2.subtract = function(out, a, b) {
+ out[0] = a[0] - b[0];
+ out[1] = a[1] - b[1];
+ return out;
+};
+
+/**
+ * Alias for {@link vec2.subtract}
+ * @function
+ */
+vec2.sub = vec2.subtract;
+
+/**
+ * Multiplies two vec2's
+ *
+ * @param {vec2} out the receiving vector
+ * @param {vec2} a the first operand
+ * @param {vec2} b the second operand
+ * @returns {vec2} out
+ */
+vec2.multiply = function(out, a, b) {
+ out[0] = a[0] * b[0];
+ out[1] = a[1] * b[1];
+ return out;
+};
+
+/**
+ * Alias for {@link vec2.multiply}
+ * @function
+ */
+vec2.mul = vec2.multiply;
+
+/**
+ * Divides two vec2's
+ *
+ * @param {vec2} out the receiving vector
+ * @param {vec2} a the first operand
+ * @param {vec2} b the second operand
+ * @returns {vec2} out
+ */
+vec2.divide = function(out, a, b) {
+ out[0] = a[0] / b[0];
+ out[1] = a[1] / b[1];
+ return out;
+};
+
+/**
+ * Alias for {@link vec2.divide}
+ * @function
+ */
+vec2.div = vec2.divide;
+
+/**
+ * Returns the minimum of two vec2's
+ *
+ * @param {vec2} out the receiving vector
+ * @param {vec2} a the first operand
+ * @param {vec2} b the second operand
+ * @returns {vec2} out
+ */
+vec2.min = function(out, a, b) {
+ out[0] = Math.min(a[0], b[0]);
+ out[1] = Math.min(a[1], b[1]);
+ return out;
+};
+
+/**
+ * Returns the maximum of two vec2's
+ *
+ * @param {vec2} out the receiving vector
+ * @param {vec2} a the first operand
+ * @param {vec2} b the second operand
+ * @returns {vec2} out
+ */
+vec2.max = function(out, a, b) {
+ out[0] = Math.max(a[0], b[0]);
+ out[1] = Math.max(a[1], b[1]);
+ return out;
+};
+
+/**
+ * Scales a vec2 by a scalar number
+ *
+ * @param {vec2} out the receiving vector
+ * @param {vec2} a the vector to scale
+ * @param {Number} b amount to scale the vector by
+ * @returns {vec2} out
+ */
+vec2.scale = function(out, a, b) {
+ out[0] = a[0] * b;
+ out[1] = a[1] * b;
+ return out;
+};
+
+/**
+ * Adds two vec2's after scaling the second operand by a scalar value
+ *
+ * @param {vec2} out the receiving vector
+ * @param {vec2} a the first operand
+ * @param {vec2} b the second operand
+ * @param {Number} scale the amount to scale b by before adding
+ * @returns {vec2} out
+ */
+vec2.scaleAndAdd = function(out, a, b, scale) {
+ out[0] = a[0] + (b[0] * scale);
+ out[1] = a[1] + (b[1] * scale);
+ return out;
+};
+
+/**
+ * Calculates the euclidian distance between two vec2's
+ *
+ * @param {vec2} a the first operand
+ * @param {vec2} b the second operand
+ * @returns {Number} distance between a and b
+ */
+vec2.distance = function(a, b) {
+ var x = b[0] - a[0],
+ y = b[1] - a[1];
+ return Math.sqrt(x*x + y*y);
+};
+
+/**
+ * Alias for {@link vec2.distance}
+ * @function
+ */
+vec2.dist = vec2.distance;
+
+/**
+ * Calculates the squared euclidian distance between two vec2's
+ *
+ * @param {vec2} a the first operand
+ * @param {vec2} b the second operand
+ * @returns {Number} squared distance between a and b
+ */
+vec2.squaredDistance = function(a, b) {
+ var x = b[0] - a[0],
+ y = b[1] - a[1];
+ return x*x + y*y;
+};
+
+/**
+ * Alias for {@link vec2.squaredDistance}
+ * @function
+ */
+vec2.sqrDist = vec2.squaredDistance;
+
+/**
+ * Calculates the length of a vec2
+ *
+ * @param {vec2} a vector to calculate length of
+ * @returns {Number} length of a
+ */
+vec2.length = function (a) {
+ var x = a[0],
+ y = a[1];
+ return Math.sqrt(x*x + y*y);
+};
+
+/**
+ * Alias for {@link vec2.length}
+ * @function
+ */
+vec2.len = vec2.length;
+
+/**
+ * Calculates the squared length of a vec2
+ *
+ * @param {vec2} a vector to calculate squared length of
+ * @returns {Number} squared length of a
+ */
+vec2.squaredLength = function (a) {
+ var x = a[0],
+ y = a[1];
+ return x*x + y*y;
+};
+
+/**
+ * Alias for {@link vec2.squaredLength}
+ * @function
+ */
+vec2.sqrLen = vec2.squaredLength;
+
+/**
+ * Negates the components of a vec2
+ *
+ * @param {vec2} out the receiving vector
+ * @param {vec2} a vector to negate
+ * @returns {vec2} out
+ */
+vec2.negate = function(out, a) {
+ out[0] = -a[0];
+ out[1] = -a[1];
+ return out;
+};
+
+/**
+ * Returns the inverse of the components of a vec2
+ *
+ * @param {vec2} out the receiving vector
+ * @param {vec2} a vector to invert
+ * @returns {vec2} out
+ */
+vec2.inverse = function(out, a) {
+ out[0] = 1.0 / a[0];
+ out[1] = 1.0 / a[1];
+ return out;
+};
+
+/**
+ * Normalize a vec2
+ *
+ * @param {vec2} out the receiving vector
+ * @param {vec2} a vector to normalize
+ * @returns {vec2} out
+ */
+vec2.normalize = function(out, a) {
+ var x = a[0],
+ y = a[1];
+ var len = x*x + y*y;
+ if (len > 0) {
+ //TODO: evaluate use of glm_invsqrt here?
+ len = 1 / Math.sqrt(len);
+ out[0] = a[0] * len;
+ out[1] = a[1] * len;
+ }
+ return out;
+};
+
+/**
+ * Calculates the dot product of two vec2's
+ *
+ * @param {vec2} a the first operand
+ * @param {vec2} b the second operand
+ * @returns {Number} dot product of a and b
+ */
+vec2.dot = function (a, b) {
+ return a[0] * b[0] + a[1] * b[1];
+};
+
+/**
+ * Computes the cross product of two vec2's
+ * Note that the cross product must by definition produce a 3D vector
+ *
+ * @param {vec3} out the receiving vector
+ * @param {vec2} a the first operand
+ * @param {vec2} b the second operand
+ * @returns {vec3} out
+ */
+vec2.cross = function(out, a, b) {
+ var z = a[0] * b[1] - a[1] * b[0];
+ out[0] = out[1] = 0;
+ out[2] = z;
+ return out;
+};
+
+/**
+ * Performs a linear interpolation between two vec2's
+ *
+ * @param {vec2} out the receiving vector
+ * @param {vec2} a the first operand
+ * @param {vec2} b the second operand
+ * @param {Number} t interpolation amount between the two inputs
+ * @returns {vec2} out
+ */
+vec2.lerp = function (out, a, b, t) {
+ var ax = a[0],
+ ay = a[1];
+ out[0] = ax + t * (b[0] - ax);
+ out[1] = ay + t * (b[1] - ay);
+ return out;
+};
+
+/**
+ * Generates a random vector with the given scale
+ *
+ * @param {vec2} out the receiving vector
+ * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned
+ * @returns {vec2} out
+ */
+vec2.random = function (out, scale) {
+ scale = scale || 1.0;
+ var r = GLMAT_RANDOM() * 2.0 * Math.PI;
+ out[0] = Math.cos(r) * scale;
+ out[1] = Math.sin(r) * scale;
+ return out;
+};
+
+/**
+ * Transforms the vec2 with a mat2
+ *
+ * @param {vec2} out the receiving vector
+ * @param {vec2} a the vector to transform
+ * @param {mat2} m matrix to transform with
+ * @returns {vec2} out
+ */
+vec2.transformMat2 = function(out, a, m) {
+ var x = a[0],
+ y = a[1];
+ out[0] = m[0] * x + m[2] * y;
+ out[1] = m[1] * x + m[3] * y;
+ return out;
+};
+
+/**
+ * Transforms the vec2 with a mat2d
+ *
+ * @param {vec2} out the receiving vector
+ * @param {vec2} a the vector to transform
+ * @param {mat2d} m matrix to transform with
+ * @returns {vec2} out
+ */
+vec2.transformMat2d = function(out, a, m) {
+ var x = a[0],
+ y = a[1];
+ out[0] = m[0] * x + m[2] * y + m[4];
+ out[1] = m[1] * x + m[3] * y + m[5];
+ return out;
+};
+
+/**
+ * Transforms the vec2 with a mat3
+ * 3rd vector component is implicitly '1'
+ *
+ * @param {vec2} out the receiving vector
+ * @param {vec2} a the vector to transform
+ * @param {mat3} m matrix to transform with
+ * @returns {vec2} out
+ */
+vec2.transformMat3 = function(out, a, m) {
+ var x = a[0],
+ y = a[1];
+ out[0] = m[0] * x + m[3] * y + m[6];
+ out[1] = m[1] * x + m[4] * y + m[7];
+ return out;
+};
+
+/**
+ * Transforms the vec2 with a mat4
+ * 3rd vector component is implicitly '0'
+ * 4th vector component is implicitly '1'
+ *
+ * @param {vec2} out the receiving vector
+ * @param {vec2} a the vector to transform
+ * @param {mat4} m matrix to transform with
+ * @returns {vec2} out
+ */
+vec2.transformMat4 = function(out, a, m) {
+ var x = a[0],
+ y = a[1];
+ out[0] = m[0] * x + m[4] * y + m[12];
+ out[1] = m[1] * x + m[5] * y + m[13];
+ return out;
+};
+
+/**
+ * Perform some operation over an array of vec2s.
+ *
+ * @param {Array} a the array of vectors to iterate over
+ * @param {Number} stride Number of elements between the start of each vec2. If 0 assumes tightly packed
+ * @param {Number} offset Number of elements to skip at the beginning of the array
+ * @param {Number} count Number of vec2s to iterate over. If 0 iterates over entire array
+ * @param {Function} fn Function to call for each vector in the array
+ * @param {Object} [arg] additional argument to pass to fn
+ * @returns {Array} a
+ * @function
+ */
+vec2.forEach = (function() {
+ var vec = vec2.create();
+
+ return function(a, stride, offset, count, fn, arg) {
+ var i, l;
+ if(!stride) {
+ stride = 2;
+ }
+
+ if(!offset) {
+ offset = 0;
+ }
+
+ if(count) {
+ l = Math.min((count * stride) + offset, a.length);
+ } else {
+ l = a.length;
+ }
+
+ for(i = offset; i < l; i += stride) {
+ vec[0] = a[i]; vec[1] = a[i+1];
+ fn(vec, vec, arg);
+ a[i] = vec[0]; a[i+1] = vec[1];
+ }
+
+ return a;
+ };
+})();
+
+/**
+ * Returns a string representation of a vector
+ *
+ * @param {vec2} vec vector to represent as a string
+ * @returns {String} string representation of the vector
+ */
+vec2.str = function (a) {
+ return 'vec2(' + a[0] + ', ' + a[1] + ')';
+};
+
+if(typeof(exports) !== 'undefined') {
+ exports.vec2 = vec2;
+}
+;
+/* Copyright (c) 2013, Brandon Jones, Colin MacKenzie IV. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/**
+ * @class 3 Dimensional Vector
+ * @name vec3
+ */
+
+var vec3 = {};
+
+/**
+ * Creates a new, empty vec3
+ *
+ * @returns {vec3} a new 3D vector
+ */
+vec3.create = function() {
+ var out = new GLMAT_ARRAY_TYPE(3);
+ out[0] = 0;
+ out[1] = 0;
+ out[2] = 0;
+ return out;
+};
+
+/**
+ * Creates a new vec3 initialized with values from an existing vector
+ *
+ * @param {vec3} a vector to clone
+ * @returns {vec3} a new 3D vector
+ */
+vec3.clone = function(a) {
+ var out = new GLMAT_ARRAY_TYPE(3);
+ out[0] = a[0];
+ out[1] = a[1];
+ out[2] = a[2];
+ return out;
+};
+
+/**
+ * Creates a new vec3 initialized with the given values
+ *
+ * @param {Number} x X component
+ * @param {Number} y Y component
+ * @param {Number} z Z component
+ * @returns {vec3} a new 3D vector
+ */
+vec3.fromValues = function(x, y, z) {
+ var out = new GLMAT_ARRAY_TYPE(3);
+ out[0] = x;
+ out[1] = y;
+ out[2] = z;
+ return out;
+};
+
+/**
+ * Copy the values from one vec3 to another
+ *
+ * @param {vec3} out the receiving vector
+ * @param {vec3} a the source vector
+ * @returns {vec3} out
+ */
+vec3.copy = function(out, a) {
+ out[0] = a[0];
+ out[1] = a[1];
+ out[2] = a[2];
+ return out;
+};
+
+/**
+ * Set the components of a vec3 to the given values
+ *
+ * @param {vec3} out the receiving vector
+ * @param {Number} x X component
+ * @param {Number} y Y component
+ * @param {Number} z Z component
+ * @returns {vec3} out
+ */
+vec3.set = function(out, x, y, z) {
+ out[0] = x;
+ out[1] = y;
+ out[2] = z;
+ return out;
+};
+
+/**
+ * Adds two vec3's
+ *
+ * @param {vec3} out the receiving vector
+ * @param {vec3} a the first operand
+ * @param {vec3} b the second operand
+ * @returns {vec3} out
+ */
+vec3.add = function(out, a, b) {
+ out[0] = a[0] + b[0];
+ out[1] = a[1] + b[1];
+ out[2] = a[2] + b[2];
+ return out;
+};
+
+/**
+ * Subtracts vector b from vector a
+ *
+ * @param {vec3} out the receiving vector
+ * @param {vec3} a the first operand
+ * @param {vec3} b the second operand
+ * @returns {vec3} out
+ */
+vec3.subtract = function(out, a, b) {
+ out[0] = a[0] - b[0];
+ out[1] = a[1] - b[1];
+ out[2] = a[2] - b[2];
+ return out;
+};
+
+/**
+ * Alias for {@link vec3.subtract}
+ * @function
+ */
+vec3.sub = vec3.subtract;
+
+/**
+ * Multiplies two vec3's
+ *
+ * @param {vec3} out the receiving vector
+ * @param {vec3} a the first operand
+ * @param {vec3} b the second operand
+ * @returns {vec3} out
+ */
+vec3.multiply = function(out, a, b) {
+ out[0] = a[0] * b[0];
+ out[1] = a[1] * b[1];
+ out[2] = a[2] * b[2];
+ return out;
+};
+
+/**
+ * Alias for {@link vec3.multiply}
+ * @function
+ */
+vec3.mul = vec3.multiply;
+
+/**
+ * Divides two vec3's
+ *
+ * @param {vec3} out the receiving vector
+ * @param {vec3} a the first operand
+ * @param {vec3} b the second operand
+ * @returns {vec3} out
+ */
+vec3.divide = function(out, a, b) {
+ out[0] = a[0] / b[0];
+ out[1] = a[1] / b[1];
+ out[2] = a[2] / b[2];
+ return out;
+};
+
+/**
+ * Alias for {@link vec3.divide}
+ * @function
+ */
+vec3.div = vec3.divide;
+
+/**
+ * Returns the minimum of two vec3's
+ *
+ * @param {vec3} out the receiving vector
+ * @param {vec3} a the first operand
+ * @param {vec3} b the second operand
+ * @returns {vec3} out
+ */
+vec3.min = function(out, a, b) {
+ out[0] = Math.min(a[0], b[0]);
+ out[1] = Math.min(a[1], b[1]);
+ out[2] = Math.min(a[2], b[2]);
+ return out;
+};
+
+/**
+ * Returns the maximum of two vec3's
+ *
+ * @param {vec3} out the receiving vector
+ * @param {vec3} a the first operand
+ * @param {vec3} b the second operand
+ * @returns {vec3} out
+ */
+vec3.max = function(out, a, b) {
+ out[0] = Math.max(a[0], b[0]);
+ out[1] = Math.max(a[1], b[1]);
+ out[2] = Math.max(a[2], b[2]);
+ return out;
+};
+
+/**
+ * Scales a vec3 by a scalar number
+ *
+ * @param {vec3} out the receiving vector
+ * @param {vec3} a the vector to scale
+ * @param {Number} b amount to scale the vector by
+ * @returns {vec3} out
+ */
+vec3.scale = function(out, a, b) {
+ out[0] = a[0] * b;
+ out[1] = a[1] * b;
+ out[2] = a[2] * b;
+ return out;
+};
+
+/**
+ * Adds two vec3's after scaling the second operand by a scalar value
+ *
+ * @param {vec3} out the receiving vector
+ * @param {vec3} a the first operand
+ * @param {vec3} b the second operand
+ * @param {Number} scale the amount to scale b by before adding
+ * @returns {vec3} out
+ */
+vec3.scaleAndAdd = function(out, a, b, scale) {
+ out[0] = a[0] + (b[0] * scale);
+ out[1] = a[1] + (b[1] * scale);
+ out[2] = a[2] + (b[2] * scale);
+ return out;
+};
+
+/**
+ * Calculates the euclidian distance between two vec3's
+ *
+ * @param {vec3} a the first operand
+ * @param {vec3} b the second operand
+ * @returns {Number} distance between a and b
+ */
+vec3.distance = function(a, b) {
+ var x = b[0] - a[0],
+ y = b[1] - a[1],
+ z = b[2] - a[2];
+ return Math.sqrt(x*x + y*y + z*z);
+};
+
+/**
+ * Alias for {@link vec3.distance}
+ * @function
+ */
+vec3.dist = vec3.distance;
+
+/**
+ * Calculates the squared euclidian distance between two vec3's
+ *
+ * @param {vec3} a the first operand
+ * @param {vec3} b the second operand
+ * @returns {Number} squared distance between a and b
+ */
+vec3.squaredDistance = function(a, b) {
+ var x = b[0] - a[0],
+ y = b[1] - a[1],
+ z = b[2] - a[2];
+ return x*x + y*y + z*z;
+};
+
+/**
+ * Alias for {@link vec3.squaredDistance}
+ * @function
+ */
+vec3.sqrDist = vec3.squaredDistance;
+
+/**
+ * Calculates the length of a vec3
+ *
+ * @param {vec3} a vector to calculate length of
+ * @returns {Number} length of a
+ */
+vec3.length = function (a) {
+ var x = a[0],
+ y = a[1],
+ z = a[2];
+ return Math.sqrt(x*x + y*y + z*z);
+};
+
+/**
+ * Alias for {@link vec3.length}
+ * @function
+ */
+vec3.len = vec3.length;
+
+/**
+ * Calculates the squared length of a vec3
+ *
+ * @param {vec3} a vector to calculate squared length of
+ * @returns {Number} squared length of a
+ */
+vec3.squaredLength = function (a) {
+ var x = a[0],
+ y = a[1],
+ z = a[2];
+ return x*x + y*y + z*z;
+};
+
+/**
+ * Alias for {@link vec3.squaredLength}
+ * @function
+ */
+vec3.sqrLen = vec3.squaredLength;
+
+/**
+ * Negates the components of a vec3
+ *
+ * @param {vec3} out the receiving vector
+ * @param {vec3} a vector to negate
+ * @returns {vec3} out
+ */
+vec3.negate = function(out, a) {
+ out[0] = -a[0];
+ out[1] = -a[1];
+ out[2] = -a[2];
+ return out;
+};
+
+/**
+ * Returns the inverse of the components of a vec3
+ *
+ * @param {vec3} out the receiving vector
+ * @param {vec3} a vector to invert
+ * @returns {vec3} out
+ */
+vec3.inverse = function(out, a) {
+ out[0] = 1.0 / a[0];
+ out[1] = 1.0 / a[1];
+ out[2] = 1.0 / a[2];
+ return out;
+};
+
+/**
+ * Normalize a vec3
+ *
+ * @param {vec3} out the receiving vector
+ * @param {vec3} a vector to normalize
+ * @returns {vec3} out
+ */
+vec3.normalize = function(out, a) {
+ var x = a[0],
+ y = a[1],
+ z = a[2];
+ var len = x*x + y*y + z*z;
+ if (len > 0) {
+ //TODO: evaluate use of glm_invsqrt here?
+ len = 1 / Math.sqrt(len);
+ out[0] = a[0] * len;
+ out[1] = a[1] * len;
+ out[2] = a[2] * len;
+ }
+ return out;
+};
+
+/**
+ * Calculates the dot product of two vec3's
+ *
+ * @param {vec3} a the first operand
+ * @param {vec3} b the second operand
+ * @returns {Number} dot product of a and b
+ */
+vec3.dot = function (a, b) {
+ return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
+};
+
+/**
+ * Computes the cross product of two vec3's
+ *
+ * @param {vec3} out the receiving vector
+ * @param {vec3} a the first operand
+ * @param {vec3} b the second operand
+ * @returns {vec3} out
+ */
+vec3.cross = function(out, a, b) {
+ var ax = a[0], ay = a[1], az = a[2],
+ bx = b[0], by = b[1], bz = b[2];
+
+ out[0] = ay * bz - az * by;
+ out[1] = az * bx - ax * bz;
+ out[2] = ax * by - ay * bx;
+ return out;
+};
+
+/**
+ * Performs a linear interpolation between two vec3's
+ *
+ * @param {vec3} out the receiving vector
+ * @param {vec3} a the first operand
+ * @param {vec3} b the second operand
+ * @param {Number} t interpolation amount between the two inputs
+ * @returns {vec3} out
+ */
+vec3.lerp = function (out, a, b, t) {
+ var ax = a[0],
+ ay = a[1],
+ az = a[2];
+ out[0] = ax + t * (b[0] - ax);
+ out[1] = ay + t * (b[1] - ay);
+ out[2] = az + t * (b[2] - az);
+ return out;
+};
+
+/**
+ * Generates a random vector with the given scale
+ *
+ * @param {vec3} out the receiving vector
+ * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned
+ * @returns {vec3} out
+ */
+vec3.random = function (out, scale) {
+ scale = scale || 1.0;
+
+ var r = GLMAT_RANDOM() * 2.0 * Math.PI;
+ var z = (GLMAT_RANDOM() * 2.0) - 1.0;
+ var zScale = Math.sqrt(1.0-z*z) * scale;
+
+ out[0] = Math.cos(r) * zScale;
+ out[1] = Math.sin(r) * zScale;
+ out[2] = z * scale;
+ return out;
+};
+
+/**
+ * Transforms the vec3 with a mat4.
+ * 4th vector component is implicitly '1'
+ *
+ * @param {vec3} out the receiving vector
+ * @param {vec3} a the vector to transform
+ * @param {mat4} m matrix to transform with
+ * @returns {vec3} out
+ */
+vec3.transformMat4 = function(out, a, m) {
+ var x = a[0], y = a[1], z = a[2],
+ w = m[3] * x + m[7] * y + m[11] * z + m[15];
+ w = w || 1.0;
+ out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w;
+ out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w;
+ out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w;
+ return out;
+};
+
+/**
+ * Transforms the vec3 with a mat3.
+ *
+ * @param {vec3} out the receiving vector
+ * @param {vec3} a the vector to transform
+ * @param {mat4} m the 3x3 matrix to transform with
+ * @returns {vec3} out
+ */
+vec3.transformMat3 = function(out, a, m) {
+ var x = a[0], y = a[1], z = a[2];
+ out[0] = x * m[0] + y * m[3] + z * m[6];
+ out[1] = x * m[1] + y * m[4] + z * m[7];
+ out[2] = x * m[2] + y * m[5] + z * m[8];
+ return out;
+};
+
+/**
+ * Transforms the vec3 with a quat
+ *
+ * @param {vec3} out the receiving vector
+ * @param {vec3} a the vector to transform
+ * @param {quat} q quaternion to transform with
+ * @returns {vec3} out
+ */
+vec3.transformQuat = function(out, a, q) {
+ // benchmarks: http://jsperf.com/quaternion-transform-vec3-implementations
+
+ var x = a[0], y = a[1], z = a[2],
+ qx = q[0], qy = q[1], qz = q[2], qw = q[3],
+
+ // calculate quat * vec
+ ix = qw * x + qy * z - qz * y,
+ iy = qw * y + qz * x - qx * z,
+ iz = qw * z + qx * y - qy * x,
+ iw = -qx * x - qy * y - qz * z;
+
+ // calculate result * inverse quat
+ out[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy;
+ out[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz;
+ out[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx;
+ return out;
+};
+
+/**
+ * Rotate a 3D vector around the x-axis
+ * @param {vec3} out The receiving vec3
+ * @param {vec3} a The vec3 point to rotate
+ * @param {vec3} b The origin of the rotation
+ * @param {Number} c The angle of rotation
+ * @returns {vec3} out
+ */
+vec3.rotateX = function(out, a, b, c){
+ var p = [], r=[];
+ //Translate point to the origin
+ p[0] = a[0] - b[0];
+ p[1] = a[1] - b[1];
+ p[2] = a[2] - b[2];
+
+ //perform rotation
+ r[0] = p[0];
+ r[1] = p[1]*Math.cos(c) - p[2]*Math.sin(c);
+ r[2] = p[1]*Math.sin(c) + p[2]*Math.cos(c);
+
+ //translate to correct position
+ out[0] = r[0] + b[0];
+ out[1] = r[1] + b[1];
+ out[2] = r[2] + b[2];
+
+ return out;
+};
+
+/**
+ * Rotate a 3D vector around the y-axis
+ * @param {vec3} out The receiving vec3
+ * @param {vec3} a The vec3 point to rotate
+ * @param {vec3} b The origin of the rotation
+ * @param {Number} c The angle of rotation
+ * @returns {vec3} out
+ */
+vec3.rotateY = function(out, a, b, c){
+ var p = [], r=[];
+ //Translate point to the origin
+ p[0] = a[0] - b[0];
+ p[1] = a[1] - b[1];
+ p[2] = a[2] - b[2];
+
+ //perform rotation
+ r[0] = p[2]*Math.sin(c) + p[0]*Math.cos(c);
+ r[1] = p[1];
+ r[2] = p[2]*Math.cos(c) - p[0]*Math.sin(c);
+
+ //translate to correct position
+ out[0] = r[0] + b[0];
+ out[1] = r[1] + b[1];
+ out[2] = r[2] + b[2];
+
+ return out;
+};
+
+/**
+ * Rotate a 3D vector around the z-axis
+ * @param {vec3} out The receiving vec3
+ * @param {vec3} a The vec3 point to rotate
+ * @param {vec3} b The origin of the rotation
+ * @param {Number} c The angle of rotation
+ * @returns {vec3} out
+ */
+vec3.rotateZ = function(out, a, b, c){
+ var p = [], r=[];
+ //Translate point to the origin
+ p[0] = a[0] - b[0];
+ p[1] = a[1] - b[1];
+ p[2] = a[2] - b[2];
+
+ //perform rotation
+ r[0] = p[0]*Math.cos(c) - p[1]*Math.sin(c);
+ r[1] = p[0]*Math.sin(c) + p[1]*Math.cos(c);
+ r[2] = p[2];
+
+ //translate to correct position
+ out[0] = r[0] + b[0];
+ out[1] = r[1] + b[1];
+ out[2] = r[2] + b[2];
+
+ return out;
+};
+
+/**
+ * Perform some operation over an array of vec3s.
+ *
+ * @param {Array} a the array of vectors to iterate over
+ * @param {Number} stride Number of elements between the start of each vec3. If 0 assumes tightly packed
+ * @param {Number} offset Number of elements to skip at the beginning of the array
+ * @param {Number} count Number of vec3s to iterate over. If 0 iterates over entire array
+ * @param {Function} fn Function to call for each vector in the array
+ * @param {Object} [arg] additional argument to pass to fn
+ * @returns {Array} a
+ * @function
+ */
+vec3.forEach = (function() {
+ var vec = vec3.create();
+
+ return function(a, stride, offset, count, fn, arg) {
+ var i, l;
+ if(!stride) {
+ stride = 3;
+ }
+
+ if(!offset) {
+ offset = 0;
+ }
+
+ if(count) {
+ l = Math.min((count * stride) + offset, a.length);
+ } else {
+ l = a.length;
+ }
+
+ for(i = offset; i < l; i += stride) {
+ vec[0] = a[i]; vec[1] = a[i+1]; vec[2] = a[i+2];
+ fn(vec, vec, arg);
+ a[i] = vec[0]; a[i+1] = vec[1]; a[i+2] = vec[2];
+ }
+
+ return a;
+ };
+})();
+
+/**
+ * Returns a string representation of a vector
+ *
+ * @param {vec3} vec vector to represent as a string
+ * @returns {String} string representation of the vector
+ */
+vec3.str = function (a) {
+ return 'vec3(' + a[0] + ', ' + a[1] + ', ' + a[2] + ')';
+};
+
+if(typeof(exports) !== 'undefined') {
+ exports.vec3 = vec3;
+}
+;
+/* Copyright (c) 2013, Brandon Jones, Colin MacKenzie IV. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/**
+ * @class 4 Dimensional Vector
+ * @name vec4
+ */
+
+var vec4 = {};
+
+/**
+ * Creates a new, empty vec4
+ *
+ * @returns {vec4} a new 4D vector
+ */
+vec4.create = function() {
+ var out = new GLMAT_ARRAY_TYPE(4);
+ out[0] = 0;
+ out[1] = 0;
+ out[2] = 0;
+ out[3] = 0;
+ return out;
+};
+
+/**
+ * Creates a new vec4 initialized with values from an existing vector
+ *
+ * @param {vec4} a vector to clone
+ * @returns {vec4} a new 4D vector
+ */
+vec4.clone = function(a) {
+ var out = new GLMAT_ARRAY_TYPE(4);
+ out[0] = a[0];
+ out[1] = a[1];
+ out[2] = a[2];
+ out[3] = a[3];
+ return out;
+};
+
+/**
+ * Creates a new vec4 initialized with the given values
+ *
+ * @param {Number} x X component
+ * @param {Number} y Y component
+ * @param {Number} z Z component
+ * @param {Number} w W component
+ * @returns {vec4} a new 4D vector
+ */
+vec4.fromValues = function(x, y, z, w) {
+ var out = new GLMAT_ARRAY_TYPE(4);
+ out[0] = x;
+ out[1] = y;
+ out[2] = z;
+ out[3] = w;
+ return out;
+};
+
+/**
+ * Copy the values from one vec4 to another
+ *
+ * @param {vec4} out the receiving vector
+ * @param {vec4} a the source vector
+ * @returns {vec4} out
+ */
+vec4.copy = function(out, a) {
+ out[0] = a[0];
+ out[1] = a[1];
+ out[2] = a[2];
+ out[3] = a[3];
+ return out;
+};
+
+/**
+ * Set the components of a vec4 to the given values
+ *
+ * @param {vec4} out the receiving vector
+ * @param {Number} x X component
+ * @param {Number} y Y component
+ * @param {Number} z Z component
+ * @param {Number} w W component
+ * @returns {vec4} out
+ */
+vec4.set = function(out, x, y, z, w) {
+ out[0] = x;
+ out[1] = y;
+ out[2] = z;
+ out[3] = w;
+ return out;
+};
+
+/**
+ * Adds two vec4's
+ *
+ * @param {vec4} out the receiving vector
+ * @param {vec4} a the first operand
+ * @param {vec4} b the second operand
+ * @returns {vec4} out
+ */
+vec4.add = function(out, a, b) {
+ out[0] = a[0] + b[0];
+ out[1] = a[1] + b[1];
+ out[2] = a[2] + b[2];
+ out[3] = a[3] + b[3];
+ return out;
+};
+
+/**
+ * Subtracts vector b from vector a
+ *
+ * @param {vec4} out the receiving vector
+ * @param {vec4} a the first operand
+ * @param {vec4} b the second operand
+ * @returns {vec4} out
+ */
+vec4.subtract = function(out, a, b) {
+ out[0] = a[0] - b[0];
+ out[1] = a[1] - b[1];
+ out[2] = a[2] - b[2];
+ out[3] = a[3] - b[3];
+ return out;
+};
+
+/**
+ * Alias for {@link vec4.subtract}
+ * @function
+ */
+vec4.sub = vec4.subtract;
+
+/**
+ * Multiplies two vec4's
+ *
+ * @param {vec4} out the receiving vector
+ * @param {vec4} a the first operand
+ * @param {vec4} b the second operand
+ * @returns {vec4} out
+ */
+vec4.multiply = function(out, a, b) {
+ out[0] = a[0] * b[0];
+ out[1] = a[1] * b[1];
+ out[2] = a[2] * b[2];
+ out[3] = a[3] * b[3];
+ return out;
+};
+
+/**
+ * Alias for {@link vec4.multiply}
+ * @function
+ */
+vec4.mul = vec4.multiply;
+
+/**
+ * Divides two vec4's
+ *
+ * @param {vec4} out the receiving vector
+ * @param {vec4} a the first operand
+ * @param {vec4} b the second operand
+ * @returns {vec4} out
+ */
+vec4.divide = function(out, a, b) {
+ out[0] = a[0] / b[0];
+ out[1] = a[1] / b[1];
+ out[2] = a[2] / b[2];
+ out[3] = a[3] / b[3];
+ return out;
+};
+
+/**
+ * Alias for {@link vec4.divide}
+ * @function
+ */
+vec4.div = vec4.divide;
+
+/**
+ * Returns the minimum of two vec4's
+ *
+ * @param {vec4} out the receiving vector
+ * @param {vec4} a the first operand
+ * @param {vec4} b the second operand
+ * @returns {vec4} out
+ */
+vec4.min = function(out, a, b) {
+ out[0] = Math.min(a[0], b[0]);
+ out[1] = Math.min(a[1], b[1]);
+ out[2] = Math.min(a[2], b[2]);
+ out[3] = Math.min(a[3], b[3]);
+ return out;
+};
+
+/**
+ * Returns the maximum of two vec4's
+ *
+ * @param {vec4} out the receiving vector
+ * @param {vec4} a the first operand
+ * @param {vec4} b the second operand
+ * @returns {vec4} out
+ */
+vec4.max = function(out, a, b) {
+ out[0] = Math.max(a[0], b[0]);
+ out[1] = Math.max(a[1], b[1]);
+ out[2] = Math.max(a[2], b[2]);
+ out[3] = Math.max(a[3], b[3]);
+ return out;
+};
+
+/**
+ * Scales a vec4 by a scalar number
+ *
+ * @param {vec4} out the receiving vector
+ * @param {vec4} a the vector to scale
+ * @param {Number} b amount to scale the vector by
+ * @returns {vec4} out
+ */
+vec4.scale = function(out, a, b) {
+ out[0] = a[0] * b;
+ out[1] = a[1] * b;
+ out[2] = a[2] * b;
+ out[3] = a[3] * b;
+ return out;
+};
+
+/**
+ * Adds two vec4's after scaling the second operand by a scalar value
+ *
+ * @param {vec4} out the receiving vector
+ * @param {vec4} a the first operand
+ * @param {vec4} b the second operand
+ * @param {Number} scale the amount to scale b by before adding
+ * @returns {vec4} out
+ */
+vec4.scaleAndAdd = function(out, a, b, scale) {
+ out[0] = a[0] + (b[0] * scale);
+ out[1] = a[1] + (b[1] * scale);
+ out[2] = a[2] + (b[2] * scale);
+ out[3] = a[3] + (b[3] * scale);
+ return out;
+};
+
+/**
+ * Calculates the euclidian distance between two vec4's
+ *
+ * @param {vec4} a the first operand
+ * @param {vec4} b the second operand
+ * @returns {Number} distance between a and b
+ */
+vec4.distance = function(a, b) {
+ var x = b[0] - a[0],
+ y = b[1] - a[1],
+ z = b[2] - a[2],
+ w = b[3] - a[3];
+ return Math.sqrt(x*x + y*y + z*z + w*w);
+};
+
+/**
+ * Alias for {@link vec4.distance}
+ * @function
+ */
+vec4.dist = vec4.distance;
+
+/**
+ * Calculates the squared euclidian distance between two vec4's
+ *
+ * @param {vec4} a the first operand
+ * @param {vec4} b the second operand
+ * @returns {Number} squared distance between a and b
+ */
+vec4.squaredDistance = function(a, b) {
+ var x = b[0] - a[0],
+ y = b[1] - a[1],
+ z = b[2] - a[2],
+ w = b[3] - a[3];
+ return x*x + y*y + z*z + w*w;
+};
+
+/**
+ * Alias for {@link vec4.squaredDistance}
+ * @function
+ */
+vec4.sqrDist = vec4.squaredDistance;
+
+/**
+ * Calculates the length of a vec4
+ *
+ * @param {vec4} a vector to calculate length of
+ * @returns {Number} length of a
+ */
+vec4.length = function (a) {
+ var x = a[0],
+ y = a[1],
+ z = a[2],
+ w = a[3];
+ return Math.sqrt(x*x + y*y + z*z + w*w);
+};
+
+/**
+ * Alias for {@link vec4.length}
+ * @function
+ */
+vec4.len = vec4.length;
+
+/**
+ * Calculates the squared length of a vec4
+ *
+ * @param {vec4} a vector to calculate squared length of
+ * @returns {Number} squared length of a
+ */
+vec4.squaredLength = function (a) {
+ var x = a[0],
+ y = a[1],
+ z = a[2],
+ w = a[3];
+ return x*x + y*y + z*z + w*w;
+};
+
+/**
+ * Alias for {@link vec4.squaredLength}
+ * @function
+ */
+vec4.sqrLen = vec4.squaredLength;
+
+/**
+ * Negates the components of a vec4
+ *
+ * @param {vec4} out the receiving vector
+ * @param {vec4} a vector to negate
+ * @returns {vec4} out
+ */
+vec4.negate = function(out, a) {
+ out[0] = -a[0];
+ out[1] = -a[1];
+ out[2] = -a[2];
+ out[3] = -a[3];
+ return out;
+};
+
+/**
+ * Returns the inverse of the components of a vec4
+ *
+ * @param {vec4} out the receiving vector
+ * @param {vec4} a vector to invert
+ * @returns {vec4} out
+ */
+vec4.inverse = function(out, a) {
+ out[0] = 1.0 / a[0];
+ out[1] = 1.0 / a[1];
+ out[2] = 1.0 / a[2];
+ out[3] = 1.0 / a[3];
+ return out;
+};
+
+/**
+ * Normalize a vec4
+ *
+ * @param {vec4} out the receiving vector
+ * @param {vec4} a vector to normalize
+ * @returns {vec4} out
+ */
+vec4.normalize = function(out, a) {
+ var x = a[0],
+ y = a[1],
+ z = a[2],
+ w = a[3];
+ var len = x*x + y*y + z*z + w*w;
+ if (len > 0) {
+ len = 1 / Math.sqrt(len);
+ out[0] = a[0] * len;
+ out[1] = a[1] * len;
+ out[2] = a[2] * len;
+ out[3] = a[3] * len;
+ }
+ return out;
+};
+
+/**
+ * Calculates the dot product of two vec4's
+ *
+ * @param {vec4} a the first operand
+ * @param {vec4} b the second operand
+ * @returns {Number} dot product of a and b
+ */
+vec4.dot = function (a, b) {
+ return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];
+};
+
+/**
+ * Performs a linear interpolation between two vec4's
+ *
+ * @param {vec4} out the receiving vector
+ * @param {vec4} a the first operand
+ * @param {vec4} b the second operand
+ * @param {Number} t interpolation amount between the two inputs
+ * @returns {vec4} out
+ */
+vec4.lerp = function (out, a, b, t) {
+ var ax = a[0],
+ ay = a[1],
+ az = a[2],
+ aw = a[3];
+ out[0] = ax + t * (b[0] - ax);
+ out[1] = ay + t * (b[1] - ay);
+ out[2] = az + t * (b[2] - az);
+ out[3] = aw + t * (b[3] - aw);
+ return out;
+};
+
+/**
+ * Generates a random vector with the given scale
+ *
+ * @param {vec4} out the receiving vector
+ * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned
+ * @returns {vec4} out
+ */
+vec4.random = function (out, scale) {
+ scale = scale || 1.0;
+
+ //TODO: This is a pretty awful way of doing this. Find something better.
+ out[0] = GLMAT_RANDOM();
+ out[1] = GLMAT_RANDOM();
+ out[2] = GLMAT_RANDOM();
+ out[3] = GLMAT_RANDOM();
+ vec4.normalize(out, out);
+ vec4.scale(out, out, scale);
+ return out;
+};
+
+/**
+ * Transforms the vec4 with a mat4.
+ *
+ * @param {vec4} out the receiving vector
+ * @param {vec4} a the vector to transform
+ * @param {mat4} m matrix to transform with
+ * @returns {vec4} out
+ */
+vec4.transformMat4 = function(out, a, m) {
+ var x = a[0], y = a[1], z = a[2], w = a[3];
+ out[0] = m[0] * x + m[4] * y + m[8] * z + m[12] * w;
+ out[1] = m[1] * x + m[5] * y + m[9] * z + m[13] * w;
+ out[2] = m[2] * x + m[6] * y + m[10] * z + m[14] * w;
+ out[3] = m[3] * x + m[7] * y + m[11] * z + m[15] * w;
+ return out;
+};
+
+/**
+ * Transforms the vec4 with a quat
+ *
+ * @param {vec4} out the receiving vector
+ * @param {vec4} a the vector to transform
+ * @param {quat} q quaternion to transform with
+ * @returns {vec4} out
+ */
+vec4.transformQuat = function(out, a, q) {
+ var x = a[0], y = a[1], z = a[2],
+ qx = q[0], qy = q[1], qz = q[2], qw = q[3],
+
+ // calculate quat * vec
+ ix = qw * x + qy * z - qz * y,
+ iy = qw * y + qz * x - qx * z,
+ iz = qw * z + qx * y - qy * x,
+ iw = -qx * x - qy * y - qz * z;
+
+ // calculate result * inverse quat
+ out[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy;
+ out[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz;
+ out[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx;
+ return out;
+};
+
+/**
+ * Perform some operation over an array of vec4s.
+ *
+ * @param {Array} a the array of vectors to iterate over
+ * @param {Number} stride Number of elements between the start of each vec4. If 0 assumes tightly packed
+ * @param {Number} offset Number of elements to skip at the beginning of the array
+ * @param {Number} count Number of vec4s to iterate over. If 0 iterates over entire array
+ * @param {Function} fn Function to call for each vector in the array
+ * @param {Object} [arg] additional argument to pass to fn
+ * @returns {Array} a
+ * @function
+ */
+vec4.forEach = (function() {
+ var vec = vec4.create();
+
+ return function(a, stride, offset, count, fn, arg) {
+ var i, l;
+ if(!stride) {
+ stride = 4;
+ }
+
+ if(!offset) {
+ offset = 0;
+ }
+
+ if(count) {
+ l = Math.min((count * stride) + offset, a.length);
+ } else {
+ l = a.length;
+ }
+
+ for(i = offset; i < l; i += stride) {
+ vec[0] = a[i]; vec[1] = a[i+1]; vec[2] = a[i+2]; vec[3] = a[i+3];
+ fn(vec, vec, arg);
+ a[i] = vec[0]; a[i+1] = vec[1]; a[i+2] = vec[2]; a[i+3] = vec[3];
+ }
+
+ return a;
+ };
+})();
+
+/**
+ * Returns a string representation of a vector
+ *
+ * @param {vec4} vec vector to represent as a string
+ * @returns {String} string representation of the vector
+ */
+vec4.str = function (a) {
+ return 'vec4(' + a[0] + ', ' + a[1] + ', ' + a[2] + ', ' + a[3] + ')';
+};
+
+if(typeof(exports) !== 'undefined') {
+ exports.vec4 = vec4;
+}
+;
+/* Copyright (c) 2013, Brandon Jones, Colin MacKenzie IV. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/**
+ * @class 2x2 Matrix
+ * @name mat2
+ */
+
+var mat2 = {};
+
+/**
+ * Creates a new identity mat2
+ *
+ * @returns {mat2} a new 2x2 matrix
+ */
+mat2.create = function() {
+ var out = new GLMAT_ARRAY_TYPE(4);
+ out[0] = 1;
+ out[1] = 0;
+ out[2] = 0;
+ out[3] = 1;
+ return out;
+};
+
+/**
+ * Creates a new mat2 initialized with values from an existing matrix
+ *
+ * @param {mat2} a matrix to clone
+ * @returns {mat2} a new 2x2 matrix
+ */
+mat2.clone = function(a) {
+ var out = new GLMAT_ARRAY_TYPE(4);
+ out[0] = a[0];
+ out[1] = a[1];
+ out[2] = a[2];
+ out[3] = a[3];
+ return out;
+};
+
+/**
+ * Copy the values from one mat2 to another
+ *
+ * @param {mat2} out the receiving matrix
+ * @param {mat2} a the source matrix
+ * @returns {mat2} out
+ */
+mat2.copy = function(out, a) {
+ out[0] = a[0];
+ out[1] = a[1];
+ out[2] = a[2];
+ out[3] = a[3];
+ return out;
+};
+
+/**
+ * Set a mat2 to the identity matrix
+ *
+ * @param {mat2} out the receiving matrix
+ * @returns {mat2} out
+ */
+mat2.identity = function(out) {
+ out[0] = 1;
+ out[1] = 0;
+ out[2] = 0;
+ out[3] = 1;
+ return out;
+};
+
+/**
+ * Transpose the values of a mat2
+ *
+ * @param {mat2} out the receiving matrix
+ * @param {mat2} a the source matrix
+ * @returns {mat2} out
+ */
+mat2.transpose = function(out, a) {
+ // If we are transposing ourselves we can skip a few steps but have to cache some values
+ if (out === a) {
+ var a1 = a[1];
+ out[1] = a[2];
+ out[2] = a1;
+ } else {
+ out[0] = a[0];
+ out[1] = a[2];
+ out[2] = a[1];
+ out[3] = a[3];
+ }
+
+ return out;
+};
+
+/**
+ * Inverts a mat2
+ *
+ * @param {mat2} out the receiving matrix
+ * @param {mat2} a the source matrix
+ * @returns {mat2} out
+ */
+mat2.invert = function(out, a) {
+ var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3],
+
+ // Calculate the determinant
+ det = a0 * a3 - a2 * a1;
+
+ if (!det) {
+ return null;
+ }
+ det = 1.0 / det;
+
+ out[0] = a3 * det;
+ out[1] = -a1 * det;
+ out[2] = -a2 * det;
+ out[3] = a0 * det;
+
+ return out;
+};
+
+/**
+ * Calculates the adjugate of a mat2
+ *
+ * @param {mat2} out the receiving matrix
+ * @param {mat2} a the source matrix
+ * @returns {mat2} out
+ */
+mat2.adjoint = function(out, a) {
+ // Caching this value is nessecary if out == a
+ var a0 = a[0];
+ out[0] = a[3];
+ out[1] = -a[1];
+ out[2] = -a[2];
+ out[3] = a0;
+
+ return out;
+};
+
+/**
+ * Calculates the determinant of a mat2
+ *
+ * @param {mat2} a the source matrix
+ * @returns {Number} determinant of a
+ */
+mat2.determinant = function (a) {
+ return a[0] * a[3] - a[2] * a[1];
+};
+
+/**
+ * Multiplies two mat2's
+ *
+ * @param {mat2} out the receiving matrix
+ * @param {mat2} a the first operand
+ * @param {mat2} b the second operand
+ * @returns {mat2} out
+ */
+mat2.multiply = function (out, a, b) {
+ var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3];
+ var b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3];
+ out[0] = a0 * b0 + a2 * b1;
+ out[1] = a1 * b0 + a3 * b1;
+ out[2] = a0 * b2 + a2 * b3;
+ out[3] = a1 * b2 + a3 * b3;
+ return out;
+};
+
+/**
+ * Alias for {@link mat2.multiply}
+ * @function
+ */
+mat2.mul = mat2.multiply;
+
+/**
+ * Rotates a mat2 by the given angle
+ *
+ * @param {mat2} out the receiving matrix
+ * @param {mat2} a the matrix to rotate
+ * @param {Number} rad the angle to rotate the matrix by
+ * @returns {mat2} out
+ */
+mat2.rotate = function (out, a, rad) {
+ var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3],
+ s = Math.sin(rad),
+ c = Math.cos(rad);
+ out[0] = a0 * c + a2 * s;
+ out[1] = a1 * c + a3 * s;
+ out[2] = a0 * -s + a2 * c;
+ out[3] = a1 * -s + a3 * c;
+ return out;
+};
+
+/**
+ * Scales the mat2 by the dimensions in the given vec2
+ *
+ * @param {mat2} out the receiving matrix
+ * @param {mat2} a the matrix to rotate
+ * @param {vec2} v the vec2 to scale the matrix by
+ * @returns {mat2} out
+ **/
+mat2.scale = function(out, a, v) {
+ var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3],
+ v0 = v[0], v1 = v[1];
+ out[0] = a0 * v0;
+ out[1] = a1 * v0;
+ out[2] = a2 * v1;
+ out[3] = a3 * v1;
+ return out;
+};
+
+/**
+ * Returns a string representation of a mat2
+ *
+ * @param {mat2} mat matrix to represent as a string
+ * @returns {String} string representation of the matrix
+ */
+mat2.str = function (a) {
+ return 'mat2(' + a[0] + ', ' + a[1] + ', ' + a[2] + ', ' + a[3] + ')';
+};
+
+/**
+ * Returns Frobenius norm of a mat2
+ *
+ * @param {mat2} a the matrix to calculate Frobenius norm of
+ * @returns {Number} Frobenius norm
+ */
+mat2.frob = function (a) {
+ return(Math.sqrt(Math.pow(a[0], 2) + Math.pow(a[1], 2) + Math.pow(a[2], 2) + Math.pow(a[3], 2)))
+};
+
+/**
+ * Returns L, D and U matrices (Lower triangular, Diagonal and Upper triangular) by factorizing the input matrix
+ * @param {mat2} L the lower triangular matrix
+ * @param {mat2} D the diagonal matrix
+ * @param {mat2} U the upper triangular matrix
+ * @param {mat2} a the input matrix to factorize
+ */
+
+mat2.LDU = function (L, D, U, a) {
+ L[2] = a[2]/a[0];
+ U[0] = a[0];
+ U[1] = a[1];
+ U[3] = a[3] - L[2] * U[1];
+ return [L, D, U];
+};
+
+if(typeof(exports) !== 'undefined') {
+ exports.mat2 = mat2;
+}
+;
+/* Copyright (c) 2013, Brandon Jones, Colin MacKenzie IV. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/**
+ * @class 2x3 Matrix
+ * @name mat2d
+ *
+ * @description
+ * A mat2d contains six elements defined as:
+ *
+ * [a, c, tx,
+ * b, d, ty]
+ *
+ * This is a short form for the 3x3 matrix:
+ *
+ * [a, c, tx,
+ * b, d, ty,
+ * 0, 0, 1]
+ *
+ * The last row is ignored so the array is shorter and operations are faster.
+ */
+
+var mat2d = {};
+
+/**
+ * Creates a new identity mat2d
+ *
+ * @returns {mat2d} a new 2x3 matrix
+ */
+mat2d.create = function() {
+ var out = new GLMAT_ARRAY_TYPE(6);
+ out[0] = 1;
+ out[1] = 0;
+ out[2] = 0;
+ out[3] = 1;
+ out[4] = 0;
+ out[5] = 0;
+ return out;
+};
+
+/**
+ * Creates a new mat2d initialized with values from an existing matrix
+ *
+ * @param {mat2d} a matrix to clone
+ * @returns {mat2d} a new 2x3 matrix
+ */
+mat2d.clone = function(a) {
+ var out = new GLMAT_ARRAY_TYPE(6);
+ out[0] = a[0];
+ out[1] = a[1];
+ out[2] = a[2];
+ out[3] = a[3];
+ out[4] = a[4];
+ out[5] = a[5];
+ return out;
+};
+
+/**
+ * Copy the values from one mat2d to another
+ *
+ * @param {mat2d} out the receiving matrix
+ * @param {mat2d} a the source matrix
+ * @returns {mat2d} out
+ */
+mat2d.copy = function(out, a) {
+ out[0] = a[0];
+ out[1] = a[1];
+ out[2] = a[2];
+ out[3] = a[3];
+ out[4] = a[4];
+ out[5] = a[5];
+ return out;
+};
+
+/**
+ * Set a mat2d to the identity matrix
+ *
+ * @param {mat2d} out the receiving matrix
+ * @returns {mat2d} out
+ */
+mat2d.identity = function(out) {
+ out[0] = 1;
+ out[1] = 0;
+ out[2] = 0;
+ out[3] = 1;
+ out[4] = 0;
+ out[5] = 0;
+ return out;
+};
+
+/**
+ * Inverts a mat2d
+ *
+ * @param {mat2d} out the receiving matrix
+ * @param {mat2d} a the source matrix
+ * @returns {mat2d} out
+ */
+mat2d.invert = function(out, a) {
+ var aa = a[0], ab = a[1], ac = a[2], ad = a[3],
+ atx = a[4], aty = a[5];
+
+ var det = aa * ad - ab * ac;
+ if(!det){
+ return null;
+ }
+ det = 1.0 / det;
+
+ out[0] = ad * det;
+ out[1] = -ab * det;
+ out[2] = -ac * det;
+ out[3] = aa * det;
+ out[4] = (ac * aty - ad * atx) * det;
+ out[5] = (ab * atx - aa * aty) * det;
+ return out;
+};
+
+/**
+ * Calculates the determinant of a mat2d
+ *
+ * @param {mat2d} a the source matrix
+ * @returns {Number} determinant of a
+ */
+mat2d.determinant = function (a) {
+ return a[0] * a[3] - a[1] * a[2];
+};
+
+/**
+ * Multiplies two mat2d's
+ *
+ * @param {mat2d} out the receiving matrix
+ * @param {mat2d} a the first operand
+ * @param {mat2d} b the second operand
+ * @returns {mat2d} out
+ */
+mat2d.multiply = function (out, a, b) {
+ var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3], a4 = a[4], a5 = a[5],
+ b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3], b4 = b[4], b5 = b[5];
+ out[0] = a0 * b0 + a2 * b1;
+ out[1] = a1 * b0 + a3 * b1;
+ out[2] = a0 * b2 + a2 * b3;
+ out[3] = a1 * b2 + a3 * b3;
+ out[4] = a0 * b4 + a2 * b5 + a4;
+ out[5] = a1 * b4 + a3 * b5 + a5;
+ return out;
+};
+
+/**
+ * Alias for {@link mat2d.multiply}
+ * @function
+ */
+mat2d.mul = mat2d.multiply;
+
+
+/**
+ * Rotates a mat2d by the given angle
+ *
+ * @param {mat2d} out the receiving matrix
+ * @param {mat2d} a the matrix to rotate
+ * @param {Number} rad the angle to rotate the matrix by
+ * @returns {mat2d} out
+ */
+mat2d.rotate = function (out, a, rad) {
+ var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3], a4 = a[4], a5 = a[5],
+ s = Math.sin(rad),
+ c = Math.cos(rad);
+ out[0] = a0 * c + a2 * s;
+ out[1] = a1 * c + a3 * s;
+ out[2] = a0 * -s + a2 * c;
+ out[3] = a1 * -s + a3 * c;
+ out[4] = a4;
+ out[5] = a5;
+ return out;
+};
+
+/**
+ * Scales the mat2d by the dimensions in the given vec2
+ *
+ * @param {mat2d} out the receiving matrix
+ * @param {mat2d} a the matrix to translate
+ * @param {vec2} v the vec2 to scale the matrix by
+ * @returns {mat2d} out
+ **/
+mat2d.scale = function(out, a, v) {
+ var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3], a4 = a[4], a5 = a[5],
+ v0 = v[0], v1 = v[1];
+ out[0] = a0 * v0;
+ out[1] = a1 * v0;
+ out[2] = a2 * v1;
+ out[3] = a3 * v1;
+ out[4] = a4;
+ out[5] = a5;
+ return out;
+};
+
+/**
+ * Translates the mat2d by the dimensions in the given vec2
+ *
+ * @param {mat2d} out the receiving matrix
+ * @param {mat2d} a the matrix to translate
+ * @param {vec2} v the vec2 to translate the matrix by
+ * @returns {mat2d} out
+ **/
+mat2d.translate = function(out, a, v) {
+ var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3], a4 = a[4], a5 = a[5],
+ v0 = v[0], v1 = v[1];
+ out[0] = a0;
+ out[1] = a1;
+ out[2] = a2;
+ out[3] = a3;
+ out[4] = a0 * v0 + a2 * v1 + a4;
+ out[5] = a1 * v0 + a3 * v1 + a5;
+ return out;
+};
+
+/**
+ * Returns a string representation of a mat2d
+ *
+ * @param {mat2d} a matrix to represent as a string
+ * @returns {String} string representation of the matrix
+ */
+mat2d.str = function (a) {
+ return 'mat2d(' + a[0] + ', ' + a[1] + ', ' + a[2] + ', ' +
+ a[3] + ', ' + a[4] + ', ' + a[5] + ')';
+};
+
+/**
+ * Returns Frobenius norm of a mat2d
+ *
+ * @param {mat2d} a the matrix to calculate Frobenius norm of
+ * @returns {Number} Frobenius norm
+ */
+mat2d.frob = function (a) {
+ return(Math.sqrt(Math.pow(a[0], 2) + Math.pow(a[1], 2) + Math.pow(a[2], 2) + Math.pow(a[3], 2) + Math.pow(a[4], 2) + Math.pow(a[5], 2) + 1))
+};
+
+if(typeof(exports) !== 'undefined') {
+ exports.mat2d = mat2d;
+}
+;
+/* Copyright (c) 2013, Brandon Jones, Colin MacKenzie IV. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/**
+ * @class 3x3 Matrix
+ * @name mat3
+ */
+
+var mat3 = {};
+
+/**
+ * Creates a new identity mat3
+ *
+ * @returns {mat3} a new 3x3 matrix
+ */
+mat3.create = function() {
+ var out = new GLMAT_ARRAY_TYPE(9);
+ out[0] = 1;
+ out[1] = 0;
+ out[2] = 0;
+ out[3] = 0;
+ out[4] = 1;
+ out[5] = 0;
+ out[6] = 0;
+ out[7] = 0;
+ out[8] = 1;
+ return out;
+};
+
+/**
+ * Copies the upper-left 3x3 values into the given mat3.
+ *
+ * @param {mat3} out the receiving 3x3 matrix
+ * @param {mat4} a the source 4x4 matrix
+ * @returns {mat3} out
+ */
+mat3.fromMat4 = function(out, a) {
+ out[0] = a[0];
+ out[1] = a[1];
+ out[2] = a[2];
+ out[3] = a[4];
+ out[4] = a[5];
+ out[5] = a[6];
+ out[6] = a[8];
+ out[7] = a[9];
+ out[8] = a[10];
+ return out;
+};
+
+/**
+ * Creates a new mat3 initialized with values from an existing matrix
+ *
+ * @param {mat3} a matrix to clone
+ * @returns {mat3} a new 3x3 matrix
+ */
+mat3.clone = function(a) {
+ var out = new GLMAT_ARRAY_TYPE(9);
+ out[0] = a[0];
+ out[1] = a[1];
+ out[2] = a[2];
+ out[3] = a[3];
+ out[4] = a[4];
+ out[5] = a[5];
+ out[6] = a[6];
+ out[7] = a[7];
+ out[8] = a[8];
+ return out;
+};
+
+/**
+ * Copy the values from one mat3 to another
+ *
+ * @param {mat3} out the receiving matrix
+ * @param {mat3} a the source matrix
+ * @returns {mat3} out
+ */
+mat3.copy = function(out, a) {
+ out[0] = a[0];
+ out[1] = a[1];
+ out[2] = a[2];
+ out[3] = a[3];
+ out[4] = a[4];
+ out[5] = a[5];
+ out[6] = a[6];
+ out[7] = a[7];
+ out[8] = a[8];
+ return out;
+};
+
+/**
+ * Set a mat3 to the identity matrix
+ *
+ * @param {mat3} out the receiving matrix
+ * @returns {mat3} out
+ */
+mat3.identity = function(out) {
+ out[0] = 1;
+ out[1] = 0;
+ out[2] = 0;
+ out[3] = 0;
+ out[4] = 1;
+ out[5] = 0;
+ out[6] = 0;
+ out[7] = 0;
+ out[8] = 1;
+ return out;
+};
+
+/**
+ * Transpose the values of a mat3
+ *
+ * @param {mat3} out the receiving matrix
+ * @param {mat3} a the source matrix
+ * @returns {mat3} out
+ */
+mat3.transpose = function(out, a) {
+ // If we are transposing ourselves we can skip a few steps but have to cache some values
+ if (out === a) {
+ var a01 = a[1], a02 = a[2], a12 = a[5];
+ out[1] = a[3];
+ out[2] = a[6];
+ out[3] = a01;
+ out[5] = a[7];
+ out[6] = a02;
+ out[7] = a12;
+ } else {
+ out[0] = a[0];
+ out[1] = a[3];
+ out[2] = a[6];
+ out[3] = a[1];
+ out[4] = a[4];
+ out[5] = a[7];
+ out[6] = a[2];
+ out[7] = a[5];
+ out[8] = a[8];
+ }
+
+ return out;
+};
+
+/**
+ * Inverts a mat3
+ *
+ * @param {mat3} out the receiving matrix
+ * @param {mat3} a the source matrix
+ * @returns {mat3} out
+ */
+mat3.invert = function(out, a) {
+ var a00 = a[0], a01 = a[1], a02 = a[2],
+ a10 = a[3], a11 = a[4], a12 = a[5],
+ a20 = a[6], a21 = a[7], a22 = a[8],
+
+ b01 = a22 * a11 - a12 * a21,
+ b11 = -a22 * a10 + a12 * a20,
+ b21 = a21 * a10 - a11 * a20,
+
+ // Calculate the determinant
+ det = a00 * b01 + a01 * b11 + a02 * b21;
+
+ if (!det) {
+ return null;
+ }
+ det = 1.0 / det;
+
+ out[0] = b01 * det;
+ out[1] = (-a22 * a01 + a02 * a21) * det;
+ out[2] = (a12 * a01 - a02 * a11) * det;
+ out[3] = b11 * det;
+ out[4] = (a22 * a00 - a02 * a20) * det;
+ out[5] = (-a12 * a00 + a02 * a10) * det;
+ out[6] = b21 * det;
+ out[7] = (-a21 * a00 + a01 * a20) * det;
+ out[8] = (a11 * a00 - a01 * a10) * det;
+ return out;
+};
+
+/**
+ * Calculates the adjugate of a mat3
+ *
+ * @param {mat3} out the receiving matrix
+ * @param {mat3} a the source matrix
+ * @returns {mat3} out
+ */
+mat3.adjoint = function(out, a) {
+ var a00 = a[0], a01 = a[1], a02 = a[2],
+ a10 = a[3], a11 = a[4], a12 = a[5],
+ a20 = a[6], a21 = a[7], a22 = a[8];
+
+ out[0] = (a11 * a22 - a12 * a21);
+ out[1] = (a02 * a21 - a01 * a22);
+ out[2] = (a01 * a12 - a02 * a11);
+ out[3] = (a12 * a20 - a10 * a22);
+ out[4] = (a00 * a22 - a02 * a20);
+ out[5] = (a02 * a10 - a00 * a12);
+ out[6] = (a10 * a21 - a11 * a20);
+ out[7] = (a01 * a20 - a00 * a21);
+ out[8] = (a00 * a11 - a01 * a10);
+ return out;
+};
+
+/**
+ * Calculates the determinant of a mat3
+ *
+ * @param {mat3} a the source matrix
+ * @returns {Number} determinant of a
+ */
+mat3.determinant = function (a) {
+ var a00 = a[0], a01 = a[1], a02 = a[2],
+ a10 = a[3], a11 = a[4], a12 = a[5],
+ a20 = a[6], a21 = a[7], a22 = a[8];
+
+ return a00 * (a22 * a11 - a12 * a21) + a01 * (-a22 * a10 + a12 * a20) + a02 * (a21 * a10 - a11 * a20);
+};
+
+/**
+ * Multiplies two mat3's
+ *
+ * @param {mat3} out the receiving matrix
+ * @param {mat3} a the first operand
+ * @param {mat3} b the second operand
+ * @returns {mat3} out
+ */
+mat3.multiply = function (out, a, b) {
+ var a00 = a[0], a01 = a[1], a02 = a[2],
+ a10 = a[3], a11 = a[4], a12 = a[5],
+ a20 = a[6], a21 = a[7], a22 = a[8],
+
+ b00 = b[0], b01 = b[1], b02 = b[2],
+ b10 = b[3], b11 = b[4], b12 = b[5],
+ b20 = b[6], b21 = b[7], b22 = b[8];
+
+ out[0] = b00 * a00 + b01 * a10 + b02 * a20;
+ out[1] = b00 * a01 + b01 * a11 + b02 * a21;
+ out[2] = b00 * a02 + b01 * a12 + b02 * a22;
+
+ out[3] = b10 * a00 + b11 * a10 + b12 * a20;
+ out[4] = b10 * a01 + b11 * a11 + b12 * a21;
+ out[5] = b10 * a02 + b11 * a12 + b12 * a22;
+
+ out[6] = b20 * a00 + b21 * a10 + b22 * a20;
+ out[7] = b20 * a01 + b21 * a11 + b22 * a21;
+ out[8] = b20 * a02 + b21 * a12 + b22 * a22;
+ return out;
+};
+
+/**
+ * Alias for {@link mat3.multiply}
+ * @function
+ */
+mat3.mul = mat3.multiply;
+
+/**
+ * Translate a mat3 by the given vector
+ *
+ * @param {mat3} out the receiving matrix
+ * @param {mat3} a the matrix to translate
+ * @param {vec2} v vector to translate by
+ * @returns {mat3} out
+ */
+mat3.translate = function(out, a, v) {
+ var a00 = a[0], a01 = a[1], a02 = a[2],
+ a10 = a[3], a11 = a[4], a12 = a[5],
+ a20 = a[6], a21 = a[7], a22 = a[8],
+ x = v[0], y = v[1];
+
+ out[0] = a00;
+ out[1] = a01;
+ out[2] = a02;
+
+ out[3] = a10;
+ out[4] = a11;
+ out[5] = a12;
+
+ out[6] = x * a00 + y * a10 + a20;
+ out[7] = x * a01 + y * a11 + a21;
+ out[8] = x * a02 + y * a12 + a22;
+ return out;
+};
+
+/**
+ * Rotates a mat3 by the given angle
+ *
+ * @param {mat3} out the receiving matrix
+ * @param {mat3} a the matrix to rotate
+ * @param {Number} rad the angle to rotate the matrix by
+ * @returns {mat3} out
+ */
+mat3.rotate = function (out, a, rad) {
+ var a00 = a[0], a01 = a[1], a02 = a[2],
+ a10 = a[3], a11 = a[4], a12 = a[5],
+ a20 = a[6], a21 = a[7], a22 = a[8],
+
+ s = Math.sin(rad),
+ c = Math.cos(rad);
+
+ out[0] = c * a00 + s * a10;
+ out[1] = c * a01 + s * a11;
+ out[2] = c * a02 + s * a12;
+
+ out[3] = c * a10 - s * a00;
+ out[4] = c * a11 - s * a01;
+ out[5] = c * a12 - s * a02;
+
+ out[6] = a20;
+ out[7] = a21;
+ out[8] = a22;
+ return out;
+};
+
+/**
+ * Scales the mat3 by the dimensions in the given vec2
+ *
+ * @param {mat3} out the receiving matrix
+ * @param {mat3} a the matrix to rotate
+ * @param {vec2} v the vec2 to scale the matrix by
+ * @returns {mat3} out
+ **/
+mat3.scale = function(out, a, v) {
+ var x = v[0], y = v[1];
+
+ out[0] = x * a[0];
+ out[1] = x * a[1];
+ out[2] = x * a[2];
+
+ out[3] = y * a[3];
+ out[4] = y * a[4];
+ out[5] = y * a[5];
+
+ out[6] = a[6];
+ out[7] = a[7];
+ out[8] = a[8];
+ return out;
+};
+
+/**
+ * Copies the values from a mat2d into a mat3
+ *
+ * @param {mat3} out the receiving matrix
+ * @param {mat2d} a the matrix to copy
+ * @returns {mat3} out
+ **/
+mat3.fromMat2d = function(out, a) {
+ out[0] = a[0];
+ out[1] = a[1];
+ out[2] = 0;
+
+ out[3] = a[2];
+ out[4] = a[3];
+ out[5] = 0;
+
+ out[6] = a[4];
+ out[7] = a[5];
+ out[8] = 1;
+ return out;
+};
+
+/**
+* Calculates a 3x3 matrix from the given quaternion
+*
+* @param {mat3} out mat3 receiving operation result
+* @param {quat} q Quaternion to create matrix from
+*
+* @returns {mat3} out
+*/
+mat3.fromQuat = function (out, q) {
+ var x = q[0], y = q[1], z = q[2], w = q[3],
+ x2 = x + x,
+ y2 = y + y,
+ z2 = z + z,
+
+ xx = x * x2,
+ yx = y * x2,
+ yy = y * y2,
+ zx = z * x2,
+ zy = z * y2,
+ zz = z * z2,
+ wx = w * x2,
+ wy = w * y2,
+ wz = w * z2;
+
+ out[0] = 1 - yy - zz;
+ out[3] = yx - wz;
+ out[6] = zx + wy;
+
+ out[1] = yx + wz;
+ out[4] = 1 - xx - zz;
+ out[7] = zy - wx;
+
+ out[2] = zx - wy;
+ out[5] = zy + wx;
+ out[8] = 1 - xx - yy;
+
+ return out;
+};
+
+/**
+* Calculates a 3x3 normal matrix (transpose inverse) from the 4x4 matrix
+*
+* @param {mat3} out mat3 receiving operation result
+* @param {mat4} a Mat4 to derive the normal matrix from
+*
+* @returns {mat3} out
+*/
+mat3.normalFromMat4 = function (out, a) {
+ var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3],
+ a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7],
+ a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11],
+ a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15],
+
+ b00 = a00 * a11 - a01 * a10,
+ b01 = a00 * a12 - a02 * a10,
+ b02 = a00 * a13 - a03 * a10,
+ b03 = a01 * a12 - a02 * a11,
+ b04 = a01 * a13 - a03 * a11,
+ b05 = a02 * a13 - a03 * a12,
+ b06 = a20 * a31 - a21 * a30,
+ b07 = a20 * a32 - a22 * a30,
+ b08 = a20 * a33 - a23 * a30,
+ b09 = a21 * a32 - a22 * a31,
+ b10 = a21 * a33 - a23 * a31,
+ b11 = a22 * a33 - a23 * a32,
+
+ // Calculate the determinant
+ det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;
+
+ if (!det) {
+ return null;
+ }
+ det = 1.0 / det;
+
+ out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;
+ out[1] = (a12 * b08 - a10 * b11 - a13 * b07) * det;
+ out[2] = (a10 * b10 - a11 * b08 + a13 * b06) * det;
+
+ out[3] = (a02 * b10 - a01 * b11 - a03 * b09) * det;
+ out[4] = (a00 * b11 - a02 * b08 + a03 * b07) * det;
+ out[5] = (a01 * b08 - a00 * b10 - a03 * b06) * det;
+
+ out[6] = (a31 * b05 - a32 * b04 + a33 * b03) * det;
+ out[7] = (a32 * b02 - a30 * b05 - a33 * b01) * det;
+ out[8] = (a30 * b04 - a31 * b02 + a33 * b00) * det;
+
+ return out;
+};
+
+/**
+ * Returns a string representation of a mat3
+ *
+ * @param {mat3} mat matrix to represent as a string
+ * @returns {String} string representation of the matrix
+ */
+mat3.str = function (a) {
+ return 'mat3(' + a[0] + ', ' + a[1] + ', ' + a[2] + ', ' +
+ a[3] + ', ' + a[4] + ', ' + a[5] + ', ' +
+ a[6] + ', ' + a[7] + ', ' + a[8] + ')';
+};
+
+/**
+ * Returns Frobenius norm of a mat3
+ *
+ * @param {mat3} a the matrix to calculate Frobenius norm of
+ * @returns {Number} Frobenius norm
+ */
+mat3.frob = function (a) {
+ return(Math.sqrt(Math.pow(a[0], 2) + Math.pow(a[1], 2) + Math.pow(a[2], 2) + Math.pow(a[3], 2) + Math.pow(a[4], 2) + Math.pow(a[5], 2) + Math.pow(a[6], 2) + Math.pow(a[7], 2) + Math.pow(a[8], 2)))
+};
+
+
+if(typeof(exports) !== 'undefined') {
+ exports.mat3 = mat3;
+}
+;
+/* Copyright (c) 2013, Brandon Jones, Colin MacKenzie IV. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/**
+ * @class 4x4 Matrix
+ * @name mat4
+ */
+
+var mat4 = {};
+
+/**
+ * Creates a new identity mat4
+ *
+ * @returns {mat4} a new 4x4 matrix
+ */
+mat4.create = function() {
+ var out = new GLMAT_ARRAY_TYPE(16);
+ out[0] = 1;
+ out[1] = 0;
+ out[2] = 0;
+ out[3] = 0;
+ out[4] = 0;
+ out[5] = 1;
+ out[6] = 0;
+ out[7] = 0;
+ out[8] = 0;
+ out[9] = 0;
+ out[10] = 1;
+ out[11] = 0;
+ out[12] = 0;
+ out[13] = 0;
+ out[14] = 0;
+ out[15] = 1;
+ return out;
+};
+
+/**
+ * Creates a new mat4 initialized with values from an existing matrix
+ *
+ * @param {mat4} a matrix to clone
+ * @returns {mat4} a new 4x4 matrix
+ */
+mat4.clone = function(a) {
+ var out = new GLMAT_ARRAY_TYPE(16);
+ out[0] = a[0];
+ out[1] = a[1];
+ out[2] = a[2];
+ out[3] = a[3];
+ out[4] = a[4];
+ out[5] = a[5];
+ out[6] = a[6];
+ out[7] = a[7];
+ out[8] = a[8];
+ out[9] = a[9];
+ out[10] = a[10];
+ out[11] = a[11];
+ out[12] = a[12];
+ out[13] = a[13];
+ out[14] = a[14];
+ out[15] = a[15];
+ return out;
+};
+
+/**
+ * Copy the values from one mat4 to another
+ *
+ * @param {mat4} out the receiving matrix
+ * @param {mat4} a the source matrix
+ * @returns {mat4} out
+ */
+mat4.copy = function(out, a) {
+ out[0] = a[0];
+ out[1] = a[1];
+ out[2] = a[2];
+ out[3] = a[3];
+ out[4] = a[4];
+ out[5] = a[5];
+ out[6] = a[6];
+ out[7] = a[7];
+ out[8] = a[8];
+ out[9] = a[9];
+ out[10] = a[10];
+ out[11] = a[11];
+ out[12] = a[12];
+ out[13] = a[13];
+ out[14] = a[14];
+ out[15] = a[15];
+ return out;
+};
+
+/**
+ * Set a mat4 to the identity matrix
+ *
+ * @param {mat4} out the receiving matrix
+ * @returns {mat4} out
+ */
+mat4.identity = function(out) {
+ out[0] = 1;
+ out[1] = 0;
+ out[2] = 0;
+ out[3] = 0;
+ out[4] = 0;
+ out[5] = 1;
+ out[6] = 0;
+ out[7] = 0;
+ out[8] = 0;
+ out[9] = 0;
+ out[10] = 1;
+ out[11] = 0;
+ out[12] = 0;
+ out[13] = 0;
+ out[14] = 0;
+ out[15] = 1;
+ return out;
+};
+
+/**
+ * Transpose the values of a mat4
+ *
+ * @param {mat4} out the receiving matrix
+ * @param {mat4} a the source matrix
+ * @returns {mat4} out
+ */
+mat4.transpose = function(out, a) {
+ // If we are transposing ourselves we can skip a few steps but have to cache some values
+ if (out === a) {
+ var a01 = a[1], a02 = a[2], a03 = a[3],
+ a12 = a[6], a13 = a[7],
+ a23 = a[11];
+
+ out[1] = a[4];
+ out[2] = a[8];
+ out[3] = a[12];
+ out[4] = a01;
+ out[6] = a[9];
+ out[7] = a[13];
+ out[8] = a02;
+ out[9] = a12;
+ out[11] = a[14];
+ out[12] = a03;
+ out[13] = a13;
+ out[14] = a23;
+ } else {
+ out[0] = a[0];
+ out[1] = a[4];
+ out[2] = a[8];
+ out[3] = a[12];
+ out[4] = a[1];
+ out[5] = a[5];
+ out[6] = a[9];
+ out[7] = a[13];
+ out[8] = a[2];
+ out[9] = a[6];
+ out[10] = a[10];
+ out[11] = a[14];
+ out[12] = a[3];
+ out[13] = a[7];
+ out[14] = a[11];
+ out[15] = a[15];
+ }
+
+ return out;
+};
+
+/**
+ * Inverts a mat4
+ *
+ * @param {mat4} out the receiving matrix
+ * @param {mat4} a the source matrix
+ * @returns {mat4} out
+ */
+mat4.invert = function(out, a) {
+ var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3],
+ a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7],
+ a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11],
+ a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15],
+
+ b00 = a00 * a11 - a01 * a10,
+ b01 = a00 * a12 - a02 * a10,
+ b02 = a00 * a13 - a03 * a10,
+ b03 = a01 * a12 - a02 * a11,
+ b04 = a01 * a13 - a03 * a11,
+ b05 = a02 * a13 - a03 * a12,
+ b06 = a20 * a31 - a21 * a30,
+ b07 = a20 * a32 - a22 * a30,
+ b08 = a20 * a33 - a23 * a30,
+ b09 = a21 * a32 - a22 * a31,
+ b10 = a21 * a33 - a23 * a31,
+ b11 = a22 * a33 - a23 * a32,
+
+ // Calculate the determinant
+ det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;
+
+ if (!det) {
+ return null;
+ }
+ det = 1.0 / det;
+
+ out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;
+ out[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det;
+ out[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det;
+ out[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det;
+ out[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det;
+ out[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det;
+ out[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det;
+ out[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det;
+ out[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det;
+ out[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det;
+ out[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det;
+ out[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det;
+ out[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det;
+ out[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det;
+ out[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det;
+ out[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det;
+
+ return out;
+};
+
+/**
+ * Calculates the adjugate of a mat4
+ *
+ * @param {mat4} out the receiving matrix
+ * @param {mat4} a the source matrix
+ * @returns {mat4} out
+ */
+mat4.adjoint = function(out, a) {
+ var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3],
+ a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7],
+ a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11],
+ a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15];
+
+ out[0] = (a11 * (a22 * a33 - a23 * a32) - a21 * (a12 * a33 - a13 * a32) + a31 * (a12 * a23 - a13 * a22));
+ out[1] = -(a01 * (a22 * a33 - a23 * a32) - a21 * (a02 * a33 - a03 * a32) + a31 * (a02 * a23 - a03 * a22));
+ out[2] = (a01 * (a12 * a33 - a13 * a32) - a11 * (a02 * a33 - a03 * a32) + a31 * (a02 * a13 - a03 * a12));
+ out[3] = -(a01 * (a12 * a23 - a13 * a22) - a11 * (a02 * a23 - a03 * a22) + a21 * (a02 * a13 - a03 * a12));
+ out[4] = -(a10 * (a22 * a33 - a23 * a32) - a20 * (a12 * a33 - a13 * a32) + a30 * (a12 * a23 - a13 * a22));
+ out[5] = (a00 * (a22 * a33 - a23 * a32) - a20 * (a02 * a33 - a03 * a32) + a30 * (a02 * a23 - a03 * a22));
+ out[6] = -(a00 * (a12 * a33 - a13 * a32) - a10 * (a02 * a33 - a03 * a32) + a30 * (a02 * a13 - a03 * a12));
+ out[7] = (a00 * (a12 * a23 - a13 * a22) - a10 * (a02 * a23 - a03 * a22) + a20 * (a02 * a13 - a03 * a12));
+ out[8] = (a10 * (a21 * a33 - a23 * a31) - a20 * (a11 * a33 - a13 * a31) + a30 * (a11 * a23 - a13 * a21));
+ out[9] = -(a00 * (a21 * a33 - a23 * a31) - a20 * (a01 * a33 - a03 * a31) + a30 * (a01 * a23 - a03 * a21));
+ out[10] = (a00 * (a11 * a33 - a13 * a31) - a10 * (a01 * a33 - a03 * a31) + a30 * (a01 * a13 - a03 * a11));
+ out[11] = -(a00 * (a11 * a23 - a13 * a21) - a10 * (a01 * a23 - a03 * a21) + a20 * (a01 * a13 - a03 * a11));
+ out[12] = -(a10 * (a21 * a32 - a22 * a31) - a20 * (a11 * a32 - a12 * a31) + a30 * (a11 * a22 - a12 * a21));
+ out[13] = (a00 * (a21 * a32 - a22 * a31) - a20 * (a01 * a32 - a02 * a31) + a30 * (a01 * a22 - a02 * a21));
+ out[14] = -(a00 * (a11 * a32 - a12 * a31) - a10 * (a01 * a32 - a02 * a31) + a30 * (a01 * a12 - a02 * a11));
+ out[15] = (a00 * (a11 * a22 - a12 * a21) - a10 * (a01 * a22 - a02 * a21) + a20 * (a01 * a12 - a02 * a11));
+ return out;
+};
+
+/**
+ * Calculates the determinant of a mat4
+ *
+ * @param {mat4} a the source matrix
+ * @returns {Number} determinant of a
+ */
+mat4.determinant = function (a) {
+ var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3],
+ a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7],
+ a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11],
+ a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15],
+
+ b00 = a00 * a11 - a01 * a10,
+ b01 = a00 * a12 - a02 * a10,
+ b02 = a00 * a13 - a03 * a10,
+ b03 = a01 * a12 - a02 * a11,
+ b04 = a01 * a13 - a03 * a11,
+ b05 = a02 * a13 - a03 * a12,
+ b06 = a20 * a31 - a21 * a30,
+ b07 = a20 * a32 - a22 * a30,
+ b08 = a20 * a33 - a23 * a30,
+ b09 = a21 * a32 - a22 * a31,
+ b10 = a21 * a33 - a23 * a31,
+ b11 = a22 * a33 - a23 * a32;
+
+ // Calculate the determinant
+ return b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;
+};
+
+/**
+ * Multiplies two mat4's
+ *
+ * @param {mat4} out the receiving matrix
+ * @param {mat4} a the first operand
+ * @param {mat4} b the second operand
+ * @returns {mat4} out
+ */
+mat4.multiply = function (out, a, b) {
+ var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3],
+ a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7],
+ a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11],
+ a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15];
+
+ // Cache only the current line of the second matrix
+ var b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3];
+ out[0] = b0*a00 + b1*a10 + b2*a20 + b3*a30;
+ out[1] = b0*a01 + b1*a11 + b2*a21 + b3*a31;
+ out[2] = b0*a02 + b1*a12 + b2*a22 + b3*a32;
+ out[3] = b0*a03 + b1*a13 + b2*a23 + b3*a33;
+
+ b0 = b[4]; b1 = b[5]; b2 = b[6]; b3 = b[7];
+ out[4] = b0*a00 + b1*a10 + b2*a20 + b3*a30;
+ out[5] = b0*a01 + b1*a11 + b2*a21 + b3*a31;
+ out[6] = b0*a02 + b1*a12 + b2*a22 + b3*a32;
+ out[7] = b0*a03 + b1*a13 + b2*a23 + b3*a33;
+
+ b0 = b[8]; b1 = b[9]; b2 = b[10]; b3 = b[11];
+ out[8] = b0*a00 + b1*a10 + b2*a20 + b3*a30;
+ out[9] = b0*a01 + b1*a11 + b2*a21 + b3*a31;
+ out[10] = b0*a02 + b1*a12 + b2*a22 + b3*a32;
+ out[11] = b0*a03 + b1*a13 + b2*a23 + b3*a33;
+
+ b0 = b[12]; b1 = b[13]; b2 = b[14]; b3 = b[15];
+ out[12] = b0*a00 + b1*a10 + b2*a20 + b3*a30;
+ out[13] = b0*a01 + b1*a11 + b2*a21 + b3*a31;
+ out[14] = b0*a02 + b1*a12 + b2*a22 + b3*a32;
+ out[15] = b0*a03 + b1*a13 + b2*a23 + b3*a33;
+ return out;
+};
+
+/**
+ * Alias for {@link mat4.multiply}
+ * @function
+ */
+mat4.mul = mat4.multiply;
+
+/**
+ * Translate a mat4 by the given vector
+ *
+ * @param {mat4} out the receiving matrix
+ * @param {mat4} a the matrix to translate
+ * @param {vec3} v vector to translate by
+ * @returns {mat4} out
+ */
+mat4.translate = function (out, a, v) {
+ var x = v[0], y = v[1], z = v[2],
+ a00, a01, a02, a03,
+ a10, a11, a12, a13,
+ a20, a21, a22, a23;
+
+ if (a === out) {
+ out[12] = a[0] * x + a[4] * y + a[8] * z + a[12];
+ out[13] = a[1] * x + a[5] * y + a[9] * z + a[13];
+ out[14] = a[2] * x + a[6] * y + a[10] * z + a[14];
+ out[15] = a[3] * x + a[7] * y + a[11] * z + a[15];
+ } else {
+ a00 = a[0]; a01 = a[1]; a02 = a[2]; a03 = a[3];
+ a10 = a[4]; a11 = a[5]; a12 = a[6]; a13 = a[7];
+ a20 = a[8]; a21 = a[9]; a22 = a[10]; a23 = a[11];
+
+ out[0] = a00; out[1] = a01; out[2] = a02; out[3] = a03;
+ out[4] = a10; out[5] = a11; out[6] = a12; out[7] = a13;
+ out[8] = a20; out[9] = a21; out[10] = a22; out[11] = a23;
+
+ out[12] = a00 * x + a10 * y + a20 * z + a[12];
+ out[13] = a01 * x + a11 * y + a21 * z + a[13];
+ out[14] = a02 * x + a12 * y + a22 * z + a[14];
+ out[15] = a03 * x + a13 * y + a23 * z + a[15];
+ }
+
+ return out;
+};
+
+/**
+ * Scales the mat4 by the dimensions in the given vec3
+ *
+ * @param {mat4} out the receiving matrix
+ * @param {mat4} a the matrix to scale
+ * @param {vec3} v the vec3 to scale the matrix by
+ * @returns {mat4} out
+ **/
+mat4.scale = function(out, a, v) {
+ var x = v[0], y = v[1], z = v[2];
+
+ out[0] = a[0] * x;
+ out[1] = a[1] * x;
+ out[2] = a[2] * x;
+ out[3] = a[3] * x;
+ out[4] = a[4] * y;
+ out[5] = a[5] * y;
+ out[6] = a[6] * y;
+ out[7] = a[7] * y;
+ out[8] = a[8] * z;
+ out[9] = a[9] * z;
+ out[10] = a[10] * z;
+ out[11] = a[11] * z;
+ out[12] = a[12];
+ out[13] = a[13];
+ out[14] = a[14];
+ out[15] = a[15];
+ return out;
+};
+
+/**
+ * Rotates a mat4 by the given angle
+ *
+ * @param {mat4} out the receiving matrix
+ * @param {mat4} a the matrix to rotate
+ * @param {Number} rad the angle to rotate the matrix by
+ * @param {vec3} axis the axis to rotate around
+ * @returns {mat4} out
+ */
+mat4.rotate = function (out, a, rad, axis) {
+ var x = axis[0], y = axis[1], z = axis[2],
+ len = Math.sqrt(x * x + y * y + z * z),
+ s, c, t,
+ a00, a01, a02, a03,
+ a10, a11, a12, a13,
+ a20, a21, a22, a23,
+ b00, b01, b02,
+ b10, b11, b12,
+ b20, b21, b22;
+
+ if (Math.abs(len) < GLMAT_EPSILON) { return null; }
+
+ len = 1 / len;
+ x *= len;
+ y *= len;
+ z *= len;
+
+ s = Math.sin(rad);
+ c = Math.cos(rad);
+ t = 1 - c;
+
+ a00 = a[0]; a01 = a[1]; a02 = a[2]; a03 = a[3];
+ a10 = a[4]; a11 = a[5]; a12 = a[6]; a13 = a[7];
+ a20 = a[8]; a21 = a[9]; a22 = a[10]; a23 = a[11];
+
+ // Construct the elements of the rotation matrix
+ b00 = x * x * t + c; b01 = y * x * t + z * s; b02 = z * x * t - y * s;
+ b10 = x * y * t - z * s; b11 = y * y * t + c; b12 = z * y * t + x * s;
+ b20 = x * z * t + y * s; b21 = y * z * t - x * s; b22 = z * z * t + c;
+
+ // Perform rotation-specific matrix multiplication
+ out[0] = a00 * b00 + a10 * b01 + a20 * b02;
+ out[1] = a01 * b00 + a11 * b01 + a21 * b02;
+ out[2] = a02 * b00 + a12 * b01 + a22 * b02;
+ out[3] = a03 * b00 + a13 * b01 + a23 * b02;
+ out[4] = a00 * b10 + a10 * b11 + a20 * b12;
+ out[5] = a01 * b10 + a11 * b11 + a21 * b12;
+ out[6] = a02 * b10 + a12 * b11 + a22 * b12;
+ out[7] = a03 * b10 + a13 * b11 + a23 * b12;
+ out[8] = a00 * b20 + a10 * b21 + a20 * b22;
+ out[9] = a01 * b20 + a11 * b21 + a21 * b22;
+ out[10] = a02 * b20 + a12 * b21 + a22 * b22;
+ out[11] = a03 * b20 + a13 * b21 + a23 * b22;
+
+ if (a !== out) { // If the source and destination differ, copy the unchanged last row
+ out[12] = a[12];
+ out[13] = a[13];
+ out[14] = a[14];
+ out[15] = a[15];
+ }
+ return out;
+};
+
+/**
+ * Rotates a matrix by the given angle around the X axis
+ *
+ * @param {mat4} out the receiving matrix
+ * @param {mat4} a the matrix to rotate
+ * @param {Number} rad the angle to rotate the matrix by
+ * @returns {mat4} out
+ */
+mat4.rotateX = function (out, a, rad) {
+ var s = Math.sin(rad),
+ c = Math.cos(rad),
+ a10 = a[4],
+ a11 = a[5],
+ a12 = a[6],
+ a13 = a[7],
+ a20 = a[8],
+ a21 = a[9],
+ a22 = a[10],
+ a23 = a[11];
+
+ if (a !== out) { // If the source and destination differ, copy the unchanged rows
+ out[0] = a[0];
+ out[1] = a[1];
+ out[2] = a[2];
+ out[3] = a[3];
+ out[12] = a[12];
+ out[13] = a[13];
+ out[14] = a[14];
+ out[15] = a[15];
+ }
+
+ // Perform axis-specific matrix multiplication
+ out[4] = a10 * c + a20 * s;
+ out[5] = a11 * c + a21 * s;
+ out[6] = a12 * c + a22 * s;
+ out[7] = a13 * c + a23 * s;
+ out[8] = a20 * c - a10 * s;
+ out[9] = a21 * c - a11 * s;
+ out[10] = a22 * c - a12 * s;
+ out[11] = a23 * c - a13 * s;
+ return out;
+};
+
+/**
+ * Rotates a matrix by the given angle around the Y axis
+ *
+ * @param {mat4} out the receiving matrix
+ * @param {mat4} a the matrix to rotate
+ * @param {Number} rad the angle to rotate the matrix by
+ * @returns {mat4} out
+ */
+mat4.rotateY = function (out, a, rad) {
+ var s = Math.sin(rad),
+ c = Math.cos(rad),
+ a00 = a[0],
+ a01 = a[1],
+ a02 = a[2],
+ a03 = a[3],
+ a20 = a[8],
+ a21 = a[9],
+ a22 = a[10],
+ a23 = a[11];
+
+ if (a !== out) { // If the source and destination differ, copy the unchanged rows
+ out[4] = a[4];
+ out[5] = a[5];
+ out[6] = a[6];
+ out[7] = a[7];
+ out[12] = a[12];
+ out[13] = a[13];
+ out[14] = a[14];
+ out[15] = a[15];
+ }
+
+ // Perform axis-specific matrix multiplication
+ out[0] = a00 * c - a20 * s;
+ out[1] = a01 * c - a21 * s;
+ out[2] = a02 * c - a22 * s;
+ out[3] = a03 * c - a23 * s;
+ out[8] = a00 * s + a20 * c;
+ out[9] = a01 * s + a21 * c;
+ out[10] = a02 * s + a22 * c;
+ out[11] = a03 * s + a23 * c;
+ return out;
+};
+
+/**
+ * Rotates a matrix by the given angle around the Z axis
+ *
+ * @param {mat4} out the receiving matrix
+ * @param {mat4} a the matrix to rotate
+ * @param {Number} rad the angle to rotate the matrix by
+ * @returns {mat4} out
+ */
+mat4.rotateZ = function (out, a, rad) {
+ var s = Math.sin(rad),
+ c = Math.cos(rad),
+ a00 = a[0],
+ a01 = a[1],
+ a02 = a[2],
+ a03 = a[3],
+ a10 = a[4],
+ a11 = a[5],
+ a12 = a[6],
+ a13 = a[7];
+
+ if (a !== out) { // If the source and destination differ, copy the unchanged last row
+ out[8] = a[8];
+ out[9] = a[9];
+ out[10] = a[10];
+ out[11] = a[11];
+ out[12] = a[12];
+ out[13] = a[13];
+ out[14] = a[14];
+ out[15] = a[15];
+ }
+
+ // Perform axis-specific matrix multiplication
+ out[0] = a00 * c + a10 * s;
+ out[1] = a01 * c + a11 * s;
+ out[2] = a02 * c + a12 * s;
+ out[3] = a03 * c + a13 * s;
+ out[4] = a10 * c - a00 * s;
+ out[5] = a11 * c - a01 * s;
+ out[6] = a12 * c - a02 * s;
+ out[7] = a13 * c - a03 * s;
+ return out;
+};
+
+/**
+ * Creates a matrix from a quaternion rotation and vector translation
+ * This is equivalent to (but much faster than):
+ *
+ * mat4.identity(dest);
+ * mat4.translate(dest, vec);
+ * var quatMat = mat4.create();
+ * quat4.toMat4(quat, quatMat);
+ * mat4.multiply(dest, quatMat);
+ *
+ * @param {mat4} out mat4 receiving operation result
+ * @param {quat4} q Rotation quaternion
+ * @param {vec3} v Translation vector
+ * @returns {mat4} out
+ */
+mat4.fromRotationTranslation = function (out, q, v) {
+ // Quaternion math
+ var x = q[0], y = q[1], z = q[2], w = q[3],
+ x2 = x + x,
+ y2 = y + y,
+ z2 = z + z,
+
+ xx = x * x2,
+ xy = x * y2,
+ xz = x * z2,
+ yy = y * y2,
+ yz = y * z2,
+ zz = z * z2,
+ wx = w * x2,
+ wy = w * y2,
+ wz = w * z2;
+
+ out[0] = 1 - (yy + zz);
+ out[1] = xy + wz;
+ out[2] = xz - wy;
+ out[3] = 0;
+ out[4] = xy - wz;
+ out[5] = 1 - (xx + zz);
+ out[6] = yz + wx;
+ out[7] = 0;
+ out[8] = xz + wy;
+ out[9] = yz - wx;
+ out[10] = 1 - (xx + yy);
+ out[11] = 0;
+ out[12] = v[0];
+ out[13] = v[1];
+ out[14] = v[2];
+ out[15] = 1;
+
+ return out;
+};
+
+mat4.fromQuat = function (out, q) {
+ var x = q[0], y = q[1], z = q[2], w = q[3],
+ x2 = x + x,
+ y2 = y + y,
+ z2 = z + z,
+
+ xx = x * x2,
+ yx = y * x2,
+ yy = y * y2,
+ zx = z * x2,
+ zy = z * y2,
+ zz = z * z2,
+ wx = w * x2,
+ wy = w * y2,
+ wz = w * z2;
+
+ out[0] = 1 - yy - zz;
+ out[1] = yx + wz;
+ out[2] = zx - wy;
+ out[3] = 0;
+
+ out[4] = yx - wz;
+ out[5] = 1 - xx - zz;
+ out[6] = zy + wx;
+ out[7] = 0;
+
+ out[8] = zx + wy;
+ out[9] = zy - wx;
+ out[10] = 1 - xx - yy;
+ out[11] = 0;
+
+ out[12] = 0;
+ out[13] = 0;
+ out[14] = 0;
+ out[15] = 1;
+
+ return out;
+};
+
+/**
+ * Generates a frustum matrix with the given bounds
+ *
+ * @param {mat4} out mat4 frustum matrix will be written into
+ * @param {Number} left Left bound of the frustum
+ * @param {Number} right Right bound of the frustum
+ * @param {Number} bottom Bottom bound of the frustum
+ * @param {Number} top Top bound of the frustum
+ * @param {Number} near Near bound of the frustum
+ * @param {Number} far Far bound of the frustum
+ * @returns {mat4} out
+ */
+mat4.frustum = function (out, left, right, bottom, top, near, far) {
+ var rl = 1 / (right - left),
+ tb = 1 / (top - bottom),
+ nf = 1 / (near - far);
+ out[0] = (near * 2) * rl;
+ out[1] = 0;
+ out[2] = 0;
+ out[3] = 0;
+ out[4] = 0;
+ out[5] = (near * 2) * tb;
+ out[6] = 0;
+ out[7] = 0;
+ out[8] = (right + left) * rl;
+ out[9] = (top + bottom) * tb;
+ out[10] = (far + near) * nf;
+ out[11] = -1;
+ out[12] = 0;
+ out[13] = 0;
+ out[14] = (far * near * 2) * nf;
+ out[15] = 0;
+ return out;
+};
+
+/**
+ * Generates a perspective projection matrix with the given bounds
+ *
+ * @param {mat4} out mat4 frustum matrix will be written into
+ * @param {number} fovy Vertical field of view in radians
+ * @param {number} aspect Aspect ratio. typically viewport width/height
+ * @param {number} near Near bound of the frustum
+ * @param {number} far Far bound of the frustum
+ * @returns {mat4} out
+ */
+mat4.perspective = function (out, fovy, aspect, near, far) {
+ var f = 1.0 / Math.tan(fovy / 2),
+ nf = 1 / (near - far);
+ out[0] = f / aspect;
+ out[1] = 0;
+ out[2] = 0;
+ out[3] = 0;
+ out[4] = 0;
+ out[5] = f;
+ out[6] = 0;
+ out[7] = 0;
+ out[8] = 0;
+ out[9] = 0;
+ out[10] = (far + near) * nf;
+ out[11] = -1;
+ out[12] = 0;
+ out[13] = 0;
+ out[14] = (2 * far * near) * nf;
+ out[15] = 0;
+ return out;
+};
+
+/**
+ * Generates a orthogonal projection matrix with the given bounds
+ *
+ * @param {mat4} out mat4 frustum matrix will be written into
+ * @param {number} left Left bound of the frustum
+ * @param {number} right Right bound of the frustum
+ * @param {number} bottom Bottom bound of the frustum
+ * @param {number} top Top bound of the frustum
+ * @param {number} near Near bound of the frustum
+ * @param {number} far Far bound of the frustum
+ * @returns {mat4} out
+ */
+mat4.ortho = function (out, left, right, bottom, top, near, far) {
+ var lr = 1 / (left - right),
+ bt = 1 / (bottom - top),
+ nf = 1 / (near - far);
+ out[0] = -2 * lr;
+ out[1] = 0;
+ out[2] = 0;
+ out[3] = 0;
+ out[4] = 0;
+ out[5] = -2 * bt;
+ out[6] = 0;
+ out[7] = 0;
+ out[8] = 0;
+ out[9] = 0;
+ out[10] = 2 * nf;
+ out[11] = 0;
+ out[12] = (left + right) * lr;
+ out[13] = (top + bottom) * bt;
+ out[14] = (far + near) * nf;
+ out[15] = 1;
+ return out;
+};
+
+/**
+ * Generates a look-at matrix with the given eye position, focal point, and up axis
+ *
+ * @param {mat4} out mat4 frustum matrix will be written into
+ * @param {vec3} eye Position of the viewer
+ * @param {vec3} center Point the viewer is looking at
+ * @param {vec3} up vec3 pointing up
+ * @returns {mat4} out
+ */
+mat4.lookAt = function (out, eye, center, up) {
+ var x0, x1, x2, y0, y1, y2, z0, z1, z2, len,
+ eyex = eye[0],
+ eyey = eye[1],
+ eyez = eye[2],
+ upx = up[0],
+ upy = up[1],
+ upz = up[2],
+ centerx = center[0],
+ centery = center[1],
+ centerz = center[2];
+
+ if (Math.abs(eyex - centerx) < GLMAT_EPSILON &&
+ Math.abs(eyey - centery) < GLMAT_EPSILON &&
+ Math.abs(eyez - centerz) < GLMAT_EPSILON) {
+ return mat4.identity(out);
+ }
+
+ z0 = eyex - centerx;
+ z1 = eyey - centery;
+ z2 = eyez - centerz;
+
+ len = 1 / Math.sqrt(z0 * z0 + z1 * z1 + z2 * z2);
+ z0 *= len;
+ z1 *= len;
+ z2 *= len;
+
+ x0 = upy * z2 - upz * z1;
+ x1 = upz * z0 - upx * z2;
+ x2 = upx * z1 - upy * z0;
+ len = Math.sqrt(x0 * x0 + x1 * x1 + x2 * x2);
+ if (!len) {
+ x0 = 0;
+ x1 = 0;
+ x2 = 0;
+ } else {
+ len = 1 / len;
+ x0 *= len;
+ x1 *= len;
+ x2 *= len;
+ }
+
+ y0 = z1 * x2 - z2 * x1;
+ y1 = z2 * x0 - z0 * x2;
+ y2 = z0 * x1 - z1 * x0;
+
+ len = Math.sqrt(y0 * y0 + y1 * y1 + y2 * y2);
+ if (!len) {
+ y0 = 0;
+ y1 = 0;
+ y2 = 0;
+ } else {
+ len = 1 / len;
+ y0 *= len;
+ y1 *= len;
+ y2 *= len;
+ }
+
+ out[0] = x0;
+ out[1] = y0;
+ out[2] = z0;
+ out[3] = 0;
+ out[4] = x1;
+ out[5] = y1;
+ out[6] = z1;
+ out[7] = 0;
+ out[8] = x2;
+ out[9] = y2;
+ out[10] = z2;
+ out[11] = 0;
+ out[12] = -(x0 * eyex + x1 * eyey + x2 * eyez);
+ out[13] = -(y0 * eyex + y1 * eyey + y2 * eyez);
+ out[14] = -(z0 * eyex + z1 * eyey + z2 * eyez);
+ out[15] = 1;
+
+ return out;
+};
+
+/**
+ * Returns a string representation of a mat4
+ *
+ * @param {mat4} mat matrix to represent as a string
+ * @returns {String} string representation of the matrix
+ */
+mat4.str = function (a) {
+ return 'mat4(' + a[0] + ', ' + a[1] + ', ' + a[2] + ', ' + a[3] + ', ' +
+ a[4] + ', ' + a[5] + ', ' + a[6] + ', ' + a[7] + ', ' +
+ a[8] + ', ' + a[9] + ', ' + a[10] + ', ' + a[11] + ', ' +
+ a[12] + ', ' + a[13] + ', ' + a[14] + ', ' + a[15] + ')';
+};
+
+/**
+ * Returns Frobenius norm of a mat4
+ *
+ * @param {mat4} a the matrix to calculate Frobenius norm of
+ * @returns {Number} Frobenius norm
+ */
+mat4.frob = function (a) {
+ return(Math.sqrt(Math.pow(a[0], 2) + Math.pow(a[1], 2) + Math.pow(a[2], 2) + Math.pow(a[3], 2) + Math.pow(a[4], 2) + Math.pow(a[5], 2) + Math.pow(a[6], 2) + Math.pow(a[7], 2) + Math.pow(a[8], 2) + Math.pow(a[9], 2) + Math.pow(a[10], 2) + Math.pow(a[11], 2) + Math.pow(a[12], 2) + Math.pow(a[13], 2) + Math.pow(a[14], 2) + Math.pow(a[15], 2) ))
+};
+
+
+if(typeof(exports) !== 'undefined') {
+ exports.mat4 = mat4;
+}
+;
+/* Copyright (c) 2013, Brandon Jones, Colin MacKenzie IV. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/**
+ * @class Quaternion
+ * @name quat
+ */
+
+var quat = {};
+
+/**
+ * Creates a new identity quat
+ *
+ * @returns {quat} a new quaternion
+ */
+quat.create = function() {
+ var out = new GLMAT_ARRAY_TYPE(4);
+ out[0] = 0;
+ out[1] = 0;
+ out[2] = 0;
+ out[3] = 1;
+ return out;
+};
+
+/**
+ * Sets a quaternion to represent the shortest rotation from one
+ * vector to another.
+ *
+ * Both vectors are assumed to be unit length.
+ *
+ * @param {quat} out the receiving quaternion.
+ * @param {vec3} a the initial vector
+ * @param {vec3} b the destination vector
+ * @returns {quat} out
+ */
+quat.rotationTo = (function() {
+ var tmpvec3 = vec3.create();
+ var xUnitVec3 = vec3.fromValues(1,0,0);
+ var yUnitVec3 = vec3.fromValues(0,1,0);
+
+ return function(out, a, b) {
+ var dot = vec3.dot(a, b);
+ if (dot < -0.999999) {
+ vec3.cross(tmpvec3, xUnitVec3, a);
+ if (vec3.length(tmpvec3) < 0.000001)
+ vec3.cross(tmpvec3, yUnitVec3, a);
+ vec3.normalize(tmpvec3, tmpvec3);
+ quat.setAxisAngle(out, tmpvec3, Math.PI);
+ return out;
+ } else if (dot > 0.999999) {
+ out[0] = 0;
+ out[1] = 0;
+ out[2] = 0;
+ out[3] = 1;
+ return out;
+ } else {
+ vec3.cross(tmpvec3, a, b);
+ out[0] = tmpvec3[0];
+ out[1] = tmpvec3[1];
+ out[2] = tmpvec3[2];
+ out[3] = 1 + dot;
+ return quat.normalize(out, out);
+ }
+ };
+})();
+
+/**
+ * Sets the specified quaternion with values corresponding to the given
+ * axes. Each axis is a vec3 and is expected to be unit length and
+ * perpendicular to all other specified axes.
+ *
+ * @param {vec3} view the vector representing the viewing direction
+ * @param {vec3} right the vector representing the local "right" direction
+ * @param {vec3} up the vector representing the local "up" direction
+ * @returns {quat} out
+ */
+quat.setAxes = (function() {
+ var matr = mat3.create();
+
+ return function(out, view, right, up) {
+ matr[0] = right[0];
+ matr[3] = right[1];
+ matr[6] = right[2];
+
+ matr[1] = up[0];
+ matr[4] = up[1];
+ matr[7] = up[2];
+
+ matr[2] = -view[0];
+ matr[5] = -view[1];
+ matr[8] = -view[2];
+
+ return quat.normalize(out, quat.fromMat3(out, matr));
+ };
+})();
+
+/**
+ * Creates a new quat initialized with values from an existing quaternion
+ *
+ * @param {quat} a quaternion to clone
+ * @returns {quat} a new quaternion
+ * @function
+ */
+quat.clone = vec4.clone;
+
+/**
+ * Creates a new quat initialized with the given values
+ *
+ * @param {Number} x X component
+ * @param {Number} y Y component
+ * @param {Number} z Z component
+ * @param {Number} w W component
+ * @returns {quat} a new quaternion
+ * @function
+ */
+quat.fromValues = vec4.fromValues;
+
+/**
+ * Copy the values from one quat to another
+ *
+ * @param {quat} out the receiving quaternion
+ * @param {quat} a the source quaternion
+ * @returns {quat} out
+ * @function
+ */
+quat.copy = vec4.copy;
+
+/**
+ * Set the components of a quat to the given values
+ *
+ * @param {quat} out the receiving quaternion
+ * @param {Number} x X component
+ * @param {Number} y Y component
+ * @param {Number} z Z component
+ * @param {Number} w W component
+ * @returns {quat} out
+ * @function
+ */
+quat.set = vec4.set;
+
+/**
+ * Set a quat to the identity quaternion
+ *
+ * @param {quat} out the receiving quaternion
+ * @returns {quat} out
+ */
+quat.identity = function(out) {
+ out[0] = 0;
+ out[1] = 0;
+ out[2] = 0;
+ out[3] = 1;
+ return out;
+};
+
+/**
+ * Sets a quat from the given angle and rotation axis,
+ * then returns it.
+ *
+ * @param {quat} out the receiving quaternion
+ * @param {vec3} axis the axis around which to rotate
+ * @param {Number} rad the angle in radians
+ * @returns {quat} out
+ **/
+quat.setAxisAngle = function(out, axis, rad) {
+ rad = rad * 0.5;
+ var s = Math.sin(rad);
+ out[0] = s * axis[0];
+ out[1] = s * axis[1];
+ out[2] = s * axis[2];
+ out[3] = Math.cos(rad);
+ return out;
+};
+
+/**
+ * Adds two quat's
+ *
+ * @param {quat} out the receiving quaternion
+ * @param {quat} a the first operand
+ * @param {quat} b the second operand
+ * @returns {quat} out
+ * @function
+ */
+quat.add = vec4.add;
+
+/**
+ * Multiplies two quat's
+ *
+ * @param {quat} out the receiving quaternion
+ * @param {quat} a the first operand
+ * @param {quat} b the second operand
+ * @returns {quat} out
+ */
+quat.multiply = function(out, a, b) {
+ var ax = a[0], ay = a[1], az = a[2], aw = a[3],
+ bx = b[0], by = b[1], bz = b[2], bw = b[3];
+
+ out[0] = ax * bw + aw * bx + ay * bz - az * by;
+ out[1] = ay * bw + aw * by + az * bx - ax * bz;
+ out[2] = az * bw + aw * bz + ax * by - ay * bx;
+ out[3] = aw * bw - ax * bx - ay * by - az * bz;
+ return out;
+};
+
+/**
+ * Alias for {@link quat.multiply}
+ * @function
+ */
+quat.mul = quat.multiply;
+
+/**
+ * Scales a quat by a scalar number
+ *
+ * @param {quat} out the receiving vector
+ * @param {quat} a the vector to scale
+ * @param {Number} b amount to scale the vector by
+ * @returns {quat} out
+ * @function
+ */
+quat.scale = vec4.scale;
+
+/**
+ * Rotates a quaternion by the given angle about the X axis
+ *
+ * @param {quat} out quat receiving operation result
+ * @param {quat} a quat to rotate
+ * @param {number} rad angle (in radians) to rotate
+ * @returns {quat} out
+ */
+quat.rotateX = function (out, a, rad) {
+ rad *= 0.5;
+
+ var ax = a[0], ay = a[1], az = a[2], aw = a[3],
+ bx = Math.sin(rad), bw = Math.cos(rad);
+
+ out[0] = ax * bw + aw * bx;
+ out[1] = ay * bw + az * bx;
+ out[2] = az * bw - ay * bx;
+ out[3] = aw * bw - ax * bx;
+ return out;
+};
+
+/**
+ * Rotates a quaternion by the given angle about the Y axis
+ *
+ * @param {quat} out quat receiving operation result
+ * @param {quat} a quat to rotate
+ * @param {number} rad angle (in radians) to rotate
+ * @returns {quat} out
+ */
+quat.rotateY = function (out, a, rad) {
+ rad *= 0.5;
+
+ var ax = a[0], ay = a[1], az = a[2], aw = a[3],
+ by = Math.sin(rad), bw = Math.cos(rad);
+
+ out[0] = ax * bw - az * by;
+ out[1] = ay * bw + aw * by;
+ out[2] = az * bw + ax * by;
+ out[3] = aw * bw - ay * by;
+ return out;
+};
+
+/**
+ * Rotates a quaternion by the given angle about the Z axis
+ *
+ * @param {quat} out quat receiving operation result
+ * @param {quat} a quat to rotate
+ * @param {number} rad angle (in radians) to rotate
+ * @returns {quat} out
+ */
+quat.rotateZ = function (out, a, rad) {
+ rad *= 0.5;
+
+ var ax = a[0], ay = a[1], az = a[2], aw = a[3],
+ bz = Math.sin(rad), bw = Math.cos(rad);
+
+ out[0] = ax * bw + ay * bz;
+ out[1] = ay * bw - ax * bz;
+ out[2] = az * bw + aw * bz;
+ out[3] = aw * bw - az * bz;
+ return out;
+};
+
+/**
+ * Calculates the W component of a quat from the X, Y, and Z components.
+ * Assumes that quaternion is 1 unit in length.
+ * Any existing W component will be ignored.
+ *
+ * @param {quat} out the receiving quaternion
+ * @param {quat} a quat to calculate W component of
+ * @returns {quat} out
+ */
+quat.calculateW = function (out, a) {
+ var x = a[0], y = a[1], z = a[2];
+
+ out[0] = x;
+ out[1] = y;
+ out[2] = z;
+ out[3] = Math.sqrt(Math.abs(1.0 - x * x - y * y - z * z));
+ return out;
+};
+
+/**
+ * Calculates the dot product of two quat's
+ *
+ * @param {quat} a the first operand
+ * @param {quat} b the second operand
+ * @returns {Number} dot product of a and b
+ * @function
+ */
+quat.dot = vec4.dot;
+
+/**
+ * Performs a linear interpolation between two quat's
+ *
+ * @param {quat} out the receiving quaternion
+ * @param {quat} a the first operand
+ * @param {quat} b the second operand
+ * @param {Number} t interpolation amount between the two inputs
+ * @returns {quat} out
+ * @function
+ */
+quat.lerp = vec4.lerp;
+
+/**
+ * Performs a spherical linear interpolation between two quat
+ *
+ * @param {quat} out the receiving quaternion
+ * @param {quat} a the first operand
+ * @param {quat} b the second operand
+ * @param {Number} t interpolation amount between the two inputs
+ * @returns {quat} out
+ */
+quat.slerp = function (out, a, b, t) {
+ // benchmarks:
+ // http://jsperf.com/quaternion-slerp-implementations
+
+ var ax = a[0], ay = a[1], az = a[2], aw = a[3],
+ bx = b[0], by = b[1], bz = b[2], bw = b[3];
+
+ var omega, cosom, sinom, scale0, scale1;
+
+ // calc cosine
+ cosom = ax * bx + ay * by + az * bz + aw * bw;
+ // adjust signs (if necessary)
+ if ( cosom < 0.0 ) {
+ cosom = -cosom;
+ bx = - bx;
+ by = - by;
+ bz = - bz;
+ bw = - bw;
+ }
+ // calculate coefficients
+ if ( (1.0 - cosom) > 0.000001 ) {
+ // standard case (slerp)
+ omega = Math.acos(cosom);
+ sinom = Math.sin(omega);
+ scale0 = Math.sin((1.0 - t) * omega) / sinom;
+ scale1 = Math.sin(t * omega) / sinom;
+ } else {
+ // "from" and "to" quaternions are very close
+ // ... so we can do a linear interpolation
+ scale0 = 1.0 - t;
+ scale1 = t;
+ }
+ // calculate final values
+ out[0] = scale0 * ax + scale1 * bx;
+ out[1] = scale0 * ay + scale1 * by;
+ out[2] = scale0 * az + scale1 * bz;
+ out[3] = scale0 * aw + scale1 * bw;
+
+ return out;
+};
+
+/**
+ * Calculates the inverse of a quat
+ *
+ * @param {quat} out the receiving quaternion
+ * @param {quat} a quat to calculate inverse of
+ * @returns {quat} out
+ */
+quat.invert = function(out, a) {
+ var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3],
+ dot = a0*a0 + a1*a1 + a2*a2 + a3*a3,
+ invDot = dot ? 1.0/dot : 0;
+
+ // TODO: Would be faster to return [0,0,0,0] immediately if dot == 0
+
+ out[0] = -a0*invDot;
+ out[1] = -a1*invDot;
+ out[2] = -a2*invDot;
+ out[3] = a3*invDot;
+ return out;
+};
+
+/**
+ * Calculates the conjugate of a quat
+ * If the quaternion is normalized, this function is faster than quat.inverse and produces the same result.
+ *
+ * @param {quat} out the receiving quaternion
+ * @param {quat} a quat to calculate conjugate of
+ * @returns {quat} out
+ */
+quat.conjugate = function (out, a) {
+ out[0] = -a[0];
+ out[1] = -a[1];
+ out[2] = -a[2];
+ out[3] = a[3];
+ return out;
+};
+
+/**
+ * Calculates the length of a quat
+ *
+ * @param {quat} a vector to calculate length of
+ * @returns {Number} length of a
+ * @function
+ */
+quat.length = vec4.length;
+
+/**
+ * Alias for {@link quat.length}
+ * @function
+ */
+quat.len = quat.length;
+
+/**
+ * Calculates the squared length of a quat
+ *
+ * @param {quat} a vector to calculate squared length of
+ * @returns {Number} squared length of a
+ * @function
+ */
+quat.squaredLength = vec4.squaredLength;
+
+/**
+ * Alias for {@link quat.squaredLength}
+ * @function
+ */
+quat.sqrLen = quat.squaredLength;
+
+/**
+ * Normalize a quat
+ *
+ * @param {quat} out the receiving quaternion
+ * @param {quat} a quaternion to normalize
+ * @returns {quat} out
+ * @function
+ */
+quat.normalize = vec4.normalize;
+
+/**
+ * Creates a quaternion from the given 3x3 rotation matrix.
+ *
+ * NOTE: The resultant quaternion is not normalized, so you should be sure
+ * to renormalize the quaternion yourself where necessary.
+ *
+ * @param {quat} out the receiving quaternion
+ * @param {mat3} m rotation matrix
+ * @returns {quat} out
+ * @function
+ */
+quat.fromMat3 = function(out, m) {
+ // Algorithm in Ken Shoemake's article in 1987 SIGGRAPH course notes
+ // article "Quaternion Calculus and Fast Animation".
+ var fTrace = m[0] + m[4] + m[8];
+ var fRoot;
+
+ if ( fTrace > 0.0 ) {
+ // |w| > 1/2, may as well choose w > 1/2
+ fRoot = Math.sqrt(fTrace + 1.0); // 2w
+ out[3] = 0.5 * fRoot;
+ fRoot = 0.5/fRoot; // 1/(4w)
+ out[0] = (m[5]-m[7])*fRoot;
+ out[1] = (m[6]-m[2])*fRoot;
+ out[2] = (m[1]-m[3])*fRoot;
+ } else {
+ // |w| <= 1/2
+ var i = 0;
+ if ( m[4] > m[0] )
+ i = 1;
+ if ( m[8] > m[i*3+i] )
+ i = 2;
+ var j = (i+1)%3;
+ var k = (i+2)%3;
+
+ fRoot = Math.sqrt(m[i*3+i]-m[j*3+j]-m[k*3+k] + 1.0);
+ out[i] = 0.5 * fRoot;
+ fRoot = 0.5 / fRoot;
+ out[3] = (m[j*3+k] - m[k*3+j]) * fRoot;
+ out[j] = (m[j*3+i] + m[i*3+j]) * fRoot;
+ out[k] = (m[k*3+i] + m[i*3+k]) * fRoot;
+ }
+
+ return out;
+};
+
+/**
+ * Returns a string representation of a quatenion
+ *
+ * @param {quat} vec vector to represent as a string
+ * @returns {String} string representation of the vector
+ */
+quat.str = function (a) {
+ return 'quat(' + a[0] + ', ' + a[1] + ', ' + a[2] + ', ' + a[3] + ')';
+};
+
+if(typeof(exports) !== 'undefined') {
+ exports.quat = quat;
+}
+;
+
+
+
+
+
+
+
+
+
+
+
+
+
+ })(shim.exports);
+})(this);
+
+/******************************************************************************
+ * Creature Runtimes License
+ *
+ * Copyright (c) 2015, Kestrel Moon Studios
+ * All rights reserved.
+ *
+ * Preamble: This Agreement governs the relationship between Licensee and Kestrel Moon Studios(Hereinafter: Licensor).
+ * This Agreement sets the terms, rights, restrictions and obligations on using [Creature Runtimes] (hereinafter: The Software) created and owned by Licensor,
+ * as detailed herein:
+ * License Grant: Licensor hereby grants Licensee a Sublicensable, Non-assignable & non-transferable, Commercial, Royalty free,
+ * Including the rights to create but not distribute derivative works, Non-exclusive license, all with accordance with the terms set forth and
+ * other legal restrictions set forth in 3rd party software used while running Software.
+ * Limited: Licensee may use Software for the purpose of:
+ * Running Software on Licensee’s Website[s] and Server[s];
+ * Allowing 3rd Parties to run Software on Licensee’s Website[s] and Server[s];
+ * Publishing Software’s output to Licensee and 3rd Parties;
+ * Distribute verbatim copies of Software’s output (including compiled binaries);
+ * Modify Software to suit Licensee’s needs and specifications.
+ * Binary Restricted: Licensee may sublicense Software as a part of a larger work containing more than Software,
+ * distributed solely in Object or Binary form under a personal, non-sublicensable, limited license. Such redistribution shall be limited to unlimited codebases.
+ * Non Assignable & Non-Transferable: Licensee may not assign or transfer his rights and duties under this license.
+ * Commercial, Royalty Free: Licensee may use Software for any purpose, including paid-services, without any royalties
+ * Including the Right to Create Derivative Works: Licensee may create derivative works based on Software,
+ * including amending Software’s source code, modifying it, integrating it into a larger work or removing portions of Software,
+ * as long as no distribution of the derivative works is made
+ *
+ * THE RUNTIMES IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE RUNTIMES OR THE USE OR OTHER DEALINGS IN THE
+ * RUNTIMES.
+ *****************************************************************************/
+
+
+// dualQuat
+
+var Q_X = 0;
+var Q_Y = 1;
+var Q_Z = 2;
+var Q_W = 3;
+
+function dualQuat()
+{
+ this.real = quat.create();
+ this.real[Q_W] = 0;
+
+ this.imaginary = quat.create();
+ this.imaginary[Q_W] = 0;
+
+ this.tmpQ1 = quat.create();
+};
+
+dualQuat.prototype.reset = function()
+{
+ quat.identity(this.real);
+ this.real[Q_W] = 0;
+ quat.identity(this.imaginary);
+ this.imaginary[Q_W] = 0;
+ quat.identity(this.tmpQ1);
+};
+
+dualQuat.prototype.createFromData = function(q0, t)
+{
+ this.real = q0;
+ this.imaginary = quat.create();
+ this.imaginary[Q_W] = -0.5 * ( t[Q_X] * q0[Q_X] + t[Q_Y] * q0[Q_Y] + t[Q_Z] * q0[Q_Z]);
+ this.imaginary[Q_X] = 0.5 * ( t[Q_X] * q0[Q_W] + t[Q_Y] * q0[Q_Z] - t[Q_Z] * q0[Q_Y]);
+ this.imaginary[Q_Y] = 0.5 * (-t[Q_X] * q0[Q_Z] + t[Q_Y] * q0[Q_W] + t[Q_Z] * q0[Q_X]);
+ this.imaginary[Q_Z] = 0.5 * ( t[Q_X] * q0[Q_Y] - t[Q_Y] * q0[Q_X] + t[Q_Z] * q0[Q_W]);
+
+};
+
+dualQuat.prototype.add = function(quat_in, real_factor, imaginary_factor)
+{
+ //real = real.add((quat_in.real.cpy().mul(real_factor)));
+ //var tmpQ = quat.clone(quat_in.real);
+ quat.copy(this.tmpQ1, quat_in.real);
+
+ quat.scale(this.tmpQ1, this.tmpQ1, real_factor);
+ quat.add(this.real, this.tmpQ1, this.real);
+
+ //imaginary = imaginary.add(quat_in.imaginary.cpy().mul(imaginary_factor));
+ //tmpQ = quat.clone(quat_in.imaginary);
+ quat.copy(this.tmpQ1, quat_in.imaginary);
+ quat.scale(this.tmpQ1, this.tmpQ1, imaginary_factor);
+ quat.add(this.imaginary, this.tmpQ1, this.imaginary);
+};
+
+dualQuat.prototype.normalize = function()
+{
+ var norm = quat.length(this.real);
+
+ this.real = quat.scale(this.real, this.real, 1.0 / norm);
+ this.imaginary = quat.scale(this.imaginary, this.imaginary, 1.0 / norm);
+};
+
+var v0 = vec3.create();
+var ve = vec3.create();
+var trans = vec3.create();
+var tmpVec1 = vec3.create();
+var tmpVec2 = vec3.create();
+var tmpVec0 = vec3.create();
+var aVec = vec3.create();
+var rot = vec3.create();
+
+dualQuat.prototype.transform = function(p)
+{
+ v0[Q_X] = this.real[Q_X]; v0[Q_Y] = this.real[Q_Y]; v0[Q_Z] = this.real[Q_Z];
+
+ ve[Q_X] = this.imaginary[Q_X]; ve[Q_Y] = this.imaginary[Q_Y]; ve[Q_Z] = this.imaginary[Q_Z];
+
+ //trans = (ve*real.w - v0*imaginary.w + Vector3.Cross(v0, ve)) * 2.0f;
+
+// var tmpVec1 = v0.cpy().scl((float)imaginary.w);
+ tmpVec1 = vec3.scale(tmpVec1, v0, this.imaginary[Q_W]);
+
+// var tmpVec2 = v0.cpy().crs(ve);
+ tmpVec2 = vec3.cross(tmpVec2, v0, ve);
+
+ //var tmpVec0 = ve.cpy().scl(real.w);
+ //trans = tmpVec0.sub(tmpVec1).add(tmpVec2);
+ //trans.scl(2.0f);
+
+ tmpVec0 = vec3.scale(tmpVec0, ve, this.real[Q_W]);
+
+ aVec = vec3.subtract(aVec, tmpVec0, tmpVec1);
+ trans = vec3.add(trans, aVec, tmpVec2);
+ trans = vec3.scale(trans, trans, 2.0);
+
+ //var rot = real.transform(p.cpy());
+ rot = vec3.transformQuat(rot, p, this.real);
+
+ //return rot.add(trans);
+ rot = vec3.add(rot, rot, trans);
+
+ return rot;
+};
+
+// Utils
+var Utils = {};
+
+Utils.setAxisMatrix = function(xAxis, yAxis, zAxis)
+{
+ var retMat = mat4.create();
+
+ var M00 = 0;
+ var M01 = 4;
+ var M02 = 8;
+ var M03 = 12;
+ var M10 = 1;
+ var M11 = 5;
+ var M12 = 9;
+ var M13 = 13;
+ var M20 = 2;
+ var M21 = 6;
+ var M22 = 10;
+ var M23 = 14;
+ var M30 = 3;
+ var M31 = 7;
+ var M32 = 11;
+ var M33 = 15;
+
+ retMat[M00] = xAxis[Q_X];
+ retMat[M01] = xAxis[Q_Y];
+ retMat[M02] = xAxis[Q_Z];
+ retMat[M10] = yAxis[Q_X];
+ retMat[M11] = yAxis[Q_Y];
+ retMat[M12] = yAxis[Q_Z];
+ retMat[M20] = zAxis[Q_X];
+ retMat[M21] = zAxis[Q_Y];
+ retMat[M22] = zAxis[Q_Z];
+ retMat[M03] = 0;
+ retMat[M13] = 0;
+ retMat[M23] = 0;
+ retMat[M30] = 0;
+ retMat[M31] = 0;
+ retMat[M32] = 0;
+ retMat[M33] = 1;
+
+ retMat = mat4.transpose(retMat, retMat);
+
+ return retMat;
+};
+
+Utils.matrixToQuat = function(mat_in)
+{
+ var retQuat = quat.create();
+ var te = mat_in,
+
+ m11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ],
+ m21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ],
+ m31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ],
+
+ trace = m11 + m22 + m33,
+ s;
+
+ if ( trace > 0 ) {
+
+ s = 0.5 / Math.sqrt( trace + 1.0 );
+
+ retQuat[Q_W] = 0.25 / s;
+ retQuat[Q_X] = ( m32 - m23 ) * s;
+ retQuat[Q_Y] = ( m13 - m31 ) * s;
+ retQuat[Q_Z] = ( m21 - m12 ) * s;
+
+ } else if ( m11 > m22 && m11 > m33 ) {
+
+ s = 2.0 * Math.sqrt( 1.0 + m11 - m22 - m33 );
+
+ retQuat[Q_W] = ( m32 - m23 ) / s;
+ retQuat[Q_X] = 0.25 * s;
+ retQuat[Q_Y] = ( m12 + m21 ) / s;
+ retQuat[Q_Z] = ( m13 + m31 ) / s;
+
+ } else if ( m22 > m33 ) {
+
+ s = 2.0 * Math.sqrt( 1.0 + m22 - m11 - m33 );
+
+ retQuat[Q_W] = ( m13 - m31 ) / s;
+ retQuat[Q_X] = ( m12 + m21 ) / s;
+ retQuat[Q_Y] = 0.25 * s;
+ retQuat[Q_Z] = ( m23 + m32 ) / s;
+
+ } else {
+
+ s = 2.0 * Math.sqrt( 1.0 + m33 - m11 - m22 );
+
+ retQuat[Q_W] = ( m21 - m12 ) / s;
+ retQuat[Q_X] = ( m13 + m31 ) / s;
+ retQuat[Q_Y] = ( m23 + m32 ) / s;
+ retQuat[Q_Z] = 0.25 * s;
+
+ }
+
+ return retQuat;
+};
+
+Utils.rotateVec_90 = function(vec_in)
+{
+ var ret_vec = vec3.fromValues(-vec_in[Q_Y], vec_in[Q_X], vec_in[Q_Z]);
+
+ return ret_vec;
+};
+
+Utils.calcRotateMat = function(vec_in)
+{
+ var dir = vec3.clone(vec_in);
+ dir = vec3.normalize(dir, dir);
+
+ var pep_dir = Utils.rotateVec_90(dir);
+
+ var cur_tangent = vec3.fromValues(dir[Q_X], dir[Q_Y], 0);
+ var cur_normal = vec3.fromValues(pep_dir[Q_X], pep_dir[Q_Y], 0);
+ var cur_binormal = vec3.fromValues(0, 0, 1);
+
+ var cur_rotate = mat4.create();
+ cur_rotate = Utils.setAxisMatrix(cur_tangent, cur_normal, cur_binormal);
+
+ return cur_rotate;
+};
+
+Utils.getMatTranslate = function(mat_in)
+{
+ var ret_pos = vec3.create();
+ ret_pos[Q_X] = mat_in[12];
+ ret_pos[Q_Y] = mat_in[13];
+ ret_pos[Q_Z] = mat_in[14];
+
+ return ret_pos;
+};
+
+Utils.addMat = function(mat1, mat2)
+{
+ var retMat = mat4.create();
+ for(var i = 0; i < 16; i++)
+ {
+ retMat[i] = mat1[i] + mat2[i];
+ }
+
+ return retMat;
+};
+
+Utils.mulMat = function(mat_in, factor)
+{
+ var retMat = mat4.create();
+ for(var i = 0; i < 16; i++)
+ {
+ retMat[i] = mat_in[i] * factor;
+ }
+
+ return retMat;
+};
+
+Utils.clamp = function(num, min, max) {
+ return num < min ? min : (num > max ? max : num);
+};
+
+ var newVec1 = vec3.create();
+ var newVec2 = vec3.create();
+
+Utils.vecInterp = function(vec1, vec2, ratio)
+{
+ newVec1 = vec3.scale(newVec1, vec1, 1.0 - ratio);
+ newVec2 = vec3.scale(newVec2, vec2, ratio);
+
+ var retVec = vec3.create();
+ retVec = vec3.add(retVec, newVec1, newVec2);
+
+ return retVec;
+};
+
+Utils.vec2Interp = function(vec_1, vec_2, ratio)
+{
+ var newVec1 = vec2.create();
+ var newVec2 = vec2.create();
+
+ newVec1 = vec2.scale(newVec1, vec_1, 1.0 - ratio);
+ newVec2 = vec2.scale(newVec2, vec_2, ratio);
+
+ var retVec = vec2.create();
+ retVec = vec2.add(retVec, newVec1, newVec2);
+
+ return retVec;
+};
+
+// MeshBone
+function MeshBone(key_in, start_pt_in, end_pt_in, parent_transform)
+{
+ this.key = key_in;
+ this.world_rest_angle = 0;
+ this.rest_parent_mat = mat4.create();
+ this.rest_parent_inv_mat = mat4.create();
+ this.rest_world_mat = mat4.create();
+ this.rest_world_inv_mat = mat4.create();
+ this.bind_world_mat = mat4.create();
+ this.bind_world_inv_mat = mat4.create();
+ this.parent_world_mat = mat4.create();
+ this.parent_world_inv_mat = mat4.create();
+ this.local_rest_start_pt = null;
+ this.local_rest_end_pt = null;
+
+ this.setRestParentMat(parent_transform, null);
+ this.setLocalRestStartPt(start_pt_in);
+ this.setLocalRestEndPt(end_pt_in);
+ this.setParentWorldInvMat(mat4.create());
+ this.setParentWorldMat(mat4.create());
+
+ this.local_binormal_dir = vec3.fromValues(0.0,0.0,1.0);
+ this.tag_id = 0;
+
+ this.children = [];
+};
+
+MeshBone.prototype.setRestParentMat = function(transform_in, inverse_in)
+{
+ this.rest_parent_mat = transform_in;
+ if(inverse_in == null) {
+ this.rest_parent_inv_mat = mat4.clone(this.rest_parent_mat);
+ //rest_parent_inv_mat.inv();
+ mat4.invert(this.rest_parent_inv_mat, this.rest_parent_inv_mat);
+ }
+ else {
+ this.rest_parent_inv_mat = mat4.clone(inverse_in);
+ }
+};
+
+MeshBone.prototype.setParentWorldMat = function(transform_in)
+{
+ this.parent_world_mat = transform_in;
+};
+
+MeshBone.prototype.setParentWorldInvMat = function(transform_in)
+{
+ this.parent_world_inv_mat = transform_in;
+};
+
+MeshBone.prototype.getLocalRestStartPt = function()
+{
+ return this.local_rest_start_pt;
+};
+
+MeshBone.prototype.getLocalRestEndPt = function()
+{
+ return this.local_rest_end_pt;
+};
+
+MeshBone.prototype.setLocalRestStartPt = function(world_pt_in)
+{
+ //local_rest_start_pt = Vector3.Transform(world_pt_in, rest_parent_inv_mat);
+ //this.local_rest_start_pt = world_pt_in.cpy().traMul(rest_parent_inv_mat);
+ this.local_rest_start_pt = vec3.create();
+ this.local_rest_start_pt = vec3.transformMat4(this.local_rest_start_pt, world_pt_in, this.rest_parent_inv_mat);
+ this.calcRestData();
+};
+
+MeshBone.prototype.setLocalRestEndPt = function(world_pt_in)
+{
+ //local_rest_end_pt = Vector3.Transform(world_pt_in, rest_parent_inv_mat);
+ //this.local_rest_end_pt = world_pt_in.cpy().traMul(rest_parent_inv_mat);
+ this.local_rest_end_pt = vec3.create();
+ this.local_rest_end_pt = vec3.transformMat4(this.local_rest_end_pt, world_pt_in, this.rest_parent_inv_mat);
+ this.calcRestData();
+};
+
+MeshBone.prototype.calcRestData = function()
+{
+ if(this.local_rest_start_pt == null || this.local_rest_end_pt == null)
+ {
+ return;
+ }
+
+ var calc = this.computeDirs(this.local_rest_start_pt, this.local_rest_end_pt);
+
+ this.local_rest_dir = calc.first;
+ this.local_rest_normal_dir = calc.second;
+
+ this.computeRestLength();
+};
+
+MeshBone.prototype.setWorldStartPt = function(world_pt_in)
+{
+ this.world_start_pt = world_pt_in;
+};
+
+MeshBone.prototype.setWorldEndPt = function(world_pt_in)
+{
+ this.world_end_pt = world_pt_in;
+};
+
+MeshBone.prototype.fixDQs = function(ref_dq)
+{
+ // if( Quaternion.Dot(world_dq.real, ref_dq.real) < 0) {
+ //if( world_dq.real.dot(ref_dq.real) < 0) {
+ if(quat.dot(this.world_dq.real, ref_dq.real) < 0) {
+ //this.world_dq.real = world_dq.real.cpy().mul(-1);
+ this.world_dq.real = quat.scale(this.world_dq.real, this.world_dq.real, -1);
+ //this.world_dq.imaginary = world_dq.imaginary.cpy().mul(-1);
+ this.world_dq.imaginary = quat.scale(this.world_dq.imaginary, this.world_dq.imaginary, -1);
+ }
+
+ for(var i = 0; i < this.children.length; i++) {
+ var cur_child = this.children[i];
+ cur_child.fixDQs(this.world_dq);
+ }
+};
+
+MeshBone.prototype.initWorldPts = function()
+{
+ this.setWorldStartPt(this.getWorldRestStartPt());
+ this.setWorldEndPt(this.getWorldRestEndPt());
+
+ for(var i = 0; i < this.children.length; i++) {
+ this.children[i].initWorldPts();
+ }
+};
+
+MeshBone.prototype.getWorldRestStartPt = function()
+{
+ //Vector3 ret_vec = Vector3.Transform(local_rest_start_pt, rest_parent_mat);
+ var tmp_mat = this.rest_parent_mat;
+ var ret_vec = vec3.create();
+ ret_vec = vec3.transformMat4(ret_vec, this.local_rest_start_pt, tmp_mat);
+
+ return ret_vec;
+};
+
+MeshBone.prototype.getWorldRestEndPt = function()
+{
+ // Vector3 ret_vec = Vector3.Transform(local_rest_end_pt, rest_parent_mat);
+ var tmp_mat = this.rest_parent_mat;
+ var ret_vec = vec3.create();
+ ret_vec = vec3.transformMat4(ret_vec, this.local_rest_end_pt, tmp_mat);
+
+ return ret_vec;
+};
+
+MeshBone.prototype.getWorldRestAngle = function()
+{
+ return this.world_rest_angle;
+};
+
+MeshBone.prototype.getWorldRestPos = function()
+{
+ return this.world_rest_pos;
+};
+
+MeshBone.prototype.getWorldStartPt = function()
+{
+ return this.world_start_pt;
+};
+
+MeshBone.prototype.getWorldEndPt = function()
+{
+ return this.world_end_pt;
+};
+
+MeshBone.prototype.getRestParentMat = function()
+{
+ return this.rest_parent_mat;
+};
+
+MeshBone.prototype.getRestWorldMat = function()
+{
+ return this.rest_world_mat;
+};
+
+MeshBone.prototype.getWorldDeltaMat = function()
+{
+ return this.world_delta_mat;
+};
+
+MeshBone.prototype.getParentWorldMat = function()
+{
+ return this.parent_world_mat;
+};
+
+MeshBone.prototype.getParentWorldInvMat = function()
+{
+ return this.parent_world_inv_mat;
+};
+
+MeshBone.prototype.getWorldDq = function()
+{
+ return this.world_dq;
+};
+
+MeshBone.prototype.computeRestParentTransforms = function()
+{
+ var cur_tangent = vec3.fromValues(this.local_rest_dir[Q_X], this.local_rest_dir[Q_Y], 0);
+ var cur_binormal = vec3.fromValues(this.local_binormal_dir[Q_X], this.local_binormal_dir[Q_Y], this.local_binormal_dir[Q_Z]);
+ var cur_normal = vec3.fromValues(this.local_rest_normal_dir[Q_X], this.local_rest_normal_dir[Q_Y], 0);
+
+ var cur_translate = mat4.create();
+ //cur_translate.setTranslation(local_rest_end_pt.x, local_rest_end_pt.y, 0);
+ mat4.translate(cur_translate, cur_translate, this.local_rest_end_pt);
+
+ var cur_rotate = mat4.create();
+ /*
+ cur_rotate.Right = cur_tangent;
+ cur_rotate.Up = cur_normal;
+ cur_rotate.Backward = cur_binormal;
+ */
+ //cur_rotate.set(cur_tangent, cur_normal, cur_binormal, new Vector3(0,0,0));
+ cur_rotate = Utils.setAxisMatrix(cur_tangent, cur_normal, cur_binormal);
+ //cur_rotate.tra();
+
+ //Matrix4 cur_final = cur_translate.cpy().mul(cur_rotate);
+ var cur_final = mat4.create();
+ cur_final = mat4.multiply(cur_final, cur_translate, cur_rotate);
+
+ //rest_world_mat = rest_parent_mat.cpy().mul(cur_final);
+ this.rest_world_mat = mat4.create();
+ this.rest_world_mat = mat4.multiply(this.rest_world_mat, this.rest_parent_mat, cur_final);
+
+ this.rest_world_inv_mat = mat4.clone(this.rest_world_mat);
+ this.rest_world_inv_mat = mat4.invert(this.rest_world_inv_mat, this.rest_world_inv_mat);
+ //Matrix4.Invert(ref rest_world_mat, out rest_world_inv_mat);
+
+// var world_rest_dir = getWorldRestEndPt().cpy().sub( getWorldRestStartPt());
+ var world_rest_dir = vec3.clone(this.getWorldRestEndPt());
+ world_rest_dir = vec3.subtract(world_rest_dir, world_rest_dir, this.getWorldRestStartPt());
+
+ world_rest_dir = vec3.normalize(world_rest_dir, world_rest_dir);
+ this.world_rest_pos = this.getWorldRestStartPt();
+
+
+ var bind_translate = mat4.create();
+ //bind_translate.setTranslation(getWorldRestStartPt().x, getWorldRestStartPt().y, 0);
+ bind_translate = mat4.translate(bind_translate, bind_translate, this.getWorldRestStartPt());
+
+ var tVec = vec3.create();
+ tVec = vec3.sub(tVec, this.getWorldRestEndPt(), this.getWorldRestStartPt());
+ var bind_rotate = Utils.calcRotateMat(tVec);
+ //Matrix4 cur_bind_final = bind_translate.cpy().mul(bind_rotate);
+ var cur_bind_final = mat4.create();
+ cur_bind_final = mat4.multiply(cur_bind_final, bind_translate, bind_rotate);
+
+ this.bind_world_mat = mat4.clone(cur_bind_final);
+ this.bind_world_inv_mat = mat4.clone(this.bind_world_mat);
+ this.bind_world_inv_mat = mat4.invert(this.bind_world_inv_mat, this.bind_world_inv_mat);
+ //Matrix4.Invert(ref bind_world_mat, out bind_world_inv_mat);
+
+ for(var i = 0; i < this.children.length; i++) {
+ var cur_bone = this.children[i];
+ cur_bone.setRestParentMat(this.rest_world_mat, this.rest_world_inv_mat);
+ cur_bone.computeRestParentTransforms();
+ }
+};
+
+MeshBone.prototype.computeParentTransforms = function()
+{
+ var translate_parent = mat4.create();
+ translate_parent = mat4.translate(translate_parent, translate_parent, this.getWorldEndPt());
+
+ var tVec = vec3.create();
+ tVec = vec3.subtract(tVec, this.getWorldEndpt(), this.getWorldStartPt());
+ var rotate_parent = Utils.calcRotateMat(tVec);
+
+ var final_transform = mat4.create();
+ final_transform = mat4.multiply(final_transform, translate_parent, rotate_parent);
+
+ var final_inv_transform = mat4.clone(final_transform);
+ //final_inv_transform.inv();
+ final_inv_transform = mat4.invert(final_inv_transform, final_inv_transform);
+
+ for(var i = 0; i < children.length; i++) {
+ var cur_bone = children[i];
+ cur_bone.setParentWorldMat(final_transform);
+ cur_bone.setParentWorldInvMat(final_inv_transform);
+ cur_bone.computeParentTransforms();
+ }
+};
+
+MeshBone.prototype.computeWorldDeltaTransforms = function()
+{
+ var calc = this.computeDirs(this.world_start_pt, this.world_end_pt);
+ var cur_tangent = vec3.fromValues(calc["first"][Q_X], calc["first"][Q_Y], 0);
+ var cur_normal = vec3.fromValues(calc["second"][Q_X], calc["second"][Q_Y], 0);
+ var cur_binormal = vec3.fromValues(this.local_binormal_dir[Q_X], this.local_binormal_dir[Q_Y], this.local_binormal_dir[Q_Z]);
+
+ var cur_rotate = mat4.create();
+ /*
+ cur_rotate.Right = cur_tangent;
+ cur_rotate.Up = cur_normal;
+ cur_rotate.Backward = cur_binormal;
+ */
+ //cur_rotate.set(cur_tangent, cur_normal, cur_binormal, new Vector3(0,0,0));
+ cur_rotate = Utils.setAxisMatrix(cur_tangent, cur_normal, cur_binormal);
+
+ //cur_rotate.tra();
+
+ var cur_translate = mat4.create();
+ //cur_translate.setTranslation(world_start_pt.x, world_start_pt.y, 0);
+ cur_translate = mat4.translate(cur_translate, cur_translate, this.world_start_pt);
+
+ /*
+ world_delta_mat = (cur_translate * cur_rotate)
+ * bind_world_inv_mat;
+ */
+
+ this.world_delta_mat = mat4.create();
+// world_delta_mat = (cur_translate.cpy().mul(cur_rotate)).mul(bind_world_inv_mat);
+ this.world_delta_mat = mat4.multiply(this.world_delta_mat, cur_translate, cur_rotate);
+ this.world_delta_mat = mat4.multiply(this.world_delta_mat, this.world_delta_mat, this.bind_world_inv_mat);
+
+
+ // Quaternion cur_quat = XnaGeometry.Quaternion.CreateFromRotationMatrix(world_delta_mat);
+ //var tmpMat = mat3.create();
+ //tmpMat = mat3.fromMat4(tmpMat, this.world_delta_mat);
+ var cur_quat = Utils.matrixToQuat(this.world_delta_mat);
+
+
+ var tmp_pos = Utils.getMatTranslate(this.world_delta_mat);
+ this.world_dq = new dualQuat();
+ this.world_dq.createFromData(cur_quat, tmp_pos);
+
+ for(var i = 0; i < this.children.length; i++) {
+ var cur_bone = this.children[i];
+ cur_bone.computeWorldDeltaTransforms();
+ }
+};
+
+MeshBone.prototype.addChild = function(bone_in)
+{
+ bone_in.setRestParentMat(this.rest_world_mat, this.rest_world_inv_mat);
+ this.children.push(bone_in);
+};
+
+MeshBone.prototype.getChildren = function()
+{
+ return this.children;
+};
+
+MeshBone.prototype.hasBone = function(bone_in)
+{
+ for(var i = 0; i < this.children.length; i++) {
+ var cur_bone = this.children[i];
+ if(cur_bone == bone_in) {
+ return true;
+ }
+ }
+
+ return false;
+};
+
+MeshBone.prototype.getChildByKey = function(search_key)
+{
+ if(this.key === search_key) {
+ return this;
+ }
+
+ var ret_data = null;
+ for(var i = 0; i < this.children.length; i++) {
+ var cur_bone = this.children[i];
+
+ var result = cur_bone.getChildByKey(search_key);
+ if(result != null) {
+ ret_data = result;
+ break;
+ }
+ }
+
+ return ret_data;
+};
+
+MeshBone.prototype.getKey = function()
+{
+ return this.key;
+};
+
+MeshBone.prototype.getAllBoneKeys = function()
+{
+ var ret_data = [];
+ ret_data.push(this.getKey());
+
+ for(var i = 0; i < this.children.length; i++) {
+ var append_data = this.children[i].getAllBoneKeys();
+ ret_data = ret_data.concat(append_data);
+ }
+
+ return ret_data;
+};
+
+MeshBone.prototype.getAllChildren = function()
+{
+ var ret_data = [];
+ ret_data.push(this);
+ for(var i = 0; i < this.children.length; i++) {
+ var append_data = this.children[i].getAllChildren();
+ ret_data = ret_data.concat(append_data);
+ }
+
+ return ret_data;
+};
+
+MeshBone.prototype.getBoneDepth = function(bone_in, depth)
+{
+ if(bone_in == this) {
+ return depth;
+ }
+
+ for(var i = 0; i < this.children.length; i++) {
+ var cur_bone = this.children[i];
+ var ret_val = cur_bone.getBoneDepth(bone_in, depth + 1);
+ if(ret_val != -1) {
+ return ret_val;
+ }
+ }
+
+ return -1;
+};
+
+MeshBone.prototype.isLeaf = function()
+{
+ return this.children.length == 0;
+};
+
+MeshBone.prototype.deleteChildren = function()
+{
+ for(var i = 0; i < this.children.length; i++) {
+ var cur_bone = this.children[i];
+ cur_bone.deleteChildren();
+ }
+
+ this.children = [];
+};
+
+MeshBone.prototype.setTagId = function(value_in)
+{
+ this.tag_id = value_in;
+};
+
+MeshBone.prototype.getTagId = function()
+{
+ return this.tag_id;
+};
+
+MeshBone.prototype.computeDirs = function(start_pt, end_pt)
+{
+ var tangent = vec3.create();
+ tangent = vec3.subtract(tangent, end_pt, start_pt);
+ tangent = vec3.normalize(tangent, tangent);
+
+ var normal = Utils.rotateVec_90(tangent);
+
+ var retData = {};
+ retData["first"] = tangent;
+ retData["second"] = normal;
+
+ return retData;
+};
+
+MeshBone.prototype.computeRestLength = function()
+{
+ var tmp_dir = vec3.create();
+ //Vector3 tmp_dir = local_rest_end_pt.cpy().sub(local_rest_start_pt);
+ tmp_dir = vec3.subtract(tmp_dir, this.local_rest_end_pt, this.local_rest_start_pt);
+
+ this.rest_length = vec3.length(tmp_dir);
+};
+
+// MeshRenderRegion
+function MeshRenderRegion(indices_in, rest_pts_in, uvs_in, start_pt_index_in, end_pt_index_in,
+ start_index_in, end_index_in)
+{
+ this.store_indices = indices_in;
+ this.store_rest_pts = rest_pts_in;
+ this.store_uvs = uvs_in;
+
+ this.use_local_displacements = false;
+ this.use_post_displacements = false;
+ this.use_uv_warp = false;
+ this.uv_warp_local_offset = vec2.fromValues(0,0);
+ this.uv_warp_global_offset = vec2.fromValues(0,0);
+ this.uv_warp_scale = vec2.fromValues(1,1);
+ this.start_pt_index = start_pt_index_in;
+ this.end_pt_index = end_pt_index_in;
+ this.start_index = start_index_in;
+ this.end_index = end_index_in;
+ this.main_bone = null;
+ this.local_displacements = [];
+ this.post_displacements = [];
+ this.uv_warp_ref_uvs = [];
+ this.normal_weight_map = {};
+ this.fast_normal_weight_map = [];
+ this.fast_bones_map = [];
+ this.relevant_bones_indices = [];
+ this.use_dq = true;
+ this.tag_id = -1;
+
+ this.initUvWarp();
+};
+
+MeshRenderRegion.prototype.getIndicesIndex = function()
+{
+ // return store_indices + (start_index);
+ return this.start_index;
+};
+
+MeshRenderRegion.prototype.getRestPtsIndex = function()
+{
+ // return store_rest_pts + (3 * start_pt_index);
+ return 3 * this.start_pt_index;
+};
+
+MeshRenderRegion.prototype.getUVsIndex = function()
+{
+ // return store_uvs + (2 * start_pt_index);
+ return 2 * this.start_pt_index;
+};
+
+MeshRenderRegion.prototype.getNumPts = function()
+{
+ return this.end_pt_index - this.start_pt_index + 1;
+};
+
+MeshRenderRegion.prototype.getStartPtIndex = function()
+{
+ return this.start_pt_index;
+};
+
+MeshRenderRegion.prototype.getEndPtIndex = function()
+{
+ return this.end_pt_index;
+};
+
+MeshRenderRegion.prototype.getNumIndices = function()
+{
+ return this.end_index - this.start_index + 1;
+};
+
+MeshRenderRegion.prototype.getStartIndex = function()
+{
+ return this.start_index;
+};
+
+MeshRenderRegion.prototype.getEndIndex = function()
+{
+ return this.end_index;
+};
+
+var accum_dq = new dualQuat();
+var accum_mat = mat4.create();
+var final_pt = vec3.create();
+var tmp1 = vec3.create();
+var tmp2 = vec3.create();
+
+MeshRenderRegion.prototype.poseFinalPts = function(output_pts, output_start_index, bones_map)
+{
+ var read_pt_index = this.getRestPtsIndex();
+ var write_pt_index = output_start_index;
+
+ // point posing
+ for(var i = 0; i < 16; i++)
+ {
+ accum_mat[i] = 0.0;
+ }
+
+ var boneKeys = Object.keys(bones_map);
+ var boneKeyLength = boneKeys.length;
+
+ for(var i = 0, l = this.getNumPts(); i < l; i++) {
+ var cur_rest_pt =
+ vec3.set(tmp1, this.store_rest_pts[0 + read_pt_index],
+ this.store_rest_pts[1 + read_pt_index],
+ this.store_rest_pts[2 + read_pt_index]);
+ // vec3.fromValues(this.store_rest_pts[0 + read_pt_index],
+ // this.store_rest_pts[1 + read_pt_index],
+ // this.store_rest_pts[2 + read_pt_index]);
+
+ if(this.use_local_displacements == true) {
+ cur_rest_pt[Q_X] += this.local_displacements[i][Q_X];
+ cur_rest_pt[Q_Y] += this.local_displacements[i][Q_Y];
+ }
+
+ for(var j = 0; j < 16; j++)
+ {
+ accum_mat[j] = 0.0;
+ }
+ // reuse
+ // var accum_dq = new dualQuat();
+ accum_dq.reset();
+
+ var curBoneIndices = this.relevant_bones_indices[i];
+ var relevantIndicesLength = curBoneIndices.length;
+ for (var j = 0; j < relevantIndicesLength; j++)
+ {
+ var idx_lookup = curBoneIndices[j];
+ var cur_bone = this.fast_bones_map[idx_lookup];
+ var cur_weight_val = this.fast_normal_weight_map[idx_lookup][i];
+ var cur_im_weight_val = cur_weight_val;
+
+ var world_dq = cur_bone.getWorldDq();
+ accum_dq.add(world_dq, cur_weight_val, cur_im_weight_val);
+ }
+
+ accum_dq.normalize();
+ var tmp_pt = vec3.set(tmp2, cur_rest_pt[Q_X], cur_rest_pt[Q_Y], cur_rest_pt[Q_Z]);
+ // var tmp_pt = vec3.fromValues(cur_rest_pt[Q_X], cur_rest_pt[Q_Y], cur_rest_pt[Q_Z]);
+ final_pt = accum_dq.transform(tmp_pt);
+
+ // debug start
+
+ // debug end
+
+ if(this.use_post_displacements == true) {
+ final_pt[Q_X] += this.post_displacements[i][Q_X];
+ final_pt[Q_Y] += this.post_displacements[i][Q_Y];
+ }
+
+ output_pts[0 + write_pt_index] = final_pt[Q_X];
+ output_pts[1 + write_pt_index] = final_pt[Q_Y];
+ output_pts[2 + write_pt_index] = final_pt[Q_Z];
+
+
+
+ read_pt_index += 3;
+ write_pt_index += 3;
+ }
+
+ // uv warping
+ if(this.use_uv_warp == true) {
+ this.runUvWarp();
+ }
+};
+
+MeshRenderRegion.prototype.setMainBoneKey = function(key_in)
+{
+ this.main_bone_key = key_in;
+};
+
+MeshRenderRegion.prototype.determineMainBone = function(root_bone_in)
+{
+ this.main_bone = root_bone_in.getChildByKey(this.main_bone_key);
+};
+
+MeshRenderRegion.prototype.setUseDq = function(flag_in)
+{
+ this.use_dq = flag_in;
+};
+
+MeshRenderRegion.prototype.setName = function(name_in)
+{
+ this.name = name_in;
+};
+
+MeshRenderRegion.prototype.getName = function()
+{
+ return this.name;
+};
+
+MeshRenderRegion.prototype.setUseLocalDisplacements = function(flag_in)
+{
+ this.use_local_displacements = flag_in;
+ if((this.local_displacements.length != this.getNumPts())
+ && this.use_local_displacements)
+ {
+ this.local_displacements = [];
+ for(var i = 0; i < this.getNumPts(); i++) {
+ this.local_displacements.push (vec2.create());
+ }
+ }
+};
+
+MeshRenderRegion.prototype. getUseLocalDisplacements = function()
+{
+ return this.use_local_displacements;
+};
+
+MeshRenderRegion.prototype.setUsePostDisplacements = function(flag_in)
+{
+ this.use_post_displacements = flag_in;
+ if((this.post_displacements.length != this.getNumPts())
+ && this.use_post_displacements)
+ {
+ this.post_displacements = [];
+ for(var i = 0; i < this.getNumPts(); i++) {
+ this.post_displacements.push(vec2.create());
+ }
+ }
+};
+
+MeshRenderRegion.prototype.getUsePostDisplacements = function()
+{
+ return this.use_post_displacements;
+};
+
+MeshRenderRegion.prototype.getRestLocalPt = function(index_in)
+{
+ var read_pt_index = this.getRestPtsIndex() + (3 * index_in);
+ var return_pt = vec2.fromValues(this.store_rest_pts[0 + read_pt_index],
+ this.store_rest_pts[1 + read_pt_index]);
+ return return_pt;
+};
+
+MeshRenderRegion.prototype.getLocalIndex = function(index_in)
+{
+ var read_index = this.getIndicesIndex() + index_in;
+ return this.store_indices[read_index];
+};
+
+MeshRenderRegion.prototype.clearLocalDisplacements = function()
+{
+ for(var i = 0; i < this.local_displacements.length; i++) {
+ this.local_displacements[i] = vec2.create();
+ }
+};
+
+MeshRenderRegion.prototype.clearPostDisplacements = function()
+{
+ for(var i = 0; i < this.post_displacements.length; i++) {
+ this.post_displacements[i] = vec2.create();
+ }
+};
+
+MeshRenderRegion.prototype.setUseUvWarp = function(flag_in)
+{
+ this.use_uv_warp = flag_in;
+ if(this.use_uv_warp == false) {
+ this.restoreRefUv();
+ }
+};
+
+MeshRenderRegion.prototype. getUseUvWarp = function()
+{
+ return this.use_uv_warp;
+};
+
+MeshRenderRegion.prototype.setUvWarpLocalOffset = function(vec_in)
+{
+ this.uv_warp_local_offset = vec_in;
+};
+
+MeshRenderRegion.prototype.setUvWarpGlobalOffset = function(vec_in)
+{
+ this.uv_warp_global_offset = vec_in;
+};
+
+MeshRenderRegion.prototype.setUvWarpScale = function(vec_in)
+{
+ this.uv_warp_scale = vec_in;
+};
+
+MeshRenderRegion.prototype. getUvWarpLocalOffset = function()
+{
+ return this.uv_warp_local_offset;
+};
+
+MeshRenderRegion.prototype. getUvWarpGlobalOffset = function()
+{
+ return this.uv_warp_global_offset;
+};
+
+MeshRenderRegion.prototype. getUvWarpScale = function()
+{
+ return this.uv_warp_scale;
+};
+
+MeshRenderRegion.prototype.runUvWarp = function()
+{
+ var cur_uvs_index = this.getUVsIndex();
+ for(var i = 0; i < this.uv_warp_ref_uvs.length; i++) {
+ var set_uv = vec2.clone(this.uv_warp_ref_uvs[i]);
+
+
+ set_uv = vec2.subtract(set_uv, set_uv, this.uv_warp_local_offset);
+ set_uv[Q_X] *= this.uv_warp_scale[Q_X];
+ set_uv[Q_Y] *= this.uv_warp_scale[Q_Y];
+ set_uv = vec2.add(set_uv, set_uv, this.uv_warp_global_offset);
+
+
+ /*
+ set_uv.sub(uv_warp_local_offset);
+ set_uv.scl(uv_warp_scale);
+ set_uv.add(uv_warp_global_offset);
+ */
+
+
+ this.store_uvs[0 + cur_uvs_index] = set_uv[Q_X];
+ this.store_uvs[1 + cur_uvs_index] = set_uv[Q_Y];
+
+
+ cur_uvs_index += 2;
+ }
+};
+
+MeshRenderRegion.prototype.restoreRefUv = function()
+{
+ var cur_uvs_index = this.getUVsIndex();
+ for(var i = 0; i < this.uv_warp_ref_uvs.length; i++) {
+ var set_uv = this.uv_warp_ref_uvs[i];
+
+ this.store_uvs[0 + cur_uvs_index] = set_uv[Q_X];
+ this.store_uvs[1 + cur_uvs_index] = set_uv[Q_Y];
+
+ cur_uvs_index += 2;
+ }
+};
+
+MeshRenderRegion.prototype.getTagId = function()
+{
+ return this.tag_id;
+};
+
+MeshRenderRegion.prototype.setTagId = function(value_in)
+{
+ this.tag_id = value_in;
+};
+
+MeshRenderRegion.prototype.initFastNormalWeightMap = function(bones_map)
+{
+ this.relevant_bones_indices = [];
+
+ // fast normal weight map lookup, avoids hash lookups
+ for (var cur_key in bones_map) {
+ var values = this.normal_weight_map[cur_key];
+ this.fast_normal_weight_map.push(values);
+ }
+
+ // relevant bone indices
+ var cutoff_val = 0.05;
+ for(var i = 0; i < this.getNumPts(); i++) {
+ var curIndicesArray = [];
+ for (var j = 0; j < this.fast_normal_weight_map.length; j++)
+ {
+ var cur_val = this.fast_normal_weight_map[j][i];
+ if(cur_val > cutoff_val)
+ {
+ curIndicesArray.push(j);
+ }
+ }
+
+ this.relevant_bones_indices.push(curIndicesArray);
+ }
+
+ // fast bone map lookup
+ for (var cur_key in bones_map) {
+ var cur_bone = bones_map[cur_key];
+ this.fast_bones_map.push(cur_bone);
+ }
+};
+
+MeshRenderRegion.prototype.initUvWarp = function()
+{
+ var cur_uvs_index = this.getUVsIndex();
+ // uv_warp_ref_uvs = new java.util.Vector(new Vector2[getNumPts()]);
+ this.uv_warp_ref_uvs = [];;
+
+ for(var i = 0; i < this.getNumPts(); i++) {
+ this.uv_warp_ref_uvs.push(vec2.create());
+
+ this.uv_warp_ref_uvs[i] = vec2.fromValues(this.store_uvs[cur_uvs_index],
+ this.store_uvs[cur_uvs_index + 1]);
+
+
+
+ cur_uvs_index += 2;
+ }
+};
+
+
+// MeshRenderBoneComposition
+function MeshRenderBoneComposition()
+{
+ this.root_bone = null;
+ this.bones_map = {};
+ this.regions = [];
+ this.regions_map = {};
+};
+
+MeshRenderBoneComposition.prototype.addRegion = function(region_in)
+{
+ this.regions.push(region_in);
+};
+
+MeshRenderBoneComposition.prototype.setRootBone = function(root_bone_in)
+{
+ this.root_bone = root_bone_in;
+};
+
+MeshRenderBoneComposition.prototype.getRootBone = function()
+{
+ return this.root_bone;
+};
+
+MeshRenderBoneComposition.prototype.initBoneMap = function()
+{
+ this.bones_map = MeshRenderBoneComposition.genBoneMap(this.root_bone);
+};
+
+MeshRenderBoneComposition.prototype.initRegionsMap = function()
+{
+ this.regions_map = {};
+ for(var i = 0; i < this.regions.length; i++) {
+ cur_key = this.regions[i].getName();
+ this.regions_map[cur_key] = this.regions[i];
+ }
+};
+
+MeshRenderBoneComposition.genBoneMap = function(input_bone)
+{
+ var ret_map = {};
+ var all_keys = input_bone.getAllBoneKeys();
+ for(var i = 0; i < all_keys.length; i++) {
+ var cur_key = all_keys[i];
+ ret_map[cur_key] = input_bone.getChildByKey(cur_key);
+ }
+
+ return ret_map;
+};
+
+MeshRenderBoneComposition.prototype.getBonesMap = function()
+{
+ return this.bones_map;
+};
+
+MeshRenderBoneComposition.prototype.getRegionsMap = function()
+{
+ return this.regions_map;
+};
+
+MeshRenderBoneComposition.prototype.getRegions = function()
+{
+ return this.regions;
+};
+
+MeshRenderBoneComposition.prototype.getRegionWithId = function(id_in)
+{
+ for(var i = 0; i < this.regions.length; i++) {
+ var cur_region = this.regions[i];
+ if(cur_region.getTagId() == id_in) {
+ return cur_region;
+ }
+ }
+
+ return null;
+};
+
+MeshRenderBoneComposition.prototype.resetToWorldRestPts = function()
+{
+ this.getRootBone().initWorldPts();
+};
+
+MeshRenderBoneComposition.prototype.updateAllTransforms = function(update_parent_xf)
+{
+ if(update_parent_xf) {
+ this.getRootBone().computeParentTransforms();
+ }
+
+ this.getRootBone().computeWorldDeltaTransforms();
+ this.getRootBone().fixDQs(this.getRootBone().getWorldDq());
+};
+
+// MeshBoneCache
+function MeshBoneCache(key_in)
+{
+ this.key = key_in;
+};
+
+MeshBoneCache.prototype.setWorldStartPt = function(pt_in) {
+ this.world_start_pt = pt_in;
+};
+
+MeshBoneCache.prototype.setWorldEndPt = function(pt_in) {
+ this.world_end_pt = pt_in;
+};
+
+MeshBoneCache.prototype.getWorldStartPt = function() {
+ return this.world_start_pt;
+};
+
+MeshBoneCache.prototype.getWorldEndPt = function() {
+ return this.world_end_pt;
+};
+
+MeshBoneCache.prototype.getKey = function() {
+ return this.key;
+};
+
+// MeshDisplacementCache
+function MeshDisplacementCache(key_in)
+{
+ this.key = key_in;
+ this.local_displacements = [];
+ this.post_displacements = [];
+};
+
+MeshDisplacementCache.prototype.setLocalDisplacements = function(displacements_in)
+{
+ this.local_displacements = displacements_in;
+};
+
+MeshDisplacementCache.prototype.setPostDisplacements = function(displacements_in)
+{
+ this.post_displacements = displacements_in;
+};
+
+MeshDisplacementCache.prototype.getKey = function() {
+ return this.key;
+};
+
+MeshDisplacementCache.prototype.getLocalDisplacements = function()
+{
+ return this.local_displacements;
+};
+
+MeshDisplacementCache.prototype.getPostDisplacements = function()
+{
+ return this.post_displacements;
+};
+
+
+// MeshUVWarpCache
+function MeshUVWarpCache(key_in)
+{
+ this.uv_warp_global_offset = vec2.create();
+ this.uv_warp_local_offset = vec2.create();
+ this.uv_warp_scale = vec2.fromValues(-1,-1);
+ this.key = key_in;
+ this.enabled = false;
+};
+
+MeshUVWarpCache.prototype.setUvWarpLocalOffset = function(vec_in)
+{
+ this.uv_warp_local_offset = vec_in;
+};
+
+MeshUVWarpCache.prototype.setUvWarpGlobalOffset = function(vec_in)
+{
+ this.uv_warp_global_offset = vec_in;
+};
+
+MeshUVWarpCache.prototype.setUvWarpScale = function(vec_in)
+{
+ this.uv_warp_scale = vec_in;
+};
+
+MeshUVWarpCache.prototype.getUvWarpLocalOffset = function()
+{
+ return this.uv_warp_local_offset;
+};
+
+MeshUVWarpCache.prototype.getUvWarpGlobalOffset = function()
+{
+ return this.uv_warp_global_offset;
+};
+
+MeshUVWarpCache.prototype.getUvWarpScale = function()
+{
+ return this.uv_warp_scale;
+};
+
+MeshUVWarpCache.prototype.getKey = function() {
+ return this.key;
+};
+
+MeshUVWarpCache.prototype.setEnabled = function(flag_in)
+{
+ this.enabled = flag_in;
+};
+
+MeshUVWarpCache.prototype.getEnabled = function() {
+ return this.enabled;
+};
+
+// MeshBoneCacheManager
+function MeshBoneCacheManager()
+{
+ this.is_ready = false;
+ this.bone_cache_table = null;
+ this.bone_cache_data_ready = null;
+ this.bone_cache_table = [];
+ this.bone_cache_data_ready = [];
+};
+
+MeshBoneCacheManager.prototype.init = function(start_time_in, end_time_in)
+{
+ this.start_time = start_time_in;
+ this.end_time = end_time_in;
+
+ var num_frames = this.end_time - this.start_time + 1;
+ this.bone_cache_table = [];
+
+ this.bone_cache_data_ready = [];
+ for(var i = 0; i < num_frames; i++) {
+ this.bone_cache_table.push([]);
+ this.bone_cache_data_ready.push(false);
+ }
+
+ this.is_ready = false;
+};
+
+MeshBoneCacheManager.prototype.getStartTime = function()
+{
+ return this.start_time;
+};
+
+MeshBoneCacheManager.prototype.getEndime = function()
+{
+ return this.end_time;
+};
+
+MeshBoneCacheManager.prototype.getIndexByTime = function(time_in)
+{
+ var retval = time_in - this.start_time;
+ retval = Utils.clamp(retval, 0, (this.bone_cache_table.length) - 1);
+
+ return retval;
+};
+
+MeshBoneCacheManager.prototype.retrieveValuesAtTime = function(time_in, bone_map)
+{
+ var base_time = this.getIndexByTime(Math.floor(time_in));
+ var end_time = this.getIndexByTime(Math.ceil(time_in));
+
+ var ratio = (time_in - Math.floor(time_in));
+
+ if(this.bone_cache_data_ready.length == 0) {
+ return;
+ }
+
+ if((this.bone_cache_data_ready[base_time] == false)
+ || ((this.bone_cache_data_ready[end_time] == false)))
+ {
+ return;
+ }
+
+ var base_cache = this.bone_cache_table[base_time];
+ var end_cache = this.bone_cache_table[end_time];
+
+ for(var i = 0, l = base_cache.length; i < l; i++) {
+ var base_data = base_cache[i];
+ var end_data = end_cache[i];
+ var cur_key = base_data.getKey();
+
+ var final_world_start_pt = Utils.vecInterp(base_data.getWorldStartPt(), end_data.getWorldStartPt(), ratio);
+
+ var final_world_end_pt = Utils.vecInterp(base_data.getWorldEndPt(), end_data.getWorldEndPt(), ratio);
+
+ /*
+ Vector3 final_world_start_pt = ((1.0f - ratio) * base_data.getWorldStartPt()) +
+ (ratio * end_data.getWorldStartPt());
+
+ Vector3 final_world_end_pt = ((1.0f - ratio) * base_data.getWorldEndPt()) +
+ (ratio * end_data.getWorldEndPt());
+ */
+
+ bone_map[cur_key].setWorldStartPt(final_world_start_pt);
+ bone_map[cur_key].setWorldEndPt(final_world_end_pt);
+ }
+};
+
+MeshBoneCacheManager.prototype.allReady = function()
+{
+ if(this.is_ready) {
+ return true;
+ }
+ else {
+ var num_frames = this.end_time - this.start_time + 1;
+ var ready_cnt = 0;
+ for(var i = 0; i < this.bone_cache_data_ready.size(); i++) {
+ if(this.bone_cache_data_ready[i]) {
+ ready_cnt++;
+ }
+ }
+
+ if(ready_cnt == num_frames) {
+ this.is_ready = true;
+ }
+ }
+
+ return this.is_ready;
+};
+
+MeshBoneCacheManager.prototype.makeAllReady = function()
+{
+ for(var i = 0; i < this.bone_cache_data_ready.length; i++) {
+ this.bone_cache_data_ready[i] = true;
+ }
+};
+
+// MeshDisplacementCacheManager
+function MeshDisplacementCacheManager()
+{
+ this.is_ready = false;
+ this.displacement_cache_table = null;
+ this.displacement_cache_data_ready = null;
+ this.displacement_cache_table = [];
+ this.displacement_cache_data_ready = [];
+};
+
+MeshDisplacementCacheManager.prototype.init = function(start_time_in, end_time_in)
+{
+ this.start_time = start_time_in;
+ this.end_time = end_time_in;
+
+ var num_frames = this.end_time - this.start_time + 1;
+ this.displacement_cache_table = [];
+
+ this.displacement_cache_data_ready = [];
+ for(var i = 0; i < num_frames; i++) {
+ this.displacement_cache_table.push([]);
+ this.displacement_cache_data_ready.push(false);
+ }
+
+ this.is_ready = false;
+};
+
+MeshDisplacementCacheManager.prototype.getStartTime = function()
+{
+ return this.start_time;
+};
+
+MeshDisplacementCacheManager.prototype.getEndime = function()
+{
+ return this.end_time;
+};
+
+MeshDisplacementCacheManager.prototype.getIndexByTime = function(time_in)
+{
+ var retval = time_in - this.start_time;
+ retval = Utils.clamp(retval, 0, (this.displacement_cache_table.length) - 1);
+
+ return retval;
+};
+
+MeshDisplacementCacheManager.prototype.retrieveValuesAtTime = function(time_in, regions_map)
+{
+ var base_time = this.getIndexByTime(Math.floor(time_in));
+ var end_time = this.getIndexByTime(Math.ceil(time_in));
+
+ var ratio = (time_in - Math.floor(time_in));
+
+ if(this.displacement_cache_data_ready.length == 0) {
+ return;
+ }
+
+ if((this.displacement_cache_data_ready[base_time] == false)
+ || (this.displacement_cache_data_ready[end_time] == false))
+ {
+ return;
+ }
+
+ var base_cache = this.displacement_cache_table[base_time];
+ var end_cache = this.displacement_cache_table[end_time];
+
+ for(var i = 0; i < base_cache.length; i++) {
+ var base_data = base_cache[i];
+ var end_data = end_cache[i];
+ var cur_key = base_data.getKey();
+
+ var set_region = regions_map[cur_key];
+
+ if(set_region.getUseLocalDisplacements()) {
+ var displacements =
+ set_region.local_displacements;
+ if((base_data.getLocalDisplacements().length == displacements.length)
+ && (end_data.getLocalDisplacements().length == displacements.length))
+ {
+ for(var j = 0; j < displacements.length; j++) {
+ var interp_val = Utils.vec2Interp(base_data.getLocalDisplacements()[j],
+ end_data.getLocalDisplacements()[j],
+ ratio);
+
+ /*
+ Vector2 interp_val =
+ ((1.0f - ratio) * base_data.getLocalDisplacements().get(j)) +
+ (ratio * end_data.getLocalDisplacements().get(j));
+ */
+
+ displacements[j] = interp_val;
+ }
+ }
+ else {
+ for(var j = 0; j < displacements.length; j++) {
+ displacements[j] = vec2.create();
+ }
+ }
+ }
+
+ if(set_region.getUsePostDisplacements()) {
+ var displacements =
+ set_region.post_displacements;
+ if((base_data.getPostDisplacements().length == displacements.length)
+ && (end_data.getPostDisplacements().length == displacements.length))
+ {
+
+ for(var j = 0; j < displacements.length; j++) {
+ var interp_val = Utils.vec2Interp(base_data.getPostDisplacements()[j],
+ end_data.getPostDisplacements()[j],
+ ratio);
+
+ /*
+ Vector2 interp_val =
+ ((1.0f - ratio) * base_data.getPostDisplacements()[j]) +
+ (ratio * end_data.getPostDisplacements()[j]);
+ */
+ displacements[j] = interp_val;
+ }
+ }
+ else {
+ for(var j = 0; j < displacements.length; j++) {
+ displacements.set[j] = vec2.create();
+ }
+ }
+ }
+ }
+};
+
+MeshDisplacementCacheManager.prototype.allReady = function()
+{
+ if(this.is_ready) {
+ return true;
+ }
+ else {
+ var num_frames = this.end_time - this.start_time + 1;
+ var ready_cnt = 0;
+ for(var i = 0; i < this.displacement_cache_data_ready.length; i++) {
+ if(this.displacement_cache_data_ready[i]) {
+ ready_cnt++;
+ }
+ }
+
+ if(ready_cnt == num_frames) {
+ this.is_ready = true;
+ }
+ }
+
+ return this.is_ready;
+};
+
+MeshDisplacementCacheManager.prototype.makeAllReady = function()
+{
+ for(var i = 0; i < this.displacement_cache_data_ready.length; i++) {
+ this.displacement_cache_data_ready[i] = true;
+ }
+};
+
+// MeshUVWarpCacheManager
+function MeshUVWarpCacheManager()
+{
+ this.is_ready = false;
+ this.uv_cache_table = null;
+ this.uv_cache_data_ready = null;
+ this.uv_cache_table = [];
+ this.uv_cache_data_ready = [];
+};
+
+MeshUVWarpCacheManager.prototype.init = function(start_time_in, end_time_in)
+{
+ this.start_time = start_time_in;
+ this.end_time = end_time_in;
+
+ var num_frames = this.end_time - this.start_time + 1;
+ this.uv_cache_table = [];
+
+ this.uv_cache_data_ready = [];
+ for(var i = 0; i < num_frames; i++) {
+ this.uv_cache_table.push([]);
+ this.uv_cache_data_ready.push(false);
+ }
+
+ this.is_ready = false;
+};
+
+MeshUVWarpCacheManager.prototype.getStartTime = function()
+{
+ return this.start_time;
+};
+
+MeshUVWarpCacheManager.prototype.getEndime = function()
+{
+ return this.end_time;
+};
+
+MeshUVWarpCacheManager.prototype.getIndexByTime = function(time_in)
+{
+ var retval = time_in - this.start_time;
+ retval = Utils.clamp(retval, 0, (this.uv_cache_table.length) - 1);
+
+ return retval;
+};
+
+MeshUVWarpCacheManager.prototype.retrieveValuesAtTime = function(time_in, regions_map)
+{
+ var base_time = this.getIndexByTime(Math.floor(time_in));
+ var end_time = this.getIndexByTime(Math.ceil(time_in));
+
+ var ratio = (time_in - Math.floor(time_in));
+
+ if(this.uv_cache_data_ready.length == 0) {
+ return;
+ }
+
+ if((this.uv_cache_data_ready[base_time] == false)
+ || (this.uv_cache_data_ready[end_time] == false))
+ {
+ return;
+ }
+
+ var base_cache = this.uv_cache_table[base_time];
+ var end_cache = this.uv_cache_table[end_time];
+
+ for(var i = 0; i < base_cache.length; i++) {
+ var base_data = base_cache[i];
+ var end_data = end_cache[i];
+ var cur_key = base_data.getKey();
+
+ var set_region = regions_map[cur_key];
+ if(set_region.getUseUvWarp()) {
+ var final_local_offset = base_data.getUvWarpLocalOffset();
+
+
+ var final_global_offset = base_data.getUvWarpGlobalOffset();
+
+ var final_scale = base_data.getUvWarpScale();
+ /*
+ Vector2 final_local_offset = ((1.0f - ratio) * base_data.getUvWarpLocalOffset()) +
+ (ratio * end_data.getUvWarpLocalOffset());
+
+ Vector2 final_global_offset = ((1.0f - ratio) * base_data.getUvWarpGlobalOffset()) +
+ (ratio * end_data.getUvWarpGlobalOffset());
+
+ Vector2 final_scale = ((1.0f - ratio) * base_data.getUvWarpScale()) +
+ (ratio * end_data.getUvWarpScale());
+
+ */
+
+
+ set_region.setUvWarpLocalOffset(final_local_offset);
+ set_region.setUvWarpGlobalOffset(final_global_offset);
+ set_region.setUvWarpScale(final_scale);
+ }
+ }
+};
+
+MeshUVWarpCacheManager.prototype.allReady = function()
+{
+ if(this.is_ready) {
+ return true;
+ }
+ else {
+ var num_frames = this.end_time - this.start_time + 1;
+ var ready_cnt = 0;
+ for(var i = 0; i < this.uv_cache_data_ready.length; i++) {
+ if(uv_cache_data_ready[i]) {
+ ready_cnt++;
+ }
+ }
+
+ if(ready_cnt == num_frames) {
+ this.is_ready = true;
+ }
+ }
+
+ return this.is_ready;
+};
+
+MeshUVWarpCacheManager.prototype.makeAllReady = function()
+{
+ for(var i = 0; i < this.uv_cache_data_ready.length; i++) {
+ this.uv_cache_data_ready[i] = true;
+ }
+};
+
+// CreatureModuleUtils
+var CreatureModuleUtils = {};
+
+CreatureModuleUtils.GetAllAnimationNames = function(json_data)
+{
+ var json_animations = json_data["animation"];
+ var keys = [];
+ for (var name in json_animations)
+ {
+ keys.push(name);
+ }
+
+ return keys;
+};
+
+CreatureModuleUtils.getFloatArray = function(raw_data)
+{
+ return raw_data;
+};
+
+CreatureModuleUtils.getIntArray = function(raw_data)
+{
+ return raw_data;
+};
+
+
+CreatureModuleUtils.ReadPointsArray2DJSON = function(data, key)
+{
+ var raw_array = CreatureModuleUtils.getFloatArray(data[key]);
+ var ret_list = [];
+ var num_points = raw_array.length / 2;
+ for (var i = 0; i < num_points; i++)
+ {
+ var cur_index = i * 2;
+ ret_list.push(
+ vec2.fromValues(raw_array[0 + cur_index], raw_array[1 + cur_index]));
+ }
+
+ return ret_list;
+};
+
+CreatureModuleUtils.ReadFloatArray3DJSON = function(data, key)
+{
+ var raw_array = CreatureModuleUtils.getFloatArray(data[key]);
+
+ var ret_list = [];
+ var num_points = raw_array.length / 2;
+ for (var i = 0; i < num_points; i++)
+ {
+ var cur_index = i * 2;
+ ret_list.push(raw_array[0 + cur_index]);
+ ret_list.push(raw_array[1 + cur_index]);
+ ret_list.push(0);
+ }
+
+ return ret_list;
+};
+
+CreatureModuleUtils.ReadBoolJSON = function(data, key)
+{
+ var val = data[key];
+ return val;
+};
+
+CreatureModuleUtils.ReadFloatArrayJSON = function(data, key)
+{
+ /*
+ var raw_array = getFloatArray(data.get[key]);
+ var ret_list = [];
+ for(var i = 0; i < raw_array.length; i++)
+ {
+ ret_list.push(raw_array[i]);
+ }
+
+ return ret_list;
+ */
+
+ return data[key];
+};
+
+CreatureModuleUtils.ReadIntArrayJSON = function(data, key)
+{
+ /*
+ int[] raw_array = getIntArray (data.get(key));
+ java.util.Vector ret_list = new java.util.Vector();
+
+ for(int i = 0; i < raw_array.length; i++) {
+ ret_list.add(raw_array[i]);
+ }
+
+ return ret_list;
+ */
+ return data[key];
+};
+
+CreatureModuleUtils.ReadMatrixJSON = function(data, key)
+{
+ var raw_array = CreatureModuleUtils.getFloatArray(data[key]);
+ var retMat = mat4.create();
+ for(var i = 0; i < 16; i++)
+ {
+ retMat[i] = raw_array[i];
+ }
+
+ return retMat;
+};
+
+CreatureModuleUtils.ReadVector2JSON = function(data, key)
+{
+ var raw_array = CreatureModuleUtils.getFloatArray(data[key]);
+ return vec2.fromValues(raw_array[0], raw_array[1]);
+};
+
+
+CreatureModuleUtils.ReadVector3JSON = function(data, key)
+{
+ var raw_array = CreatureModuleUtils.getFloatArray(data[key]);
+ return vec3.fromValues(raw_array[0], raw_array[1], 0);
+};
+
+CreatureModuleUtils.CreateBones = function(json_obj, key) {
+ var root_bone = null;
+ var base_obj = json_obj[key];
+ //var bone_data = new HashMap>>();
+ var bone_data = {};
+ var child_set = {};
+
+ // layout bones
+ for (var cur_name in base_obj)
+ {
+
+ var cur_node = base_obj[cur_name];
+
+ var cur_id = cur_node["id"]; //GetJSONNodeFromKey(*cur_node, "id")->value.toNumber();
+ var cur_parent_mat = CreatureModuleUtils.ReadMatrixJSON(cur_node, "restParentMat");
+
+ var cur_local_rest_start_pt = CreatureModuleUtils.ReadVector3JSON(cur_node, "localRestStartPt");
+ var cur_local_rest_end_pt = CreatureModuleUtils.ReadVector3JSON(cur_node, "localRestEndPt");
+ var cur_children_ids = CreatureModuleUtils.ReadIntArrayJSON(cur_node, "children");
+
+ var new_bone = new MeshBone(cur_name,
+ vec3.create(),
+ vec3.create(),
+ cur_parent_mat);
+ new_bone.local_rest_start_pt = cur_local_rest_start_pt;
+ new_bone.local_rest_end_pt = cur_local_rest_end_pt;
+ new_bone.calcRestData();
+ new_bone.setTagId(cur_id);
+
+ bone_data[cur_id] = {first:new_bone, second:cur_children_ids};
+
+ for(var i = 0; i < cur_children_ids.length; i++){
+ var cur_child_id = cur_children_ids[i];
+ child_set[cur_child_id] = cur_child_id;
+ }
+ }
+
+ // Find root
+ for(var cur_id in bone_data)
+ {
+ if( (cur_id in child_set) == false) {
+ // not a child, so is root
+ var cur_data = bone_data[cur_id];
+ root_bone = cur_data.first;
+ break;
+ }
+ }
+
+ // construct hierarchy
+ for(var cur_id in bone_data)
+ {
+ var cur_data = bone_data[cur_id];
+
+ var cur_bone = cur_data.first;
+ var children_ids = cur_data.second;
+ for(var i = 0; i < children_ids.length; i++)
+ {
+ var cur_child_id = children_ids[i];
+ var child_bone = bone_data[cur_child_id].first;
+ cur_bone.addChild(child_bone);
+ }
+
+ }
+
+
+ return root_bone;
+};
+
+CreatureModuleUtils.CreateRegions = function(json_obj, key, indices_in, rest_pts_in, uvs_in)
+{
+ var ret_regions = [];
+ var base_obj = json_obj[key];
+
+ for (var cur_name in base_obj)
+ {
+ var cur_node = base_obj[cur_name];
+
+ var cur_id = cur_node["id"]; //(int)GetJSONNodeFromKey(*cur_node, "id")->value.toNumber();
+ var cur_start_pt_index = cur_node["start_pt_index"]; //(int)GetJSONNodeFromKey(*cur_node, "start_pt_index")->value.toNumber();
+ var cur_end_pt_index = cur_node["end_pt_index"]; //(int)GetJSONNodeFromKey(*cur_node, "end_pt_index")->value.toNumber();
+ var cur_start_index = cur_node["start_index"]; //(int)GetJSONNodeFromKey(*cur_node, "start_index")->value.toNumber();
+ var cur_end_index = cur_node["end_index"]; //(int)GetJSONNodeFromKey(*cur_node, "end_index")->value.toNumber();
+
+ var new_region = new MeshRenderRegion(indices_in,
+ rest_pts_in,
+ uvs_in,
+ cur_start_pt_index,
+ cur_end_pt_index,
+ cur_start_index,
+ cur_end_index);
+
+ new_region.setName(cur_name);
+ new_region.setTagId(cur_id);
+
+ // Read in weights
+ var weight_map =
+ new_region.normal_weight_map;
+ var weight_obj = cur_node["weights"];
+
+ for (var w_key in weight_obj)
+ {
+ var w_node = weight_obj[w_key];
+ var values = CreatureModuleUtils.ReadFloatArrayJSON(weight_obj, w_key);
+ weight_map[w_key] = values;
+ }
+
+ ret_regions.push(new_region);
+ }
+
+ return ret_regions;
+};
+
+CreatureModuleUtils.GetStartEndTimes = function(json_obj, key)
+{
+ var start_time = 0;
+ var end_time = 0;
+ var first = true;
+ var base_obj = json_obj[key];
+
+ for (var cur_val in base_obj)
+ {
+ var cur_node = base_obj[cur_val];
+ var cur_num = parseInt(cur_val);
+ if(first) {
+ start_time = cur_num;
+ end_time = cur_num;
+ first = false;
+ }
+ else {
+ if(cur_num > end_time) {
+ end_time = cur_num;
+ }
+
+ if(cur_num < start_time) {
+ start_time = cur_num;
+ }
+ }
+ }
+
+ return {first:start_time, second:end_time};
+};
+
+CreatureModuleUtils.FillBoneCache = function(json_obj, key, start_time, end_time, cache_manager)
+{
+ var base_obj = json_obj[key];
+
+ cache_manager.init(start_time, end_time);
+
+ for (var cur_time in base_obj)
+ {
+ var cur_node = base_obj[cur_time];
+
+ cache_list = [];
+
+ for (var cur_name in cur_node)
+ {
+ var bone_node = cur_node[cur_name];
+
+ var cur_start_pt = CreatureModuleUtils.ReadVector3JSON(bone_node, "start_pt"); //ReadJSONVec4_2(*bone_node, "start_pt");
+ var cur_end_pt = CreatureModuleUtils.ReadVector3JSON(bone_node, "end_pt"); //ReadJSONVec4_2(*bone_node, "end_pt");
+
+ var cache_data = new MeshBoneCache(cur_name);
+ cache_data.setWorldStartPt(cur_start_pt);
+ cache_data.setWorldEndPt(cur_end_pt);
+
+ cache_list.push(cache_data);
+ }
+
+ var set_index = cache_manager.getIndexByTime(cur_time);
+ cache_manager.bone_cache_table[set_index] = cache_list;
+ }
+
+ cache_manager.makeAllReady();
+};
+
+CreatureModuleUtils.FillDeformationCache = function(json_obj, key, start_time, end_time, cache_manager)
+{
+ var base_obj = json_obj[key];
+
+ cache_manager.init(start_time, end_time);
+
+ for (var cur_time in base_obj)
+ {
+ var cur_node = base_obj[cur_time];
+
+ var cache_list = [];
+
+ for (var cur_name in cur_node)
+ {
+ var mesh_node = cur_node[cur_name];
+
+ var cache_data = new MeshDisplacementCache(cur_name);
+
+ var use_local_displacement = CreatureModuleUtils.ReadBoolJSON(mesh_node, "use_local_displacements"); //GetJSONNodeFromKey(*mesh_node, "use_local_displacements")->value.toBool();
+ var use_post_displacement = CreatureModuleUtils.ReadBoolJSON(mesh_node, "use_post_displacements"); //GetJSONNodeFromKey(*mesh_node, "use_post_displacements")->value.toBool();
+
+ if(use_local_displacement == true) {
+ var read_pts = CreatureModuleUtils.ReadPointsArray2DJSON(mesh_node, "local_displacements"); //ReadJSONPoints2DVector(*mesh_node, "local_displacements");
+ cache_data.setLocalDisplacements(read_pts);
+ }
+
+ if(use_post_displacement == true) {
+ var read_pts = CreatureModuleUtils.ReadPointsArray2DJSON(mesh_node, "post_displacements"); //ReadJSONPoints2DVector(*mesh_node, "post_displacements");
+ cache_data.setPostDisplacements(read_pts);
+ }
+
+ cache_list.push(cache_data);
+ }
+
+ var set_index = cache_manager.getIndexByTime(cur_time);
+ cache_manager.displacement_cache_table[set_index] = cache_list;
+ }
+
+ cache_manager.makeAllReady();
+};
+
+CreatureModuleUtils.FillUVSwapCache = function(json_obj, key, start_time, end_time, cache_manager)
+{
+ var base_obj = json_obj[key];
+
+ cache_manager.init(start_time, end_time);
+
+ for (var cur_time in base_obj)
+ {
+ var cur_node = base_obj[cur_time];
+
+ var cache_list = [];
+
+ for (var cur_name in cur_node)
+ {
+ var uv_node = cur_node[cur_name];
+
+ var cache_data = new MeshUVWarpCache(cur_name);
+ var use_uv = CreatureModuleUtils.ReadBoolJSON(uv_node, "enabled"); //GetJSONNodeFromKey(*uv_node, "enabled")->value.toBool();
+ cache_data.setEnabled(use_uv);
+ if(use_uv == true) {
+ var local_offset = CreatureModuleUtils.ReadVector2JSON(uv_node, "local_offset"); //ReadJSONVec2(*uv_node, "local_offset");
+ var global_offset = CreatureModuleUtils.ReadVector2JSON(uv_node, "global_offset"); //ReadJSONVec2(*uv_node, "global_offset");
+ var scale = CreatureModuleUtils.ReadVector2JSON(uv_node, "scale"); //ReadJSONVec2(*uv_node, "scale");
+ cache_data.setUvWarpLocalOffset(local_offset);
+ cache_data.setUvWarpGlobalOffset(global_offset);
+ cache_data.setUvWarpScale(scale);
+ }
+
+ cache_list.push(cache_data);
+ }
+
+ var set_index = cache_manager.getIndexByTime(cur_time);
+ cache_manager.uv_cache_table[set_index] = cache_list;
+ }
+
+ cache_manager.makeAllReady();
+};
+
+// Creature
+function Creature(load_data)
+{
+ this.total_num_pts = 0;
+ this.total_num_indices = 0;
+ this.global_indices = null;
+ this.global_pts = null;
+ this.global_uvs = null;
+ this.render_pts = null;
+ this.render_colours = null;
+ this.render_composition = null;
+ this.boundary_indices = [];
+ this.boundary_min = vec2.create();
+ this.boundary_max = vec2.create();
+
+ this.LoadFromData(load_data);
+};
+
+// Fills entire mesh with (r,g,b,a) colours
+Creature.prototype.FillRenderColours = function(r, g, b, a)
+{
+ for(var i = 0; i < this.total_num_pts; i++)
+ {
+ var cur_colour_index = i * 4;
+ this.render_colours[0 + cur_colour_index] = r;
+ this.render_colours[1 + cur_colour_index] = g;
+ this.render_colours[2 + cur_colour_index] = b;
+ this.render_colours[3 + cur_colour_index] = a;
+ }
+};
+
+// Compute boundary indices
+
+Creature.prototype.ComputeBoundaryIndices = function()
+{
+ var freq_table = {};
+ for(var i = 0; i < this.total_num_pts; i++)
+ {
+ freq_table[i] = 0;
+ }
+
+ var cur_regions = this.render_composition.getRegions();
+ for(var i = 0; i < this.global_indices.length; i++)
+ {
+ var cur_idx = this.global_indices[i];
+ var is_found = false;
+ for(var j = 0; j < cur_regions.length; j++)
+ {
+ var cur_region = cur_regions[j];
+ var cur_start_index = cur_region.getStartPtIndex();
+ var cur_end_index = cur_region.getEndPtIndex();
+
+ if(cur_idx >= cur_start_index && cur_idx <= cur_end_index)
+ {
+ is_found = true;
+ break;
+ }
+ }
+
+
+ if(is_found)
+ {
+ freq_table[cur_idx]++;
+ }
+ }
+
+ // now find the boundary indices who have <= 5 referenced triangles
+ this.boundary_indices = [];
+ for(var i = 0; i < this.total_num_pts; i++)
+ {
+ if(freq_table[i] <=5)
+ {
+ this.boundary_indices.push(i);
+ }
+ }
+};
+
+// Compute min and max bounds of the animated mesh
+Creature.prototype.ComputeBoundaryMinMax = function()
+{
+
+ if(this.boundary_indices.length <= 0)
+ {
+ this.ComputeBoundaryIndices();
+ }
+
+
+ var firstIdx = this.boundary_indices[0] * 3;
+ var minPt = vec2.fromValues(this.render_pts[firstIdx + 0], this.render_pts[firstIdx + 1]);
+ var maxPt = vec2.fromValues(minPt[0], minPt[1]);
+
+
+ for(var i = 0; i < this.boundary_indices.length; i++)
+ {
+ var ref_idx = this.boundary_indices[i] * 3;
+ var ref_x = this.render_pts[ref_idx];
+ var ref_y = this.render_pts[ref_idx + 1];
+
+ if(minPt[0] > ref_x)
+ {
+ minPt[0] = ref_x;
+ }
+
+ if(minPt[1] > ref_y)
+ {
+ minPt[1] = ref_y;
+ }
+
+ if(maxPt[0] < ref_x)
+ {
+ maxPt[0] = ref_x;
+ }
+
+ if(maxPt[1] < ref_y)
+ {
+ maxPt[1] = ref_y;
+ }
+ }
+
+ this.boundary_min = minPt;
+ this.boundary_max = maxPt;
+};
+
+
+// Load data
+Creature.prototype.LoadFromData = function(load_data)
+{
+ // Load points and topology
+ var json_mesh = load_data["mesh"];
+
+ this.global_pts = CreatureModuleUtils.ReadFloatArray3DJSON(json_mesh, "points");
+ this.total_num_pts = this.global_pts.length / 3;
+
+ this.global_indices = CreatureModuleUtils.ReadIntArrayJSON (json_mesh, "indices");
+ this.total_num_indices = this.global_indices.length;
+
+ this.global_uvs = CreatureModuleUtils.ReadFloatArrayJSON (json_mesh, "uvs");
+
+
+ this.render_colours = [];
+ for(var i = 0; i < this.total_num_pts * 4; i++)
+ {
+ this.render_colours.push(0);
+ }
+ this.FillRenderColours(1, 1, 1, 1);
+
+ this.render_pts = [];
+
+ // Load bones
+ var root_bone = CreatureModuleUtils.CreateBones(load_data, "skeleton");
+
+
+ // Load regions
+ var regions = CreatureModuleUtils.CreateRegions(json_mesh,
+ "regions",
+ this.global_indices,
+ this.global_pts,
+ this.global_uvs);
+
+ // Add into composition
+ this.render_composition = new MeshRenderBoneComposition();
+ this.render_composition.setRootBone(root_bone);
+ this.render_composition.getRootBone().computeRestParentTransforms();
+
+ for(var i = 0; i < regions.length; i++) {
+ var cur_region = regions[i];
+ cur_region.setMainBoneKey(root_bone.getKey());
+ cur_region.determineMainBone(root_bone);
+ this.render_composition.addRegion(cur_region);
+ }
+
+ this.render_composition.initBoneMap();
+ this.render_composition.initRegionsMap();
+
+ for(var i = 0; i < regions.length; i++) {
+ var cur_region = regions[i];
+ cur_region.initFastNormalWeightMap(this.render_composition.bones_map);
+ }
+
+ this.render_composition.resetToWorldRestPts();
+};
+
+// CreatureAnimation
+function CreatureAnimation(load_data, name_in)
+{
+ this.name = name_in;
+ this.bones_cache = new MeshBoneCacheManager();
+ this.displacement_cache = new MeshDisplacementCacheManager();
+ this.uv_warp_cache = new MeshUVWarpCacheManager();
+ this.cache_pts = [];
+ this.fill_cache_pts = [];
+
+ this.LoadFromData(name_in, load_data);
+};
+
+CreatureAnimation.prototype.LoadFromData = function(name_in, load_data)
+{
+ var json_anim_base = load_data["animation"];
+ var json_clip = json_anim_base[name_in];
+
+ var start_end_times = CreatureModuleUtils.GetStartEndTimes(json_clip, "bones");
+ this.start_time = start_end_times.first;
+ this.end_time = start_end_times.second;
+
+ // bone animation
+ CreatureModuleUtils.FillBoneCache(json_clip,
+ "bones",
+ this.start_time,
+ this.end_time,
+ this.bones_cache);
+
+ // mesh deformation animation
+ CreatureModuleUtils.FillDeformationCache(json_clip,
+ "meshes",
+ this.start_time,
+ this.end_time,
+ this.displacement_cache);
+
+ // uv swapping animation
+ CreatureModuleUtils.FillUVSwapCache(json_clip,
+ "uv_swaps",
+ this.start_time,
+ this.end_time,
+ this.uv_warp_cache);
+};
+
+CreatureAnimation.prototype.getIndexByTime = function(time_in)
+{
+ var retval = time_in - this.start_time;
+ retval = Utils.clamp(retval, 0, (this.cache_pts.length) - 1);
+
+ return retval;
+};
+
+CreatureAnimation.prototype.verifyFillCache = function()
+{
+ if(this.fill_cache_pts.length == (this.end_time - this.start_time + 1))
+ {
+ // ready to switch over
+ this.cache_pts = this.fill_cache_pts;
+ }
+};
+
+CreatureAnimation.prototype.poseFromCachePts = function(time_in, target_pts, num_pts)
+{
+ var cur_floor_time = this.getIndexByTime(Math.floor(time_in));
+ var cur_ceil_time = this.getIndexByTime(Math.ceil(time_in));
+ var cur_ratio = time_in - Math.floor(time_in);
+
+ var set_pt = target_pts;
+ var floor_pts = this.cache_pts[cur_floor_time];
+ var ceil_pts = this.cache_pts[cur_ceil_time];
+
+ var set_idx = 0;
+ var floor_idx = 0;
+ var ceil_idx = 0;
+
+ for(var i = 0; i < num_pts; i++)
+ {
+ set_pt[set_idx + 0] = ((1.0 - cur_ratio) * floor_pts[floor_idx + 0]) + (cur_ratio * ceil_pts[ceil_idx + 0]);
+ set_pt[set_idx + 1] = ((1.0 - cur_ratio) * floor_pts[floor_idx + 1]) + (cur_ratio * ceil_pts[ceil_idx + 1]);
+ set_pt[set_idx + 2] = ((1.0 - cur_ratio) * floor_pts[floor_idx + 2]) + (cur_ratio * ceil_pts[ceil_idx + 2]);
+
+ set_idx += 3;
+ floor_idx += 3;
+ ceil_idx += 3;
+ }
+};
+
+// CreatureManager
+function CreatureManager(target_creature_in)
+{
+ this.target_creature = target_creature_in;
+ this.is_playing = false;
+ this.run_time = 0;
+ this.time_scale = 30.0;
+ this.blending_factor = 0;
+ this.should_loop = true;
+ this.use_custom_time_range = false;
+ this.custom_start_time = 0;
+ this.custom_end_time = 0;
+ this.animations = {};
+ this.bones_override_callback = null;
+
+ this.blend_render_pts = [];
+ this.blend_render_pts.push([]);
+ this.blend_render_pts.push([]);
+ this.do_blending = false;
+
+ this.active_blend_animation_names = [];
+ this.active_blend_animation_names.push("");
+ this.active_blend_animation_names.push("");
+};
+
+// Create an animation
+CreatureManager.prototype.CreateAnimation = function(load_data, name_in)
+{
+ var new_animation = new CreatureAnimation(load_data, name_in);
+ this.AddAnimation(new_animation);
+};
+
+// Create all animations
+CreatureManager.prototype.CreateAllAnimations = function(load_data)
+{
+ var all_animation_names = CreatureModuleUtils.GetAllAnimationNames (load_data);
+ for(var i = 0; i < all_animation_names.length; i++)
+ {
+ var cur_name = all_animation_names[i];
+ this.CreateAnimation(load_data, cur_name);
+ }
+
+ this.SetActiveAnimationName (all_animation_names.get(0));
+};
+
+// Add an animation
+CreatureManager.prototype.AddAnimation = function(animation_in)
+{
+ this.animations[animation_in.name] = animation_in;
+};
+
+// Return an animation
+CreatureManager.prototype.GetAnimation = function(name_in)
+{
+ return this.animations[name_in];
+};
+
+// Return the creature
+CreatureManager.prototype.GetCreature = function()
+{
+ return this.target_creature;
+};
+
+// Returns all the animation names
+CreatureManager.prototype.GetAnimationNames = function()
+{
+ var ret_names = [];
+ for(var cur_name in animations) {
+ ret_names.push(cur_name);
+ }
+
+ return ret_names;
+};
+
+// Sets the current animation to be active by name
+CreatureManager.prototype.SetActiveAnimationName = function(name_in, check_already_active)
+{
+ if (name_in == null || (name_in in this.animations) == false) {
+ return false;
+ }
+
+ if(check_already_active == true)
+ {
+ if(this.active_animation_name == name_in)
+ {
+ return false;
+ }
+ }
+
+ this.active_animation_name = name_in;
+ var cur_animation = this.animations[this.active_animation_name];
+ this.run_time = cur_animation.start_time;
+
+ var displacement_cache_manager = cur_animation.displacement_cache;
+ var displacement_table =
+ displacement_cache_manager.displacement_cache_table[0];
+
+ var uv_warp_cache_manager = cur_animation.uv_warp_cache;
+ var uv_swap_table =
+ uv_warp_cache_manager.uv_cache_table[0];
+
+ var render_composition =
+ this.target_creature.render_composition;
+
+ var all_regions = render_composition.getRegions();
+
+ var index = 0;
+ for(var i = 0; i < all_regions.length; i++)
+ {
+ var cur_region = all_regions[i];
+ // Setup active or inactive displacements
+ var use_local_displacements = !(displacement_table[index].getLocalDisplacements().length == 0);
+ var use_post_displacements = !(displacement_table[index].getPostDisplacements().length == 0);
+ cur_region.setUseLocalDisplacements(use_local_displacements);
+ cur_region.setUsePostDisplacements(use_post_displacements);
+
+ // Setup active or inactive uv swaps
+ cur_region.setUseUvWarp(uv_swap_table[index].getEnabled());
+
+ index++;
+ }
+
+ return true;
+};
+
+// Returns the name of the currently active animation
+CreatureManager.prototype.GetActiveAnimationName = function()
+{
+ return this.active_animation_name;
+};
+
+// Returns the table of all animations
+CreatureManager.prototype.GetAllAnimations = function()
+{
+ return this.animations;
+};
+
+// Creates a point cache for the current animation
+CreatureManager.prototype.MakePointCache = function(animation_name_in)
+{
+ var store_run_time = this.getRunTime();
+ var cur_animation = this.animations[animation_name_in];
+ if(cur_animation.length > 0)
+ {
+ // cache already generated, just exit
+ return;
+ }
+
+ var cache_pts_list = cur_animation.cache_pts;
+
+ for(var i = cur_animation.start_time; i <= cur_animation.end_time; i++)
+ {
+ this.setRunTime(i);
+ var new_pts = [];
+ for (var j = 0; j < this.target_creature.total_num_pts * 3; j++) new_pts[j] = 0;
+ //auto new_pts = new glm::float32[target_creature->GetTotalNumPoints() * 3];
+ this.PoseCreature(animation_name_in, new_pts);
+
+ cache_pts_list.push(new_pts);
+ }
+
+ this.setRunTime(store_run_time);
+};
+
+// Fills up a single frame for a point cache animation
+// Point caching is only enabled when the cache is FULLY filled up
+// Remember the new filled cache is Appended onto the end of a list
+// There is no indexing by time here so MAKE SURE this cache is filled up sequentially!
+CreatureManager.prototype.FillSinglePointCacheFrame = function(animation_name_in, time_in)
+{
+ var store_run_time = this.getRunTime();
+ var cur_animation = this.animations[animation_name_in];
+
+ this.setRunTime(time_in);
+ var new_pts = [];
+ for (var j = 0; j < this.target_creature.total_num_pts * 3; j++) new_pts[j] = 0;
+ this.PoseCreature(animation_name_in, new_pts);
+
+ cur_animation.fill_cache_pts.push(new_pts);
+ cur_animation.verifyFillCache();
+
+ this.setRunTime(store_run_time);
+};
+
+// Returns if animation is playing
+CreatureManager.prototype.GetIsPlaying = function()
+{
+ return this.is_playing;
+};
+
+// Sets whether to loop the animation
+CreatureManager.prototype.SetShouldLoop = function(flag_in)
+{
+ this.should_loop = flag_in;
+};
+
+// Sets whether to use a user defined custom time range for the currently
+// active animation clip
+CreatureManager.prototype.SetUseCustomTimeRange = function(flag_in)
+{
+ this.use_custom_time_range = flag_in;
+};
+
+// Sets the user defined custom time range
+CreatureManager.prototype.SetCustomTimeRange = function(start_time_in, end_time_in)
+{
+ this.custom_start_time = start_time_in;
+ this.custom_end_time = end_time_in;
+};
+
+// Sets whether the animation is playing
+CreatureManager.prototype.SetIsPlaying = function(flag_in)
+{
+ this.is_playing = flag_in;
+};
+
+// Resets animation to start time
+CreatureManager.prototype.ResetToStartTimes = function()
+{
+ var cur_animation = this.animations[active_animation_name];
+ this.run_time = cur_animation.start_time;
+};
+
+// Sets the run time of the animation
+CreatureManager.prototype.setRunTime = function(time_in)
+{
+ this.run_time = time_in;
+ this.correctTime ();
+};
+
+// Increments the run time of the animation by a delta value
+CreatureManager.prototype.increRunTime = function(delta_in)
+{
+ this.run_time += delta_in;
+ this.correctTime ();
+};
+
+CreatureManager.prototype.correctTime = function()
+{
+ var cur_animation = this.animations[this.active_animation_name];
+ var anim_start_time = cur_animation.start_time;
+ var anim_end_time = cur_animation.end_time;
+
+ if(this.use_custom_time_range)
+ {
+ anim_start_time = this.custom_start_time;
+ anim_end_time = this.custom_end_time;
+ }
+
+ if(this.run_time > anim_end_time)
+ {
+ if(this.should_loop)
+ {
+ this.run_time = anim_start_time;
+ }
+ else {
+ this.run_time = anim_end_time;
+ }
+ }
+ else if(this.run_time < anim_start_time)
+ {
+ if(this.should_loop)
+ {
+ this.run_time = anim_end_time;
+ }
+ else {
+ this.run_time = anim_start_time;
+ }
+ }
+};
+
+// Returns the current run time of the animation
+CreatureManager.prototype.getRunTime = function()
+{
+ return this.run_time;
+};
+
+// Runs a single step of the animation for a given delta timestep
+CreatureManager.prototype.Update = function(delta)
+{
+ if(!this.is_playing)
+ {
+ return;
+ }
+
+ this.increRunTime(delta * this.time_scale);
+
+ this.RunCreature ();
+};
+
+CreatureManager.prototype.RunAtTime = function(time_in)
+{
+ if(!this.is_playing)
+ {
+ return;
+ }
+
+ this.setRunTime(time_in);
+ this.RunCreature ();
+};
+
+CreatureManager.prototype.RunCreature = function()
+{
+ if(this.do_blending)
+ {
+ for(var i = 0; i < 2; i++) {
+ var cur_animation = this.animations[this.active_blend_animation_names[i]];
+ if(cur_animation.cache_pts.length > 0)
+ {
+ cur_animation.poseFromCachePts(this.getRunTime(), this.blend_render_pts[i], this.target_creature.total_num_pts);
+ }
+ else {
+ this.PoseCreature(this.active_blend_animation_names[i], this.blend_render_pts[i]);
+ }
+ }
+
+ for(var j = 0; j < this.target_creature.total_num_pts * 3; j++)
+ {
+ var set_data_index = j;
+ var read_data_1 = this.blend_render_pts[0][j];
+ var read_data_2 = this.blend_render_pts[1][j];
+ /*
+ target_creature.render_pts[set_data_index] =
+ ((1.0f - blending_factor) * (read_data_1)) +
+ (blending_factor * (read_data_2));
+ */
+ this.target_creature.render_pts.set(set_data_index,
+ ((1.0 - blending_factor) * (read_data_1)) +
+ (blending_factor * (read_data_2)));
+
+ }
+ }
+ else {
+ var cur_animation = this.animations[this.active_animation_name];
+ if(cur_animation.cache_pts.length > 0)
+ {
+ cur_animation.poseFromCachePts(this.getRunTime(), this.target_creature.render_pts, this.target_creature.total_num_pts);
+ // cur_animation->poseFromCachePts(getRunTime(), target_creature->GetRenderPts(), target_creature->GetTotalNumPoints());
+ }
+ else {
+ this.PoseCreature(this.active_animation_name, this.target_creature.render_pts);
+ }
+ }
+};
+
+// Sets scaling for time
+CreatureManager.prototype.SetTimeScale = function(scale_in)
+{
+ this.time_scale = scale_in;
+};
+
+// Enables/Disables blending
+CreatureManager.prototype.SetBlending = function(flag_in)
+{
+ this.do_blending = flag_in;
+
+ if (this.do_blending) {
+ if (this.blend_render_pts[0].length == 0) {
+ var new_vec = [];
+ for(var i = 0; i < target_creature.total_num_pts * 3; i++)
+ {
+ new_vec.push(0);
+ }
+
+ this.blend_render_pts.set(0, new_vec);
+ }
+
+ if (this.blend_render_pts[1].length == 0) {
+ var new_vec = [];
+ for(var i = 0; i < this.target_creature.total_num_pts * 3; i++)
+ {
+ new_vec.push(0);
+ }
+
+ this.blend_render_pts[1] = new_vec;
+ }
+
+ }
+};
+
+// Sets blending animation names
+CreatureManager.prototype.SetBlendingAnimations = function(name_1, name_2)
+{
+ this.active_blend_animation_names[0] = name_1;
+ this.active_blend_animation_names[1] = name_2;
+};
+
+// Sets the blending factor
+CreatureManager.prototype.SetBlendingFactor = function(value_in)
+{
+ this.blending_factor = value_in;
+};
+
+// Given a set of coordinates in local creature space,
+// see if any bone is in contact
+CreatureManager.prototype.IsContactBone = function(pt_in, radius)
+{
+ var cur_bone = this.target_creature.render_composition.getRootBone();
+ return this.ProcessContactBone(pt_in, radius, cur_bone);
+};
+
+
+CreatureManager.prototype.PoseCreature = function(animation_name_in, target_pts)
+{
+ var cur_animation = this.animations[animation_name_in];
+
+ var bone_cache_manager = cur_animation.bones_cache;
+ var displacement_cache_manager = cur_animation.displacement_cache;
+ var uv_warp_cache_manager = cur_animation.uv_warp_cache;
+
+ var render_composition =
+ this.target_creature.render_composition;
+
+ // Extract values from caches
+ var bones_map =
+ render_composition.getBonesMap();
+ var regions_map =
+ render_composition.getRegionsMap();
+
+ bone_cache_manager.retrieveValuesAtTime(this.getRunTime(),
+ bones_map);
+
+ if(this.bones_override_callback != null)
+ {
+ this.bones_override_callback(bones_map);
+ }
+
+ displacement_cache_manager.retrieveValuesAtTime(this.getRunTime(),
+ regions_map);
+ uv_warp_cache_manager.retrieveValuesAtTime(this.getRunTime(),
+ regions_map);
+
+
+ // Do posing, decide if we are blending or not
+ var cur_regions =
+ render_composition.getRegions();
+ var cur_bones =
+ render_composition.getBonesMap();
+
+ render_composition.updateAllTransforms(false);
+ for(var j = 0, l = cur_regions.length; j < l; j++) {
+ var cur_region = cur_regions[j];
+
+ var cur_pt_index = cur_region.getStartPtIndex();
+
+
+ cur_region.poseFinalPts(target_pts,
+ cur_pt_index * 3,
+ cur_bones);
+
+ // add in z offsets for different regions
+
+ var start = cur_region.getStartPtIndex() * 3;
+ var end = cur_region.getEndPtIndex() * 3;
+ for(var k = start;
+ k <= end;
+ k+=3)
+ {
+ target_pts[k + 2] = -j * 0.001;
+ }
+
+ }
+};
+
diff --git a/build/creature.map b/build/creature.map
new file mode 100644
index 0000000000..e5c4245a0f
--- /dev/null
+++ b/build/creature.map
@@ -0,0 +1 @@
+{"version":3,"sources":["creature.js"],"names":["dualQuat","this","real","quat","create","Q_W","imaginary","tmpQ1","MeshBone","key_in","start_pt_in","end_pt_in","parent_transform","key","world_rest_angle","rest_parent_mat","mat4","rest_parent_inv_mat","rest_world_mat","rest_world_inv_mat","bind_world_mat","bind_world_inv_mat","parent_world_mat","parent_world_inv_mat","local_rest_start_pt","local_rest_end_pt","setRestParentMat","setLocalRestStartPt","setLocalRestEndPt","setParentWorldInvMat","setParentWorldMat","local_binormal_dir","vec3","fromValues","tag_id","children","MeshRenderRegion","indices_in","rest_pts_in","uvs_in","start_pt_index_in","end_pt_index_in","start_index_in","end_index_in","store_indices","store_rest_pts","store_uvs","use_local_displacements","use_post_displacements","use_uv_warp","uv_warp_local_offset","vec2","uv_warp_global_offset","uv_warp_scale","start_pt_index","end_pt_index","start_index","end_index","main_bone","local_displacements","post_displacements","uv_warp_ref_uvs","normal_weight_map","fast_normal_weight_map","fast_bones_map","relevant_bones_indices","use_dq","initUvWarp","MeshRenderBoneComposition","root_bone","bones_map","regions","regions_map","MeshBoneCache","MeshDisplacementCache","MeshUVWarpCache","enabled","MeshBoneCacheManager","is_ready","bone_cache_table","bone_cache_data_ready","MeshDisplacementCacheManager","displacement_cache_table","displacement_cache_data_ready","MeshUVWarpCacheManager","uv_cache_table","uv_cache_data_ready","Creature","load_data","total_num_pts","total_num_indices","global_indices","global_pts","global_uvs","render_pts","render_colours","render_composition","boundary_indices","boundary_min","boundary_max","LoadFromData","CreatureAnimation","name_in","name","bones_cache","displacement_cache","uv_warp_cache","cache_pts","fill_cache_pts","CreatureManager","target_creature_in","target_creature","is_playing","run_time","time_scale","blending_factor","should_loop","use_custom_time_range","custom_start_time","custom_end_time","animations","bones_override_callback","blend_render_pts","push","do_blending","active_blend_animation_names","_global","shim","define","amd","exports","window","GLMAT_EPSILON","GLMAT_ARRAY_TYPE","Float32Array","Array","GLMAT_RANDOM","Math","random","glMatrix","setMatrixArrayType","type","degree","PI","toRadian","a","out","clone","x","y","copy","set","add","b","subtract","sub","multiply","mul","divide","div","min","max","scale","scaleAndAdd","distance","sqrt","dist","squaredDistance","sqrDist","length","len","squaredLength","sqrLen","negate","inverse","normalize","dot","cross","z","lerp","t","ax","ay","r","cos","sin","transformMat2","m","transformMat2d","transformMat3","transformMat4","forEach","vec","stride","offset","count","fn","arg","i","l","str","az","bx","by","bz","zScale","w","transformQuat","q","qx","qy","qz","qw","ix","iy","iz","iw","rotateX","c","p","rotateY","rotateZ","vec4","aw","mat2","identity","transpose","a1","invert","a0","a2","a3","det","adjoint","determinant","b0","b1","b2","b3","rotate","rad","s","v","v0","v1","frob","pow","LDU","L","D","U","mat2d","aa","ab","ac","ad","atx","aty","a4","a5","b4","b5","translate","mat3","fromMat4","a01","a02","a12","a00","a10","a11","a20","a21","a22","b01","b11","b21","b00","b02","b10","b12","b20","b22","fromMat2d","fromQuat","x2","y2","z2","xx","yx","yy","zx","zy","zz","wx","wy","wz","normalFromMat4","a03","a13","a23","a30","a31","a32","a33","b03","b04","b05","b06","b07","b08","b09","axis","abs","fromRotationTranslation","xy","xz","yz","frustum","left","right","bottom","top","near","far","rl","tb","nf","perspective","fovy","aspect","f","tan","ortho","lr","bt","lookAt","eye","center","up","x0","x1","y0","y1","z0","z1","eyex","eyey","eyez","upx","upy","upz","centerx","centery","centerz","rotationTo","tmpvec3","xUnitVec3","yUnitVec3","setAxisAngle","setAxes","matr","view","fromMat3","bw","calculateW","slerp","omega","cosom","sinom","scale0","scale1","acos","invDot","conjugate","fRoot","fTrace","j","k","Q_X","Q_Y","Q_Z","prototype","reset","createFromData","q0","quat_in","real_factor","imaginary_factor","norm","ve","trans","tmpVec1","tmpVec2","tmpVec0","aVec","rot","transform","Utils","setAxisMatrix","xAxis","yAxis","zAxis","retMat","M00","M01","M02","M03","M10","M11","M12","M13","M20","M21","M22","M23","M30","M31","M32","M33","matrixToQuat","mat_in","retQuat","te","m11","m12","m13","m21","m22","m23","m31","m32","m33","trace","rotateVec_90","vec_in","ret_vec","calcRotateMat","dir","pep_dir","cur_tangent","cur_normal","cur_binormal","cur_rotate","getMatTranslate","ret_pos","addMat","mat1","mulMat","factor","clamp","num","newVec1","newVec2","vecInterp","vec1","ratio","retVec","vec2Interp","vec_1","vec_2","transform_in","inverse_in","getLocalRestStartPt","getLocalRestEndPt","world_pt_in","calcRestData","calc","computeDirs","local_rest_dir","first","local_rest_normal_dir","second","computeRestLength","setWorldStartPt","world_start_pt","setWorldEndPt","world_end_pt","fixDQs","ref_dq","world_dq","cur_child","initWorldPts","getWorldRestStartPt","getWorldRestEndPt","tmp_mat","getWorldRestAngle","getWorldRestPos","world_rest_pos","getWorldStartPt","getWorldEndPt","getRestParentMat","getRestWorldMat","getWorldDeltaMat","world_delta_mat","getParentWorldMat","getParentWorldInvMat","getWorldDq","computeRestParentTransforms","cur_translate","cur_final","world_rest_dir","bind_translate","tVec","bind_rotate","cur_bind_final","cur_bone","computeParentTransforms","translate_parent","getWorldEndpt","rotate_parent","final_transform","final_inv_transform","computeWorldDeltaTransforms","cur_quat","tmp_pos","addChild","bone_in","getChildren","hasBone","getChildByKey","search_key","ret_data","result","getKey","getAllBoneKeys","append_data","concat","getAllChildren","getBoneDepth","depth","ret_val","isLeaf","deleteChildren","setTagId","value_in","getTagId","start_pt","end_pt","tangent","normal","retData","tmp_dir","rest_length","getIndicesIndex","getRestPtsIndex","getUVsIndex","getNumPts","getStartPtIndex","getEndPtIndex","getNumIndices","getStartIndex","getEndIndex","accum_dq","accum_mat","final_pt","tmp1","tmp2","poseFinalPts","output_pts","output_start_index","read_pt_index","write_pt_index","boneKeys","Object","keys","cur_rest_pt","curBoneIndices","relevantIndicesLength","idx_lookup","cur_weight_val","cur_im_weight_val","tmp_pt","runUvWarp","setMainBoneKey","main_bone_key","determineMainBone","root_bone_in","setUseDq","flag_in","setName","getName","setUseLocalDisplacements","getUseLocalDisplacements","setUsePostDisplacements","getUsePostDisplacements","getRestLocalPt","index_in","return_pt","getLocalIndex","read_index","clearLocalDisplacements","clearPostDisplacements","setUseUvWarp","restoreRefUv","getUseUvWarp","setUvWarpLocalOffset","setUvWarpGlobalOffset","setUvWarpScale","getUvWarpLocalOffset","getUvWarpGlobalOffset","getUvWarpScale","cur_uvs_index","set_uv","initFastNormalWeightMap","cur_key","values","cutoff_val","curIndicesArray","cur_val","addRegion","region_in","setRootBone","getRootBone","initBoneMap","genBoneMap","initRegionsMap","input_bone","ret_map","all_keys","getBonesMap","getRegionsMap","getRegions","getRegionWithId","id_in","cur_region","resetToWorldRestPts","updateAllTransforms","update_parent_xf","pt_in","setLocalDisplacements","displacements_in","setPostDisplacements","getLocalDisplacements","getPostDisplacements","setEnabled","getEnabled","init","start_time_in","end_time_in","start_time","end_time","num_frames","getStartTime","getEndime","getIndexByTime","time_in","retval","retrieveValuesAtTime","bone_map","base_time","floor","ceil","base_cache","end_cache","base_data","end_data","final_world_start_pt","final_world_end_pt","allReady","ready_cnt","size","makeAllReady","set_region","displacements","interp_val","final_local_offset","final_global_offset","final_scale","CreatureModuleUtils","GetAllAnimationNames","json_data","json_animations","getFloatArray","raw_data","getIntArray","ReadPointsArray2DJSON","data","raw_array","ret_list","num_points","cur_index","ReadFloatArray3DJSON","ReadBoolJSON","val","ReadFloatArrayJSON","ReadIntArrayJSON","ReadMatrixJSON","ReadVector2JSON","ReadVector3JSON","CreateBones","json_obj","base_obj","bone_data","child_set","cur_name","cur_node","cur_id","cur_parent_mat","cur_local_rest_start_pt","cur_local_rest_end_pt","cur_children_ids","new_bone","cur_child_id","cur_data","children_ids","child_bone","CreateRegions","ret_regions","cur_start_pt_index","cur_end_pt_index","cur_start_index","cur_end_index","new_region","weight_map","weight_obj","w_key","GetStartEndTimes","cur_num","parseInt","FillBoneCache","cache_manager","cur_time","cache_list","bone_node","cur_start_pt","cur_end_pt","cache_data","set_index","FillDeformationCache","mesh_node","use_local_displacement","use_post_displacement","read_pts","FillUVSwapCache","uv_node","use_uv","local_offset","global_offset","FillRenderColours","g","cur_colour_index","ComputeBoundaryIndices","freq_table","cur_regions","cur_idx","is_found","ComputeBoundaryMinMax","firstIdx","minPt","maxPt","ref_idx","ref_x","ref_y","json_mesh","json_anim_base","json_clip","start_end_times","verifyFillCache","poseFromCachePts","target_pts","num_pts","cur_floor_time","cur_ceil_time","cur_ratio","set_pt","floor_pts","ceil_pts","set_idx","floor_idx","ceil_idx","CreateAnimation","new_animation","AddAnimation","CreateAllAnimations","all_animation_names","SetActiveAnimationName","get","animation_in","GetAnimation","GetCreature","GetAnimationNames","ret_names","check_already_active","active_animation_name","cur_animation","displacement_cache_manager","displacement_table","uv_warp_cache_manager","uv_swap_table","all_regions","index","GetActiveAnimationName","GetAllAnimations","MakePointCache","animation_name_in","store_run_time","getRunTime","cache_pts_list","setRunTime","new_pts","PoseCreature","FillSinglePointCacheFrame","GetIsPlaying","SetShouldLoop","SetUseCustomTimeRange","SetCustomTimeRange","SetIsPlaying","ResetToStartTimes","correctTime","increRunTime","delta_in","anim_start_time","anim_end_time","Update","delta","RunCreature","RunAtTime","set_data_index","read_data_1","read_data_2","SetTimeScale","scale_in","SetBlending","new_vec","SetBlendingAnimations","name_1","name_2","SetBlendingFactor","IsContactBone","radius","ProcessContactBone","bone_cache_manager","cur_bones","cur_pt_index","start","end"],"mappings":"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","file":"creature.min.js"}
\ No newline at end of file
diff --git a/build/creature.min.js b/build/creature.min.js
new file mode 100644
index 0000000000..8d8da9937c
--- /dev/null
+++ b/build/creature.min.js
@@ -0,0 +1,6 @@
+/* Phaser v2.6.2 Creature Build - http://phaser.io - @photonstorm - (c) 2016 Photon Storm Ltd. */
+
+function dualQuat(){this.real=quat.create(),this.real[Q_W]=0,this.imaginary=quat.create(),this.imaginary[Q_W]=0,this.tmpQ1=quat.create()}function MeshBone(a,b,c,d){this.key=a,this.world_rest_angle=0,this.rest_parent_mat=mat4.create(),this.rest_parent_inv_mat=mat4.create(),this.rest_world_mat=mat4.create(),this.rest_world_inv_mat=mat4.create(),this.bind_world_mat=mat4.create(),this.bind_world_inv_mat=mat4.create(),this.parent_world_mat=mat4.create(),this.parent_world_inv_mat=mat4.create(),this.local_rest_start_pt=null,this.local_rest_end_pt=null,this.setRestParentMat(d,null),this.setLocalRestStartPt(b),this.setLocalRestEndPt(c),this.setParentWorldInvMat(mat4.create()),this.setParentWorldMat(mat4.create()),this.local_binormal_dir=vec3.fromValues(0,0,1),this.tag_id=0,this.children=[]}function MeshRenderRegion(a,b,c,d,e,f,g){this.store_indices=a,this.store_rest_pts=b,this.store_uvs=c,this.use_local_displacements=!1,this.use_post_displacements=!1,this.use_uv_warp=!1,this.uv_warp_local_offset=vec2.fromValues(0,0),this.uv_warp_global_offset=vec2.fromValues(0,0),this.uv_warp_scale=vec2.fromValues(1,1),this.start_pt_index=d,this.end_pt_index=e,this.start_index=f,this.end_index=g,this.main_bone=null,this.local_displacements=[],this.post_displacements=[],this.uv_warp_ref_uvs=[],this.normal_weight_map={},this.fast_normal_weight_map=[],this.fast_bones_map=[],this.relevant_bones_indices=[],this.use_dq=!0,this.tag_id=-1,this.initUvWarp()}function MeshRenderBoneComposition(){this.root_bone=null,this.bones_map={},this.regions=[],this.regions_map={}}function MeshBoneCache(a){this.key=a}function MeshDisplacementCache(a){this.key=a,this.local_displacements=[],this.post_displacements=[]}function MeshUVWarpCache(a){this.uv_warp_global_offset=vec2.create(),this.uv_warp_local_offset=vec2.create(),this.uv_warp_scale=vec2.fromValues(-1,-1),this.key=a,this.enabled=!1}function MeshBoneCacheManager(){this.is_ready=!1,this.bone_cache_table=null,this.bone_cache_data_ready=null,this.bone_cache_table=[],this.bone_cache_data_ready=[]}function MeshDisplacementCacheManager(){this.is_ready=!1,this.displacement_cache_table=null,this.displacement_cache_data_ready=null,this.displacement_cache_table=[],this.displacement_cache_data_ready=[]}function MeshUVWarpCacheManager(){this.is_ready=!1,this.uv_cache_table=null,this.uv_cache_data_ready=null,this.uv_cache_table=[],this.uv_cache_data_ready=[]}function Creature(a){this.total_num_pts=0,this.total_num_indices=0,this.global_indices=null,this.global_pts=null,this.global_uvs=null,this.render_pts=null,this.render_colours=null,this.render_composition=null,this.boundary_indices=[],this.boundary_min=vec2.create(),this.boundary_max=vec2.create(),this.LoadFromData(a)}function CreatureAnimation(a,b){this.name=b,this.bones_cache=new MeshBoneCacheManager,this.displacement_cache=new MeshDisplacementCacheManager,this.uv_warp_cache=new MeshUVWarpCacheManager,this.cache_pts=[],this.fill_cache_pts=[],this.LoadFromData(b,a)}function CreatureManager(a){this.target_creature=a,this.is_playing=!1,this.run_time=0,this.time_scale=30,this.blending_factor=0,this.should_loop=!0,this.use_custom_time_range=!1,this.custom_start_time=0,this.custom_end_time=0,this.animations={},this.bones_override_callback=null,this.blend_render_pts=[],this.blend_render_pts.push([]),this.blend_render_pts.push([]),this.do_blending=!1,this.active_blend_animation_names=[],this.active_blend_animation_names.push(""),this.active_blend_animation_names.push("")}!function(a){"use strict";var b={};"undefined"==typeof exports?"function"==typeof define&&"object"==typeof define.amd&&define.amd?(b.exports={},define(function(){return b.exports})):b.exports="undefined"!=typeof window?window:a:b.exports=exports,function(a){if(!b)var b=1e-6;if(!c)var c="undefined"!=typeof Float32Array?Float32Array:Array;if(!d)var d=Math.random;var e={};e.setMatrixArrayType=function(a){c=a},"undefined"!=typeof a&&(a.glMatrix=e);var f=Math.PI/180;e.toRadian=function(a){return a*f};var g={};g.create=function(){var a=new c(2);return a[0]=0,a[1]=0,a},g.clone=function(a){var b=new c(2);return b[0]=a[0],b[1]=a[1],b},g.fromValues=function(a,b){var d=new c(2);return d[0]=a,d[1]=b,d},g.copy=function(a,b){return a[0]=b[0],a[1]=b[1],a},g.set=function(a,b,c){return a[0]=b,a[1]=c,a},g.add=function(a,b,c){return a[0]=b[0]+c[0],a[1]=b[1]+c[1],a},g.subtract=function(a,b,c){return a[0]=b[0]-c[0],a[1]=b[1]-c[1],a},g.sub=g.subtract,g.multiply=function(a,b,c){return a[0]=b[0]*c[0],a[1]=b[1]*c[1],a},g.mul=g.multiply,g.divide=function(a,b,c){return a[0]=b[0]/c[0],a[1]=b[1]/c[1],a},g.div=g.divide,g.min=function(a,b,c){return a[0]=Math.min(b[0],c[0]),a[1]=Math.min(b[1],c[1]),a},g.max=function(a,b,c){return a[0]=Math.max(b[0],c[0]),a[1]=Math.max(b[1],c[1]),a},g.scale=function(a,b,c){return a[0]=b[0]*c,a[1]=b[1]*c,a},g.scaleAndAdd=function(a,b,c,d){return a[0]=b[0]+c[0]*d,a[1]=b[1]+c[1]*d,a},g.distance=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return Math.sqrt(c*c+d*d)},g.dist=g.distance,g.squaredDistance=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return c*c+d*d},g.sqrDist=g.squaredDistance,g.length=function(a){var b=a[0],c=a[1];return Math.sqrt(b*b+c*c)},g.len=g.length,g.squaredLength=function(a){var b=a[0],c=a[1];return b*b+c*c},g.sqrLen=g.squaredLength,g.negate=function(a,b){return a[0]=-b[0],a[1]=-b[1],a},g.inverse=function(a,b){return a[0]=1/b[0],a[1]=1/b[1],a},g.normalize=function(a,b){var c=b[0],d=b[1],e=c*c+d*d;return e>0&&(e=1/Math.sqrt(e),a[0]=b[0]*e,a[1]=b[1]*e),a},g.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]},g.cross=function(a,b,c){var d=b[0]*c[1]-b[1]*c[0];return a[0]=a[1]=0,a[2]=d,a},g.lerp=function(a,b,c,d){var e=b[0],f=b[1];return a[0]=e+d*(c[0]-e),a[1]=f+d*(c[1]-f),a},g.random=function(a,b){b=b||1;var c=2*d()*Math.PI;return a[0]=Math.cos(c)*b,a[1]=Math.sin(c)*b,a},g.transformMat2=function(a,b,c){var d=b[0],e=b[1];return a[0]=c[0]*d+c[2]*e,a[1]=c[1]*d+c[3]*e,a},g.transformMat2d=function(a,b,c){var d=b[0],e=b[1];return a[0]=c[0]*d+c[2]*e+c[4],a[1]=c[1]*d+c[3]*e+c[5],a},g.transformMat3=function(a,b,c){var d=b[0],e=b[1];return a[0]=c[0]*d+c[3]*e+c[6],a[1]=c[1]*d+c[4]*e+c[7],a},g.transformMat4=function(a,b,c){var d=b[0],e=b[1];return a[0]=c[0]*d+c[4]*e+c[12],a[1]=c[1]*d+c[5]*e+c[13],a},g.forEach=function(){var a=g.create();return function(b,c,d,e,f,g){var h,i;for(c||(c=2),d||(d=0),i=e?Math.min(e*c+d,b.length):b.length,h=d;h0&&(f=1/Math.sqrt(f),a[0]=b[0]*f,a[1]=b[1]*f,a[2]=b[2]*f),a},h.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]},h.cross=function(a,b,c){var d=b[0],e=b[1],f=b[2],g=c[0],h=c[1],i=c[2];return a[0]=e*i-f*h,a[1]=f*g-d*i,a[2]=d*h-e*g,a},h.lerp=function(a,b,c,d){var e=b[0],f=b[1],g=b[2];return a[0]=e+d*(c[0]-e),a[1]=f+d*(c[1]-f),a[2]=g+d*(c[2]-g),a},h.random=function(a,b){b=b||1;var c=2*d()*Math.PI,e=2*d()-1,f=Math.sqrt(1-e*e)*b;return a[0]=Math.cos(c)*f,a[1]=Math.sin(c)*f,a[2]=e*b,a},h.transformMat4=function(a,b,c){var d=b[0],e=b[1],f=b[2],g=c[3]*d+c[7]*e+c[11]*f+c[15];return g=g||1,a[0]=(c[0]*d+c[4]*e+c[8]*f+c[12])/g,a[1]=(c[1]*d+c[5]*e+c[9]*f+c[13])/g,a[2]=(c[2]*d+c[6]*e+c[10]*f+c[14])/g,a},h.transformMat3=function(a,b,c){var d=b[0],e=b[1],f=b[2];return a[0]=d*c[0]+e*c[3]+f*c[6],a[1]=d*c[1]+e*c[4]+f*c[7],a[2]=d*c[2]+e*c[5]+f*c[8],a},h.transformQuat=function(a,b,c){var d=b[0],e=b[1],f=b[2],g=c[0],h=c[1],i=c[2],j=c[3],k=j*d+h*f-i*e,l=j*e+i*d-g*f,m=j*f+g*e-h*d,n=-g*d-h*e-i*f;return a[0]=k*j+n*-g+l*-i-m*-h,a[1]=l*j+n*-h+m*-g-k*-i,a[2]=m*j+n*-i+k*-h-l*-g,a},h.rotateX=function(a,b,c,d){var e=[],f=[];return e[0]=b[0]-c[0],e[1]=b[1]-c[1],e[2]=b[2]-c[2],f[0]=e[0],f[1]=e[1]*Math.cos(d)-e[2]*Math.sin(d),f[2]=e[1]*Math.sin(d)+e[2]*Math.cos(d),a[0]=f[0]+c[0],a[1]=f[1]+c[1],a[2]=f[2]+c[2],a},h.rotateY=function(a,b,c,d){var e=[],f=[];return e[0]=b[0]-c[0],e[1]=b[1]-c[1],e[2]=b[2]-c[2],f[0]=e[2]*Math.sin(d)+e[0]*Math.cos(d),f[1]=e[1],f[2]=e[2]*Math.cos(d)-e[0]*Math.sin(d),a[0]=f[0]+c[0],a[1]=f[1]+c[1],a[2]=f[2]+c[2],a},h.rotateZ=function(a,b,c,d){var e=[],f=[];return e[0]=b[0]-c[0],e[1]=b[1]-c[1],e[2]=b[2]-c[2],f[0]=e[0]*Math.cos(d)-e[1]*Math.sin(d),f[1]=e[0]*Math.sin(d)+e[1]*Math.cos(d),f[2]=e[2],a[0]=f[0]+c[0],a[1]=f[1]+c[1],a[2]=f[2]+c[2],a},h.forEach=function(){var a=h.create();return function(b,c,d,e,f,g){var h,i;for(c||(c=3),d||(d=0),i=e?Math.min(e*c+d,b.length):b.length,h=d;h0&&(g=1/Math.sqrt(g),a[0]=b[0]*g,a[1]=b[1]*g,a[2]=b[2]*g,a[3]=b[3]*g),a},i.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+a[3]*b[3]},i.lerp=function(a,b,c,d){var e=b[0],f=b[1],g=b[2],h=b[3];return a[0]=e+d*(c[0]-e),a[1]=f+d*(c[1]-f),a[2]=g+d*(c[2]-g),a[3]=h+d*(c[3]-h),a},i.random=function(a,b){return b=b||1,a[0]=d(),a[1]=d(),a[2]=d(),a[3]=d(),i.normalize(a,a),i.scale(a,a,b),a},i.transformMat4=function(a,b,c){var d=b[0],e=b[1],f=b[2],g=b[3];return a[0]=c[0]*d+c[4]*e+c[8]*f+c[12]*g,a[1]=c[1]*d+c[5]*e+c[9]*f+c[13]*g,a[2]=c[2]*d+c[6]*e+c[10]*f+c[14]*g,a[3]=c[3]*d+c[7]*e+c[11]*f+c[15]*g,a},i.transformQuat=function(a,b,c){var d=b[0],e=b[1],f=b[2],g=c[0],h=c[1],i=c[2],j=c[3],k=j*d+h*f-i*e,l=j*e+i*d-g*f,m=j*f+g*e-h*d,n=-g*d-h*e-i*f;return a[0]=k*j+n*-g+l*-i-m*-h,a[1]=l*j+n*-h+m*-g-k*-i,a[2]=m*j+n*-i+k*-h-l*-g,a},i.forEach=function(){var a=i.create();return function(b,c,d,e,f,g){var h,i;for(c||(c=4),d||(d=0),i=e?Math.min(e*c+d,b.length):b.length,h=d;h.999999?(d[0]=0,d[1]=0,d[2]=0,d[3]=1,d):(h.cross(a,e,f),d[0]=a[0],d[1]=a[1],d[2]=a[2],d[3]=1+g,n.normalize(d,d))}}(),n.setAxes=function(){var a=l.create();return function(b,c,d,e){return a[0]=d[0],a[3]=d[1],a[6]=d[2],a[1]=e[0],a[4]=e[1],a[7]=e[2],a[2]=-c[0],a[5]=-c[1],a[8]=-c[2],n.normalize(b,n.fromMat3(b,a))}}(),n.clone=i.clone,n.fromValues=i.fromValues,n.copy=i.copy,n.set=i.set,n.identity=function(a){return a[0]=0,a[1]=0,a[2]=0,a[3]=1,a},n.setAxisAngle=function(a,b,c){c=.5*c;var d=Math.sin(c);return a[0]=d*b[0],a[1]=d*b[1],a[2]=d*b[2],a[3]=Math.cos(c),a},n.add=i.add,n.multiply=function(a,b,c){var d=b[0],e=b[1],f=b[2],g=b[3],h=c[0],i=c[1],j=c[2],k=c[3];return a[0]=d*k+g*h+e*j-f*i,a[1]=e*k+g*i+f*h-d*j,a[2]=f*k+g*j+d*i-e*h,a[3]=g*k-d*h-e*i-f*j,a},n.mul=n.multiply,n.scale=i.scale,n.rotateX=function(a,b,c){c*=.5;var d=b[0],e=b[1],f=b[2],g=b[3],h=Math.sin(c),i=Math.cos(c);return a[0]=d*i+g*h,a[1]=e*i+f*h,a[2]=f*i-e*h,a[3]=g*i-d*h,a},n.rotateY=function(a,b,c){c*=.5;var d=b[0],e=b[1],f=b[2],g=b[3],h=Math.sin(c),i=Math.cos(c);return a[0]=d*i-f*h,a[1]=e*i+g*h,a[2]=f*i+d*h,a[3]=g*i-e*h,a},n.rotateZ=function(a,b,c){c*=.5;var d=b[0],e=b[1],f=b[2],g=b[3],h=Math.sin(c),i=Math.cos(c);return a[0]=d*i+e*h,a[1]=e*i-d*h,a[2]=f*i+g*h,a[3]=g*i-f*h,a},n.calculateW=function(a,b){var c=b[0],d=b[1],e=b[2];return a[0]=c,a[1]=d,a[2]=e,a[3]=Math.sqrt(Math.abs(1-c*c-d*d-e*e)),a},n.dot=i.dot,n.lerp=i.lerp,n.slerp=function(a,b,c,d){var e,f,g,h,i,j=b[0],k=b[1],l=b[2],m=b[3],n=c[0],o=c[1],p=c[2],q=c[3];return f=j*n+k*o+l*p+m*q,f<0&&(f=-f,n=-n,o=-o,p=-p,q=-q),1-f>1e-6?(e=Math.acos(f),g=Math.sin(e),h=Math.sin((1-d)*e)/g,i=Math.sin(d*e)/g):(h=1-d,i=d),a[0]=h*j+i*n,a[1]=h*k+i*o,a[2]=h*l+i*p,a[3]=h*m+i*q,a},n.invert=function(a,b){var c=b[0],d=b[1],e=b[2],f=b[3],g=c*c+d*d+e*e+f*f,h=g?1/g:0;return a[0]=-c*h,a[1]=-d*h,a[2]=-e*h,a[3]=f*h,a},n.conjugate=function(a,b){return a[0]=-b[0],a[1]=-b[1],a[2]=-b[2],a[3]=b[3],a},n.length=i.length,n.len=n.length,n.squaredLength=i.squaredLength,n.sqrLen=n.squaredLength,n.normalize=i.normalize,n.fromMat3=function(a,b){var c,d=b[0]+b[4]+b[8];if(d>0)c=Math.sqrt(d+1),a[3]=.5*c,c=.5/c,a[0]=(b[5]-b[7])*c,a[1]=(b[6]-b[2])*c,a[2]=(b[1]-b[3])*c;else{var e=0;b[4]>b[0]&&(e=1),b[8]>b[3*e+e]&&(e=2);var f=(e+1)%3,g=(e+2)%3;c=Math.sqrt(b[3*e+e]-b[3*f+f]-b[3*g+g]+1),a[e]=.5*c,c=.5/c,a[3]=(b[3*f+g]-b[3*g+f])*c,a[f]=(b[3*f+e]+b[3*e+f])*c,a[g]=(b[3*g+e]+b[3*e+g])*c}return a},n.str=function(a){return"quat("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+")"},"undefined"!=typeof a&&(a.quat=n)}(b.exports)}(this);var Q_X=0,Q_Y=1,Q_Z=2,Q_W=3;dualQuat.prototype.reset=function(){quat.identity(this.real),this.real[Q_W]=0,quat.identity(this.imaginary),this.imaginary[Q_W]=0,quat.identity(this.tmpQ1)},dualQuat.prototype.createFromData=function(a,b){this.real=a,this.imaginary=quat.create(),this.imaginary[Q_W]=-.5*(b[Q_X]*a[Q_X]+b[Q_Y]*a[Q_Y]+b[Q_Z]*a[Q_Z]),this.imaginary[Q_X]=.5*(b[Q_X]*a[Q_W]+b[Q_Y]*a[Q_Z]-b[Q_Z]*a[Q_Y]),this.imaginary[Q_Y]=.5*(-b[Q_X]*a[Q_Z]+b[Q_Y]*a[Q_W]+b[Q_Z]*a[Q_X]),this.imaginary[Q_Z]=.5*(b[Q_X]*a[Q_Y]-b[Q_Y]*a[Q_X]+b[Q_Z]*a[Q_W])},dualQuat.prototype.add=function(a,b,c){quat.copy(this.tmpQ1,a.real),quat.scale(this.tmpQ1,this.tmpQ1,b),quat.add(this.real,this.tmpQ1,this.real),quat.copy(this.tmpQ1,a.imaginary),
+quat.scale(this.tmpQ1,this.tmpQ1,c),quat.add(this.imaginary,this.tmpQ1,this.imaginary)},dualQuat.prototype.normalize=function(){var a=quat.length(this.real);this.real=quat.scale(this.real,this.real,1/a),this.imaginary=quat.scale(this.imaginary,this.imaginary,1/a)};var v0=vec3.create(),ve=vec3.create(),trans=vec3.create(),tmpVec1=vec3.create(),tmpVec2=vec3.create(),tmpVec0=vec3.create(),aVec=vec3.create(),rot=vec3.create();dualQuat.prototype.transform=function(a){return v0[Q_X]=this.real[Q_X],v0[Q_Y]=this.real[Q_Y],v0[Q_Z]=this.real[Q_Z],ve[Q_X]=this.imaginary[Q_X],ve[Q_Y]=this.imaginary[Q_Y],ve[Q_Z]=this.imaginary[Q_Z],tmpVec1=vec3.scale(tmpVec1,v0,this.imaginary[Q_W]),tmpVec2=vec3.cross(tmpVec2,v0,ve),tmpVec0=vec3.scale(tmpVec0,ve,this.real[Q_W]),aVec=vec3.subtract(aVec,tmpVec0,tmpVec1),trans=vec3.add(trans,aVec,tmpVec2),trans=vec3.scale(trans,trans,2),rot=vec3.transformQuat(rot,a,this.real),rot=vec3.add(rot,rot,trans)};var Utils={};Utils.setAxisMatrix=function(a,b,c){var d=mat4.create(),e=0,f=4,g=8,h=12,i=1,j=5,k=9,l=13,m=2,n=6,o=10,p=14,q=3,r=7,s=11,t=15;return d[e]=a[Q_X],d[f]=a[Q_Y],d[g]=a[Q_Z],d[i]=b[Q_X],d[j]=b[Q_Y],d[k]=b[Q_Z],d[m]=c[Q_X],d[n]=c[Q_Y],d[o]=c[Q_Z],d[h]=0,d[l]=0,d[p]=0,d[q]=0,d[r]=0,d[s]=0,d[t]=1,d=mat4.transpose(d,d)},Utils.matrixToQuat=function(a){var b,c=quat.create(),d=a,e=d[0],f=d[4],g=d[8],h=d[1],i=d[5],j=d[9],k=d[2],l=d[6],m=d[10],n=e+i+m;return n>0?(b=.5/Math.sqrt(n+1),c[Q_W]=.25/b,c[Q_X]=(l-j)*b,c[Q_Y]=(g-k)*b,c[Q_Z]=(h-f)*b):e>i&&e>m?(b=2*Math.sqrt(1+e-i-m),c[Q_W]=(l-j)/b,c[Q_X]=.25*b,c[Q_Y]=(f+h)/b,c[Q_Z]=(g+k)/b):i>m?(b=2*Math.sqrt(1+i-e-m),c[Q_W]=(g-k)/b,c[Q_X]=(f+h)/b,c[Q_Y]=.25*b,c[Q_Z]=(j+l)/b):(b=2*Math.sqrt(1+m-e-i),c[Q_W]=(h-f)/b,c[Q_X]=(g+k)/b,c[Q_Y]=(j+l)/b,c[Q_Z]=.25*b),c},Utils.rotateVec_90=function(a){var b=vec3.fromValues(-a[Q_Y],a[Q_X],a[Q_Z]);return b},Utils.calcRotateMat=function(a){var b=vec3.clone(a);b=vec3.normalize(b,b);var c=Utils.rotateVec_90(b),d=vec3.fromValues(b[Q_X],b[Q_Y],0),e=vec3.fromValues(c[Q_X],c[Q_Y],0),f=vec3.fromValues(0,0,1),g=mat4.create();return g=Utils.setAxisMatrix(d,e,f)},Utils.getMatTranslate=function(a){var b=vec3.create();return b[Q_X]=a[12],b[Q_Y]=a[13],b[Q_Z]=a[14],b},Utils.addMat=function(a,b){for(var c=mat4.create(),d=0;d<16;d++)c[d]=a[d]+b[d];return c},Utils.mulMat=function(a,b){for(var c=mat4.create(),d=0;d<16;d++)c[d]=a[d]*b;return c},Utils.clamp=function(a,b,c){return ac?c:a};var newVec1=vec3.create(),newVec2=vec3.create();Utils.vecInterp=function(a,b,c){newVec1=vec3.scale(newVec1,a,1-c),newVec2=vec3.scale(newVec2,b,c);var d=vec3.create();return d=vec3.add(d,newVec1,newVec2)},Utils.vec2Interp=function(a,b,c){var d=vec2.create(),e=vec2.create();d=vec2.scale(d,a,1-c),e=vec2.scale(e,b,c);var f=vec2.create();return f=vec2.add(f,d,e)},MeshBone.prototype.setRestParentMat=function(a,b){this.rest_parent_mat=a,null==b?(this.rest_parent_inv_mat=mat4.clone(this.rest_parent_mat),mat4.invert(this.rest_parent_inv_mat,this.rest_parent_inv_mat)):this.rest_parent_inv_mat=mat4.clone(b)},MeshBone.prototype.setParentWorldMat=function(a){this.parent_world_mat=a},MeshBone.prototype.setParentWorldInvMat=function(a){this.parent_world_inv_mat=a},MeshBone.prototype.getLocalRestStartPt=function(){return this.local_rest_start_pt},MeshBone.prototype.getLocalRestEndPt=function(){return this.local_rest_end_pt},MeshBone.prototype.setLocalRestStartPt=function(a){this.local_rest_start_pt=vec3.create(),this.local_rest_start_pt=vec3.transformMat4(this.local_rest_start_pt,a,this.rest_parent_inv_mat),this.calcRestData()},MeshBone.prototype.setLocalRestEndPt=function(a){this.local_rest_end_pt=vec3.create(),this.local_rest_end_pt=vec3.transformMat4(this.local_rest_end_pt,a,this.rest_parent_inv_mat),this.calcRestData()},MeshBone.prototype.calcRestData=function(){if(null!=this.local_rest_start_pt&&null!=this.local_rest_end_pt){var a=this.computeDirs(this.local_rest_start_pt,this.local_rest_end_pt);this.local_rest_dir=a.first,this.local_rest_normal_dir=a.second,this.computeRestLength()}},MeshBone.prototype.setWorldStartPt=function(a){this.world_start_pt=a},MeshBone.prototype.setWorldEndPt=function(a){this.world_end_pt=a},MeshBone.prototype.fixDQs=function(a){quat.dot(this.world_dq.real,a.real)<0&&(this.world_dq.real=quat.scale(this.world_dq.real,this.world_dq.real,-1),this.world_dq.imaginary=quat.scale(this.world_dq.imaginary,this.world_dq.imaginary,-1));for(var b=0;bd&&f.push(g)}this.relevant_bones_indices.push(f)}for(var b in a){var i=a[b];this.fast_bones_map.push(i)}},MeshRenderRegion.prototype.initUvWarp=function(){var a=this.getUVsIndex();this.uv_warp_ref_uvs=[];for(var b=0;bd&&(d=h),h=h&&d<=i){e=!0;break}}e&&a[d]++}this.boundary_indices=[];for(var b=0;bf&&(b[0]=f),b[1]>g&&(b[1]=g),c[0]0)){for(var d=c.cache_pts,e=c.start_time;e<=c.end_time;e++){this.setRunTime(e);for(var f=[],g=0;g<3*this.target_creature.total_num_pts;g++)f[g]=0;this.PoseCreature(a,f),d.push(f)}this.setRunTime(b)}},CreatureManager.prototype.FillSinglePointCacheFrame=function(a,b){var c=this.getRunTime(),d=this.animations[a];this.setRunTime(b);for(var e=[],f=0;f<3*this.target_creature.total_num_pts;f++)e[f]=0;this.PoseCreature(a,e),d.fill_cache_pts.push(e),d.verifyFillCache(),this.setRunTime(c)},CreatureManager.prototype.GetIsPlaying=function(){return this.is_playing},CreatureManager.prototype.SetShouldLoop=function(a){this.should_loop=a},CreatureManager.prototype.SetUseCustomTimeRange=function(a){this.use_custom_time_range=a},CreatureManager.prototype.SetCustomTimeRange=function(a,b){this.custom_start_time=a,this.custom_end_time=b},CreatureManager.prototype.SetIsPlaying=function(a){this.is_playing=a},CreatureManager.prototype.ResetToStartTimes=function(){var a=this.animations[active_animation_name];this.run_time=a.start_time},CreatureManager.prototype.setRunTime=function(a){this.run_time=a,this.correctTime()},CreatureManager.prototype.increRunTime=function(a){this.run_time+=a,this.correctTime()},CreatureManager.prototype.correctTime=function(){var a=this.animations[this.active_animation_name],b=a.start_time,c=a.end_time;this.use_custom_time_range&&(b=this.custom_start_time,c=this.custom_end_time),this.run_time>c?this.should_loop?this.run_time=b:this.run_time=c:this.run_time0?b.poseFromCachePts(this.getRunTime(),this.blend_render_pts[a],this.target_creature.total_num_pts):this.PoseCreature(this.active_blend_animation_names[a],this.blend_render_pts[a])}for(var c=0;c<3*this.target_creature.total_num_pts;c++){var d=c,e=this.blend_render_pts[0][c],f=this.blend_render_pts[1][c];this.target_creature.render_pts.set(d,(1-blending_factor)*e+blending_factor*f)}}else{var b=this.animations[this.active_animation_name];b.cache_pts.length>0?b.poseFromCachePts(this.getRunTime(),this.target_creature.render_pts,this.target_creature.total_num_pts):this.PoseCreature(this.active_animation_name,this.target_creature.render_pts)}},CreatureManager.prototype.SetTimeScale=function(a){this.time_scale=a},CreatureManager.prototype.SetBlending=function(a){if(this.do_blending=a,this.do_blending){if(0==this.blend_render_pts[0].length){for(var b=[],c=0;c<3*target_creature.total_num_pts;c++)b.push(0);this.blend_render_pts.set(0,b)}if(0==this.blend_render_pts[1].length){for(var b=[],c=0;c<3*this.target_creature.total_num_pts;c++)b.push(0);this.blend_render_pts[1]=b}}},CreatureManager.prototype.SetBlendingAnimations=function(a,b){this.active_blend_animation_names[0]=a,this.active_blend_animation_names[1]=b},CreatureManager.prototype.SetBlendingFactor=function(a){this.blending_factor=a},CreatureManager.prototype.IsContactBone=function(a,b){var c=this.target_creature.render_composition.getRootBone();return this.ProcessContactBone(a,b,c)},CreatureManager.prototype.PoseCreature=function(a,b){var c=this.animations[a],d=c.bones_cache,e=c.displacement_cache,f=c.uv_warp_cache,g=this.target_creature.render_composition,h=g.getBonesMap(),i=g.getRegionsMap();d.retrieveValuesAtTime(this.getRunTime(),h),null!=this.bones_override_callback&&this.bones_override_callback(h),e.retrieveValuesAtTime(this.getRunTime(),i),f.retrieveValuesAtTime(this.getRunTime(),i);var j=g.getRegions(),k=g.getBonesMap();g.updateAllTransforms(!1);for(var l=0,m=j.length;l
* @copyright 2016 Photon Storm Ltd.
@@ -9117,14 +9138,14 @@ Object.defineProperty(PIXI.TilingSprite.prototype, 'height', {
/**
* @namespace Phaser
*/
-var Phaser = Phaser || {
+var Phaser = Phaser || { // jshint ignore:line
/**
* The Phaser version number.
* @constant
* @type {string}
*/
- VERSION: '2.7.0 Beta 3',
+ VERSION: '2.6.2',
/**
* An array of Phaser game instances.
@@ -9710,7 +9731,7 @@ if (!Array.isArray)
{
Array.isArray = function (arg)
{
- return Object.prototype.toString.call(arg) == '[object Array]';
+ return Object.prototype.toString.call(arg) === '[object Array]';
};
}
@@ -10733,7 +10754,9 @@ Phaser.Circle.contains = function (a, x, y) {
* @return {boolean} A value of true if the object has exactly the same values for the x, y and diameter properties as this Circle object; otherwise false.
*/
Phaser.Circle.equals = function (a, b) {
- return (a.x == b.x && a.y == b.y && a.diameter == b.diameter);
+
+ return (a.x === b.x && a.y === b.y && a.diameter === b.diameter);
+
};
/**
@@ -10745,7 +10768,9 @@ Phaser.Circle.equals = function (a, b) {
* @return {boolean} A value of true if the specified object intersects with this Circle object; otherwise false.
*/
Phaser.Circle.intersects = function (a, b) {
+
return (Phaser.Math.distance(a.x, a.y, b.x, b.y) <= (a.radius + b.radius));
+
};
/**
@@ -11450,7 +11475,7 @@ Phaser.Line.prototype = {
var i = 1;
- while (!((x1 == x2) && (y1 == y2)))
+ while (!((x1 === x2) && (y1 === y2)))
{
var e2 = err << 1;
@@ -14419,7 +14444,7 @@ Phaser.Rectangle.containsRect = function (a, b) {
*/
Phaser.Rectangle.equals = function (a, b) {
- return (a.x == b.x && a.y == b.y && a.width == b.width && a.height == b.height);
+ return (a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height);
};
@@ -19607,34 +19632,34 @@ Phaser.Group.prototype.setProperty = function (child, key, value, operation, for
if (len === 1)
{
if (operation === 0) { child[key[0]] = value; }
- else if (operation == 1) { child[key[0]] += value; }
- else if (operation == 2) { child[key[0]] -= value; }
- else if (operation == 3) { child[key[0]] *= value; }
- else if (operation == 4) { child[key[0]] /= value; }
+ else if (operation === 1) { child[key[0]] += value; }
+ else if (operation === 2) { child[key[0]] -= value; }
+ else if (operation === 3) { child[key[0]] *= value; }
+ else if (operation === 4) { child[key[0]] /= value; }
}
else if (len === 2)
{
if (operation === 0) { child[key[0]][key[1]] = value; }
- else if (operation == 1) { child[key[0]][key[1]] += value; }
- else if (operation == 2) { child[key[0]][key[1]] -= value; }
- else if (operation == 3) { child[key[0]][key[1]] *= value; }
- else if (operation == 4) { child[key[0]][key[1]] /= value; }
+ else if (operation === 1) { child[key[0]][key[1]] += value; }
+ else if (operation === 2) { child[key[0]][key[1]] -= value; }
+ else if (operation === 3) { child[key[0]][key[1]] *= value; }
+ else if (operation === 4) { child[key[0]][key[1]] /= value; }
}
else if (len === 3)
{
if (operation === 0) { child[key[0]][key[1]][key[2]] = value; }
- else if (operation == 1) { child[key[0]][key[1]][key[2]] += value; }
- else if (operation == 2) { child[key[0]][key[1]][key[2]] -= value; }
- else if (operation == 3) { child[key[0]][key[1]][key[2]] *= value; }
- else if (operation == 4) { child[key[0]][key[1]][key[2]] /= value; }
+ else if (operation === 1) { child[key[0]][key[1]][key[2]] += value; }
+ else if (operation === 2) { child[key[0]][key[1]][key[2]] -= value; }
+ else if (operation === 3) { child[key[0]][key[1]][key[2]] *= value; }
+ else if (operation === 4) { child[key[0]][key[1]][key[2]] /= value; }
}
else if (len === 4)
{
if (operation === 0) { child[key[0]][key[1]][key[2]][key[3]] = value; }
- else if (operation == 1) { child[key[0]][key[1]][key[2]][key[3]] += value; }
- else if (operation == 2) { child[key[0]][key[1]][key[2]][key[3]] -= value; }
- else if (operation == 3) { child[key[0]][key[1]][key[2]][key[3]] *= value; }
- else if (operation == 4) { child[key[0]][key[1]][key[2]][key[3]] /= value; }
+ else if (operation === 1) { child[key[0]][key[1]][key[2]][key[3]] += value; }
+ else if (operation === 2) { child[key[0]][key[1]][key[2]][key[3]] -= value; }
+ else if (operation === 3) { child[key[0]][key[1]][key[2]][key[3]] *= value; }
+ else if (operation === 4) { child[key[0]][key[1]][key[2]][key[3]] /= value; }
}
return true;
@@ -19925,40 +19950,37 @@ Phaser.Group.prototype.callbackFromArray = function (child, callback, length) {
// Kinda looks like a Christmas tree
- if (length == 1)
+ if (length === 1)
{
if (child[callback[0]])
{
return child[callback[0]];
}
}
- else if (length == 2)
+ else if (length === 2)
{
if (child[callback[0]][callback[1]])
{
return child[callback[0]][callback[1]];
}
}
- else if (length == 3)
+ else if (length === 3)
{
if (child[callback[0]][callback[1]][callback[2]])
{
return child[callback[0]][callback[1]][callback[2]];
}
}
- else if (length == 4)
+ else if (length === 4)
{
if (child[callback[0]][callback[1]][callback[2]][callback[3]])
{
return child[callback[0]][callback[1]][callback[2]][callback[3]];
}
}
- else
+ else if (child[callback])
{
- if (child[callback])
- {
- return child[callback];
- }
+ return child[callback];
}
return false;
@@ -21138,11 +21160,6 @@ Object.defineProperty(Phaser.Group.prototype, "angle", {
* It is derived by calling `getBounds`, calculating the Groups dimensions based on its
* visible children.
*
-* Note that no ancestors are factored into the result, meaning that if this Group is
-* nested within another Group, with heavy transforms on it, the result of this property
-* is likely to be incorrect. It is safe to get and set this property if the Group is a
-* top-level descendant of Phaser.World, or untransformed parents.
-*
* @name Phaser.Group#centerX
* @property {number} centerX
*/
@@ -21150,13 +21167,13 @@ Object.defineProperty(Phaser.Group.prototype, "centerX", {
get: function () {
- return this.getBounds().centerX;
+ return this.getBounds(this.parent).centerX;
},
set: function (value) {
- var r = this.getBounds();
+ var r = this.getBounds(this.parent);
var offset = this.x - r.x;
this.x = (value + offset) - r.halfWidth;
@@ -21171,11 +21188,6 @@ Object.defineProperty(Phaser.Group.prototype, "centerX", {
* It is derived by calling `getBounds`, calculating the Groups dimensions based on its
* visible children.
*
-* Note that no ancestors are factored into the result, meaning that if this Group is
-* nested within another Group, with heavy transforms on it, the result of this property
-* is likely to be incorrect. It is safe to get and set this property if the Group is a
-* top-level descendant of Phaser.World, or untransformed parents.
-*
* @name Phaser.Group#centerY
* @property {number} centerY
*/
@@ -21183,13 +21195,13 @@ Object.defineProperty(Phaser.Group.prototype, "centerY", {
get: function () {
- return this.getBounds().centerY;
+ return this.getBounds(this.parent).centerY;
},
set: function (value) {
- var r = this.getBounds();
+ var r = this.getBounds(this.parent);
var offset = this.y - r.y;
this.y = (value + offset) - r.halfHeight;
@@ -21204,11 +21216,6 @@ Object.defineProperty(Phaser.Group.prototype, "centerY", {
* It is derived by calling `getBounds`, calculating the Groups dimensions based on its
* visible children.
*
-* Note that no ancestors are factored into the result, meaning that if this Group is
-* nested within another Group, with heavy transforms on it, the result of this property
-* is likely to be incorrect. It is safe to get and set this property if the Group is a
-* top-level descendant of Phaser.World, or untransformed parents.
-*
* @name Phaser.Group#left
* @property {number} left
*/
@@ -21216,13 +21223,13 @@ Object.defineProperty(Phaser.Group.prototype, "left", {
get: function () {
- return this.getBounds().left;
+ return this.getBounds(this.parent).left;
},
set: function (value) {
- var r = this.getBounds();
+ var r = this.getBounds(this.parent);
var offset = this.x - r.x;
this.x = value + offset;
@@ -21236,11 +21243,6 @@ Object.defineProperty(Phaser.Group.prototype, "left", {
*
* It is derived by calling `getBounds`, calculating the Groups dimensions based on its
* visible children.
-*
-* Note that no ancestors are factored into the result, meaning that if this Group is
-* nested within another Group, with heavy transforms on it, the result of this property
-* is likely to be incorrect. It is safe to get and set this property if the Group is a
-* top-level descendant of Phaser.World, or untransformed parents.
*
* @name Phaser.Group#right
* @property {number} right
@@ -21249,13 +21251,13 @@ Object.defineProperty(Phaser.Group.prototype, "right", {
get: function () {
- return this.getBounds().right;
+ return this.getBounds(this.parent).right;
},
set: function (value) {
- var r = this.getBounds();
+ var r = this.getBounds(this.parent);
var offset = this.x - r.x;
this.x = (value + offset) - r.width;
@@ -21269,11 +21271,6 @@ Object.defineProperty(Phaser.Group.prototype, "right", {
*
* It is derived by calling `getBounds`, calculating the Groups dimensions based on its
* visible children.
-*
-* Note that no ancestors are factored into the result, meaning that if this Group is
-* nested within another Group, with heavy transforms on it, the result of this property
-* is likely to be incorrect. It is safe to get and set this property if the Group is a
-* top-level descendant of Phaser.World, or untransformed parents.
*
* @name Phaser.Group#top
* @property {number} top
@@ -21282,13 +21279,13 @@ Object.defineProperty(Phaser.Group.prototype, "top", {
get: function () {
- return this.getBounds().top;
+ return this.getBounds(this.parent).top;
},
set: function (value) {
- var r = this.getBounds();
+ var r = this.getBounds(this.parent);
var offset = this.y - r.y;
this.y = (value + offset);
@@ -21303,11 +21300,6 @@ Object.defineProperty(Phaser.Group.prototype, "top", {
* It is derived by calling `getBounds`, calculating the Groups dimensions based on its
* visible children.
*
-* Note that no ancestors are factored into the result, meaning that if this Group is
-* nested within another Group, with heavy transforms on it, the result of this property
-* is likely to be incorrect. It is safe to get and set this property if the Group is a
-* top-level descendant of Phaser.World, or untransformed parents.
-*
* @name Phaser.Group#bottom
* @property {number} bottom
*/
@@ -21315,13 +21307,13 @@ Object.defineProperty(Phaser.Group.prototype, "bottom", {
get: function () {
- return this.getBounds().bottom;
+ return this.getBounds(this.parent).bottom;
},
set: function (value) {
- var r = this.getBounds();
+ var r = this.getBounds(this.parent);
var offset = this.y - r.y;
this.y = (value + offset) - r.height;
@@ -22460,7 +22452,7 @@ Phaser.Game.prototype = {
r = 'WebGL';
c++;
}
- else if (this.renderType == Phaser.HEADLESS)
+ else if (this.renderType === Phaser.HEADLESS)
{
r = 'Headless';
}
@@ -29214,7 +29206,7 @@ Phaser.Gamepad = function (game) {
* @property {boolean} _gamepadSupportAvailable - Are gamepads supported in this browser or not?
* @private
*/
- this._gamepadSupportAvailable = !!navigator.webkitGetGamepads || !!navigator.webkitGamepads || (navigator.userAgent.indexOf('Firefox/') != -1) || !!navigator.getGamepads;
+ this._gamepadSupportAvailable = !!navigator.webkitGetGamepads || !!navigator.webkitGamepads || (navigator.userAgent.indexOf('Firefox/') !== -1) || !!navigator.getGamepads;
/**
* Used to check for differences between earlier polls and current state of gamepads.
@@ -31355,7 +31347,7 @@ Phaser.Keyboard.prototype.constructor = Phaser.Keyboard;
* _Note_: Use `Phaser.KeyCode.KEY` instead of `Phaser.Keyboard.KEY` to refer to a key code;
* the latter approach is supported for compatibility.
*
-* @namespace
+* @class Phaser.KeyCode
*/
Phaser.KeyCode = {
/** @static */
@@ -31565,8 +31557,10 @@ Phaser.KeyCode = {
};
// Duplicate Phaser.KeyCode values in Phaser.Keyboard for compatibility
-for (var key in Phaser.KeyCode) {
- if (Phaser.KeyCode.hasOwnProperty(key) && !key.match(/[a-z]/)) {
+for (var key in Phaser.KeyCode)
+{
+ if (Phaser.KeyCode.hasOwnProperty(key) && !key.match(/[a-z]/))
+ {
Phaser.Keyboard[key] = Phaser.KeyCode[key];
}
}
@@ -32629,7 +32623,7 @@ Phaser.Component.Crop.prototype = {
* @param {Phaser.Rectangle} rect - The Rectangle used during cropping. Pass null or no parameters to clear a previously set crop rectangle.
* @param {boolean} [copy=false] - If false `cropRect` will be stored as a reference to the given rect. If true it will copy the rect values into a local Phaser Rectangle object stored in cropRect.
*/
- crop: function(rect, copy) {
+ crop: function (rect, copy) {
if (copy === undefined) { copy = false; }
@@ -32666,13 +32660,18 @@ Phaser.Component.Crop.prototype = {
*
* @method
*/
- updateCrop: function() {
+ updateCrop: function () {
if (!this.cropRect)
{
return;
}
+ var oldX = this.texture.crop.x;
+ var oldY = this.texture.crop.y;
+ var oldW = this.texture.crop.width;
+ var oldH = this.texture.crop.height;
+
this._crop = Phaser.Rectangle.clone(this.cropRect, this._crop);
this._crop.x += this._frame.x;
this._crop.y += this._frame.y;
@@ -32695,6 +32694,11 @@ Phaser.Component.Crop.prototype = {
this.texture._updateUvs();
+ if (this.tint !== 0xffffff && (oldX !== cx || oldY !== cy || oldW !== cw || oldH !== ch))
+ {
+ this.texture.requiresReTint = true;
+ }
+
}
};
@@ -32872,6 +32876,7 @@ Phaser.Component.Destroy.prototype = {
if (this._crop)
{
this._crop = null;
+ this.cropRect = null;
}
if (this._frame)
@@ -35734,6 +35739,7 @@ Phaser.Sprite.prototype.preUpdate = function() {
* @extends Phaser.Component.LoadTexture
* @extends Phaser.Component.Overlap
* @extends Phaser.Component.Reset
+* @extends Phaser.Component.ScaleMinMax
* @extends Phaser.Component.Smoothed
* @constructor
* @param {Phaser.Game} game - A reference to the currently running game.
@@ -35778,6 +35784,7 @@ Phaser.Component.Core.install.call(Phaser.Image.prototype, [
'LoadTexture',
'Overlap',
'Reset',
+ 'ScaleMinMax',
'Smoothed'
]);
@@ -35976,7 +35983,7 @@ Phaser.Button = function (game, x, y, key, callback, callbackContext, overFrame,
this.onOverMouseOnly = true;
/**
- * Suppresse the over event if a pointer was just released and it matches the given {@link Phaser.PointerModer pointer mode bitmask}.
+ * Suppress the over event if a pointer was just released and it matches the given {@link Phaser.PointerModer pointer mode bitmask}.
*
* This behavior was introduced in Phaser 2.3.1; this property is a soft-revert of the change.
*
@@ -39819,6 +39826,32 @@ PIXI.Graphics.prototype.getBounds = function(matrix)
};
+/**
+ * Retrieves the non-global local bounds of the graphic shape as a rectangle. The calculation takes all visible children into consideration.
+ *
+ * @method getLocalBounds
+ * @return {Rectangle} The rectangular bounding area
+ */
+PIXI.Graphics.prototype.getLocalBounds = function () {
+ var matrixCache = this.worldTransform;
+
+ this.worldTransform = PIXI.identityMatrix;
+
+ for (var i = 0; i < this.children.length; i++) {
+ this.children[i].updateTransform();
+ }
+
+ var bounds = this.getBounds();
+
+ this.worldTransform = matrixCache;
+
+ for (i = 0; i < this.children.length; i++) {
+ this.children[i].updateTransform();
+ }
+
+ return bounds;
+};
+
/**
* Tests if a point is inside this graphics object
*
@@ -40231,175 +40264,6 @@ PIXI.GraphicsData.prototype.clone = function() {
);
};
-/*
- PolyK library
- url: http://polyk.ivank.net
- Released under MIT licence.
-
- Copyright (c) 2012 Ivan Kuckir
-
- Permission is hereby granted, free of charge, to any person
- obtaining a copy of this software and associated documentation
- files (the "Software"), to deal in the Software without
- restriction, including without limitation the rights to use,
- copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the
- Software is furnished to do so, subject to the following
- conditions:
-
- The above copyright notice and this permission notice shall be
- included in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
-
- This is an amazing lib!
-
- Slightly modified by Mat Groves (matgroves.com);
-*/
-
-/**
- * Based on the Polyk library http://polyk.ivank.net released under MIT licence.
- * This is an amazing lib!
- * Slightly modified by Mat Groves (matgroves.com);
- * @class PolyK
- */
-PIXI.PolyK = {};
-
-/**
- * Triangulates shapes for webGL graphic fills.
- *
- * @method Triangulate
- */
-PIXI.PolyK.Triangulate = function(p)
-{
- var sign = true;
-
- var n = p.length >> 1;
- if(n < 3) return [];
-
- var tgs = [];
- var avl = [];
- for(var i = 0; i < n; i++) avl.push(i);
-
- i = 0;
- var al = n;
- while(al > 3)
- {
- var i0 = avl[(i+0)%al];
- var i1 = avl[(i+1)%al];
- var i2 = avl[(i+2)%al];
-
- var ax = p[2*i0], ay = p[2*i0+1];
- var bx = p[2*i1], by = p[2*i1+1];
- var cx = p[2*i2], cy = p[2*i2+1];
-
- var earFound = false;
- if(PIXI.PolyK._convex(ax, ay, bx, by, cx, cy, sign))
- {
- earFound = true;
- for(var j = 0; j < al; j++)
- {
- var vi = avl[j];
- if(vi === i0 || vi === i1 || vi === i2) continue;
-
- if(PIXI.PolyK._PointInTriangle(p[2*vi], p[2*vi+1], ax, ay, bx, by, cx, cy)) {
- earFound = false;
- break;
- }
- }
- }
-
- if(earFound)
- {
- tgs.push(i0, i1, i2);
- avl.splice((i+1)%al, 1);
- al--;
- i = 0;
- }
- else if(i++ > 3*al)
- {
- // need to flip flip reverse it!
- // reset!
- if(sign)
- {
- tgs = [];
- avl = [];
- for(i = 0; i < n; i++) avl.push(i);
-
- i = 0;
- al = n;
-
- sign = false;
- }
- else
- {
- // window.console.log("PIXI Warning: shape too complex to fill");
- return null;
- }
- }
- }
-
- tgs.push(avl[0], avl[1], avl[2]);
- return tgs;
-};
-
-/**
- * Checks whether a point is within a triangle
- *
- * @method _PointInTriangle
- * @param px {Number} x coordinate of the point to test
- * @param py {Number} y coordinate of the point to test
- * @param ax {Number} x coordinate of the a point of the triangle
- * @param ay {Number} y coordinate of the a point of the triangle
- * @param bx {Number} x coordinate of the b point of the triangle
- * @param by {Number} y coordinate of the b point of the triangle
- * @param cx {Number} x coordinate of the c point of the triangle
- * @param cy {Number} y coordinate of the c point of the triangle
- * @private
- * @return {Boolean}
- */
-PIXI.PolyK._PointInTriangle = function(px, py, ax, ay, bx, by, cx, cy)
-{
- var v0x = cx-ax;
- var v0y = cy-ay;
- var v1x = bx-ax;
- var v1y = by-ay;
- var v2x = px-ax;
- var v2y = py-ay;
-
- var dot00 = v0x*v0x+v0y*v0y;
- var dot01 = v0x*v1x+v0y*v1y;
- var dot02 = v0x*v2x+v0y*v2y;
- var dot11 = v1x*v1x+v1y*v1y;
- var dot12 = v1x*v2x+v1y*v2y;
-
- var invDenom = 1 / (dot00 * dot11 - dot01 * dot01);
- var u = (dot11 * dot02 - dot01 * dot12) * invDenom;
- var v = (dot00 * dot12 - dot01 * dot02) * invDenom;
-
- // Check if point is in triangle
- return (u >= 0) && (v >= 0) && (u + v < 1);
-};
-
-/**
- * Checks whether a shape is convex
- *
- * @method _convex
- * @private
- * @return {Boolean}
- */
-PIXI.PolyK._convex = function(ax, ay, bx, by, cx, cy, sign)
-{
- return ((ay-by)*(cx-bx) + (bx-ax)*(cy-by) >= 0) === sign;
-};
-
/*
Copyright (c) 2016, Mapbox
@@ -42900,8 +42764,6 @@ Phaser.Text.prototype.destroy = function (destroyChildren) {
this.texture.destroy(true);
- PIXI.CanvasPool.remove(this);
-
Phaser.Component.Destroy.prototype.destroy.call(this, destroyChildren);
};
@@ -43259,6 +43121,8 @@ Phaser.Text.prototype.updateText = function () {
this.updateTexture();
+ this.dirty = false;
+
};
/**
@@ -44118,20 +43982,20 @@ Phaser.Text.prototype.updateTexture = function () {
// Align the canvas based on the bounds
if (this.style.boundsAlignH === 'right')
{
- x += this.textBounds.width - this.canvas.width;
+ x += this.textBounds.width - this.canvas.width / this.resolution;
}
else if (this.style.boundsAlignH === 'center')
{
- x += this.textBounds.halfWidth - (this.canvas.width / 2);
+ x += this.textBounds.halfWidth - (this.canvas.width / this.resolution / 2);
}
if (this.style.boundsAlignV === 'bottom')
{
- y += this.textBounds.height - this.canvas.height;
+ y += this.textBounds.height - this.canvas.height / this.resolution;
}
else if (this.style.boundsAlignV === 'middle')
{
- y += this.textBounds.halfHeight - (this.canvas.height / 2);
+ y += this.textBounds.halfHeight - (this.canvas.height / this.resolution / 2);
}
this.pivot.x = -x;
@@ -45246,7 +45110,8 @@ Phaser.BitmapText.prototype.scanLine = function (data, scale, text) {
var kerning = (prevCharCode && charData.kerning[prevCharCode]) ? charData.kerning[prevCharCode] : 0;
// Record the last space in the string and the current width
- if (/(\s)/.test(text.charAt(i))) {
+ if (/(\s)/.test(text.charAt(i)))
+ {
lastSpace = i;
wrappedWidth = w;
}
@@ -46515,7 +46380,7 @@ Object.defineProperty(Phaser.Rope.prototype, "segments", {
* An important note about texture dimensions:
*
* When running under Canvas a TileSprite can use any texture size without issue. When running under WebGL the texture should ideally be
-* a power of two in size (i.e. 4, 8, 16, 32, 64, 128, 256, 512, etch pixels width by height). If the texture isn't a power of two
+* a power of two in size (i.e. 4, 8, 16, 32, 64, 128, 256, 512, etc pixels width by height). If the texture isn't a power of two
* it will be rendered to a blank canvas that is the correct size, which means you may have 'blank' areas appearing to the right and
* bottom of your frame. To avoid this ensure your textures are perfect powers of two.
*
@@ -47658,12 +47523,12 @@ Phaser.Device._initialize = function () {
device.webApp = true;
}
- if (typeof window.cordova !== "undefined")
+ if (typeof window.cordova !== 'undefined')
{
device.cordova = true;
}
- if (typeof process !== "undefined" && typeof require !== "undefined")
+ if (typeof process !== 'undefined' && typeof require !== 'undefined')
{
device.node = true;
}
@@ -47683,7 +47548,7 @@ Phaser.Device._initialize = function () {
if (device.cocoonJS)
{
try {
- device.cocoonJSApp = (typeof CocoonJS !== "undefined");
+ device.cocoonJSApp = (typeof CocoonJS !== 'undefined');
}
catch(error)
{
@@ -47691,7 +47556,7 @@ Phaser.Device._initialize = function () {
}
}
- if (typeof window.ejecta !== "undefined")
+ if (typeof window.ejecta !== 'undefined')
{
device.ejecta = true;
}
@@ -47816,42 +47681,6 @@ Phaser.Device._initialize = function () {
}
- /**
- * Check PixelRatio, iOS device, Vibration API, ArrayBuffers and endianess.
- */
- function _checkDevice () {
-
- device.pixelRatio = window['devicePixelRatio'] || 1;
- device.iPhone = navigator.userAgent.toLowerCase().indexOf('iphone') != -1;
- device.iPhone4 = (device.pixelRatio == 2 && device.iPhone);
- device.iPad = navigator.userAgent.toLowerCase().indexOf('ipad') != -1;
-
- if (typeof Int8Array !== 'undefined')
- {
- device.typedArray = true;
- }
- else
- {
- device.typedArray = false;
- }
-
- if (typeof ArrayBuffer !== 'undefined' && typeof Uint8Array !== 'undefined' && typeof Uint32Array !== 'undefined')
- {
- device.littleEndian = _checkIsLittleEndian();
- device.LITTLE_ENDIAN = device.littleEndian;
- }
-
- device.support32bit = (typeof ArrayBuffer !== "undefined" && typeof Uint8ClampedArray !== "undefined" && typeof Int32Array !== "undefined" && device.littleEndian !== null && _checkIsUint8ClampedImageData());
-
- navigator.vibrate = navigator.vibrate || navigator.webkitVibrate || navigator.mozVibrate || navigator.msVibrate;
-
- if (navigator.vibrate)
- {
- device.vibration = true;
- }
-
- }
-
/**
* Check Little or Big Endian system.
*
@@ -47868,12 +47697,12 @@ Phaser.Device._initialize = function () {
b[2] = 0xc3;
b[3] = 0xd4;
- if (c[0] == 0xd4c3b2a1)
+ if (c[0] === 0xd4c3b2a1)
{
return true;
}
- if (c[0] == 0xa1b2c3d4)
+ if (c[0] === 0xa1b2c3d4)
{
return false;
}
@@ -47913,6 +47742,42 @@ Phaser.Device._initialize = function () {
}
+ /**
+ * Check PixelRatio, iOS device, Vibration API, ArrayBuffers and endianess.
+ */
+ function _checkDevice () {
+
+ device.pixelRatio = window['devicePixelRatio'] || 1;
+ device.iPhone = navigator.userAgent.toLowerCase().indexOf('iphone') !== -1;
+ device.iPhone4 = (device.pixelRatio === 2 && device.iPhone);
+ device.iPad = navigator.userAgent.toLowerCase().indexOf('ipad') !== -1;
+
+ if (typeof Int8Array !== 'undefined')
+ {
+ device.typedArray = true;
+ }
+ else
+ {
+ device.typedArray = false;
+ }
+
+ if (typeof ArrayBuffer !== 'undefined' && typeof Uint8Array !== 'undefined' && typeof Uint32Array !== 'undefined')
+ {
+ device.littleEndian = _checkIsLittleEndian();
+ device.LITTLE_ENDIAN = device.littleEndian;
+ }
+
+ device.support32bit = (typeof ArrayBuffer !== 'undefined' && typeof Uint8ClampedArray !== 'undefined' && typeof Int32Array !== 'undefined' && device.littleEndian !== null && _checkIsUint8ClampedImageData());
+
+ navigator.vibrate = navigator.vibrate || navigator.webkitVibrate || navigator.mozVibrate || navigator.msVibrate;
+
+ if (navigator.vibrate)
+ {
+ device.vibration = true;
+ }
+
+ }
+
/**
* Check whether the host environment support 3D CSS.
*/
@@ -48883,6 +48748,87 @@ Phaser.Math = {
},
+ /**
+ * Rotates currentAngle towards targetAngle, taking the shortest rotation distance.
+ * The lerp argument is the amount to rotate by in this call.
+ *
+ * @method Phaser.Math#rotateToAngle
+ * @param {number} currentAngle - The current angle, in radians.
+ * @param {number} targetAngle - The target angle to rotate to, in radians.
+ * @param {number} [lerp=0.05] - The lerp value to add to the current angle.
+ * @return {number} The adjusted angle.
+ */
+ rotateToAngle: function (currentAngle, targetAngle, lerp) {
+
+ if (lerp === undefined) { lerp = 0.05; }
+
+ if (currentAngle === targetAngle)
+ {
+ return currentAngle;
+ }
+
+ if (Math.abs(targetAngle - currentAngle) <= lerp || Math.abs(targetAngle - currentAngle) >= (Phaser.Math.PI2 - lerp))
+ {
+ currentAngle = targetAngle;
+ }
+ else
+ {
+ if (Math.abs(targetAngle - currentAngle) > Math.PI)
+ {
+ if (targetAngle < currentAngle)
+ {
+ targetAngle += Phaser.Math.PI2;
+ }
+ else
+ {
+ targetAngle -= Phaser.Math.PI2;
+ }
+ }
+
+ if (targetAngle > currentAngle)
+ {
+ currentAngle += lerp;
+ }
+ else if (targetAngle < currentAngle)
+ {
+ currentAngle -= lerp;
+ }
+ }
+
+ return currentAngle;
+
+ },
+
+ /**
+ * Gets the shortest angle between `angle1` and `angle2`.
+ * Both angles must be in the range -180 to 180, which is the same clamped
+ * range that `sprite.angle` uses, so you can pass in two sprite angles to
+ * this method, and get the shortest angle back between the two of them.
+ *
+ * The angle returned will be in the same range. If the returned angle is
+ * greater than 0 then it's a counter-clockwise rotation, if < 0 then it's
+ * a clockwise rotation.
+ *
+ * @method Phaser.Math#getShortestAngle
+ * @param {number} angle1 - The first angle. In the range -180 to 180.
+ * @param {number} angle2 - The second angle. In the range -180 to 180.
+ * @return {number} The shortest angle, in degrees. If greater than zero it's a counter-clockwise rotation.
+ */
+ getShortestAngle: function (angle1, angle2) {
+
+ var difference = angle2 - angle1;
+
+ if (difference === 0)
+ {
+ return 0;
+ }
+
+ var times = Math.floor((difference - (-180)) / 360);
+
+ return difference - (times * 360);
+
+ },
+
/**
* Find the angle of a segment from (x1, y1) -> (x2, y2).
*
@@ -50534,7 +50480,7 @@ Phaser.Net.prototype = {
if (key.length > 1)
{
- if (parameter && parameter == this.decodeURI(key[0]))
+ if (parameter && parameter === this.decodeURI(key[0]))
{
return this.decodeURI(key[1]);
}
@@ -54673,9 +54619,6 @@ Phaser.AnimationManager.prototype = {
this.currentAnim = this._anims[name];
- // This shouldn't be set until the Animation is played, surely?
- // this.currentFrame = this.currentAnim.currentFrame;
-
if (this.sprite.tilingTexture)
{
this.sprite.refreshTexture = true;
@@ -55279,29 +55222,33 @@ Phaser.Animation.prototype = {
},
/**
- * Reverses the animation direction
- *
- * @method Phaser.Animation#reverse
- * @return {Phaser.Animation} The animation instance.
- * */
+ * Reverses the animation direction.
+ *
+ * @method Phaser.Animation#reverse
+ * @return {Phaser.Animation} The animation instance.
+ */
reverse: function () {
+
this.reversed = !this.reversed;
return this;
+
},
/**
- * Reverses the animation direction for the current/next animation only
- * Once the onComplete event is called this method will be called again and revert
- * the reversed state.
- *
- * @method Phaser.Animation#reverseOnce
- * @return {Phaser.Animation} The animation instance.
- * */
+ * Reverses the animation direction for the current/next animation only
+ * Once the onComplete event is called this method will be called again and revert
+ * the reversed state.
+ *
+ * @method Phaser.Animation#reverseOnce
+ * @return {Phaser.Animation} The animation instance.
+ */
reverseOnce: function () {
- this.onComplete.addOnce(this.reverse.bind(this));
+
+ this.onComplete.addOnce(this.reverse, this);
return this.reverse();
+
},
/**
@@ -55452,9 +55399,12 @@ Phaser.Animation.prototype = {
// And what's left now?
this._timeNextFrame = this.game.time.time + (this.delay - this._frameDiff);
- if (this.isReversed){
+ if (this.isReversed)
+ {
this._frameIndex -= this._frameSkip;
- }else{
+ }
+ else
+ {
this._frameIndex += this._frameSkip;
}
@@ -55465,7 +55415,8 @@ Phaser.Animation.prototype = {
// Update current state before event callback
this._frameIndex = Math.abs(this._frameIndex) % this._frames.length;
- if (this.isReversed){
+ if (this.isReversed)
+ {
this._frameIndex = this._frames.length - 1 - this._frameIndex;
}
@@ -55803,19 +55754,19 @@ Object.defineProperty(Phaser.Animation.prototype, 'frame', {
/**
* @name Phaser.Animation#speed
-* @property {number} speed - Gets or sets the current speed of the animation in frames per second. Changing this in a playing animation will take effect from the next frame. Minimum value is 1.
+* @property {number} speed - Gets or sets the current speed of the animation in frames per second. Changing this in a playing animation will take effect from the next frame. Value must be greater than 0.
*/
Object.defineProperty(Phaser.Animation.prototype, 'speed', {
get: function () {
- return Math.round(1000 / this.delay);
+ return 1000 / this.delay;
},
set: function (value) {
- if (value >= 1)
+ if (value > 0)
{
this.delay = 1000 / value;
}
@@ -56588,15 +56539,16 @@ Phaser.AnimationParser = {
signature.forEach( function(key) {
if (!json[key])
{
- console.warn("Phaser.AnimationParser.JSONDataPyxel: Invalid Pyxel Tilemap JSON given, missing '" + key + "' key.");
+ console.warn('Phaser.AnimationParser.JSONDataPyxel: Invalid Pyxel Tilemap JSON given, missing "' + key + '" key.');
console.log(json);
return;
}
});
// For this purpose, I only care about parsing tilemaps with a single layer.
- if(json['layers'].length != 1) {
- console.warn("Phaser.AnimationParser.JSONDataPyxel: Too many layers, this parser only supports flat Tilemaps.");
+ if (json['layers'].length !== 1)
+ {
+ console.warn('Phaser.AnimationParser.JSONDataPyxel: Too many layers, this parser only supports flat Tilemaps.');
console.log(json);
return;
}
@@ -59903,6 +59855,10 @@ Phaser.Loader.prototype = {
/**
* Adds a Tile Map data file to the current load queue.
*
+ * Phaser can load data in two different formats: CSV and Tiled JSON.
+ *
+ * Tiled is a free software package, specifically for creating tilemaps, and is available from http://www.mapeditor.org
+ *
* You can choose to either load the data externally, by providing a URL to a json file.
* Or you can pass in a JSON object or String via the `data` parameter.
* If you pass a String the data is automatically run through `JSON.parse` and then immediately added to the Phaser.Cache.
@@ -61096,7 +61052,7 @@ Phaser.Loader.prototype = {
xhr.onload = function () {
try {
- if (xhr.readyState == 4 && xhr.status >= 400 && xhr.status <= 599) { // Handle HTTP status codes of 4xx and 5xx as errors, even if xhr.onerror was not called.
+ if (xhr.readyState === 4 && xhr.status >= 400 && xhr.status <= 599) { // Handle HTTP status codes of 4xx and 5xx as errors, even if xhr.onerror was not called.
return onerror.call(_this, file, xhr);
}
else {
@@ -61210,7 +61166,7 @@ Phaser.Loader.prototype = {
xhr.onload = function () {
try {
- if (xhr.readyState == 4 && xhr.status >= 400 && xhr.status <= 599) { // Handle HTTP status codes of 4xx and 5xx as errors, even if xhr.onerror was not called.
+ if (xhr.readyState === 4 && xhr.status >= 400 && xhr.status <= 599) { // Handle HTTP status codes of 4xx and 5xx as errors, even if xhr.onerror was not called.
return onerror.call(_this, file, xhr);
}
else {
@@ -61418,11 +61374,11 @@ Phaser.Loader.prototype = {
// Load the JSON or XML before carrying on with the next file
loadNext = false;
- if (file.format == Phaser.Loader.TEXTURE_ATLAS_JSON_ARRAY || file.format == Phaser.Loader.TEXTURE_ATLAS_JSON_HASH || file.format == Phaser.Loader.TEXTURE_ATLAS_JSON_PYXEL)
+ if (file.format === Phaser.Loader.TEXTURE_ATLAS_JSON_ARRAY || file.format === Phaser.Loader.TEXTURE_ATLAS_JSON_HASH || file.format === Phaser.Loader.TEXTURE_ATLAS_JSON_PYXEL)
{
this.xhrLoad(file, this.transformUrl(file.atlasURL, file), 'text', this.jsonLoadComplete);
}
- else if (file.format == Phaser.Loader.TEXTURE_ATLAS_XML_STARLING)
+ else if (file.format === Phaser.Loader.TEXTURE_ATLAS_XML_STARLING)
{
this.xhrLoad(file, this.transformUrl(file.atlasURL, file), 'text', this.xmlLoadComplete);
}
@@ -62606,7 +62562,7 @@ Phaser.Sound.prototype = {
*/
loopFull: function (volume) {
- this.play(null, 0, volume, true);
+ return this.play(null, 0, volume, true);
},
@@ -62663,6 +62619,8 @@ Phaser.Sound.prototype = {
this._sound.pause();
this._sound.currentTime = 0;
}
+
+ this.isPlaying = false;
}
if (marker === '' && Object.keys(this.markers).length > 0)
@@ -62674,10 +62632,10 @@ Phaser.Sound.prototype = {
if (marker !== '')
{
- this.currentMarker = marker;
-
if (this.markers[marker])
{
+ this.currentMarker = marker;
+
// Playing a marker? Then we default to the marker values
this.position = this.markers[marker].start;
this.volume = this.markers[marker].volume;
@@ -62702,7 +62660,7 @@ Phaser.Sound.prototype = {
}
else
{
- // console.warn("Phaser.Sound.play: audio marker " + marker + " doesn't exist");
+ console.warn("Phaser.Sound.play: audio marker " + marker + " doesn't exist");
return this;
}
}
@@ -68678,7 +68636,7 @@ Phaser.LinkedList.prototype = {
entity = entity.next;
}
- while(entity != this.last.next);
+ while (entity !== this.last.next);
}
@@ -70039,7 +69997,8 @@ Phaser.Color = {
componentToHex: function (color) {
var hex = color.toString(16);
- return hex.length == 1 ? "0" + hex : hex;
+
+ return (hex.length === 1) ? '0' + hex : hex;
},
@@ -72284,7 +72243,10 @@ Phaser.Physics.Arcade.prototype = {
this.getOverlapX(body1, body2);
this.getOverlapY(body1, body2);
- var angleCollision = this.angleBetweenCenters(body1, body2);
+ var dx = body2.center.x - body1.center.x;
+ var dy = body2.center.y - body1.center.y;
+
+ var angleCollision = Math.atan2(dy, dx);
var overlap = 0;
@@ -73316,17 +73278,17 @@ Phaser.Physics.Arcade.Body = function (sprite) {
this.allowRotation = true;
/**
- * An Arcade Physics Body can have angularVelocity and angularAcceleration. Please understand that the collision Body
+ * The Body's rotation in degrees, as calculated by its angularVelocity and angularAcceleration. Please understand that the collision Body
* itself never rotates, it is always axis-aligned. However these values are passed up to the parent Sprite and updates its rotation.
* @property {number} rotation
*/
- this.rotation = sprite.rotation;
+ this.rotation = sprite.angle;
/**
* @property {number} preRotation - The previous rotation of the physics body.
* @readonly
*/
- this.preRotation = sprite.rotation;
+ this.preRotation = sprite.angle;
/**
* @property {number} width - The calculated width of the physics body.
@@ -73490,25 +73452,25 @@ Phaser.Physics.Arcade.Body = function (sprite) {
this.friction = new Phaser.Point(1, 0);
/**
- * @property {number} angularVelocity - The angular velocity controls the rotation speed of the Body. It is measured in radians per second.
+ * @property {number} angularVelocity - The angular velocity controls the rotation speed of the Body. It is measured in degrees per second.
* @default
*/
this.angularVelocity = 0;
/**
- * @property {number} angularAcceleration - The angular acceleration is the rate of change of the angular velocity. Measured in radians per second squared.
+ * @property {number} angularAcceleration - The angular acceleration is the rate of change of the angular velocity. Measured in degrees per second squared.
* @default
*/
this.angularAcceleration = 0;
/**
- * @property {number} angularDrag - The drag applied during the rotation of the Body.
+ * @property {number} angularDrag - The drag applied during the rotation of the Body. Measured in degrees per second squared.
* @default
*/
this.angularDrag = 0;
/**
- * @property {number} maxAngular - The maximum angular velocity in radians per second that the Body can reach.
+ * @property {number} maxAngular - The maximum angular velocity in degrees per second that the Body can reach.
* @default
*/
this.maxAngular = 1000;
@@ -73520,7 +73482,7 @@ Phaser.Physics.Arcade.Body = function (sprite) {
this.mass = 1;
/**
- * @property {number} angle - The angle of the Body in radians, as calculated by its angularVelocity.
+ * @property {number} angle - The angle of the Body's velocity in radians.
* @readonly
*/
this.angle = 0;
@@ -74762,15 +74724,14 @@ Phaser.Physics.Arcade.TilemapCollision.prototype = {
*/
collideSpriteVsTilemapLayer: function (sprite, tilemapLayer, collideCallback, processCallback, callbackContext, overlapOnly) {
- // Before we even do this, is the sprite outside the layer bounds?
- if (!sprite.body || sprite.body.bottom < tilemapLayer.y || sprite.body.top > tilemapLayer.bottom || sprite.body.right < tilemapLayer.x || sprite.body.x > tilemapLayer.right)
+ if (!sprite.body)
{
return;
}
var mapData = tilemapLayer.getTiles(
- (sprite.body.position.x - sprite.body.tilePadding.x) - tilemapLayer.x,
- (sprite.body.position.y - sprite.body.tilePadding.y) - tilemapLayer.y,
+ sprite.body.position.x - sprite.body.tilePadding.x,
+ sprite.body.position.y - sprite.body.tilePadding.y,
sprite.body.width + sprite.body.tilePadding.x,
sprite.body.height + sprite.body.tilePadding.y,
false, false);
@@ -74859,8 +74820,8 @@ Phaser.Physics.Arcade.TilemapCollision.prototype = {
return false;
}
- var tilemapLayerOffsetX = tilemapLayer.x;
- var tilemapLayerOffsetY = tilemapLayer.y;
+ var tilemapLayerOffsetX = (!tilemapLayer.fixedToCamera) ? tilemapLayer.position.x : 0;
+ var tilemapLayerOffsetY = (!tilemapLayer.fixedToCamera) ? tilemapLayer.position.y : 0;
// We re-check for collision in case body was separated in a previous step
if (!tile.intersects((body.position.x - tilemapLayerOffsetX), (body.position.y - tilemapLayerOffsetY), (body.right - tilemapLayerOffsetX), (body.bottom - tilemapLayerOffsetY)))
@@ -74882,7 +74843,7 @@ Phaser.Physics.Arcade.TilemapCollision.prototype = {
// If it returns true then we can carry on, otherwise we should abort.
return false;
}
- else if (tile.layer.callbacks !== undefined && tile.layer.callbacks[tile.index] && !tile.layer.callbacks[tile.index].callback.call(tile.layer.callbacks[tile.index].callbackContext, body.sprite, tile))
+ else if (typeof tile.layer.callbacks !== 'undefined' && tile.layer.callbacks[tile.index] && !tile.layer.callbacks[tile.index].callback.call(tile.layer.callbacks[tile.index].callbackContext, body.sprite, tile))
{
// If it returns true then we can carry on, otherwise we should abort.
return false;
@@ -74972,7 +74933,7 @@ Phaser.Physics.Arcade.TilemapCollision.prototype = {
tileCheckX: function (body, tile, tilemapLayer) {
var ox = 0;
- var tilemapLayerOffsetX = tilemapLayer.x;
+ var tilemapLayerOffsetX = (!tilemapLayer.fixedToCamera) ? tilemapLayer.position.x : 0;
if (body.deltaX() < 0 && !body.blocked.left && tile.collideRight && body.checkCollision.left)
{
@@ -75030,7 +74991,7 @@ Phaser.Physics.Arcade.TilemapCollision.prototype = {
tileCheckY: function (body, tile, tilemapLayer) {
var oy = 0;
- var tilemapLayerOffsetY = tilemapLayer.y;
+ var tilemapLayerOffsetY = (!tilemapLayer.fixedToCamera) ? tilemapLayer.position.y : 0;
if (body.deltaY() < 0 && !body.blocked.up && tile.collideDown && body.checkCollision.up)
{
@@ -75144,573 +75105,6 @@ Phaser.Physics.Arcade.TilemapCollision.prototype = {
// Merge this with the Arcade Physics prototype
Phaser.Utils.mixinPrototype(Phaser.Physics.Arcade.prototype, Phaser.Physics.Arcade.TilemapCollision.prototype);
-/**
-* @author Richard Davey
-* @author Pete Baron
-* @copyright 2016 Photon Storm Ltd.
-* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
-*/
-
-/**
- * A PIXI WebGL Tilemap.
- *
- * @class PIXI.Tilemap
- * @extends {PIXI.DisplayObject}
- * @param {PIXI.Texture} texture - The tilemap texture.
- * @param {integer} displayWidth - The width of the display area. Used as the clipping limit for the shader.
- * @param {integer} displayHeight - The height of the display area. Used as the clipping limit for the shader.
- * @param {integer} mapWidth - The width of the map.
- * @param {integer} mapHeight - The height of the map.
- * @param {integer} tileWidth - The width of a single tile.
- * @param {integer} tileHeight - The height of a single tile.
- * @param {Array} layer - Tilemap layer data from the map, arranged in mapHeight lists of mapWidth Phaser.Tile objects (2d array).
- */
-PIXI.Tilemap = function (texture, displayWidth, displayHeight, mapWidth, mapHeight, tileWidth, tileHeight, layer) {
-
- PIXI.DisplayObject.call(this);
-
- /**
- * The texture of the Tilemap
- *
- * @property texture
- * @type Texture
- */
- this.texture = texture;
-
- /**
- * The clipping limit of the display area.
- *
- * @property _displayWidth
- * @type integer
- * @private
- */
- this._displayWidth = displayWidth;
-
- /**
- * The clipping limit of the display area.
- *
- * @property _displayHeight
- * @type integer
- * @private
- */
- this._displayHeight = displayHeight;
-
- /**
- * The width of a single tile in pixels.
- *
- * @property tileWidth
- * @type integer
- */
- this.tileWidth = tileWidth;
-
- /**
- * The height of a single tile in pixels.
- *
- * @property tileHeight
- * @type integer
- */
- this.tileHeight = tileHeight;
-
- /**
- * The width of the map in tiles.
- *
- * @property mapWidth
- * @type integer
- */
- this.mapWidth = mapWidth;
-
- /**
- * The height of the map in tiles.
- *
- * @property mapHeight
- * @type integer
- */
- this.mapHeight = mapHeight;
-
- /**
- * The width of the map in pixels.
- *
- * @property width
- * @type integer
- */
- this.pxWidth = this.mapWidth * this.tileWidth;
-
- /**
- * The height of the map in pixels.
- *
- * @property height
- * @type integer
- */
- this.pxHeight = this.mapHeight * this.tileHeight;
-
- /**
- * Tilemap layer data from the map, arranged in mapHeight lists of mapWidth tiles.
- * Contains Phaser.Tile objects (2d array).
- *
- * @property layer
- * @type Array
- */
- this.layer = layer;
-
- /**
- * Store the list of batch drawing instructions.
- *
- * @property glBatch
- * @type Array
- */
- this.glBatch = null;
-
- /**
- * Remember last tile drawn to avoid unnecessary set-up.
- *
- * @property lastTile
- * @type integer
- */
- this.lastTile = -1;
-
- /**
- * Whether the Tilemap is dirty or not.
- *
- * @property dirty
- * @type boolean
- */
- this.dirty = true;
-
- /**
- * The blend mode to be applied to the tilemap.
- * Set to PIXI.blendModes.NORMAL to remove any blend mode.
- *
- * @property blendMode
- * @type integer
- * @default PIXI.blendModes.NORMAL;
- */
- this.blendMode = PIXI.blendModes.NORMAL;
-
- /**
- * The size of a single data element in the batch drawing.
- * Each tile requires two triangles, each specified as:
- * float left, bottom, right, top - screen coordinates
- * float u, v, wide, high - source texture coordinates
- *
- * @property batchDataElement
- * @type integer
- */
- this.batchDataElement = 16;
-
- /**
- * Create the buffer data for the WebGL rendering of this tilemap.
- * Calculates the total batch data size.
- *
- * @property buffer
- * @type PIXI.Float32Array
- */
- this.buffer = new PIXI.Float32Array(mapWidth * mapHeight * this.batchDataElement);
-
- /**
- * A required but un-used array.
- * Do not add objects to this array, Tilemaps cannot have children.
- *
- * @property children
- * @type Array
- * @private
- */
- this.children = [];
-
-};
-
-PIXI.Tilemap.prototype = Object.create(PIXI.DisplayObject.prototype);
-PIXI.Tilemap.prototype.constructor = PIXI.Tilemap;
-
-PIXI.Tilemap.prototype.update = function () {};
-PIXI.Tilemap.prototype.postUpdate = function () {};
-
-PIXI.Tilemap.prototype._initWebGL = function (renderSession) {
-
- var gl = renderSession.gl;
-
- // create a GL buffer to transfer all the vertex position data through
- this.positionBuffer = gl.createBuffer();
-
- // bind the buffer to the RAM resident positionBuffer
- gl.bindBuffer(gl.ARRAY_BUFFER, this.positionBuffer);
- gl.bufferData(gl.ARRAY_BUFFER, this.buffer, gl.STATIC_DRAW);
-
-};
-
-// override PIXI.DisplayObjectContainer _renderWebGL
-PIXI.Tilemap.prototype._renderWebGL = function (renderSession) {
-
- // if the sprite is not visible or the alpha is 0 then no need to render this element
- if (!this.visible || this.alpha <= 0)
- {
- return;
- }
-
- // stop current render session batch drawing
- renderSession.spriteBatch.stop();
-
- if (!this.positionBuffer)
- {
- this._initWebGL(renderSession);
- }
-
- renderSession.shaderManager.setShader(renderSession.shaderManager.tilemapShader);
-
- this._renderWholeTilemap(renderSession);
-
- // restart batch drawing now that this Tile layer has been rendered
- renderSession.spriteBatch.start();
-
-};
-
-PIXI.Tilemap.prototype._renderBatch = function (renderSession) {
-
- if (!this.glBatch)
- {
- return;
- }
-
- var gl = renderSession.gl;
-
- // TODO: should probably use destination buffer dimensions (halved)
- var screenWide2 = this.game.width * 0.5;
- var screenHigh2 = this.game.height * 0.5;
-
- // size of one pixel in the source texture
- var iTextureWide = 1.0 / this.texture.width;
- var iTextureHigh = 1.0 / this.texture.height;
-
- // pre-calculate inverse half-buffer dimensions
- var iWide = 1.0 / screenWide2;
- var iHigh = 1.0 / screenHigh2;
-
- var wide = this.tileWidth * 0.5 / screenWide2;
- var high = this.tileHeight * 0.5 / screenHigh2;
-
- var buffer = this.buffer;
- var oldR, oldT, uvl, uvt;
-
- // process entire glBatch into a single webGl draw buffer for a TRIANGLE_STRIP blit
- var c = 0;
- var degenerate = false;
-
- for (var i = 0, l = this.glBatch.length; i < l; i++)
- {
- // each object in this.glBatch has properties:
- // sx: this.drawCoords[coordIndex],
- // sy: this.drawCoords[coordIndex + 1],
- // sw: this.tileWidth,
- // sh: this.tileHeight,
- // dx: x,
- // dy: y,
- // dw: this.tileWidth,
- // dh: this.tileHeight
- var t = this.glBatch[i];
-
- if (!t)
- {
- // insert a degenerate triangle when null is found in the list of batch objects
- degenerate = true;
-
- // skip to end of loop, degenerate will be inserted when no more null objects are found
- continue;
- }
-
- var x = t.dx * iWide - 1;
- var y = 1 - t.dy * iHigh;
-
- var lft = x - wide;
- var bot = y + high;
-
- var uvl = t.sx * iTextureWide;
- var uvt = t.sy * iTextureHigh;
-
- // insert a degenerate triangle to separate the tiles
- if (degenerate)
- {
- // add a degenerate triangle: repeat the last vertex
- buffer[ c ] = oldR;
- buffer[ c + 1 ] = oldT;
-
- // then repeat the next vertex
- buffer[ c + 4 ] = lft;
- buffer[ c + 5 ] = bot;
-
- // pad with texture coordinates (probably not needed)
- buffer[ c + 2 ] = buffer[ c + 6 ] = uvl;
- buffer[ c + 3 ] = buffer[ c + 7 ] = uvt;
-
- // advance the buffer index for one single degenerate triangle
- c += 8;
- degenerate = false;
- }
-
- // calculate the destination location of the tile in screen units (-1..1)
- buffer[ c ] = buffer[ c + 4 ] = lft;
- buffer[ c + 1 ] = buffer[ c + 9 ] = bot;
- buffer[ c + 8 ] = buffer[ c + 12 ] = oldR = x + wide;
- buffer[ c + 5 ] = buffer[ c + 13 ] = oldT = y - high;
-
- // calculate the uv coordinates of the tile source image
- if (t.fd === 1)
- {
- // flipped diagonally, swap x,y axes
- buffer[ c + 14 ] = buffer[ c + 6 ] = uvl;
- buffer[ c + 15 ] = buffer[ c + 11 ] = uvt;
- buffer[ c + 10 ] = buffer[ c + 2 ] = uvl + t.sw * iTextureWide;
- buffer[ c + 7 ] = buffer[ c + 3 ] = uvt + t.sh * iTextureHigh;
- }
- else
- {
- buffer[ c + 2 ] = buffer[ c + 6 ] = uvl;
- buffer[ c + 3 ] = buffer[ c + 11 ] = uvt;
- buffer[ c + 10 ] = buffer[ c + 14 ] = uvl + t.sw * iTextureWide;
- buffer[ c + 7 ] = buffer[ c + 15 ] = uvt + t.sh * iTextureHigh;
- }
-
- // advance the buffer index
- c += 16;
- }
-
- // if there's anything to draw...
- if (c > 0)
- {
- var shader = renderSession.shaderManager.tilemapShader;
-
- // upload the VBO
- gl.bufferData(gl.ARRAY_BUFFER, buffer, gl.STATIC_DRAW);
-
- // prepare the shader attributes
- gl.vertexAttribPointer(shader.aPosition, 4, gl.FLOAT, false, 0, 0);
-
- // draw the entire VBO in one call
- gl.drawArrays(gl.TRIANGLE_STRIP, 0, Math.floor(c / 4));
- }
-
-};
-
-/**
-* Render the entire tilemap using a fast WebGL batched tile render.
-*
-* @param {Object} renderSession - The PIXI RenderSession.
-*/
-PIXI.Tilemap.prototype._renderWholeTilemap = function (renderSession) {
-
- var gl = renderSession.gl;
-
- var shader = renderSession.shaderManager.tilemapShader;
-
- renderSession.blendModeManager.setBlendMode(this.blendMode);
-
- // set the uniforms and texture
-
- // set the global offset (e.g. screen shake)
- gl.uniform2f(shader.uOffset, renderSession.offset.x / this.game.width * 2, -renderSession.offset.y / this.game.height * 2);
-
- // Set the clipping limits
-
- var clipOffsetX = this._mc.x / this.game.width * 2;
- var clipOffsetY = -this._mc.y / this.game.height * 2;
-
- var clipLocX = this._mc.x;
- var clipLocY = -this._mc.y;
-
- // The width, going across from the LEFT OF THE SCREEN, of the clipping limit
- var clipLimitX = this._mc.x + this._displayWidth;
-
- // The height, going up from the BOTTOM OF THE SCREEN, of the clipping limit
- var clipLimitY = this.game.height - (this._mc.y + this._displayHeight);
-
- // console.log('render');
- // console.log(clipOffsetX, clipOffsetY);
- // console.log(clipLocX, clipLocY);
- // console.log(clipLimitX, clipLimitY);
- // console.log(this._displayWidth, this._displayHeight);
- // debugger;
-
- gl.uniform2f(shader.uClipLimit, clipLimitX, clipLimitY);
- gl.uniform2f(shader.uClipOffset, clipOffsetX, clipOffsetY);
- gl.uniform2f(shader.uClipLoc, clipLocX, clipLocY);
-
- // set the offset in screen units to the center of the screen
- // and flip the GL y coordinate to be zero at the top
- gl.uniform2f(shader.uCentreOffset, 1, -1);
-
- // alpha value for whole batch
- gl.uniform1f(shader.uAlpha, this.alpha);
-
- // scale factors for whole batch
- gl.uniform2f(shader.uScale, this.worldScale.x, this.worldScale.y);
-
- // source texture unit
- gl.activeTexture(gl.TEXTURE0);
-
- // check if a texture is dirty...
- if (this.texture.baseTexture._dirty[gl.id])
- {
- renderSession.renderer.updateTexture(this.texture.baseTexture);
- }
- else
- {
- // bind the current texture
- gl.bindTexture(gl.TEXTURE_2D, this.texture.baseTexture._glTextures[gl.id]);
- }
-
- // bind the source buffer
- gl.bindBuffer(gl.ARRAY_BUFFER, this.positionBuffer);
-
- // draw the batched tile list
- this._renderBatch(renderSession);
-
-};
-
-/**
-* @author Richard Davey
-* @author Pete Baron
-* @copyright 2016 Photon Storm Ltd.
-* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
-*/
-
-/**
-* This shader is used to render a batch of tiles stored as a tri-strip with
-* degenerate triangles at the end of each row, or group of tiles (A group is a
-* row of tiles with content followed by one or more empty tiles which are not
-* drawn).
-*
-* Settings available are:
-*
-* uAlpha - the alpha blending factor for a batch draw
-* uOffset - an offset for all tiles in this batch (e.g. screen shake)
-* uCentreOffset - the offset to the center of the drawing area, in WebGL units (-1...1)
-* uScale - the scaling factor for a batch draw
-* uImageSampler - the source texture containing the tile images
-* aPosition - the attribute set by the batch data for drawing location
-*
-* @class TilemapShader
-* @constructor
-* @param gl {WebGLContext} the current WebGL drawing context
-*/
-PIXI.TilemapShader = function (gl) {
-
- /**
- * @property _UID
- * @type Number
- * @private
- */
- this._UID = PIXI._UID++;
-
- /**
- * @property gl
- * @type WebGLContext
- */
- this.gl = gl;
-
- /**
- * The WebGL program.
- * @property program
- * @type Any
- */
- this.program = null;
-
- this.fragmentSrc = [
- 'precision lowp float;',
- 'uniform sampler2D uImageSampler;',
- 'uniform float uAlpha;',
- 'uniform vec2 uClipLoc;',
- 'uniform vec2 uClipLimit;',
- 'varying vec2 vTexCoord;',
- 'void main(void) {',
- ' if ( gl_FragCoord.x >= uClipLoc.x && gl_FragCoord.y >= uClipLoc.y && gl_FragCoord.x < uClipLimit.x && gl_FragCoord.y > uClipLimit.y )',
- ' gl_FragColor = texture2D(uImageSampler, vTexCoord) * uAlpha;',
- '}'
- ];
-
- this.vertexSrc = [
- 'precision lowp float;',
- 'uniform vec2 uOffset;',
- 'uniform vec2 uCentreOffset;',
- 'uniform vec2 uScale;',
- 'uniform vec2 uClipOffset;',
- 'attribute vec4 aPosition;',
- 'varying vec2 vTexCoord;',
- 'void main(void) {',
- ' gl_Position.zw = vec2(1, 1);',
- ' gl_Position.xy = (aPosition.xy + uOffset + uCentreOffset) * uScale - uCentreOffset + uClipOffset;',
- ' vTexCoord = aPosition.zw;',
- '}'
- ];
-
- /**
- * A local texture counter for multi-texture shaders.
- * @property textureCount
- * @type Number
- */
- this.textureCount = 0;
-
- this.init();
-
-};
-
-PIXI.TilemapShader.prototype.constructor = PIXI.TilemapShader;
-
-/**
-* Initialises the shader.
-*
-* @method init
-*/
-PIXI.TilemapShader.prototype.init = function () {
-
- var gl = this.gl;
-
- var program = PIXI.compileProgram(gl, this.vertexSrc, this.fragmentSrc);
- gl.useProgram(program);
-
- // get and store the attributes
- this.aPosition = gl.getAttribLocation(program, 'aPosition');
- this.uSampler = gl.getUniformLocation(program, 'uImageSampler');
-
- // clipping uniforms...
-
- // clipping start location (pixels)
- this.uClipLoc = gl.getUniformLocation(program, 'uClipLoc');
- // clipping width/height (pixels)
- this.uClipLimit = gl.getUniformLocation(program, 'uClipLimit');
- // clipping start location in webGl coordinates (-1...+1)
- this.uClipOffset = gl.getUniformLocation(program, 'uClipOffset');
-
- // offset for screen shake effect etc
- this.uOffset = gl.getUniformLocation(program, 'uOffset');
-
- // centre of a tile for offset before scaling (so tiles scale from the centre out)
- this.uCentreOffset = gl.getUniformLocation(program, 'uCentreOffset');
- // scale factor for tiles
- this.uScale = gl.getUniformLocation(program, 'uScale');
-
- // alpha blending
- this.uAlpha = gl.getUniformLocation(program, 'uAlpha');
-
- this.attributes = [this.aPosition];
- this.uniforms = [this.uClipOffset, this.uClipLoc, this.uClipLimit, this.uOffset, this.uCentreOffset, this.uAlpha, this.uScale, this.uSampler];
-
- this.program = program;
-
-};
-
-/**
-* Destroys the shader.
-*
-* @method destroy
-*/
-PIXI.TilemapShader.prototype.destroy = function () {
-
- this.gl.deleteProgram(this.program);
- this.gl = null;
-
- this.uniforms = null;
- this.attributes = null;
-
-};
-
/**
* @author Richard Davey
* @copyright 2016 Photon Storm Ltd.
@@ -75924,7 +75318,6 @@ Phaser.Tile = function (layer, index, x, y, width, height) {
/**
* @property {number} alpha - The alpha value at which this tile is drawn to the canvas.
- * TODO: currently unused for both Canvas and WebGL renderers
*/
this.alpha = 1;
@@ -76259,6 +75652,9 @@ Object.defineProperty(Phaser.Tile.prototype, "bottom", {
/**
* Creates a new Phaser.Tilemap object. The map can either be populated with data from a Tiled JSON file or from a CSV file.
+*
+* Tiled is a free software package specifically for creating tile maps, and is available from http://www.mapeditor.org
+*
* To do this pass the Cache key as the first parameter. When using Tiled data you need only provide the key.
* When using CSV data you must provide the key and the tileWidth and tileHeight parameters.
* If creating a blank tilemap to be populated later, you can either specify no parameters at all and then use `Tilemap.create` or pass the map and tile dimensions here.
@@ -76353,12 +75749,7 @@ Phaser.Tilemap = function (game, key, tileWidth, tileHeight, width, height) {
* @property {array} tilesets - An array of Tilesets.
*/
this.tilesets = data.tilesets;
-
- /**
- * @property {array} tilesetLayers - An array of internal layers used to separate multiple tilesets from a single map layer.
- */
- this.tilesetLayers = null;
-
+
/**
* @property {array} imagecollections - An array of Image Collections.
*/
@@ -76828,6 +76219,10 @@ Phaser.Tilemap.prototype = {
*/
createLayer: function (layer, width, height, group) {
+ // Add Buffer support for the left of the canvas
+
+ if (width === undefined) { width = this.game.width; }
+ if (height === undefined) { height = this.game.height; }
if (group === undefined) { group = this.game.world; }
var index = layer;
@@ -76871,38 +76266,7 @@ Phaser.Tilemap.prototype = {
console.log('Tileset:', this.tilesets[0].name, 'index:', index);
}
- var rootLayer;
-
- if (this.game.renderType === Phaser.WEBGL)
- {
- rootLayer = group.add(new Phaser.TilemapLayerGL(this.game, this, index, width, height, this.tilesets[0]));
-
- // Create child layers for multiple tilesets in a layer
- // It is currently assumed that each base layer will use tileset[0] (so 'i' starts at 1 in the for loop)
- // (a 'base' layer is any layer except the so-called 'internal' layers created here)
-
- var fromLayer = this.layers[index];
- var childLayer;
-
- for (var i = 1; i < this.tilesets.length; i++)
- {
- if (this.checkChildLayer(this.tilesets[i], fromLayer))
- {
- childLayer = group.add(new Phaser.TilemapLayerGL(this.game, this, index, width, height, this.tilesets[i]));
-
- rootLayer.linkedLayers.push(childLayer);
-
- if (this.enableDebug)
- {
- console.log('Linked child created for tileset:', this.tilesets[i].name);
- }
- }
- }
- }
- else
- {
- rootLayer = group.add(new Phaser.TilemapLayer(this.game, this, index, width, height));
- }
+ var rootLayer = group.add(new Phaser.TilemapLayer(this.game, this, index, width, height));
if (this.enableDebug)
{
@@ -76913,36 +76277,6 @@ Phaser.Tilemap.prototype = {
},
- /**
- * Takes a Tileset and map layer data, then runs through the data looking
- * to see if there are any tiles that use the given Tileset. If there is,
- * it returns true, otherwise false.
- *
- * @method Phaser.Tilemap#checkChildLayer
- * @private
- * @param {Phaser.Tileset} tileset - The Tileset to check against.
- * @param {Object} fromLayer - The layer data to check.
- * @return {boolean} True if a child layer needs to be created, otherwise false.
- */
- checkChildLayer: function (tileset, fromLayer) {
-
- for (var y = 0; y < fromLayer.height; y++)
- {
- for (var x = 0; x < fromLayer.width; x++)
- {
- // Get the equivalent tile from this Tilemap
- var tile = fromLayer.data[y][x];
-
- if (tile && tile.index >= tileset.firstgid && tile.index <= tileset.lastgid)
- {
- return true;
- }
- }
- }
-
- return false;
-
- },
/**
* Creates a new and empty layer on this Tilemap. By default TilemapLayers are fixed to the camera.
@@ -77019,17 +76353,7 @@ Phaser.Tilemap.prototype = {
h = this.game.height;
}
- var output;
-
- if (this.game.renderType === Phaser.WEBGL)
- {
- output = new Phaser.TilemapLayerGL(this.game, this, this.layers.length - 1, w, h, null);
- }
- else
- {
- output = new Phaser.TilemapLayer(this.game, this, this.layers.length - 1, w, h);
- }
-
+ var output = new Phaser.TilemapLayer(this.game, this, this.layers.length - 1, w, h);
output.name = name;
return group.add(output);
@@ -77358,10 +76682,6 @@ Phaser.Tilemap.prototype = {
{
layer = layer.index;
}
- else if (layer instanceof Phaser.TilemapLayerGL)
- {
- layer = layer.index;
- }
return layer;
@@ -78454,19 +77774,6 @@ Phaser.TilemapLayer = function (game, tilemap, index, width, height) {
*/
this.scrollFactorY = 1;
- /**
- * When ray-casting against tiles this is the number of steps it will jump. For larger tile sizes you can increase this to improve performance.
- * @property {integer} rayStepRate
- * @default
- */
- this.rayStepRate = 4;
-
- /**
- * @property {array} _results - Internal var.
- * @private
- */
- this._results = [];
-
/**
* If true tiles will be force rendered, even if such is not believed to be required.
* @property {boolean} dirty
@@ -78474,6 +77781,13 @@ Phaser.TilemapLayer = function (game, tilemap, index, width, height) {
*/
this.dirty = true;
+ /**
+ * When ray-casting against tiles this is the number of steps it will jump. For larger tile sizes you can increase this to improve performance.
+ * @property {integer} rayStepRate
+ * @default
+ */
+ this.rayStepRate = 4;
+
/**
* Flag controlling if the layer tiles wrap at the edges.
* @property {boolean} _wrap
@@ -78522,6 +77836,13 @@ Phaser.TilemapLayer = function (game, tilemap, index, width, height) {
*/
this._scrollY = 0;
+ /**
+ * Used for caching the tiles / array of tiles.
+ * @property {Phaser.Tile[]} _results
+ * @private
+ */
+ this._results = [];
+
if (!game.device.canvasBitBltShift)
{
this.renderSettings.copyCanvas = Phaser.TilemapLayer.ensureSharedCopyCanvas();
@@ -78618,6 +77939,30 @@ Phaser.TilemapLayer.prototype._renderCanvas = function (renderSession) {
};
+/**
+* Automatically called by the Canvas Renderer.
+* Overrides the Sprite._renderWebGL function.
+*
+* @method Phaser.TilemapLayer#_renderWebGL
+* @private
+*/
+Phaser.TilemapLayer.prototype._renderWebGL = function (renderSession) {
+
+ if (this.fixedToCamera)
+ {
+ this.position.x = (this.game.camera.view.x + this.cameraOffset.x) / this.game.camera.scale.x;
+ this.position.y = (this.game.camera.view.y + this.cameraOffset.y) / this.game.camera.scale.y;
+ }
+
+ this._scrollX = this.game.camera.view.x * this.scrollFactorX / this.scale.x;
+ this._scrollY = this.game.camera.view.y * this.scrollFactorY / this.scale.y;
+
+ this.render();
+
+ PIXI.Sprite.prototype._renderWebGL.call(this, renderSession);
+
+};
+
/**
* Destroys this TilemapLayer.
*
@@ -78660,6 +78005,11 @@ Phaser.TilemapLayer.prototype.resize = function (width, height) {
this.texture.baseTexture.width = width;
this.texture.baseTexture.height = height;
+ this.texture.baseTexture.dirty();
+ this.texture.requiresUpdate = true;
+
+ this.texture._updateUvs();
+
this.dirty = true;
};
@@ -78676,6 +78026,247 @@ Phaser.TilemapLayer.prototype.resizeWorld = function () {
};
+/**
+* Take an x coordinate that doesn't account for scrollFactorX and 'fix' it into a scrolled local space.
+*
+* @method Phaser.TilemapLayer#_fixX
+* @private
+* @param {number} x - x coordinate in camera space
+* @return {number} x coordinate in scrollFactor-adjusted dimensions
+*/
+Phaser.TilemapLayer.prototype._fixX = function (x) {
+
+ if (this.scrollFactorX === 1 || (this.scrollFactorX === 0 && this.position.x === 0))
+ {
+ return x;
+ }
+
+ // This executes if the scrollFactorX is 0 and the x position of the tilemap is off from standard.
+ if (this.scrollFactorX === 0 && this.position.x !== 0)
+ {
+ return x - this.position.x;
+ }
+
+ return this._scrollX + (x - (this._scrollX / this.scrollFactorX));
+
+};
+
+/**
+* Take an x coordinate that _does_ account for scrollFactorX and 'unfix' it back to camera space.
+*
+* @method Phaser.TilemapLayer#_unfixX
+* @private
+* @param {number} x - x coordinate in scrollFactor-adjusted dimensions
+* @return {number} x coordinate in camera space
+*/
+Phaser.TilemapLayer.prototype._unfixX = function (x) {
+
+ if (this.scrollFactorX === 1)
+ {
+ return x;
+ }
+
+ return (this._scrollX / this.scrollFactorX) + (x - this._scrollX);
+
+};
+
+/**
+* Take a y coordinate that doesn't account for scrollFactorY and 'fix' it into a scrolled local space.
+*
+* @method Phaser.TilemapLayer#_fixY
+* @private
+* @param {number} y - y coordinate in camera space
+* @return {number} y coordinate in scrollFactor-adjusted dimensions
+*/
+Phaser.TilemapLayer.prototype._fixY = function (y) {
+
+ if (this.scrollFactorY === 1 || (this.scrollFactorY === 0 && this.position.y === 0))
+ {
+ return y;
+ }
+
+ // This executes if the scrollFactorY is 0 and the y position of the tilemap is off from standard.
+ if (this.scrollFactorY === 0 && this.position.y !== 0)
+ {
+ return y - this.position.y;
+ }
+
+ return this._scrollY + (y - (this._scrollY / this.scrollFactorY));
+
+};
+
+/**
+* Take a y coordinate that _does_ account for scrollFactorY and 'unfix' it back to camera space.
+*
+* @method Phaser.TilemapLayer#_unfixY
+* @private
+* @param {number} y - y coordinate in scrollFactor-adjusted dimensions
+* @return {number} y coordinate in camera space
+*/
+Phaser.TilemapLayer.prototype._unfixY = function (y) {
+
+ if (this.scrollFactorY === 1)
+ {
+ return y;
+ }
+
+ return (this._scrollY / this.scrollFactorY) + (y - this._scrollY);
+
+};
+
+/**
+* Convert a pixel value to a tile coordinate.
+*
+* @method Phaser.TilemapLayer#getTileX
+* @public
+* @param {number} x - X position of the point in target tile (in pixels).
+* @return {integer} The X map location of the tile.
+*/
+Phaser.TilemapLayer.prototype.getTileX = function (x) {
+
+ // var tileWidth = this.tileWidth * this.scale.x;
+ return Math.floor(this._fixX(x) / this._mc.tileWidth);
+
+};
+
+/**
+* Convert a pixel value to a tile coordinate.
+*
+* @method Phaser.TilemapLayer#getTileY
+* @public
+* @param {number} y - Y position of the point in target tile (in pixels).
+* @return {integer} The Y map location of the tile.
+*/
+Phaser.TilemapLayer.prototype.getTileY = function (y) {
+
+ // var tileHeight = this.tileHeight * this.scale.y;
+ return Math.floor(this._fixY(y) / this._mc.tileHeight);
+
+};
+
+/**
+* Convert a pixel coordinate to a tile coordinate.
+*
+* @method Phaser.TilemapLayer#getTileXY
+* @public
+* @param {number} x - X position of the point in target tile (in pixels).
+* @param {number} y - Y position of the point in target tile (in pixels).
+* @param {(Phaser.Point|object)} point - The Point/object to update.
+* @return {(Phaser.Point|object)} A Point/object with its `x` and `y` properties set.
+*/
+Phaser.TilemapLayer.prototype.getTileXY = function (x, y, point) {
+
+ point.x = this.getTileX(x);
+ point.y = this.getTileY(y);
+
+ return point;
+
+};
+
+/**
+* Gets all tiles that intersect with the given line.
+*
+* @method Phaser.TilemapLayer#getRayCastTiles
+* @public
+* @param {Phaser.Line} line - The line used to determine which tiles to return.
+* @param {integer} [stepRate=(rayStepRate)] - How many steps through the ray will we check? Defaults to `rayStepRate`.
+* @param {boolean} [collides=false] - If true, _only_ return tiles that collide on one or more faces.
+* @param {boolean} [interestingFace=false] - If true, _only_ return tiles that have interesting faces.
+* @return {Phaser.Tile[]} An array of Phaser.Tiles.
+*/
+Phaser.TilemapLayer.prototype.getRayCastTiles = function (line, stepRate, collides, interestingFace) {
+
+ if (!stepRate) { stepRate = this.rayStepRate; }
+ if (collides === undefined) { collides = false; }
+ if (interestingFace === undefined) { interestingFace = false; }
+
+ // First get all tiles that touch the bounds of the line
+ var tiles = this.getTiles(line.x, line.y, line.width, line.height, collides, interestingFace);
+
+ if (tiles.length === 0)
+ {
+ return [];
+ }
+
+ // Now we only want the tiles that intersect with the points on this line
+ var coords = line.coordinatesOnLine(stepRate);
+ var results = [];
+
+ for (var i = 0; i < tiles.length; i++)
+ {
+ for (var t = 0; t < coords.length; t++)
+ {
+ var tile = tiles[i];
+ var coord = coords[t];
+ if (tile.containsPoint(coord[0], coord[1]))
+ {
+ results.push(tile);
+ break;
+ }
+ }
+ }
+
+ return results;
+
+};
+
+/**
+* Get all tiles that exist within the given area, defined by the top-left corner, width and height. Values given are in pixels, not tiles.
+*
+* @method Phaser.TilemapLayer#getTiles
+* @public
+* @param {number} x - X position of the top left corner (in pixels).
+* @param {number} y - Y position of the top left corner (in pixels).
+* @param {number} width - Width of the area to get (in pixels).
+* @param {number} height - Height of the area to get (in pixels).
+* @param {boolean} [collides=false] - If true, _only_ return tiles that collide on one or more faces.
+* @param {boolean} [interestingFace=false] - If true, _only_ return tiles that have interesting faces.
+* @return {array} An array of Tiles.
+*/
+Phaser.TilemapLayer.prototype.getTiles = function (x, y, width, height, collides, interestingFace) {
+
+ // Should we only get tiles that have at least one of their collision flags set? (true = yes, false = no just get them all)
+ if (collides === undefined) { collides = false; }
+ if (interestingFace === undefined) { interestingFace = false; }
+
+ var fetchAll = !(collides || interestingFace);
+
+ // Adjust the x,y coordinates for scrollFactor
+ x = this._fixX(x);
+ y = this._fixY(y);
+
+ // Convert the pixel values into tile coordinates
+ var tx = Math.floor(x / (this._mc.cw * this.scale.x));
+ var ty = Math.floor(y / (this._mc.ch * this.scale.y));
+ // Don't just use ceil(width/cw) to allow account for x/y diff within cell
+ var tw = Math.ceil((x + width) / (this._mc.cw * this.scale.x)) - tx;
+ var th = Math.ceil((y + height) / (this._mc.ch * this.scale.y)) - ty;
+
+ while (this._results.length)
+ {
+ this._results.pop();
+ }
+
+ for (var wy = ty; wy < ty + th; wy++)
+ {
+ for (var wx = tx; wx < tx + tw; wx++)
+ {
+ var row = this.layer.data[wy];
+
+ if (row && row[wx])
+ {
+ if (fetchAll || row[wx].isInteresting(collides, interestingFace))
+ {
+ this._results.push(row[wx]);
+ }
+ }
+ }
+ }
+
+ return this._results.slice();
+
+};
+
/**
* Returns the appropriate tileset for the index, updating the internal cache as required.
* This should only be called if `tilesets[index]` evaluates to undefined.
@@ -78815,7 +78406,6 @@ Phaser.TilemapLayer.prototype.shiftCanvas = function (context, x, y) {
var copyContext = copyCanvas.getContext('2d');
copyContext.clearRect(0, 0, copyW, copyH);
copyContext.drawImage(canvas, dx, dy, copyW, copyH, 0, 0, copyW, copyH);
-
// clear allows default 'source-over' semantics
context.clearRect(sx, sy, copyW, copyH);
context.drawImage(copyCanvas, 0, 0, copyW, copyH, sx, sy, copyW, copyH);
@@ -78864,7 +78454,6 @@ Phaser.TilemapLayer.prototype.renderRegion = function (scrollX, scrollY, left, t
left = Math.max(0, left);
right = Math.min(width - 1, right);
}
-
if (top <= bottom)
{
top = Math.max(0, top);
@@ -78956,7 +78545,9 @@ Phaser.TilemapLayer.prototype.renderRegion = function (scrollX, scrollY, left, t
context.fillStyle = this.debugSettings.debuggedTileOverfill;
context.fillRect(tx, ty, tw, th);
}
+
}
+
}
};
@@ -78992,1144 +78583,48 @@ Phaser.TilemapLayer.prototype.renderDeltaScroll = function (shiftX, shiftY) {
right = renderW - 1;
}
else if (shiftX > 0)
- {
- // left -> 0
- right = shiftX;
- }
-
- if (shiftY < 0) // layer moving down, damage top
- {
- top = renderH + shiftY; // shiftY neg.
- bottom = renderH - 1;
- }
- else if (shiftY > 0)
- {
- // top -> 0
- bottom = shiftY;
- }
-
- this.shiftCanvas(this.context, shiftX, shiftY);
-
- // Transform into tile-space
- left = Math.floor((left + scrollX) / tw);
- right = Math.floor((right + scrollX) / tw);
- top = Math.floor((top + scrollY) / th);
- bottom = Math.floor((bottom + scrollY) / th);
-
- if (left <= right)
- {
- // Clear left or right edge
- this.context.clearRect(((left * tw) - scrollX), 0, (right - left + 1) * tw, renderH);
-
- var trueTop = Math.floor((0 + scrollY) / th);
- var trueBottom = Math.floor((renderH - 1 + scrollY) / th);
- this.renderRegion(scrollX, scrollY, left, trueTop, right, trueBottom);
- }
-
- if (top <= bottom)
- {
- // Clear top or bottom edge
- this.context.clearRect(0, ((top * th) - scrollY), renderW, (bottom - top + 1) * th);
-
- var trueLeft = Math.floor((0 + scrollX) / tw);
- var trueRight = Math.floor((renderW - 1 + scrollX) / tw);
- this.renderRegion(scrollX, scrollY, trueLeft, top, trueRight, bottom);
- }
-
-};
-
-/**
-* Clear and render the entire canvas.
-*
-* @method Phaser.TilemapLayer#renderFull
-* @private
-*/
-Phaser.TilemapLayer.prototype.renderFull = function () {
-
- var scrollX = this._mc.scrollX;
- var scrollY = this._mc.scrollY;
-
- var renderW = this.canvas.width;
- var renderH = this.canvas.height;
-
- var tw = this._mc.tileWidth;
- var th = this._mc.tileHeight;
-
- var left = Math.floor(scrollX / tw);
- var right = Math.floor((renderW - 1 + scrollX) / tw);
- var top = Math.floor(scrollY / th);
- var bottom = Math.floor((renderH - 1 + scrollY) / th);
-
- this.context.clearRect(0, 0, renderW, renderH);
-
- this.renderRegion(scrollX, scrollY, left, top, right, bottom);
-
-};
-
-/**
-* Renders the tiles to the layer canvas and pushes to the display.
-*
-* @method Phaser.TilemapLayer#render
-* @protected
-*/
-Phaser.TilemapLayer.prototype.render = function () {
-
- var redrawAll = false;
-
- if (!this.visible)
- {
- return;
- }
-
- if (this.dirty || this.layer.dirty)
- {
- this.layer.dirty = false;
- redrawAll = true;
- }
-
- var renderWidth = this.canvas.width; // Use Sprite.width/height?
- var renderHeight = this.canvas.height;
-
- // Scrolling bias; whole pixels only
- var scrollX = this._scrollX | 0;
- var scrollY = this._scrollY | 0;
-
- var mc = this._mc;
- var shiftX = mc.scrollX - scrollX; // Negative when scrolling right/down
- var shiftY = mc.scrollY - scrollY;
-
- if (!redrawAll &&
- shiftX === 0 && shiftY === 0 &&
- mc.renderWidth === renderWidth && mc.renderHeight === renderHeight)
- {
- // No reason to redraw map, looking at same thing and not invalidated.
- return;
- }
-
- this.context.save();
-
- mc.scrollX = scrollX;
- mc.scrollY = scrollY;
-
- if (mc.renderWidth !== renderWidth || mc.renderHeight !== renderHeight)
- {
- // Could support automatic canvas resizing
- mc.renderWidth = renderWidth;
- mc.renderHeight = renderHeight;
- }
-
- if (this.debug)
- {
- this.context.globalAlpha = this.debugSettings.debugAlpha;
-
- if (this.debugSettings.forceFullRedraw)
- {
- redrawAll = true;
- }
- }
-
- if (!redrawAll &&
- this.renderSettings.enableScrollDelta &&
- (Math.abs(shiftX) + Math.abs(shiftY)) < Math.min(renderWidth, renderHeight))
- {
- this.renderDeltaScroll(shiftX, shiftY);
- }
- else
- {
- // Too much change or otherwise requires full render
- this.renderFull();
- }
-
- if (this.debug)
- {
- this.context.globalAlpha = 1;
- this.renderDebug();
- }
-
- this.dirty = false;
-
- this.context.restore();
-
- return true;
-
-};
-
-/**
-* Renders a debug overlay on-top of the canvas. Called automatically by render when `debug` is true.
-*
-* See `debugSettings` for assorted configuration options.
-*
-* @method Phaser.TilemapLayer#renderDebug
-* @private
-*/
-Phaser.TilemapLayer.prototype.renderDebug = function () {
-
- var scrollX = this._mc.scrollX;
- var scrollY = this._mc.scrollY;
-
- var context = this.context;
- var renderW = this.canvas.width;
- var renderH = this.canvas.height;
-
- var width = this.layer.width;
- var height = this.layer.height;
- var tw = this._mc.tileWidth;
- var th = this._mc.tileHeight;
-
- var left = Math.floor(scrollX / tw);
- var right = Math.floor((renderW - 1 + scrollX) / tw);
- var top = Math.floor(scrollY / th);
- var bottom = Math.floor((renderH - 1 + scrollY) / th);
-
- var baseX = (left * tw) - scrollX;
- var baseY = (top * th) - scrollY;
-
- var normStartX = (left + ((1 << 20) * width)) % width;
- var normStartY = (top + ((1 << 20) * height)) % height;
-
- var tx, ty, x, y, xmax, ymax;
-
- context.strokeStyle = this.debugSettings.facingEdgeStroke;
-
- for (y = normStartY, ymax = bottom - top, ty = baseY; ymax >= 0; y++, ymax--, ty += th)
- {
- if (y >= height)
- {
- y -= height;
- }
-
- var row = this.layer.data[y];
-
- for (x = normStartX, xmax = right - left, tx = baseX; xmax >= 0; x++, xmax--, tx += tw)
- {
- if (x >= width)
- {
- x -= width;
- }
-
- var tile = row[x];
-
- if (!tile || tile.index < 0 || !tile.collides)
- {
- continue;
- }
-
- if (this.debugSettings.collidingTileOverfill)
- {
- context.fillStyle = this.debugSettings.collidingTileOverfill;
- context.fillRect(tx, ty, this._mc.cw, this._mc.ch);
- }
-
- if (this.debugSettings.facingEdgeStroke)
- {
- context.beginPath();
-
- if (tile.faceTop)
- {
- context.moveTo(tx, ty);
- context.lineTo(tx + this._mc.cw, ty);
- }
-
- if (tile.faceBottom)
- {
- context.moveTo(tx, ty + this._mc.ch);
- context.lineTo(tx + this._mc.cw, ty + this._mc.ch);
- }
-
- if (tile.faceLeft)
- {
- context.moveTo(tx, ty);
- context.lineTo(tx, ty + this._mc.ch);
- }
-
- if (tile.faceRight)
- {
- context.moveTo(tx + this._mc.cw, ty);
- context.lineTo(tx + this._mc.cw, ty + this._mc.ch);
- }
-
- context.closePath();
-
- context.stroke();
- }
- }
- }
-
-};
-
-/**
- * Take an x coordinate that doesn't account for scrollFactorX and 'fix' it into a scrolled local space.
- *
- * @method Phaser.TilemapLayer#_fixX
- * @private
- * @param {number} x - x coordinate in camera space
- * @return {number} x coordinate in scrollFactor-adjusted dimensions
- */
-Phaser.TilemapLayer.prototype._fixX = function (x) {
-
- if (x < 0)
- {
- x = 0;
- }
-
- if (this.scrollFactorX === 1)
- {
- return x;
- }
-
- return this._scrollX + (x - (this._scrollX / this.scrollFactorX));
-
-};
-
-/**
- * Take an x coordinate that _does_ account for scrollFactorX and 'unfix' it back to camera space.
- *
- * @method Phaser.TilemapLayer#_unfixX
- * @private
- * @param {number} x - x coordinate in scrollFactor-adjusted dimensions
- * @return {number} x coordinate in camera space
- */
-Phaser.TilemapLayer.prototype._unfixX = function (x) {
-
- if (this.scrollFactorX === 1)
- {
- return x;
- }
-
- return (this._scrollX / this.scrollFactorX) + (x - this._scrollX);
-
-};
-
-/**
- * Take a y coordinate that doesn't account for scrollFactorY and 'fix' it into a scrolled local space.
- *
- * @method Phaser.TilemapLayer#_fixY
- * @private
- * @param {number} y - y coordinate in camera space
- * @return {number} y coordinate in scrollFactor-adjusted dimensions
- */
-Phaser.TilemapLayer.prototype._fixY = function (y) {
-
- if (y < 0)
- {
- y = 0;
- }
-
- if (this.scrollFactorY === 1)
- {
- return y;
- }
-
- return this._scrollY + (y - (this._scrollY / this.scrollFactorY));
-
-};
-
-/**
- * Take a y coordinate that _does_ account for scrollFactorY and 'unfix' it back to camera space.
- *
- * @method Phaser.TilemapLayer#_unfixY
- * @private
- * @param {number} y - y coordinate in scrollFactor-adjusted dimensions
- * @return {number} y coordinate in camera space
- */
-Phaser.TilemapLayer.prototype._unfixY = function (y) {
-
- if (this.scrollFactorY === 1)
- {
- return y;
- }
-
- return (this._scrollY / this.scrollFactorY) + (y - this._scrollY);
-
-};
-
-/**
- * Convert a pixel value to a tile coordinate.
- *
- * @method Phaser.TilemapLayer#getTileX
- * @param {number} x - X position of the point in target tile (in pixels).
- * @return {integer} The X map location of the tile.
- */
-Phaser.TilemapLayer.prototype.getTileX = function (x) {
-
- return Math.floor(this._fixX(x) / this._mc.tileWidth);
-
-};
-
-/**
- * Convert a pixel value to a tile coordinate.
- *
- * @method Phaser.TilemapLayer#getTileY
- * @param {number} y - Y position of the point in target tile (in pixels).
- * @return {integer} The Y map location of the tile.
- */
-Phaser.TilemapLayer.prototype.getTileY = function (y) {
-
- return Math.floor(this._fixY(y) / this._mc.tileHeight);
-
-};
-
-/**
- * Convert a pixel coordinate to a tile coordinate.
- *
- * @method Phaser.TilemapLayer#getTileXY
- * @param {number} x - X position of the point in target tile (in pixels).
- * @param {number} y - Y position of the point in target tile (in pixels).
- * @param {(Phaser.Point|object)} point - The Point/object to update.
- * @return {(Phaser.Point|object)} A Point/object with its `x` and `y` properties set.
- */
-Phaser.TilemapLayer.prototype.getTileXY = function (x, y, point) {
-
- point.x = this.getTileX(x);
- point.y = this.getTileY(y);
-
- return point;
-
-};
-
-/**
- * Gets all tiles that intersect with the given line.
- *
- * @method Phaser.TilemapLayer#getRayCastTiles
- * @param {Phaser.Line} line - The line used to determine which tiles to return.
- * @param {integer} [stepRate=(rayStepRate)] - How many steps through the ray will we check? Defaults to `rayStepRate`.
- * @param {boolean} [collides=false] - If true, _only_ return tiles that collide on one or more faces.
- * @param {boolean} [interestingFace=false] - If true, _only_ return tiles that have interesting faces.
- * @return {Phaser.Tile[]} An array of Phaser.Tiles.
- */
-Phaser.TilemapLayer.prototype.getRayCastTiles = function (line, stepRate, collides, interestingFace) {
-
- if (!stepRate) { stepRate = this.rayStepRate; }
- if (collides === undefined) { collides = false; }
- if (interestingFace === undefined) { interestingFace = false; }
-
- // First get all tiles that touch the bounds of the line
- var tiles = this.getTiles(line.x, line.y, line.width, line.height, collides, interestingFace);
-
- if (tiles.length === 0)
- {
- return [];
- }
-
- // Now we only want the tiles that intersect with the points on this line
- var coords = line.coordinatesOnLine(stepRate);
- var results = [];
-
- for (var i = 0; i < tiles.length; i++)
- {
- for (var t = 0; t < coords.length; t++)
- {
- var tile = tiles[i];
- var coord = coords[t];
-
- if (tile.containsPoint(coord[0], coord[1]))
- {
- results.push(tile);
- break;
- }
- }
- }
-
- return results;
-
-};
-
-/**
- * Get all tiles that exist within the given area, defined by the top-left corner, width and height. Values given are in pixels, not tiles.
- *
- * @method Phaser.TilemapLayer#getTiles
- * @param {number} x - X position of the top left corner (in pixels).
- * @param {number} y - Y position of the top left corner (in pixels).
- * @param {number} width - Width of the area to get (in pixels).
- * @param {number} height - Height of the area to get (in pixels).
- * @param {boolean} [collides=false] - If true, _only_ return tiles that collide on one or more faces.
- * @param {boolean} [interestingFace=false] - If true, _only_ return tiles that have interesting faces.
- * @return {array} An array of Tiles.
- */
-Phaser.TilemapLayer.prototype.getTiles = function (x, y, width, height, collides, interestingFace) {
-
- // Should we only get tiles that have at least one of their collision flags set? (true = yes, false = no just get them all)
- if (collides === undefined) { collides = false; }
- if (interestingFace === undefined) { interestingFace = false; }
-
- var fetchAll = !(collides || interestingFace);
-
- // Adjust the x,y coordinates for scrollFactor
- x = this._fixX(x);
- y = this._fixY(y);
-
- // Convert the pixel values into tile coordinates
- var tx = Math.floor(x / (this._mc.cw * this.scale.x));
- var ty = Math.floor(y / (this._mc.ch * this.scale.y));
-
- // Don't just use ceil(width/cw) to allow account for x/y diff within cell
- var tw = Math.ceil((x + width) / (this._mc.cw * this.scale.x)) - tx;
- var th = Math.ceil((y + height) / (this._mc.ch * this.scale.y)) - ty;
-
- this._results.length = 0;
-
- for (var wy = ty; wy < ty + th; wy++)
- {
- for (var wx = tx; wx < tx + tw; wx++)
- {
- var row = this.layer.data[wy];
-
- if (row && row[wx] && (fetchAll || row[wx].isInteresting(collides, interestingFace)))
- {
- this._results.push(row[wx]);
- }
- }
- }
-
- return this._results.slice();
-
-};
-
-/**
-* The x position of this Tilemap Layer.
-*
-* @property {integer} x
-* @memberof Phaser.TilemapLayer
-* @public
-*/
-Object.defineProperty(Phaser.TilemapLayer.prototype, "x", {
-
- get: function () {
-
- return this.cameraOffset.x;
-
- },
-
- set: function (value) {
-
- this.cameraOffset.x = value;
-
- }
-
-});
-
-/**
-* The y position of this Tilemap Layer.
-*
-* @property {integer} y
-* @memberof Phaser.TilemapLayer
-* @public
-*/
-Object.defineProperty(Phaser.TilemapLayer.prototype, "y", {
-
- get: function () {
-
- return this.cameraOffset.y;
-
- },
-
- set: function (value) {
-
- this.cameraOffset.y = value;
-
- }
-
-});
-
-Object.defineProperty(Phaser.TilemapLayer.prototype, "bottom", {
-
- get: function () {
-
- return this.cameraOffset.y + this.layer.heightInPixels;
-
- }
-
-});
-
-Object.defineProperty(Phaser.TilemapLayer.prototype, "right", {
-
- get: function () {
-
- return this.cameraOffset.x + this.layer.widthInPixels;
-
- }
-
-});
-
-/**
-* Flag controlling if the layer tiles wrap at the edges. Only works if the World size matches the Map size.
-*
-* @property {boolean} wrap
-* @memberof Phaser.TilemapLayer
-* @public
-* @default false
-*/
-Object.defineProperty(Phaser.TilemapLayer.prototype, "wrap", {
-
- get: function () {
-
- return this._wrap;
-
- },
-
- set: function (value) {
-
- this._wrap = value;
- this.dirty = true;
-
- }
-
-});
-
-/**
-* Scrolls the map horizontally or returns the current x position.
-*
-* @property {number} scrollX
-* @memberof Phaser.TilemapLayer
-* @public
-*/
-Object.defineProperty(Phaser.TilemapLayer.prototype, "scrollX", {
-
- get: function () {
- return this._scrollX;
- },
-
- set: function (value) {
- this._scrollX = value;
- }
-
-});
-
-/**
-* Scrolls the map vertically or returns the current y position.
-*
-* @property {number} scrollY
-* @memberof Phaser.TilemapLayer
-* @public
-*/
-Object.defineProperty(Phaser.TilemapLayer.prototype, "scrollY", {
-
- get: function () {
- return this._scrollY;
- },
-
- set: function (value) {
- this._scrollY = value;
- }
-
-});
-
-/**
-* The width of the collision tiles (in pixels).
-*
-* @property {integer} collisionWidth
-* @memberof Phaser.TilemapLayer
-* @public
-*/
-Object.defineProperty(Phaser.TilemapLayer.prototype, "collisionWidth", {
-
- get: function () {
- return this._mc.cw;
- },
-
- set: function (value) {
- this._mc.cw = value | 0;
- this.dirty = true;
- }
-
-});
-
-/**
-* The height of the collision tiles (in pixels).
-*
-* @property {integer} collisionHeight
-* @memberof Phaser.TilemapLayer
-* @public
-*/
-Object.defineProperty(Phaser.TilemapLayer.prototype, "collisionHeight", {
-
- get: function () {
- return this._mc.ch;
- },
-
- set: function (value) {
- this._mc.ch = value | 0;
- this.dirty = true;
- }
-
-});
-
-/**
-* @author Richard Davey
-* @author Pete Baron
-* @copyright 2016 Photon Storm Ltd.
-* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
-*/
-
-/**
-* TilemapLayerGL is a WebGL specific version of TilemapLayer.
-* If extends PIXI.Tilemap, and renders a layer of a Tilemap, using the WebGL Tilemap shader.
-*
-* Since a PIXI.Tilemap is a PIXI.DisplayObject it can be moved up and down the display list.
-*
-* By default TilemapLayers have fixedToCamera set to `true`. Changing this will break Camera follow and scrolling behavior.
-*
-* @class Phaser.TilemapLayerGL
-* @extends PIXI.Tilemap
-* @constructor
-* @param {Phaser.Game} game - Game reference to the currently running game.
-* @param {Phaser.Tilemap} tilemap - The tilemap to which this layer belongs.
-* @param {integer} index - The index of the TileLayer to render within the Tilemap.
-* @param {integer} width - Width of the renderable area of the layer in pixels. Cannot be null or negative.
-* @param {integer} height - Height of the renderable area of the layer in pixels. Cannot be null or negative.
-* @param {Phaser.Tileset} tileset - The Tileset this Layer uses to render with.
-*/
-Phaser.TilemapLayerGL = function (game, tilemap, index, width, height, tileset) {
-
- /**
- * A reference to the Phaser.Game instance.
- *
- * @property {Phaser.Game} game
- */
- this.game = game;
-
- /**
- * An Array of any linked layers.
- *
- * @property {Array} linkedLayers
- * @private
- */
- this.linkedLayers = [];
-
- /**
- * The Tilemap to which this layer is bound.
- * @property {Phaser.Tilemap} map
- * @protected
- * @readonly
- */
- this.map = tilemap;
-
- /**
- * The index of this layer within the Tilemap.
- * @property {number} index
- * @protected
- * @readonly
- */
- this.index = index;
-
- /**
- * The layer object within the Tilemap that this layer represents.
- * @property {object} layer
- * @protected
- * @readonly
- */
- this.layer = tilemap.layers[index];
-
- /**
- * The const type of this object.
- * @property {number} type
- * @readonly
- * @protected
- * @default Phaser.TILEMAPLAYER
- */
- this.type = Phaser.TILEMAPLAYER;
-
- /**
- * @property {number} physicsType - The const physics body type of this object.
- * @readonly
- */
- this.physicsType = Phaser.TILEMAPLAYER;
-
- /**
- * Settings that control standard (non-diagnostic) rendering.
- *
- * @property {float} [overdrawRatio=0.20] - Over Draw ratio.
- *
- * @default
- */
- this.renderSettings = {
- overdrawRatio: 0.20
- };
-
- /**
- * @property {boolean} exists - Controls if the core game loop and physics update this game object or not.
- */
- this.exists = true;
-
- /**
- * Settings used for debugging and diagnostics. This is ignored in WebGL mode.
- *
- * @property {?string} missingImageFill - A tile is rendered as a rectangle using the following fill if a valid tileset/image cannot be found. A value of `null` prevents additional rendering for tiles without a valid tileset image. _This takes effect even when debug rendering for the layer is not enabled._
- *
- * @property {?string} debuggedTileOverfill - If a Tile has `Tile#debug` true then, after normal tile image rendering, a rectangle with the following fill is drawn above/over it. _This takes effect even when debug rendering for the layer is not enabled._
- *
- * @property {boolean} forceFullRedraw - When debug rendering (`debug` is true), and this option is enabled, the a full redraw is forced and rendering optimization is suppressed.
- *
- * @property {number} debugAlpha - When debug rendering (`debug` is true), the tileset is initially rendered with this alpha level. This can make the tile edges clearer.
- *
- * @property {?string} facingEdgeStroke - When debug rendering (`debug` is true), this color/stroke is used to draw "face" edges. A value of `null` disables coloring facing edges.
- *
- * @property {?string} collidingTileOverfill - When debug rendering (`debug` is true), this fill is used for tiles that are collidable. A value of `null` disables applying the additional overfill.
- *
- */
- this.debugSettings = {
-
- missingImageFill: 'rgb(255,255,255)',
- debuggedTileOverfill: 'rgba(0,255,0,0.4)',
-
- forceFullRedraw: true,
-
- debugAlpha: 0.5,
- facingEdgeStroke: 'rgba(0,255,0,1)',
- collidingTileOverfill: 'rgba(0,255,0,0.2)'
-
- };
-
- /**
- * Speed at which this layer scrolls horizontally, relative to the camera (e.g. scrollFactorX of 0.5 scrolls half as quickly as the 'normal' camera-locked layers do).
- * @property {number} scrollFactorX
- * @public
- * @default
- */
- this.scrollFactorX = 1;
-
- /**
- * Speed at which this layer scrolls vertically, relative to the camera (e.g. scrollFactorY of 0.5 scrolls half as quickly as the 'normal' camera-locked layers do)
- * @property {number} scrollFactorY
- * @public
- * @default
- */
- this.scrollFactorY = 1;
-
- /**
- * When ray-casting against tiles this is the number of steps it will jump. For larger tile sizes you can increase this to improve performance.
- * @property {integer} rayStepRate
- * @default
- */
- this.rayStepRate = 4;
-
- /**
- * @property {array} _results - Internal var.
- * @private
- */
- this._results = [];
-
- /**
- * If true tiles will be force rendered, even if such is not believed to be required.
- * @property {boolean} dirty
- * @protected
- */
- this.dirty = true;
-
- /**
- * Flag controlling if the layer tiles wrap at the edges.
- * @property {boolean} _wrap
- * @private
- */
- this._wrap = false;
-
- /**
- * Local map data and calculation cache.
- * @property {object} _mc
- * @private
- */
-
- if (tileset === undefined)
- {
- if (tilemap.layers[index] && tilemap.layers[index].tileset)
- {
- tileset = tilemap.layers[index].tileset;
- }
- else if (tilemap.tilesets[0])
- {
- tileset = tilemap.tilesets[0];
- }
- else
- {
- tileset = null;
- }
- }
-
- this._mc = {
-
- x: 0,
- y: 0,
-
- // Used to bypass rendering without reliance on `dirty` and detect changes.
- scrollX: 0,
- scrollY: 0,
- renderWidth: 0,
- renderHeight: 0,
-
- // dimensions of tiles in the original tilemap (the one holding all the tile indices)
- tileWidth: tilemap.tileWidth,
- tileHeight: tilemap.tileHeight,
-
- // Collision width/height (pixels)
- // What purpose do these have? Most things use tile width/height directly.
- // This also only extends collisions right and down.
-
- // dimensions of tiles in this tileset (may not match the original tilemap)
- cw: tileset.tileWidth,
- ch: tileset.tileHeight,
-
- // the tileset for this layer
- tileset: tileset
-
- };
-
- /**
- * The rendering mode used by PIXI.Tilemap.
- * Modes are: 0 - render entire screen of tiles, 1 - render entire map of tiles.
- * @property {number} _renderMode
- * @private
- */
- this._renderMode = 0;
-
- /**
- * The current canvas left after scroll is applied.
- * @property {number} _scrollX
- * @private
- */
- this._scrollX = 0;
-
- /**
- * The current canvas top after scroll is applied.
- * @propety {number} _scrollY
- * @private
- */
- this._scrollY = 0;
-
- var baseTexture = new PIXI.BaseTexture(tileset.image);
-
- PIXI.Tilemap.call(this, new PIXI.Texture(baseTexture), width, height, this.map.width, this.map.height, this._mc.tileset.tileWidth, this._mc.tileset.tileHeight, this.layer);
-
- Phaser.Component.Core.init.call(this, game, 0, 0, null, null);
-
- // must be set *after* the Core.init
- this.fixedToCamera = true;
-
-};
-
-// constructor: extends PIXI.Tilemap
-Phaser.TilemapLayerGL.prototype = Object.create(PIXI.Tilemap.prototype);
-Phaser.TilemapLayerGL.prototype.constructor = Phaser.TilemapLayerGL;
-
-// Only one Phaser component used
-Phaser.Component.Core.install.call(Phaser.TilemapLayerGL.prototype, [
- 'FixedToCamera'
-]);
-
-Phaser.TilemapLayerGL.prototype.preUpdateCore = Phaser.Component.Core.preUpdate;
-
-/**
-* Automatically called by World.preUpdate.
-*
-* @method Phaser.TilemapLayerGL#preUpdate
-*/
-Phaser.TilemapLayerGL.prototype.preUpdate = function () {
-
- return this.preUpdateCore();
-
-};
-
-/**
-* Automatically called by World.postUpdate. Handles camera scrolling.
-*
-* @method Phaser.TilemapLayerGL#postUpdate
-* @protected
-*/
-Phaser.TilemapLayerGL.prototype.postUpdate = function () {
-
- Phaser.Component.FixedToCamera.postUpdate.call(this);
-
- // Stops you being able to auto-scroll the camera if it's not following a sprite
- var camera = this.game.camera;
-
- this.scrollX = camera.x * this.scrollFactorX / this.scale.x;
- this.scrollY = camera.y * this.scrollFactorY / this.scale.y;
-
- this.render();
-
-};
-
-/**
-* Destroys this TilemapLayerGL.
-*
-* @method Phaser.TilemapLayerGL#destroy
-*/
-Phaser.TilemapLayerGL.prototype.destroy = function() {
-
- Phaser.Component.Destroy.prototype.destroy.call(this);
-
-};
-
-/**
-* Resizes the internal dimensions used by this TilemapLayerGL during rendering.
-*
-* @method Phaser.TilemapLayerGL#resize
-* @param {number} width - The new width of the TilemapLayerGL
-* @param {number} height - The new height of the TilemapLayerGL
-*/
-Phaser.TilemapLayerGL.prototype.resize = function (width, height) {
-
- // These setters will automatically update any linked children
- this.displayWidth = width;
- this.displayHeight = height;
-
- this.dirty = true;
-
-};
-
-/**
-* Sets the world size to match the size of this layer.
-*
-* @method Phaser.TilemapLayerGL#resizeWorld
-* @public
-*/
-Phaser.TilemapLayerGL.prototype.resizeWorld = function () {
-
- this.game.world.setBounds(0, 0, this.layer.widthInPixels * this.scale.x, this.layer.heightInPixels * this.scale.y);
-
-};
-
-/**
-* The TilemapLayerGL caches tileset look-ups.
-*
-* Call this method to clear the cache if tilesets have been added or updated after the layer has been rendered.
-*
-* @method Phaser.TilemapLayerGL#resetTilesetCache
-* @public
-*/
-Phaser.TilemapLayerGL.prototype.resetTilesetCache = function () {
-
- this._mc.tilesets = [];
-
- for (var i = 0; i < this.linkedLayers.length; i++)
- {
- this.linkedLayers[i].resetTilesetCache();
- }
-
-};
-
-/**
- * This method will set the scale of the tilemap as well as update the underlying block data of this layer.
- *
- * @method Phaser.TilemapLayerGL#setScale
- * @param {number} [xScale=1] - The scale factor along the X-plane
- * @param {number} [yScale] - The scale factor along the Y-plane
- */
-Phaser.TilemapLayerGL.prototype.setScale = function (xScale, yScale) {
-
- xScale = xScale || 1;
- yScale = yScale || xScale;
-
- for (var y = 0; y < this.layer.data.length; y++)
- {
- var row = this.layer.data[y];
-
- for (var x = 0; x < row.length; x++)
- {
- var tile = row[x];
-
- tile.width = this.map.tileWidth * xScale;
- tile.height = this.map.tileHeight * yScale;
-
- tile.worldX = tile.x * tile.width;
- tile.worldY = tile.y * tile.height;
- }
- }
-
- this.scale.setTo(xScale, yScale);
-
- for (var i = 0; i < this.linkedLayers.length; i++)
- {
- this.linkedLayers[i].setScale(xScale, yScale);
- }
-
-};
-
-/**
-* Render tiles in the given area given by the virtual tile coordinates biased by the given scroll factor.
-* This will constrain the tile coordinates based on wrapping but not physical coordinates.
-*
-* @method Phaser.TilemapLayerGL#renderRegion
-* @private
-* @param {integer} scrollX - Render x offset/scroll.
-* @param {integer} scrollY - Render y offset/scroll.
-* @param {integer} left - Leftmost column to render.
-* @param {integer} top - Topmost row to render.
-* @param {integer} right - Rightmost column to render.
-* @param {integer} bottom - Bottommost row to render.
-* @param {integer} offx - X pixel offset.
-* @param {integer} offy - Y pixel offset.
-*/
-Phaser.TilemapLayerGL.prototype.renderRegion = function (scrollX, scrollY, left, top, right, bottom, offx, offy) {
-
- var width = this.layer.width;
- var height = this.layer.height;
- var tw = this._mc.tileWidth;
- var th = this._mc.tileHeight;
-
- offx = offx || 0;
- offy = offy || 0;
-
- if (!this._wrap)
- {
- if (left <= right) // Only adjust if going to render
- {
- left = Math.max(0, left);
- right = Math.min(width - 1, right);
- }
-
- if (top <= bottom)
- {
- top = Math.max(0, top);
- bottom = Math.min(height - 1, bottom);
- }
- }
-
- // top-left pixel of top-left cell
- var baseX = (left * tw) - scrollX;
- var baseY = (top * th) - scrollY;
-
- // Fix normStartX/normStartY such it is normalized [0..width/height). This allows a simple conditional and decrement to always keep in range [0..width/height) during the loop. The major offset bias is to take care of negative values.
- var normStartX = (left + ((1 << 20) * width)) % width;
- var normStartY = (top + ((1 << 20) * height)) % height;
-
- // tx/ty - are pixel coordinates where tile is drawn
- // x/y - is cell location, normalized [0..width/height) in loop
- // xmax/ymax - remaining cells to render on column/row
- var tx, ty, x, y, xmax, ymax;
-
- for (y = normStartY, ymax = bottom - top, ty = baseY; ymax >= 0; y++, ymax--, ty += th)
- {
- if (y >= height)
- {
- y -= height;
- }
+ {
+ // left -> 0
+ right = shiftX;
+ }
- var row = this.layer.data[y];
+ if (shiftY < 0) // layer moving down, damage top
+ {
+ top = renderH + shiftY; // shiftY neg.
+ bottom = renderH - 1;
+ }
+ else if (shiftY > 0)
+ {
+ // top -> 0
+ bottom = shiftY;
+ }
- for (x = normStartX, xmax = right - left, tx = baseX; xmax >= 0; x++, xmax--, tx += tw)
- {
- if (x >= width)
- {
- x -= width;
- }
+ this.shiftCanvas(this.context, shiftX, shiftY);
- var tile = row[x];
+ // Transform into tile-space
+ left = Math.floor((left + scrollX) / tw);
+ right = Math.floor((right + scrollX) / tw);
+ top = Math.floor((top + scrollY) / th);
+ bottom = Math.floor((bottom + scrollY) / th);
- // If not the Tileset this Layer uses, then skip
- if (!tile || tile.index < this._mc.tileset.firstgid || tile.index > this._mc.lastgid)
- {
- // skipping some tiles, add a degenerate marker into the batch list
- this._mc.tileset.addDegenerate(this.glBatch);
- continue;
- }
+ if (left <= right)
+ {
+ // Clear left or right edge
+ this.context.clearRect(((left * tw) - scrollX), 0, (right - left + 1) * tw, renderH);
- var index = tile.index;
+ var trueTop = Math.floor((0 + scrollY) / th);
+ var trueBottom = Math.floor((renderH - 1 + scrollY) / th);
+ this.renderRegion(scrollX, scrollY, left, trueTop, right, trueBottom);
+ }
- this._mc.tileset.drawGl(this.glBatch, tx + offx, ty + offy, index, tile.alpha, tile.flippedVal);
- }
+ if (top <= bottom)
+ {
+ // Clear top or bottom edge
+ this.context.clearRect(0, ((top * th) - scrollY), renderW, (bottom - top + 1) * th);
- // at end of each row, add a degenerate marker into the batch drawing list
- this._mc.tileset.addDegenerate(this.glBatch);
+ var trueLeft = Math.floor((0 + scrollX) / tw);
+ var trueRight = Math.floor((renderW - 1 + scrollX) / tw);
+ this.renderRegion(scrollX, scrollY, trueLeft, top, trueRight, bottom);
}
};
@@ -80137,472 +78632,241 @@ Phaser.TilemapLayerGL.prototype.renderRegion = function (scrollX, scrollY, left,
/**
* Clear and render the entire canvas.
*
-* @method Phaser.TilemapLayerGL#renderFull
+* @method Phaser.TilemapLayer#renderFull
* @private
*/
-Phaser.TilemapLayerGL.prototype.renderFull = function () {
+Phaser.TilemapLayer.prototype.renderFull = function () {
var scrollX = this._mc.scrollX;
var scrollY = this._mc.scrollY;
- // var renderW = this.game._width;
- // var renderH = this.game._height;
-
- // displayWidth surely?
- var renderW = this.game._width;
- var renderH = this.game._height;
+ var renderW = this.canvas.width;
+ var renderH = this.canvas.height;
var tw = this._mc.tileWidth;
var th = this._mc.tileHeight;
- var cw = this._mc.cw;
- var ch = this._mc.ch;
-
- var left = Math.floor((scrollX - (cw - tw)) / tw);
+ var left = Math.floor(scrollX / tw);
var right = Math.floor((renderW - 1 + scrollX) / tw);
- var top = Math.floor((scrollY - (ch - th)) / th);
+ var top = Math.floor(scrollY / th);
var bottom = Math.floor((renderH - 1 + scrollY) / th);
- this.glBatch = [];
+ this.context.clearRect(0, 0, renderW, renderH);
- this.renderRegion(scrollX, scrollY, left, top, right, bottom, 0, -(ch - th));
+ this.renderRegion(scrollX, scrollY, left, top, right, bottom);
};
/**
* Renders the tiles to the layer canvas and pushes to the display.
*
-* @method Phaser.TilemapLayerGL#render
+* @method Phaser.TilemapLayer#render
* @protected
*/
-Phaser.TilemapLayerGL.prototype.render = function () {
+Phaser.TilemapLayer.prototype.render = function () {
+
+ var redrawAll = false;
if (!this.visible)
{
return;
}
- var redrawAll = (this.dirty || this.layer.dirty);
+ if (this.dirty || this.layer.dirty)
+ {
+ this.layer.dirty = false;
+ redrawAll = true;
+ }
+
+ var renderWidth = this.canvas.width; // Use Sprite.width/height?
+ var renderHeight = this.canvas.height;
// Scrolling bias; whole pixels only
var scrollX = this._scrollX | 0;
var scrollY = this._scrollY | 0;
var mc = this._mc;
- var shiftX = mc.scrollX - scrollX; // Negative when scrolling right / down
+ var shiftX = mc.scrollX - scrollX; // Negative when scrolling right/down
var shiftY = mc.scrollY - scrollY;
- if (!redrawAll && shiftX === 0 && shiftY === 0)
+ if (!redrawAll &&
+ shiftX === 0 && shiftY === 0 &&
+ mc.renderWidth === renderWidth && mc.renderHeight === renderHeight)
{
- // No reason to rebuild batch, looking at same thing and not invalidated.
+ // No reason to redraw map, looking at same thing and not invalidated.
return;
}
+ this.context.save();
+
mc.scrollX = scrollX;
mc.scrollY = scrollY;
- this.renderFull();
-
- this.layer.dirty = false;
- this.dirty = false;
-
- return true;
-
-};
-
-/**
- * Take an x coordinate that doesn't account for scrollFactorX and 'fix' it into a scrolled local space.
- *
- * @method Phaser.TilemapLayerGL#_fixX
- * @private
- * @param {number} x - x coordinate in camera space
- * @return {number} x coordinate in scrollFactor-adjusted dimensions
- */
-Phaser.TilemapLayerGL.prototype._fixX = function (x) {
-
- if (x < 0)
+ if (mc.renderWidth !== renderWidth || mc.renderHeight !== renderHeight)
{
- x = 0;
+ // Could support automatic canvas resizing
+ mc.renderWidth = renderWidth;
+ mc.renderHeight = renderHeight;
}
- if (this.scrollFactorX === 1)
+ if (this.debug)
{
- return x;
- }
-
- return this._scrollX + (x - (this._scrollX / this.scrollFactorX));
-
-};
-
-/**
- * Take an x coordinate that _does_ account for scrollFactorX and 'unfix' it back to camera space.
- *
- * @method Phaser.TilemapLayerGL#_unfixX
- * @private
- * @param {number} x - x coordinate in scrollFactor-adjusted dimensions
- * @return {number} x coordinate in camera space
- */
-Phaser.TilemapLayerGL.prototype._unfixX = function (x) {
+ this.context.globalAlpha = this.debugSettings.debugAlpha;
- if (this.scrollFactorX === 1)
- {
- return x;
+ if (this.debugSettings.forceFullRedraw)
+ {
+ redrawAll = true;
+ }
}
- return (this._scrollX / this.scrollFactorX) + (x - this._scrollX);
-
-};
-
-/**
- * Take a y coordinate that doesn't account for scrollFactorY and 'fix' it into a scrolled local space.
- *
- * @method Phaser.TilemapLayerGL#_fixY
- * @private
- * @param {number} y - y coordinate in camera space
- * @return {number} y coordinate in scrollFactor-adjusted dimensions
- */
-Phaser.TilemapLayerGL.prototype._fixY = function (y) {
-
- if (y < 0)
+ if (!redrawAll &&
+ this.renderSettings.enableScrollDelta &&
+ (Math.abs(shiftX) + Math.abs(shiftY)) < Math.min(renderWidth, renderHeight))
{
- y = 0;
+ this.renderDeltaScroll(shiftX, shiftY);
}
-
- if (this.scrollFactorY === 1)
+ else
{
- return y;
+ // Too much change or otherwise requires full render
+ this.renderFull();
}
- return this._scrollY + (y - (this._scrollY / this.scrollFactorY));
-
-};
-
-/**
- * Take a y coordinate that _does_ account for scrollFactorY and 'unfix' it back to camera space.
- *
- * @method Phaser.TilemapLayerGL#_unfixY
- * @private
- * @param {number} y - y coordinate in scrollFactor-adjusted dimensions
- * @return {number} y coordinate in camera space
- */
-Phaser.TilemapLayerGL.prototype._unfixY = function (y) {
-
- if (this.scrollFactorY === 1)
+ if (this.debug)
{
- return y;
+ this.context.globalAlpha = 1;
+ this.renderDebug();
}
- return (this._scrollY / this.scrollFactorY) + (y - this._scrollY);
-
-};
-
-/**
- * Convert a pixel value to a tile coordinate.
- *
- * @method Phaser.TilemapLayerGL#getTileX
- * @param {number} x - X position of the point in target tile (in pixels).
- * @return {integer} The X map location of the tile.
- */
-Phaser.TilemapLayerGL.prototype.getTileX = function (x) {
-
- return Math.floor(this._fixX(x) / this._mc.tileWidth);
+ this.texture.baseTexture.dirty();
-};
+ this.dirty = false;
-/**
- * Convert a pixel value to a tile coordinate.
- *
- * @method Phaser.TilemapLayerGL#getTileY
- * @param {number} y - Y position of the point in target tile (in pixels).
- * @return {integer} The Y map location of the tile.
- */
-Phaser.TilemapLayerGL.prototype.getTileY = function (y) {
+ this.context.restore();
- return Math.floor(this._fixY(y) / this._mc.tileHeight);
+ return true;
};
/**
- * Convert a pixel coordinate to a tile coordinate.
- *
- * @method Phaser.TilemapLayerGL#getTileXY
- * @param {number} x - X position of the point in target tile (in pixels).
- * @param {number} y - Y position of the point in target tile (in pixels).
- * @param {(Phaser.Point|object)} point - The Point/object to update.
- * @return {(Phaser.Point|object)} A Point/object with its `x` and `y` properties set.
- */
-Phaser.TilemapLayerGL.prototype.getTileXY = function (x, y, point) {
+* Renders a debug overlay on-top of the canvas. Called automatically by render when `debug` is true.
+*
+* See `debugSettings` for assorted configuration options.
+*
+* @method Phaser.TilemapLayer#renderDebug
+* @private
+*/
+Phaser.TilemapLayer.prototype.renderDebug = function () {
- point.x = this.getTileX(x);
- point.y = this.getTileY(y);
+ var scrollX = this._mc.scrollX;
+ var scrollY = this._mc.scrollY;
- return point;
+ var context = this.context;
+ var renderW = this.canvas.width;
+ var renderH = this.canvas.height;
-};
+ var width = this.layer.width;
+ var height = this.layer.height;
+ var tw = this._mc.tileWidth;
+ var th = this._mc.tileHeight;
-/**
- * Gets all tiles that intersect with the given line.
- *
- * @method Phaser.TilemapLayerGL#getRayCastTiles
- * @param {Phaser.Line} line - The line used to determine which tiles to return.
- * @param {integer} [stepRate=(rayStepRate)] - How many steps through the ray will we check? Defaults to `rayStepRate`.
- * @param {boolean} [collides=false] - If true, _only_ return tiles that collide on one or more faces.
- * @param {boolean} [interestingFace=false] - If true, _only_ return tiles that have interesting faces.
- * @return {Phaser.Tile[]} An array of Phaser.Tiles.
- */
-Phaser.TilemapLayerGL.prototype.getRayCastTiles = function (line, stepRate, collides, interestingFace) {
+ var left = Math.floor(scrollX / tw);
+ var right = Math.floor((renderW - 1 + scrollX) / tw);
+ var top = Math.floor(scrollY / th);
+ var bottom = Math.floor((renderH - 1 + scrollY) / th);
- if (!stepRate) { stepRate = this.rayStepRate; }
- if (collides === undefined) { collides = false; }
- if (interestingFace === undefined) { interestingFace = false; }
+ var baseX = (left * tw) - scrollX;
+ var baseY = (top * th) - scrollY;
- // First get all tiles that touch the bounds of the line
- var tiles = this.getTiles(line.x, line.y, line.width, line.height, collides, interestingFace);
+ var normStartX = (left + ((1 << 20) * width)) % width;
+ var normStartY = (top + ((1 << 20) * height)) % height;
- if (tiles.length === 0)
- {
- return [];
- }
+ var tx, ty, x, y, xmax, ymax;
- // Now we only want the tiles that intersect with the points on this line
- var coords = line.coordinatesOnLine(stepRate);
- var results = [];
+ context.strokeStyle = this.debugSettings.facingEdgeStroke;
- for (var i = 0; i < tiles.length; i++)
+ for (y = normStartY, ymax = bottom - top, ty = baseY; ymax >= 0; y++, ymax--, ty += th)
{
- for (var t = 0; t < coords.length; t++)
+ if (y >= height)
{
- var tile = tiles[i];
- var coord = coords[t];
-
- if (tile.containsPoint(coord[0], coord[1]))
- {
- results.push(tile);
- break;
- }
+ y -= height;
}
- }
-
- return results;
-
-};
-
-/**
- * Get all tiles that exist within the given area, defined by the top-left corner, width and height. Values given are in pixels, not tiles.
- *
- * @method Phaser.TilemapLayerGL#getTiles
- * @param {number} x - X position of the top left corner (in pixels).
- * @param {number} y - Y position of the top left corner (in pixels).
- * @param {number} width - Width of the area to get (in pixels).
- * @param {number} height - Height of the area to get (in pixels).
- * @param {boolean} [collides=false] - If true, _only_ return tiles that collide on one or more faces.
- * @param {boolean} [interestingFace=false] - If true, _only_ return tiles that have interesting faces.
- * @return {array} An array of Tiles.
- */
-Phaser.TilemapLayerGL.prototype.getTiles = function (x, y, width, height, collides, interestingFace) {
-
- // Should we only get tiles that have at least one of their collision flags set? (true = yes, false = no just get them all)
- if (collides === undefined) { collides = false; }
- if (interestingFace === undefined) { interestingFace = false; }
-
- var fetchAll = !(collides || interestingFace);
-
- // Adjust the x,y coordinates for scrollFactor
- x = this._fixX(x);
- y = this._fixY(y);
-
- // Convert the pixel values into tile coordinates
- var tx = Math.floor(x / (this._mc.cw * this.scale.x));
- var ty = Math.floor(y / (this._mc.ch * this.scale.y));
-
- // Don't just use ceil(width/cw) to allow account for x/y diff within cell
- var tw = Math.ceil((x + width) / (this._mc.cw * this.scale.x)) - tx;
- var th = Math.ceil((y + height) / (this._mc.ch * this.scale.y)) - ty;
- this._results.length = 0;
+ var row = this.layer.data[y];
- for (var wy = ty; wy < ty + th; wy++)
- {
- for (var wx = tx; wx < tx + tw; wx++)
+ for (x = normStartX, xmax = right - left, tx = baseX; xmax >= 0; x++, xmax--, tx += tw)
{
- var row = this.layer.data[wy];
-
- if (row && row[wx] && (fetchAll || row[wx].isInteresting(collides, interestingFace)))
+ if (x >= width)
{
- this._results.push(row[wx]);
+ x -= width;
}
- }
- }
-
- return this._results.slice();
-
-};
-
-/**
-* The x position of this Tilemap Layer.
-*
-* @property {integer} x
-* @memberof Phaser.TilemapLayerGL
-* @public
-*/
-Object.defineProperty(Phaser.TilemapLayerGL.prototype, "x", {
-
- get: function () {
-
- return this._mc.x;
-
- },
-
- set: function (value) {
-
- this._mc.x = value;
-
- for (var i = 0; i < this.linkedLayers.length; i++)
- {
- this.linkedLayers[i]._mc.x = value;
- }
-
- this.dirty = true;
-
- }
-
-});
-
-/**
-* The y position of this Tilemap Layer.
-*
-* @property {integer} y
-* @memberof Phaser.TilemapLayerGL
-* @public
-*/
-Object.defineProperty(Phaser.TilemapLayerGL.prototype, "y", {
-
- get: function () {
-
- return this._mc.y;
-
- },
-
- set: function (value) {
-
- this._mc.y = value;
-
- for (var i = 0; i < this.linkedLayers.length; i++)
- {
- this.linkedLayers[i]._mc.y = value;
- }
-
- this.dirty = true;
-
- }
-
-});
-
-Object.defineProperty(Phaser.TilemapLayerGL.prototype, "bottom", {
-
- get: function () {
-
- return this.y + this.layer.heightInPixels;
-
- }
-});
-
-Object.defineProperty(Phaser.TilemapLayerGL.prototype, "right", {
-
- get: function () {
-
- return this.x + this.layer.widthInPixels;
-
- }
-
-});
-
-/**
-* The rendered width of this Tilemap Layer.
-*
-* @property {integer} width
-* @memberof Phaser.TilemapLayerGL
-* @public
-*/
-Object.defineProperty(Phaser.TilemapLayerGL.prototype, "width", {
-
- get: function () {
-
- return this._displayWidth;
-
- },
-
- set: function (value) {
-
- this._displayWidth = value;
-
- for (var i = 0; i < this.linkedLayers.length; i++)
- {
- this.linkedLayers[i]._displayWidth = value;
- }
-
- this.dirty = true;
-
- }
+ var tile = row[x];
+ if (!tile || tile.index < 0 || !tile.collides)
+ {
+ continue;
+ }
-});
+ if (this.debugSettings.collidingTileOverfill)
+ {
+ context.fillStyle = this.debugSettings.collidingTileOverfill;
+ context.fillRect(tx, ty, this._mc.cw, this._mc.ch);
+ }
-/**
-* The rendered height of this Tilemap Layer.
-*
-* @property {integer} height
-* @memberof Phaser.TilemapLayerGL
-* @public
-*/
-Object.defineProperty(Phaser.TilemapLayerGL.prototype, "height", {
+ if (this.debugSettings.facingEdgeStroke)
+ {
+ context.beginPath();
- get: function () {
+ if (tile.faceTop)
+ {
+ context.moveTo(tx, ty);
+ context.lineTo(tx + this._mc.cw, ty);
+ }
- return this._displayHeight;
+ if (tile.faceBottom)
+ {
+ context.moveTo(tx, ty + this._mc.ch);
+ context.lineTo(tx + this._mc.cw, ty + this._mc.ch);
+ }
- },
+ if (tile.faceLeft)
+ {
+ context.moveTo(tx, ty);
+ context.lineTo(tx, ty + this._mc.ch);
+ }
- set: function (value) {
+ if (tile.faceRight)
+ {
+ context.moveTo(tx + this._mc.cw, ty);
+ context.lineTo(tx + this._mc.cw, ty + this._mc.ch);
+ }
- this._displayHeight = value;
+ context.closePath();
- for (var i = 0; i < this.linkedLayers.length; i++)
- {
- this.linkedLayers[i]._displayHeight = value;
+ context.stroke();
+ }
+
}
- this.dirty = true;
-
}
-});
+};
/**
* Flag controlling if the layer tiles wrap at the edges. Only works if the World size matches the Map size.
*
* @property {boolean} wrap
-* @memberof Phaser.TilemapLayerGL
+* @memberof Phaser.TilemapLayer
* @public
* @default false
*/
-Object.defineProperty(Phaser.TilemapLayerGL.prototype, "wrap", {
+Object.defineProperty(Phaser.TilemapLayer.prototype, "wrap", {
get: function () {
-
return this._wrap;
-
},
set: function (value) {
-
this._wrap = value;
-
- for (var i = 0; i < this.linkedLayers.length; i++)
- {
- this.linkedLayers[i]._wrap = value;
- }
-
this.dirty = true;
}
@@ -80612,26 +78876,17 @@ Object.defineProperty(Phaser.TilemapLayerGL.prototype, "wrap", {
* Scrolls the map horizontally or returns the current x position.
*
* @property {number} scrollX
-* @memberof Phaser.TilemapLayerGL
+* @memberof Phaser.TilemapLayer
* @public
*/
-Object.defineProperty(Phaser.TilemapLayerGL.prototype, "scrollX", {
+Object.defineProperty(Phaser.TilemapLayer.prototype, "scrollX", {
get: function () {
-
return this._scrollX;
-
},
set: function (value) {
-
this._scrollX = value;
-
- for (var i = 0; i < this.linkedLayers.length; i++)
- {
- this.linkedLayers[i]._scrollX = value;
- }
-
}
});
@@ -80640,26 +78895,17 @@ Object.defineProperty(Phaser.TilemapLayerGL.prototype, "scrollX", {
* Scrolls the map vertically or returns the current y position.
*
* @property {number} scrollY
-* @memberof Phaser.TilemapLayerGL
+* @memberof Phaser.TilemapLayer
* @public
*/
-Object.defineProperty(Phaser.TilemapLayerGL.prototype, "scrollY", {
+Object.defineProperty(Phaser.TilemapLayer.prototype, "scrollY", {
get: function () {
-
return this._scrollY;
-
},
set: function (value) {
-
this._scrollY = value;
-
- for (var i = 0; i < this.linkedLayers.length; i++)
- {
- this.linkedLayers[i]._scrollY = value;
- }
-
}
});
@@ -80668,28 +78914,18 @@ Object.defineProperty(Phaser.TilemapLayerGL.prototype, "scrollY", {
* The width of the collision tiles (in pixels).
*
* @property {integer} collisionWidth
-* @memberof Phaser.TilemapLayerGL
+* @memberof Phaser.TilemapLayer
* @public
*/
-Object.defineProperty(Phaser.TilemapLayerGL.prototype, "collisionWidth", {
+Object.defineProperty(Phaser.TilemapLayer.prototype, "collisionWidth", {
get: function () {
-
return this._mc.cw;
-
},
set: function (value) {
-
this._mc.cw = value | 0;
-
- for (var i = 0; i < this.linkedLayers.length; i++)
- {
- this.linkedLayers[i]._mc.cw = value | 0;
- }
-
this.dirty = true;
-
}
});
@@ -80698,26 +78934,17 @@ Object.defineProperty(Phaser.TilemapLayerGL.prototype, "collisionWidth", {
* The height of the collision tiles (in pixels).
*
* @property {integer} collisionHeight
-* @memberof Phaser.TilemapLayerGL
+* @memberof Phaser.TilemapLayer
* @public
*/
-Object.defineProperty(Phaser.TilemapLayerGL.prototype, "collisionHeight", {
+Object.defineProperty(Phaser.TilemapLayer.prototype, "collisionHeight", {
get: function () {
-
return this._mc.ch;
-
},
set: function (value) {
-
this._mc.ch = value | 0;
-
- for (var i = 0; i < this.linkedLayers.length; i++)
- {
- this.linkedLayers[i]._mc.ch = value | 0;
- }
-
this.dirty = true;
}
@@ -80926,8 +79153,8 @@ Phaser.TilemapParser = {
format: Phaser.Tilemap.TILED_JSON,
version: json.version,
properties: json.properties,
- widthInPixels: json.width * json.tileWidth,
- heightInPixels: json.height * json.tileHeight
+ widthInPixels: json.width * json.tilewidth,
+ heightInPixels: json.height * json.tileheight
};
// Tile Layers
@@ -81468,14 +79695,6 @@ Phaser.Tileset = function (name, firstgid, width, height, margin, spacing, prope
*/
this.firstgid = firstgid | 0;
- /**
- * This is the ending index of the last tile index this Tileset can contain.
- * This is populated automatically by Phaser.TilemapParser.parseTiledJSON.
- * For a single tileset map it should be left as the default value.
- * @property {integer} lastgid
- */
- this.lastgid = Infinity;
-
/**
* The width of each tile (in pixels).
* @property {integer} tileWidth
@@ -81574,7 +79793,6 @@ Phaser.Tileset.prototype = {
if (coordIndex >= 0 && (coordIndex + 1) < this.drawCoords.length)
{
- // draw the tile on the canvas
context.drawImage(
this.image,
this.drawCoords[coordIndex],
@@ -81590,91 +79808,6 @@ Phaser.Tileset.prototype = {
},
- /**
- * Sets the GL Batch data to draw a tile from this Tileset at the given coordinates
- * using a WebGL renderer.
- *
- * @method Phaser.Tileset#drawGl
- * @param {Array} glBatch - A list of WebGL batch objects to draw later.
- * @param {number} x - The x coordinate to draw to.
- * @param {number} y - The y coordinate to draw to.
- * @param {integer} index - The index of the tile within the set to draw.
- * @param {number} alpha - The alpha value to draw this tile with.
- * @param {integer} flippedVal - A bitwise value which indicates how the UV source coordinates should be flipped
- */
- drawGl: function (glBatch, x, y, index, alpha, flippedVal) {
-
- // Correct the tile index for the set and bias for interlacing x/y values
- var coordIndex = (index - this.firstgid) * 2;
-
- if (coordIndex >= 0 && (coordIndex + 1) < this.drawCoords.length)
- {
- // apply "half-pixel correction" to avoid edge bleeding as much as possible
- var sx = this.drawCoords[coordIndex] + 0.5;
- var sy = this.drawCoords[coordIndex + 1] + 0.5;
- var sw = this.tileWidth - 1.0;
- var sh = this.tileHeight - 1.0;
- var fd = 0;
-
- if (flippedVal)
- {
- if (flippedVal & 1)
- {
- // flipped diagonally (swap x,y axes)
- fd = 1;
- }
-
- if (flippedVal & 4)
- {
- // flipped horizontally
- sx += sw;
- sw = -sw;
- }
-
- if (flippedVal & 2)
- {
- // flipped vertically
- sy += sh;
- sh = -sh;
- }
- }
-
- // add the tile to the WebGL batch
- // source and destination coordinates, in pixel units
- // destination is the center of the tile
- glBatch.push({
- sx: sx,
- sy: sy,
- sw: sw,
- sh: sh,
- fd: fd,
- dx: x + this.tileWidth * 0.5,
- dy: y + this.tileHeight * 0.5,
- dw: this.tileWidth,
- dh: this.tileHeight,
- alpha: alpha
- });
- }
-
- },
-
- /**
- * Adds a marker for the WebGL batch display to insert a degenerate
- * triangle (eg. at the end of each row of tiles)
- *
- * @method Phaser.Tileset#addDegenerate
- * @param {array} glBatch - The GL Batch data array.
- */
- addDegenerate: function (glBatch) {
-
- // Don't insert multiple degenerate markers in a row
- if (glBatch[glBatch.length - 1])
- {
- glBatch.push(null);
- }
-
- },
-
/**
* Returns true if and only if this tileset contains the given tile index.
*
@@ -83412,6 +81545,14 @@ Phaser.Weapon = function (game, parent) {
*/
this._nextFire = 0;
+ /**
+ * Internal firing rotation tracking point.
+ *
+ * @type {Phaser.Point}
+ * @private
+ */
+ this._rotatedPoint = new Phaser.Point();
+
};
Phaser.Weapon.prototype = Object.create(Phaser.Plugin.prototype);
@@ -83744,7 +81885,7 @@ Phaser.Weapon.prototype.trackPointer = function (pointer, offsetX, offsetY) {
* @param {Phaser.Sprite|Phaser.Point|Object} [from] - Optionally fires the bullet **from** the `x` and `y` properties of this object. If set this overrides `Weapon.trackedSprite` or `trackedPointer`. Pass `null` to ignore it.
* @param {number} [x] - The x coordinate, in world space, to fire the bullet **towards**. If left as `undefined` the bullet direction is based on its angle.
* @param {number} [y] - The y coordinate, in world space, to fire the bullet **towards**. If left as `undefined` the bullet direction is based on its angle.
-* @return {boolean} True if a bullet was successfully fired, otherwise false.
+* @return {Phaser.Bullet} The fired bullet if successful, null otherwise.
*/
Phaser.Weapon.prototype.fire = function (from, x, y) {
@@ -83775,14 +81916,32 @@ Phaser.Weapon.prototype.fire = function (from, x, y) {
}
else if (this.trackedSprite)
{
- if (this.fireFrom.width > 1)
+ if (this.trackRotation)
{
- this.fireFrom.centerOn(this.trackedSprite.world.x + this.trackOffset.x, this.trackedSprite.world.y + this.trackOffset.y);
+ this._rotatedPoint.set(this.trackedSprite.world.x + this.trackOffset.x, this.trackedSprite.world.y + this.trackOffset.y);
+ this._rotatedPoint.rotate(this.trackedSprite.world.x, this.trackedSprite.world.y, this.trackedSprite.rotation);
+
+ if (this.fireFrom.width > 1)
+ {
+ this.fireFrom.centerOn(this._rotatedPoint.x, this._rotatedPoint.y);
+ }
+ else
+ {
+ this.fireFrom.x = this._rotatedPoint.x;
+ this.fireFrom.y = this._rotatedPoint.y;
+ }
}
else
{
- this.fireFrom.x = this.trackedSprite.world.x + this.trackOffset.x;
- this.fireFrom.y = this.trackedSprite.world.y + this.trackOffset.y;
+ if (this.fireFrom.width > 1)
+ {
+ this.fireFrom.centerOn(this.trackedSprite.world.x + this.trackOffset.x, this.trackedSprite.world.y + this.trackOffset.y);
+ }
+ else
+ {
+ this.fireFrom.x = this.trackedSprite.world.x + this.trackOffset.x;
+ this.fireFrom.y = this.trackedSprite.world.y + this.trackOffset.y;
+ }
}
if (this.bulletInheritSpriteSpeed)
@@ -83914,7 +82073,23 @@ Phaser.Weapon.prototype.fire = function (from, x, y) {
bullet.body.velocity.set(moveX, moveY);
bullet.body.gravity.set(this.bulletGravity.x, this.bulletGravity.y);
- this._nextFire = this.game.time.now + this.fireRate;
+ if (this.bulletSpeedVariance !== 0)
+ {
+ var rate = this.fireRate;
+
+ rate += Phaser.Math.between(-this.fireRateVariance, this.fireRateVariance);
+
+ if (rate < 0)
+ {
+ rate = 0;
+ }
+
+ this._nextFire = this.game.time.now + rate;
+ }
+ else
+ {
+ this._nextFire = this.game.time.now + this.fireRate;
+ }
this.shots++;
@@ -83925,7 +82100,7 @@ Phaser.Weapon.prototype.fire = function (from, x, y) {
this.onFireLimit.dispatch(this, this.fireLimit);
}
}
-
+ return bullet;
};
/**
@@ -83934,7 +82109,7 @@ Phaser.Weapon.prototype.fire = function (from, x, y) {
*
* @method Phaser.Weapon#fireAtPointer
* @param {Phaser.Pointer} [pointer] - The Pointer to fire the bullet towards.
-* @return {boolean} True if a bullet was successfully fired, otherwise false.
+* @return {Phaser.Bullet} The fired bullet if successful, null otherwise.
*/
Phaser.Weapon.prototype.fireAtPointer = function (pointer) {
@@ -83950,7 +82125,7 @@ Phaser.Weapon.prototype.fireAtPointer = function (pointer) {
*
* @method Phaser.Weapon#fireAtSprite
* @param {Phaser.Sprite} [sprite] - The Sprite to fire the bullet towards.
-* @return {boolean} True if a bullet was successfully fired, otherwise false.
+* @return {Phaser.Bullet} The fired bullet if successful, null otherwise.
*/
Phaser.Weapon.prototype.fireAtSprite = function (sprite) {
@@ -83965,7 +82140,7 @@ Phaser.Weapon.prototype.fireAtSprite = function (sprite) {
* @method Phaser.Weapon#fireAtXY
* @param {number} [x] - The x coordinate, in world space, to fire the bullet towards.
* @param {number} [y] - The y coordinate, in world space, to fire the bullet towards.
-* @return {boolean} True if a bullet was successfully fired, otherwise false.
+* @return {Phaser.Bullet} The fired bullet if successful, null otherwise.
*/
Phaser.Weapon.prototype.fireAtXY = function (x, y) {
diff --git a/build/custom/phaser-arcade-physics.map b/build/custom/phaser-arcade-physics.map
index c7bef650d6..49fb73b538 100644
--- a/build/custom/phaser-arcade-physics.map
+++ b/build/custom/phaser-arcade-physics.map
@@ -1 +1 @@
-{"version":3,"sources":["phaser-arcade-physics.js"],"names":["root","this","PIXI","game","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","_UID","Float32Array","Uint16Array","Uint32Array","ArrayBuffer","Array","PI_2","Math","PI","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","DisplayObject","position","Point","scale","pivot","rotation","alpha","visible","hitArea","renderable","parent","worldAlpha","worldTransform","Matrix","worldPosition","worldScale","worldRotation","filterArea","_sr","_cr","_bounds","Rectangle","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","prototype","constructor","destroy","children","i","length","_destroyCachedSprite","updateTransform","p","world","a","b","c","d","tx","ty","pt","wt","rotationCache","sin","cos","x","y","set","sqrt","atan2","transformCallback","call","transformCallbackContext","preUpdate","generateTexture","resolution","scaleMode","renderer","bounds","getLocalBounds","renderTexture","RenderTexture","width","height","_tempMatrix","render","updateCache","_generateCachedSprite","toGlobal","apply","toLocal","from","applyInverse","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","max","ceil","texture","resize","tempFilters","_filters","filters","anchor","displayObjectUpdateTransform","Object","defineProperties","get","value","worldVisible","item","mask","isMask","isArray","passes","filterPasses","j","push","_filterBlock","target","blendMode","blendModes","MULTIPLY","NORMAL","cacheAsBitmap","DisplayObjectContainer","ignoreChildInput","create","addChild","child","addChildAt","index","removeChild","splice","Error","swapChildren","child2","index1","getChildIndex","index2","indexOf","setChildIndex","currentIndex","getChildAt","removeChildAt","undefined","removeChildren","beginIndex","endIndex","range","removed","begin","displayObjectContainerUpdateTransform","getBounds","targetCoordinateSpace","isTargetCoordinateSpaceDisplayObject","isTargetCoordinateSpaceThisOrParent","contains","matrixCache","identityMatrix","childBounds","childMaxX","childMaxY","minX","Infinity","minY","maxX","maxY","childVisible","w0","w1","h0","h1","x1","y1","x2","y2","x3","y3","x4","y4","targetCoordinateSpaceBounds","spriteBatch","flush","filterManager","pushFilter","stop","maskManager","pushMask","start","popMask","popFilter","defineProperty","_width","_height","Texture","emptyTexture","tint","cachedTint","tintedTexture","shader","exists","baseTexture","hasLoaded","onTextureUpdate","frame","setTexture","destroyBase","skipRender","valid","matrix","temp","crop","currentBlendMode","context","globalCompositeOperation","blendModesCanvas","globalAlpha","smoothProperty","scaleModes","LINEAR","dx","trim","dy","shakeX","shakeY","roundPixels","setTransform","cw","ch","requiresReTint","CanvasTinter","getTintedTexture","drawImage","cx","cy","source","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","setContext","shaderManager","setShader","fastShader","transform","isRotated","childTransform","hex2rgb","hex","rgb2hex","rgb","canUseNewCanvasBlendModes","document","pngHead","pngEnd","magenta","Image","src","yellow","canvas","CanvasPool","getContext","getImageData","data","remove","getNextPowerOfTwo","number","result","isPowerOfTwo","idx","getFirst","container","createElement","pool","removeByCanvas","getTotal","getFree","initDefaultShaders","CompileVertexShader","shaderSrc","_CompileShader","VERTEX_SHADER","CompileFragmentShader","FRAGMENT_SHADER","shaderType","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","window","console","log","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","PixiShader","program","textureCount","firstRun","dirty","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","key","uniforms","uniformLocation","initUniforms","uniform","type","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","id","textureData","magFilter","minFilter","wrapS","CLAMP_TO_EDGE","wrapT","format","LUMINANCE","RGBA","repeat","REPEAT","pixelStorei","UNPACK_FLIP_Y_WEBGL","flipY","border","texImage2D","UNSIGNED_BYTE","texParameteri","TEXTURE_MAG_FILTER","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","uniform1i","syncUniforms","transpose","z","w","_dirty","instances","updateTexture","deleteProgram","PixiFastShader","uMatrix","aPositionCoord","aScale","aRotation","StripShader","translationMatrix","attribute","PrimitiveShader","tintColor","ComplexPrimitiveShader","color","glContexts","WebGLRenderer","defaultRenderer","transparent","autoResize","preserveDrawingBuffer","clearBeforeRender","view","_contextOptions","antialias","premultipliedAlpha","stencil","projection","offset","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","stencilManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","contextLost","viewport","bindFramebuffer","FRAMEBUFFER","stage","_bgColor","clearColor","r","g","clear","COLOR_BUFFER_BIT","camera","_shake","renderDisplayObject","displayObject","buffer","setBlendMode","end","style","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","NEAREST","mipmap","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","generateMipmap","_powerOf2","blendModesWebGL","modes","ONE","ONE_MINUS_SRC_ALPHA","ADD","SRC_ALPHA","DST_ALPHA","DST_COLOR","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","blendModeWebGL","blendFunc","maskData","WebGLGraphics","updateGraphics","_webGL","pushStencil","popStencil","stencilStack","reverse","count","graphics","webGLData","bindGraphics","STENCIL_TEST","STENCIL_BUFFER_BIT","level","colorMask","stencilFunc","ALWAYS","stencilOp","KEEP","INVERT","mode","drawElements","TRIANGLE_FAN","indices","UNSIGNED_SHORT","EQUAL","DECR","INCR","TRIANGLE_STRIP","_currentGraphics","complexPrimitiveShader","uniform1f","toArray","uniform2f","uniform3fv","bindBuffer","ARRAY_BUFFER","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","primitiveShader","pop","maxAttibs","attribState","tempAttribState","stack","defaultShader","stripShader","tilemapShader","TilemapShader","setAttribs","attribs","attribId","enableVertexAttribArray","disableVertexAttribArray","_currentId","currentShader","vertSize","size","numVerts","numIndices","vertices","positions","colors","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","createBuffer","bufferData","STATIC_DRAW","DYNAMIC_DRAW","sprite","uvs","_uvs","aX","aY","x0","y0","renderTilingSprite","tilingTexture","TextureUvs","h","tilePosition","tileScaleOffset","offsetX","offsetY","scaleX","tileScale","scaleY","TEXTURE0","stride","bufferSubData","subarray","nextTexture","nextBlendMode","nextShader","batchSize","blendSwap","shaderSwap","skip","renderBatch","startIndex","TRIANGLES","deleteBuffer","maxSize","renderSprite","filterStack","texturePool","initShaderBuffers","filterBlock","_filterArea","_previous_stencil_mgr","filter","FilterTexture","padding","frameBuffer","_glFilterTexture","vertexArray","uvBuffer","uvArray","inputTexture","outputTexture","filterPass","applyFilterPass","sizeX","sizeY","currentFilter","colorBuffer","colorArray","createFramebuffer","DEFAULT","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","clearRect","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","tintMethod","tintWithMultiply","fillStyle","toString","substr","fillRect","tintWithPerPixel","rgbValues","pixelData","pixels","canHandleAlpha","putImageData","checkInverseAlpha","s1","s2","canUseMultiply","CanvasRenderer","refresh","Phaser","Canvas","getSmoothingPrefix","navigator","isCocoonJS","screencanvas","rgba","removeView","useNew","BaseTexture","complete","naturalWidth","naturalHeight","forceLoaded","unloadFromGPU","updateSourceImage","newSrc","warn","glTexture","fromCanvas","TextureSilentFail","noFrame","isTiling","requiresUpdate","setFrame","onBaseTextureLoaded","_updateUvs","tw","th","textureBuffer","renderWebGL","renderCanvas","tempMatrix","updateBase","identity","translate","append","realResolution","getImage","image","getBase64","getCanvas","toDataURL","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","Strip","canvasPadding","drawMode","DrawModes","_vertexBuffer","_initWebGL","_renderStrip","_indexBuffer","_uvBuffer","_colorBuffer","_renderCanvasTriangleStrip","_renderCanvasTriangles","_renderCanvasDrawTriangle","index0","textureSource","textureWidth","textureHeight","u0","u1","u2","v0","v1","v2","paddingX","paddingY","centerX","centerY","normX","normY","dist","beginPath","moveTo","lineTo","closePath","delta","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","renderStripFlat","strip","fill","updateFrame","n","rawX","rawY","EmptyRectangle","Rope","points","lastPoint","point","amount","total","nextPoint","perp","ratio","perpLength","num","TilingSprite","textureDebug","canvasBuffer","tilePattern","refreshTexture","frameWidth","frameHeight","generateTilingTexture","needsUpdate","createPattern","sessionBlendMode","forcePowerOfTwo","targetWidth","_frame","sourceSizeW","targetHeight","sourceSizeH","trimmed","spriteSourceSizeX","spriteSourceSizeY","strokeStyle","strokeRect","exports","module","define","amd","WheelEventProxy","scaleFactor","deltaMode","_scaleFactor","_deltaMode","originalEvent","GAMES","AUTO","CANVAS","WEBGL","HEADLESS","NONE","LEFT","RIGHT","UP","DOWN","SPRITE","BUTTON","IMAGE","GRAPHICS","TEXT","TILESPRITE","BITMAPTEXT","GROUP","RENDERTEXTURE","TILEMAP","TILEMAPLAYER","EMITTER","POLYGON","BITMAPDATA","CANVAS_FILTER","WEBGL_FILTER","ELLIPSE","SPRITEBATCH","RETROFONT","POINTER","ROPE","CIRCLE","RECTANGLE","LINE","MATRIX","POINT","ROUNDEDRECTANGLE","CREATURE","VIDEO","PENDING_ATLAS","HORIZONTAL","VERTICAL","LANDSCAPE","PORTRAIT","ANGLE_UP","ANGLE_DOWN","ANGLE_LEFT","ANGLE_RIGHT","ANGLE_NORTH_EAST","ANGLE_NORTH_WEST","ANGLE_SOUTH_EAST","ANGLE_SOUTH_WEST","TOP_LEFT","TOP_CENTER","TOP_RIGHT","LEFT_TOP","LEFT_CENTER","LEFT_BOTTOM","CENTER","RIGHT_TOP","RIGHT_CENTER","RIGHT_BOTTOM","BOTTOM_LEFT","BOTTOM_CENTER","BOTTOM_RIGHT","trunc","floor","Function","bind","slice","thisArg","bound","args","boundArgs","concat","arguments","TypeError","F","proto","arg","forEach","fun","t","len","CheapArray","assert","Utils","reverseString","string","split","getProperty","obj","prop","parts","last","l","current","setProperty","chanceRoll","chance","random","randomChoice","choice1","choice2","parseDimension","dimension","f","px","parseInt","innerWidth","innerHeight","pad","str","dir","padlen","right","left","isPlainObject","nodeType","hasOwnProperty","e","extend","options","name","copy","copyIsArray","clone","deep","mixinPrototype","mixin","replace","mixinKeys","keys","to","o","childNodes","cloneNode","Circle","diameter","_diameter","_radius","circumference","out","u","radius","setTo","copyFrom","copyTo","dest","distance","round","output","circumferencePoint","angle","asDegrees","offsetPoint","top","bottom","equals","intersects","degToRad","intersectsRectangle","abs","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","Ellipse","normx","normy","Line","fromSprite","startSprite","endSprite","useCenter","center","fromAngle","rotate","rotateAround","line","asSegment","intersectsPoints","reflect","midPoint","centerOn","add","pointOnLine","pointOnSegment","xMin","min","xMax","yMin","yMax","coordinatesOnLine","stepRate","results","sx","sy","err","e2","wrap","a1","a2","b1","b2","c1","c2","denom","uc","ua","ub","rect","bx1","by1","bx2","by2","normalAngle","fromArray","array","pos","newPos","tx1","d1","invert","subtract","multiply","divide","clampX","clamp","clampY","radToDeg","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","normalize","isZero","m","dot","cross","rperp","normalRightHand","negative","multiplyAdd","s","interpolate","project","amt","projectUnit","centroid","pointslength","parse","xProp","yProp","Polygon","area","_points","closed","flattened","toNumberArray","flatten","inside","ix","iy","jx","jy","Number","MAX_VALUE","calculateArea","p1","p2","avgHeight","floorAll","ceilAll","inflate","containsRect","intersection","intersectsRaw","tolerance","union","randomX","randomY","getPoint","empty","inflatePoint","containsRaw","rx","ry","rw","rh","containsPoint","volume","sameDimensions","aabb","NEGATIVE_INFINITY","POSITIVE_INFINITY","RoundedRectangle","Camera","deadzone","roundPx","atLimit","totalInView","lerp","onShakeComplete","Signal","onFlashComplete","onFadeComplete","fx","_targetPosition","_edge","_position","intensity","duration","horizontal","vertical","shakeBounds","_fxDuration","_fxType","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","SHAKE_BOTH","SHAKE_HORIZONTAL","SHAKE_VERTICAL","ENABLE_FX","boot","Graphics","follow","lerpX","lerpY","helper","unfollow","focusOn","setPosition","focusOnXY","shake","force","direction","flash","beginFill","drawRect","endFill","fade","update","updateFX","updateShake","checkBounds","time","elapsedMS","dispatch","rnd","frac","updateTarget","math","linear","setBoundsToWorld","vx","vw","vy","vh","setSize","reset","resetFX","State","make","cache","input","load","sound","state","tweens","particles","physics","preload","loadUpdate","loadRender","preRender","paused","resumed","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onStateChange","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","onPause","pause","onResume","resume","autoStart","newState","isBooted","callbackContext","clearWorld","clearCache","checkState","restart","dummy","previousStateKey","clearCurrentState","setCurrentState","totalQueuedFiles","totalQueuedPacks","loadComplete","removeAll","debug","link","unlink","_kickstart","getCurrentState","elapsedTime","renderType","_bindings","_prevParams","memorize","_shouldPropagate","active","_boundDispatch","validateListener","listener","fnName","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","has","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","_this","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","prevPoint","Date","mouse","date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","sampleRate","iChannel0","iChannel1","iChannel2","iChannel3","setResolution","pointer","toFixed","totalElapsedSeconds","addToWorld","anchorX","anchorY","Plugin","hasPreUpdate","hasUpdate","hasPostUpdate","hasRender","hasPostRender","postRender","PluginManager","plugins","_len","_i","plugin","postUpdate","Stage","disableVisibilityChange","currentRenderOrderID","_hiddenVar","_onChange","config","parseConfig","setBackgroundColor","DOM","getOffset","setUserSelect","setTouchAction","checkVisibility","hidden","webkitHidden","mozHidden","msHidden","event","visibilityChange","addEventListener","onblur","onfocus","onpagehide","onpageshow","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","updateColor","removeEventListener","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","physicsType","alive","ignoreDestroy","pendingDestroy","classType","cursor","inputEnableChildren","onChildInputDown","onChildInputUp","onChildInputOver","onChildInputOut","enableBodyDebug","physicsSortDirection","onDestroy","cursorIndex","fixedToCamera","cameraOffset","hash","_sortProperty","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","RETURN_ALL","SORT_ASCENDING","SORT_DESCENDING","silent","body","removeFromHash","updateZ","addToHash","inputEnabled","events","onAddedToGroup$dispatch","addAt","addMultiple","moveAll","getAt","createMultiple","quantity","singleKey","singleFrame","align","cellWidth","cellHeight","alignIn","resetCursor","next","previous","swap","child1","bringToTop","getIndex","sendToBack","moveUp","moveDown","xy","getByName","oldChild","newChild","hasProperty","operation","checkProperty","checkAlive","checkVisible","setAll","setAllChildren","checkAll","addAll","property","subAll","multiplyAll","divideAll","callAllExists","callback","existsValue","callbackFromArray","callAll","method","methodLength","contextLength","renderOrderID","predicate","checkExists","ArraySet","forEachExists","iterate","forEachAlive","forEachDead","sort","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","getFirstExists","createIfNull","resetChild","getFirstAlive","getFirstDead","loadTexture","getTop","getBottom","getClosestTo","object","tempDistance","getFurthestFrom","countLiving","countDead","getRandom","ArrayUtils","getRandomItem","getRandomExists","list","getAll","pick","destroyPhase","onRemovedFromGroup$dispatch","group","destroyTexture","removeBetween","destroyChildren","soft","World","_definedSize","stateChange","setBounds","useBounds","between","Game","physicsConfig","isRunning","raf","net","Device","lockRender","stepping","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","currentUpdateID","updatesThisFrame","_deltaTime","_lastCount","_spiraling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","now","whenReady","seed","ScaleManager","setUpRenderer","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Create","Net","Debug","showDebugHeader","RequestAnimationFrame","stopFocus","focus","hideBanner","v","webAudio","chrome","webGL","contextRestored","cocoonJS","smoothed","addToDOM","preventDefault","clearGLTextures","updateLogic","desiredFpsMult","updateRender","slowMotion","desiredFps","slowStep","elapsed","timeStep","enableStep","disableStep","step","removeFromDOM","muteOnPause","setMute","cordova","iOS","unsetMute","hitCanvas","hitContext","moveCallbacks","customCandidateHandler","customCandidateHandlerContext","pollRate","enabled","multiInputOverride","MOUSE_TOUCH_COMBINE","speed","circle","maxPointers","tapRate","doubleTapRate","holdRate","justPressedRate","justReleasedRate","recordPointerHistory","recordRate","recordLimit","pointer1","pointer2","pointer3","pointer4","pointer5","pointer6","pointer7","pointer8","pointer9","pointer10","pointers","activePointer","mousePointer","keyboard","touch","mspointer","gamepad","resetLocked","onDown","onUp","onTap","onHold","minPriorityID","interactiveItems","_localPoint","_pollCounter","_oldPosition","_x","_y","MOUSE_OVERRIDES_TOUCH","TOUCH_OVERRIDES_MOUSE","MAX_POINTERS","Pointer","PointerMode","CURSOR","addPointer","Mouse","Touch","MSPointer","Keyboard","Gamepad","_onClickTrampoline","onClickTrampoline","setInteractiveCandidateHandler","addMoveCallback","deleteMoveCallback","TOUCH","hard","resetSpeed","startPointer","countActivePointers","updatePointer","identifier","move","stopPointer","limit","getPointer","isActive","getPointerFromIdentifier","getPointerFromId","pointerId","getLocalPosition","hitTest","localPoint","TileSprite","graphicsData","shape","processClickTrampolines","mouseDownCallback","mouseUpCallback","mouseOutCallback","mouseOverCallback","mouseWheelCallback","capture","button","wheelDelta","locked","stopOnGameOut","pointerLock","_onMouseDown","_onMouseMove","_onMouseUp","_onMouseOut","_onMouseOver","_onMouseWheel","_wheelEvent","NO_BUTTON","LEFT_BUTTON","MIDDLE_BUTTON","RIGHT_BUTTON","BACK_BUTTON","FORWARD_BUTTON","WHEEL_UP","WHEEL_DOWN","android","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","_onMouseOutGlobal","onMouseOutGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","mouseMoveCallback","withinGame","leftButton","rightButton","bindEvent","deltaY","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","detail","deltaX","wheelDeltaX","deltaZ","pointerDownCallback","pointerMoveCallback","pointerUpCallback","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","_onMSPointerUpGlobal","_onMSPointerOut","_onMSPointerOver","onPointerDown","onPointerMove","onPointerUp","onPointerUpGlobal","onPointerOut","onPointerOver","pointerType","DeviceButton","buttonCode","isDown","isUp","timeDown","timeUp","repeats","altKey","shiftKey","ctrlKey","onFloat","padFloat","justPressed","justReleased","pointerMode","CONTACT","middleButton","backButton","forwardButton","eraserButton","ERASER_BUTTON","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","interactiveCandidates","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","resetButtons","processButtonsDown","buttons","processButtonsUp","updateButtons","down","toLowerCase","totalActivePointers","_touchedHandler","processInteractiveObjects","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","first","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","swapTarget","newTarget","_pointerOutHandler","_pointerOverHandler","leave","currentPointers","addClickTrampoline","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchLockCallbacks","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","addTouchLockCallback","onEnd","removeTouchLockCallback","cb","changedTouches","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","scaleLayer","dragOffset","dragFromCenter","dragStopBlocksInputUp","dragStartPoint","dragDistanceThreshold","dragTimeThreshold","downPoint","snapPoint","_dragPoint","_dragPhase","_pendingDrag","_dragTimePass","_dragDistancePass","_wasEnabled","_tempPoint","_pointerData","camX","camY","isOver","isOut","timeOver","timeOut","downDuration","onAddedToGroup","addedToGroup","onRemovedFromGroup","removedFromGroup","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","_dx","_dy","startDrag","_draggedPointerID","updateDrag","sendEvent","onInputOver$dispatch","onInputOut$dispatch","onInputDown$dispatch","dragTimeElapsed","onInputUp$dispatch","stopDrag","fromStart","globalToLocalX","py","globalToLocalY","checkBoundsRect","checkBoundsSprite","onDragUpdate","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","disableDrag","onDragStart$dispatch","grid","boundsFluid","scaleFluidInversed","onDragStop$dispatch","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","_gamepadIndexMap","_rawPads","_active","_gamepadSupportAvailable","webkitGetGamepads","webkitGamepads","userAgent","getGamepads","_prevRawGamepadTypes","_prevTimestamps","onConnectCallback","onDisconnectCallback","onDownCallback","onUpCallback","onAxisCallback","onFloatCallback","_ongamepadconnected","_gamepaddisconnected","_gamepads","SinglePad","addCallbacks","callbacks","onConnect","onDisconnect","onAxis","_onGamepadConnected","onGamepadConnected","_onGamepadDisconnected","onGamepadDisconnected","newPad","connect","removedPad","disconnect","_pollGamepads","pad1","pollStatus","pad2","pad3","pad4","rawGamepads","gamepadsChanged","_rawPad","singlePad","validConnections","rawIndices","padIndices","connected","k","rawPad","setDeadZones","deadZone","BUTTON_0","BUTTON_1","BUTTON_2","BUTTON_3","BUTTON_4","BUTTON_5","BUTTON_6","BUTTON_7","BUTTON_8","BUTTON_9","BUTTON_10","BUTTON_11","BUTTON_12","BUTTON_13","BUTTON_14","BUTTON_15","AXIS_0","AXIS_1","AXIS_2","AXIS_3","AXIS_4","AXIS_5","AXIS_6","AXIS_7","AXIS_8","AXIS_9","XBOX360_A","XBOX360_B","XBOX360_X","XBOX360_Y","XBOX360_LEFT_BUMPER","XBOX360_RIGHT_BUMPER","XBOX360_LEFT_TRIGGER","XBOX360_RIGHT_TRIGGER","XBOX360_BACK","XBOX360_START","XBOX360_STICK_LEFT_BUTTON","XBOX360_STICK_RIGHT_BUTTON","XBOX360_DPAD_LEFT","XBOX360_DPAD_RIGHT","XBOX360_DPAD_UP","XBOX360_DPAD_DOWN","XBOX360_STICK_LEFT_X","XBOX360_STICK_LEFT_Y","XBOX360_STICK_RIGHT_X","XBOX360_STICK_RIGHT_Y","PS3XC_X","PS3XC_CIRCLE","PS3XC_SQUARE","PS3XC_TRIANGLE","PS3XC_L1","PS3XC_R1","PS3XC_L2","PS3XC_R2","PS3XC_SELECT","PS3XC_START","PS3XC_STICK_LEFT_BUTTON","PS3XC_STICK_RIGHT_BUTTON","PS3XC_DPAD_UP","PS3XC_DPAD_DOWN","PS3XC_DPAD_LEFT","PS3XC_DPAD_RIGHT","PS3XC_STICK_LEFT_X","PS3XC_STICK_LEFT_Y","PS3XC_STICK_RIGHT_X","PS3XC_STICK_RIGHT_Y","padParent","_padParent","_prevTimestamp","_buttons","_buttonsLen","_axes","_axesLen","getButton","timestamp","rawButtonVal","isNaN","processButtonDown","processButtonUp","processButtonFloat","axes","processAxisChange","triggerCallback","disconnectingIndex","axis","axisCode","buttonValue","Key","keycode","_enabled","keyCode","onHoldCallback","onHoldContext","_justDown","_justUp","processKeyDown","processKeyUp","upDuration","pressEvent","onPressCallback","_keys","_capture","_onKeyDown","_onKeyPress","_onKeyUp","_k","onPress","addKey","addKeyCapture","addKeys","removeKey","removeKeyCapture","createCursorKeys","up","KeyCode","processKeyPress","clearCaptures","String","fromCharCode","charCode","A","charCodeAt","B","C","D","E","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","ZERO","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","NUMPAD_0","NUMPAD_1","NUMPAD_2","NUMPAD_3","NUMPAD_4","NUMPAD_5","NUMPAD_6","NUMPAD_7","NUMPAD_8","NUMPAD_9","NUMPAD_MULTIPLY","NUMPAD_ADD","NUMPAD_ENTER","NUMPAD_SUBTRACT","NUMPAD_DECIMAL","NUMPAD_DIVIDE","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","F13","F14","F15","COLON","EQUALS","COMMA","UNDERSCORE","PERIOD","QUESTION_MARK","TILDE","OPEN_BRACKET","BACKWARD_SLASH","CLOSED_BRACKET","QUOTES","BACKSPACE","TAB","CLEAR","ENTER","SHIFT","CONTROL","ALT","CAPS_LOCK","ESC","SPACEBAR","PAGE_UP","PAGE_DOWN","END","HOME","PLUS","MINUS","INSERT","DELETE","HELP","NUM_LOCK","match","Component","Angle","wrapAngle","Animation","play","frameRate","loop","killOnComplete","animations","AutoCull","autoCull","inCamera","checkWorldBounds","Bounds","alignTo","BringToTop","Core","install","components","previousPosition","Events","PhysicsBody","AnimationManager","LoadTexture","FixedToCamera","previousRotation","fresh","_exists","P2JS","removeFromWorld","customRender","Crop","cropRect","_crop","updateCrop","resetFrame","Delta","Destroy","onDestroy$dispatch","removeFrom","Video","onChangeSource","resizeFrame","BitmapText","_glyphs","_parent","_onDestroy","_onAddedToGroup","_onRemovedFromGroup","_onRemovedFromWorld","_onKilled","_onRevived","_onEnterBounds","_onOutOfBounds","_onInputOver","_onInputOut","_onInputDown","_onInputUp","_onDragStart","_onDragUpdate","_onDragStop","_onAnimationStart","_onAnimationComplete","_onAnimationLoop","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","onAnimationStart","onAnimationComplete","onAnimationLoop","backing","_fixedToCamera","Health","health","maxHealth","damage","kill","setHealth","heal","InCamera","InputEnabled","InWorld","outOfCameraBoundsKill","_outOfBoundsFired","onEnterBounds$dispatch","onOutOfBounds$dispatch","outOfBoundsKill","inWorld","LifeSpan","lifespan","physicsElapsedMS","revive","onRevived$dispatch","onKilled$dispatch","stopAnimation","BitmapData","hasFrameData","loadFrameData","getFrameData","frameData","Tilemap","TilemapLayer","img","base","frameName","Overlap","overlap","_reset","Reset","ScaleMinMax","scaleMin","scaleMax","checkTransform","setScaleMinMax","Smoothed","existing","weapon","Weapon","createBullets","creature","mesh","Creature","tween","physicsGroup","audio","audioSprite","addSprite","tileSprite","rope","text","Text","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","font","characterWidth","characterHeight","chars","charsPerRow","xSpacing","ySpacing","xOffset","yOffset","RetroFont","bitmapText","tilemap","tileWidth","tileHeight","addToCache","uuid","addRenderTexture","video","url","bitmapData","addBitmapData","Tween","preUpdatePhysics","preUpdateLifeSpan","preUpdateInWorld","preUpdateCore","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","justReleasedPreventsOver","freezeFrames","forceOut","setFrames","onInputOverHandler","onInputOutHandler","onInputDownHandler","onInputUpHandler","removedFromWorld","STATE_OVER","STATE_OUT","STATE_DOWN","STATE_UP","clearFrames","setStateFrame","switchImmediately","frameKey","changeStateFrame","setStateSound","marker","soundKey","markerKey","Sound","AudioSprite","playStateSound","setSounds","overSound","overMarker","downSound","downMarker","outSound","outMarker","upSound","upMarker","setOverSound","setOutSound","setDownSound","setUpSound","changedUp","skipPool","ctx","imageData","FrameData","textureFrame","addFrame","Frame","disableTextureUpload","cls","_image","_pos","_size","_scale","_rotate","_alpha","prev","_anchor","_tempR","_tempG","_tempB","_circle","_swapCanvas","moveH","moveV","draw","addImage","processPixelRGB","pixel","createColor","unpackPixel","getPixel32","setPixel32","processPixel","replaceRGB","r1","g1","r2","g2","region","packPixel","setHSL","bHaveH","bHaveS","bHaveL","HSLtoRGB","shiftHSL","red","green","blue","immediate","LITTLE_ENDIAN","setPixel","getPixel","getPixelRGB","hsl","hsv","getPixels","getFirstPixel","scan","newWidth","newHeight","op","copyTransform","copyRect","drawGroup","drawGroupProxy","drawFull","renderGraphics","shadow","blur","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","alphaMask","sourceRect","maskRect","blendSourceAtop","blendReset","extract","destination","prevFont","fillText","arc","lineWidth","stroke","textureLine","blendSourceOver","blendSourceIn","blendSourceOut","blendDestinationOver","blendDestinationIn","blendDestinationOut","blendDestinationAtop","blendXor","blendAdd","blendMultiply","blendScreen","blendOverlay","blendDarken","blendLighten","blendColorDodge","blendColorBurn","blendHardLight","blendSoftLight","blendDifference","blendExclusion","blendHue","blendSaturation","blendColor","blendLuminosity","getSmoothingEnabled","setSmoothingEnabled","getTransform","translateX","translateY","skewX","skewY","fillAlpha","lineColor","currentPath","boundsPadding","_localBounds","_boundsDirty","webGLDirty","cachedSpriteDirty","lineStyle","lineAlpha","drawShape","quadraticCurveTo","cpX","cpY","toX","toY","xa","ya","fromX","fromY","bezierCurveTo","cpX2","cpY2","dt","dt2","dt3","t2","t3","arcTo","mm","dd","cc","tt","k1","k2","j1","j2","qx","qy","startAngle","endAngle","anticlockwise","segments","sweep","segs","startX","startY","filling","theta","theta2","cTheta","sTheta","segMinus","remainder","real","fillColor","drawRoundedRect","drawCircle","drawEllipse","drawPolygon","path","clearDirty","updateLocalBounds","updateCachedSpriteTexture","_prevTint","tempPoint","RECT","RREC","CIRC","ELIP","cachedSprite","destroyCachedSprite","GraphicsData","POLY","_lineTint","_fillTint","PolyK","Triangulate","sign","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","earFound","_convex","vi","_PointInTriangle","v0x","v0y","v1x","v1y","v2x","v2y","dot00","dot01","dot02","dot11","dot12","invDenom","EarCut","holeIndices","dim","hasHoles","outerLen","outerNode","linkedList","triangles","eliminateHoles","earcutLinked","clockwise","sum","insertNode","filterPoints","again","steiner","removeNode","ear","pass","indexCurve","isEarHashed","isEar","cureLocalIntersections","splitEarcut","pointInTriangle","minTX","minTY","maxTX","maxTY","minZ","zOrder","maxZ","nextZ","prevZ","locallyInside","isValidDiagonal","splitPolygon","queue","getLeftmost","compareX","eliminateHole","hole","findHoleBridge","hx","hy","tan","tanMin","sortLinked","q","tail","numMerges","pSize","qSize","inSize","leftmost","intersectsPolygon","middleInside","q1","q2","Node","an","bp","stencilBufferLimit","lastIndex","graphicsDataPool","switchMode","canDrawUsingSimple","buildPoly","buildComplexPoly","buildLine","buildRectangle","buildCircle","buildRoundedRectangle","upload","WebGLGraphicsData","rectData","verts","vertPos","tempPoints","rrectData","recPoints","quadraticBezierCurve","vecPos","getPt","n1","n2","perc","diff","xb","yb","circleData","totalSegs","seg","firstPoint","midPointX","midPointY","unshift","p1x","p1y","p2x","p2y","p3x","p3y","perpx","perpy","perp2x","perp2y","perp3x","perp3y","pdist","indexCount","indexStart","glPoints","glIndicies","updateGraphicsTint","kappa","ox","oy","xe","ye","xm","ym","maxRadius","tintR","tintG","tintB","drawTriangle","cull","triangle","cameraToFace","ab","faceNormal","drawTriangles","point1","point2","point3","renderXY","renderRawXY","textBounds","strokeColors","fontStyles","fontWeights","autoRound","useAdvancedWrap","_res","_text","_fontComponents","_lineSpacing","_charCount","setStyle","updateText","setShadow","shadowStroke","shadowFill","backgroundColor","boundsAlignH","boundsAlignV","strokeThickness","wordWrap","wordWrapWidth","maxLines","tabs","fontToComponents","fontStyle","fontVariant","fontWeight","fontSize","componentsToFont","outputText","runWordWrap","lines","lineWidths","maxLineWidth","fontProperties","determineFontProperties","drawnLines","measureLine","measureText","tab","section","snapToCeil","lineHeight","lineSpacing","textBaseline","lineCap","lineJoin","linePositionX","linePositionY","ascent","updateLine","updateShadow","strokeText","renderTabLine","snap","lineLength","letter","clearColors","clearFontValues","addColor","addStrokeColor","addFontStyle","addFontWeight","weight","precalculateWordWrap","wrappedLines","advancedWordWrap","basicWordWrap","linesCount","currentLineWidth","words","word","wordWithSpace","wordWidth","newWord","secondPart","spaceLeft","wordWidthWithSpace","updateFont","family","exec","fontFamily","setText","parseList","setTextBounds","properties","fontPropertiesCache","fontPropertiesCanvas","fontPropertiesContext","baseline","descent","imagedata","parseFloat","textWidth","textHeight","_prevAnchor","_maxWidth","_data","getBitmapFont","_font","_fontSize","_align","_tint","sourceWidth","sourceHeight","scanLine","lastSpace","wrappedWidth","prevCharCode","maxWidth","test","charAt","charData","kerning","xAdvance","cleanText","re","purgeGlyphs","kept","checkImageKey","characterSpacingX","characterSpacingY","characterPerRow","multiLine","autoUpperCase","customSpacingX","customSpacingY","fixedWidth","fontSet","grabData","currentX","currentY","updateFrameData","stamp","ALIGN_LEFT","ALIGN_RIGHT","ALIGN_CENTER","TEXT_SET1","TEXT_SET2","TEXT_SET3","TEXT_SET4","TEXT_SET5","TEXT_SET6","TEXT_SET7","TEXT_SET8","TEXT_SET9","TEXT_SET10","TEXT_SET11","setFixedWidth","lineAlignment","content","characterSpacing","allowLowerCase","buildRetroFontText","getLongestLine","pasteLine","longestLine","removeUnsupportedCharacters","stripCR","newString","aChar","code","updateOffset","diffX","diffY","frames","getFrames","newText","toUpperCase","_hasUpdateAnimation","_updateAnimationCallback","updateAnimation","_updateAnimation","difference","_scroll","def","physicsElapsed","autoScroll","stopScroll","deviceReadyAt","initialized","desktop","iOSVersion","node","nodeWebkit","electron","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","canvasBitBltShift","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","chromeVersion","epiphany","firefox","firefoxVersion","ie","ieVersion","trident","tridentVersion","edge","mobileSafari","midori","opera","safari","safariVersion","webApp","silk","audioData","ogg","opus","mp3","wav","m4a","webm","dolby","oggVideo","h264Video","mp4Video","webmVideo","vp9Video","hlsVideo","iPhone","iPhone4","iPad","pixelRatio","littleEndian","support32bit","fullscreen","requestFullscreen","cancelFullscreen","fullscreenKeyboard","onInitialized","nonPrimer","readyCheck","_readyCheck","_monitor","_queue","readyState","setTimeout","_initialize","_checkOS","vita","kindle","RegExp","$1","_checkFeatures","getItem","error","WebGLRenderingContext","compatMode","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","oGetUserMedia","URL","webkitURL","mozURL","msURL","_checkInput","documentElement","maxTouchPoints","msPointerEnabled","pointerEnabled","_checkFullScreenSupport","fs","cfs","Element","_checkBrowser","$3","process","require","versions","_checkVideo","videoElement","canPlayType","_checkAudio","audioElement","major","minor","$2","_checkDevice","Int8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","_checkCSS3D","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","insertBefore","getComputedStyle","getPropertyValue","canPlayAudio","canPlayVideo","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","matches","display","msTouchAction","overflowHidden","getElementById","overflow","appendChild","parentNode","vendor","prefix","setImageRenderingCrisp","types","msInterpolationMode","setImageRenderingBicubic","forceSetTimeOut","vendors","requestAnimationFrame","cancelAnimationFrame","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","timeToCall","clearTimeout","isSetTimeOut","isRAF","PI2","fuzzyEqual","epsilon","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","shear","snapTo","gap","snapToFloor","roundTo","place","pow","floorTo","ceilTo","angleBetween","angleBetweenY","angleBetweenPoints","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","maxAdd","minSub","wrapValue","isOdd","isEven","minProperty","maxProperty","radians","linearInterpolation","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","p0","factorial","res","p3","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","distanceSq","distancePow","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","sow","integer","integerInRange","realInRange","normal","ary","weightedPick","QuadTree","maxObjects","maxLevels","objects","nodes","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","getHostName","location","hostname","checkDomainName","domain","updateQueryString","redirect","href","separator","getQueryString","parameter","keyValues","search","substring","decodeURI","decodeURIComponent","frameBased","_tweens","_add","easeMap","Power0","Easing","Power1","Power2","Power3","Power4","Linear","None","Quad","Quadratic","Out","Cubic","Quart","Quartic","Quint","Quintic","Sine","Sinusoidal","Expo","Exponential","Circ","Circular","Elastic","Back","Bounce","Quad.easeIn","In","Cubic.easeIn","Quart.easeIn","Quint.easeIn","Sine.easeIn","Expo.easeIn","Circ.easeIn","Elastic.easeIn","Back.easeIn","Bounce.easeIn","Quad.easeOut","Cubic.easeOut","Quart.easeOut","Quint.easeOut","Sine.easeOut","Expo.easeOut","Circ.easeOut","Elastic.easeOut","Back.easeOut","Bounce.easeOut","Quad.easeInOut","InOut","Cubic.easeInOut","Quart.easeInOut","Quint.easeInOut","Sine.easeInOut","Expo.easeInOut","Circ.easeInOut","Elastic.easeInOut","Back.easeInOut","Bounce.easeInOut","_pauseAll","_resumeAll","pendingDelete","_manager","addTweens","numTweens","isTweening","some","_pause","_resume","pauseAll","resumeAll","manager","timeline","timeScale","repeatCounter","onStart","onLoop","onRepeat","onChildComplete","onComplete","chainedTween","isPaused","_onUpdateCallback","_onUpdateCallbackContext","_pausedTime","_hasStarted","ease","yoyo","Default","TweenData","vEnd","loadValues","updateTweenData","repeatDelay","yoyoDelay","easing","interpolation","repeatAll","chain","startTime","status","PENDING","RUNNING","LOOPED","COMPLETE","generateData","vStart","vStartCache","vEndCache","repeatTotal","inReverse","easingFunction","interpolationFunction","interpolationContext","isFrom","yoyoCounter","ms","fps","blob","reversed","asin","prevTime","_desiredFps","suggestedFps","advancedTiming","fpsMin","fpsMax","msMin","msMax","pauseDuration","timeExpected","Timer","_frameCount","_elapsedAccumulator","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","previousDateNow","updateAdvancedTiming","updateTimers","elapsedSince","since","elapsedSecondsSince","running","expired","nextTick","timeCap","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","tick","TimerEvent","clearEvents","clearPendingEvents","adjustEvents","baseTime","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","anim","copyFrameData","useNumericIndex","getFrameIndexes","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","getFrame","getFrameByName","_frameIndex","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onUpdate","isReversed","_timeLastFrame","_timeNextFrame","updateCurrentFrame","onAnimationStart$dispatch","reverseOnce","frameId","useLocalFrameIndex","frameIndex","dispatchComplete","onAnimationComplete$dispatch","onAnimationLoop$dispatch","signalUpdate","fromPlay","generateFrameNames","suffix","zeroPad","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","_frameNames","getFrameRange","AnimationParser","spriteSheet","frameMax","margin","spacing","row","column","JSONData","json","newFrame","filename","sourceSize","spriteSourceSize","JSONDataPyxel","signature","tileheight","tilewidth","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","autoResolveURL","_cache","binary","bitmapFont","_urlMap","_urlResolver","_urlTemp","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","SHADER","RENDER_TEXTURE","addDefaultImage","addMissingImage","MISSING","addCanvas","removeImage","_resolveURL","addSound","audioTag","decoded","isDecoding","touchLocked","addText","addPhysicsData","addTilemap","mapData","addBinary","binaryData","addBitmapFont","atlasData","atlasType","LoaderParser","jsonBitmapFont","xmlBitmapFont","addJSON","addXML","addVideo","isBlob","addShader","addSpriteSheet","addTextureAtlas","TEXTURE_ATLAS_XML_STARLING","TEXTURE_ATLAS_JSON_PYXEL","reloadSound","getSound","reloadSoundComplete","updateSound","decodedSound","isSoundDecoded","isSoundReady","checkKey","checkURL","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkVideoKey","checkShaderKey","checkRenderTextureKey","full","getTextureFrame","getSoundData","getText","getPhysicsData","fixtureKey","fixtures","fixture","getTilemapData","getBinary","getBitmapData","getJSON","getXML","getVideo","getShader","getRenderTexture","getBaseTexture","getFrameCount","getFrameByIndex","getURL","getKeys","removeCanvas","destroyBaseTexture","removeSound","removeText","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","removeJSON","removeXML","removeVideo","removeShader","removeRenderTexture","removeSpriteSheet","removeTextureAtlas","atlas","baseURL","isLoading","preloadSprite","crossOrigin","headers","requestedWith","onLoadStart","onLoadComplete","onPackComplete","onFileStart","onFileComplete","onFileError","useXDomainRequest","_warnedAboutXDomainRequest","enableParallel","maxParallelDownloads","_withSyncPointDepth","_fileList","_flightQueue","_processingHead","_fileLoadStarted","_totalPackCount","_totalFileCount","_loadedPackCount","_loadedFileCount","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","checkKeyExists","getAssetIndex","bestFound","loaded","loading","getAsset","fileIndex","addToFileList","overwrite","extension","syncPoint","currentFile","replaceInFileList","pack","images","urls","script","spritesheet","autoDecode","noAudio","jsonURL","jsonData","audiosprite","loadEvent","asBlob","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","atlasURL","parseXml","atlasJSONArray","atlasJSONHash","atlasXML","withSyncPoint","addSyncPoint","asset","removeFile","updateProgress","processLoadQueue","finishedLoading","requestUrl","requestObject","progress","syncblock","inflightLimit","processPack","loadFile","abnormal","asyncComplete","errorMessage","packData","transformUrl","xhrLoad","fileComplete","loadImageTag","getAudioURL","usingWebAudio","usingAudioTag","loadAudioTag","fileError","getVideoURL","loadVideoTag","jsonLoadComplete","xmlLoadComplete","csvLoadComplete","onload","onerror","controls","autoplay","videoLoadEvent","canplay","Audio","playThroughEvent","XDomainRequest","xhrLoadWithXDR","xhr","XMLHttpRequest","open","responseType","setRequestHeader","message","send","timeout","ontimeout","onprogress","videoType","uri","lastIndexOf","audioType","reason","loadNext","responseText","response","decode","language","defer","head","contentType","domparser","DOMParser","parseFromString","ActiveXObject","async","loadXML","totalLoadedFiles","totalLoadedPacks","progressFloat","info","common","getAttribute","letters","kernings","second","finalizeBitmapFont","_face","_lineHeight","_id","_xoffset","_yoffset","_xadvance","_second","_first","_amount","bitmapFontData","autoplayKey","sounds","spritemap","addMarker","connectToMaster","markers","totalDuration","currentTime","durationMS","stopTime","pausedPosition","pausedTime","currentMarker","fadeTween","pendingPlayback","override","allowMultiple","externalNode","masterGainNode","gainNode","_sound","masterGain","createGain","createGainNode","gain","soundHasUnlocked","onDecoded","onPlay","onStop","onMute","onMarkerComplete","_volume","_buffer","_muted","_tempMarker","_tempPosition","_tempVolume","_tempPause","_muteVolume","_tempLoop","_onDecodedEventDispatched","removeMarker","onEndedHandler","onended","isDecoded","loopFull","forceRestart","noteOff","createBufferSource","noteGrainOn","muted","mute","prevMarker","fadeIn","fadeTo","fadeOut","fadeComplete","updateGlobalVolume","globalVolume","onSoundDecode","onVolumeChange","onUnMute","channels","_codeMuted","_unlockSource","_sounds","_watchList","_watching","_watchCallback","_watchContext","disableAudio","disableWebAudio","audioContext","fakeiOSTouchLock","setTouchLock","unlock","noteOn","stopAll","soundData","decodeAudioData","setDecodedCallback","files","playbackState","PLAYING_STATE","FINISHED_STATE","removeByKey","close","dom","minWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","onOrientationChange","enterIncorrectOrientation","leaveIncorrectOrientation","hasPhaserSetFullScreen","fullScreenTarget","_createdFullScreenTarget","onFullScreenInit","onFullScreenChange","onFullScreenError","screenOrientation","getScreenOrientation","scaleFactorInversed","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","canExpandParent","clickTrampoline","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentScaleFactor","trackParentInterval","onSizeChange","onResize","onResizeContext","_pendingScaleMode","_fullScreenRestore","_gameSize","_userScaleFactor","_userScaleTrim","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_tempBounds","_lastReportedCanvasSize","_lastReportedGameSize","_booted","setupScale","EXACT_FIT","SHOW_ALL","RESIZE","USER_SCALE","compat","_orientationChange","orientationChange","_windowResize","windowResize","_fullScreenChange","fullScreenChange","_fullScreenError","fullScreenError","_gameResumed","setGameSize","FlexGrid","fullScreenScaleMode","getParentBounds","visualBounds","updateDimensions","queueUpdate","currentScaleMode","setUserScale","hScale","vScale","hTrim","vTrim","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","updateLayout","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","previousOrientation","previouslyIncorrect","isLandscape","isPortrait","changed","correctnessChanged","scrollTop","reflowGame","setMaximum","setExactFit","isFullScreen","boundingParent","setShowAll","resetCanvas","reflowCanvas","layoutBounds","clientRect","getBoundingClientRect","parentRect","offsetParent","wc","windowBounds","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","multiplier","createFullScreenTarget","fsTarget","background","startFullScreen","allowTrampoline","cleanupCreatedTarget","initData","targetElement","ALLOW_KEYBOARD_INPUT","stopFullScreen","prepScreenMode","enteringFullscreen","createdTarget","scaleSprite","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","bmd","columnWidth","renderShadow","currentAlpha","scaleManager","currentColor","soundInfo","cameraInfo","hideIfUp","downColor","upColor","worldX","worldY","spriteInputInfo","justDown","justUp","inputInfo","spriteBounds","filled","rectangle","ropeSegments","self","segment","spriteInfo","spriteCoords","lineInfo","geom","forceType","quadTree","quadtree","Body","NINJA","Ninja","BOX2D","Box2D","renderBody","bodyInfo","renderBodyInfo","box2d","box2dWorld","renderDebugDraw","box2dBody","displayList","box","scrollY","scrollLeft","scrollX","clientTop","clientLeft","cushion","calibrate","coords","getAspectRatio","inLayoutViewport","primaryFallback","screen","mozOrientation","msOrientation","matchMedia","documentBounds","pageXOffset","pageYOffset","treatAsDesktop","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","getByKey","randomIndex","removeRandomItem","shuffle","transposeMatrix","sourceRowCount","sourceColCount","rotateMatrix","findClosest","arr","NaN","low","high","rotateRight","rotateLeft","numberArray","numberArrayStep","LinkedList","entity","palettes","0","1","2","3","4","5","6","7","8","9","PALETTE_ARNE","PALETTE_JMP","PALETTE_CGA","PALETTE_C64","PALETTE_JAPANESE_MACHINE","pixelWidth","pixelHeight","palette","boundsCustom","boundsFull","boundsNone","positionCustom","positionFluid","positionFull","positionNone","scaleCustom","scaleFluid","scaleFull","scaleNone","customWidth","customHeight","customOffsetX","customOffsetY","ratioH","ratioV","layers","createCustomLayer","layer","FlexLayer","createFluidLayer","createFullLayer","createFixedLayer","persist","fitSprite","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","toABGR","hueToColor","HSVtoRGB","color32","getColor","getColor32","RGBtoString","componentToHex","hexToRGB","hexToColor","webToColor","web","tempColor","getRGB","HSVColorWheel","HSLColorWheel","interpolateColor","color1","color2","steps","currentStep","src1","src2","interpolateColorWithRGB","or","og","ob","interpolateRGB","getRandomColor","getWebRGB","getAlpha","getAlphaFloat","getRed","getGreen","getBlue","blendNormal","blendAverage","blendSubtract","blendNegation","blendLinearDodge","blendLinearBurn","blendLinearLight","blendVividLight","blendPinLight","blendHardMix","blendReflect","blendGlow","blendPhoenix","arcade","ninja","chipmunk","matter","CHIPMUNK","MATTERJS","P2","Matter","startSystem","system","enableAABB","gravity","checkCollision","OVERLAP_BIAS","forceX","sortDirection","LEFT_RIGHT","skipQuadTree","_total","SORT_NONE","RIGHT_LEFT","TOP_BOTTOM","BOTTOM_TOP","updateMotion","velocityDelta","computeVelocity","angularVelocity","angularAcceleration","angularDrag","maxAngular","velocity","acceleration","drag","maxVelocity","allowGravity","object1","object2","overlapCallback","processCallback","collideHandler","collide","collideCallback","sortLeftRight","sortRightLeft","sortTopBottom","sortBottomTop","overlapOnly","collideGroupVsSelf","collideSpriteVsSprite","collideSpriteVsGroup","collideSpriteVsTilemapLayer","collideGroupVsGroup","collideGroupVsTilemapLayer","sprite1","sprite2","separate","items","bounds1","bounds2","group1","group2","body1","body2","none","isCircle","separateCircle","bodyRect","bodyCircle","resultX","resultY","separateX","separateY","onOverlap","onCollide","circleBodyIntersects","getOverlapX","getOverlapY","angleCollision","angleBetweenCenters","immovable","customSeparateX","tempVel1","mass","tempVel2","bounce","maxOverlap","deltaAbsX","embedded","touching","overlapX","deltaAbsY","overlapY","moves","friction","nv1","nv2","avg","customSeparateY","getObjectsUnderPointer","getObjectsAtLocation","callbackArg","moveToObject","maxTime","distanceBetween","moveToPointer","angleToPointer","distanceToPointer","moveToXY","distanceToXY","velocityFromAngle","velocityFromRotation","accelerationFromRotation","accelerateToObject","xSpeedMax","ySpeedMax","accelerateToPointer","accelerateToXY","angleToXY","worldAngleToPointer","allowRotation","preRotation","newVelocity","deltaMax","worldBounce","onWorldBounds","facing","overlapR","collideWorldBounds","any","wasTouching","blocked","tilePadding","syncBounds","isMoving","stopVelocityOnCollide","moveTimer","moveDistance","moveDuration","moveTarget","moveEnd","onMoveComplete","movementCallback","movementCallbackContext","_sx","_sy","updateBounds","asx","asy","updateMovement","collided","stopMovement","stopVelocity","check","bodyBounds","moveFrom","setCircle","onFloor","onCeiling","onWall","TilemapCollision","TILE_BIAS","tilemapLayer","getTiles","separateTile","tile","tilemapLayerOffsetX","tilemapLayerOffsetY","collisionCallback","collisionCallbackContext","faceLeft","faceRight","faceTop","faceBottom","tileCheckX","tileCheckY","collideRight","collideLeft","processTileSeparationX","collideDown","collideUp","processTileSeparationY","displayWidth","displayHeight","mapWidth","mapHeight","_displayWidth","_displayHeight","pxWidth","pxHeight","glBatch","lastTile","batchDataElement","positionBuffer","_renderWholeTilemap","_renderBatch","oldR","oldT","uvl","uvt","screenWide2","screenHigh2","iTextureWide","iTextureHigh","iWide","iHigh","wide","degenerate","lft","bot","fd","sw","sh","aPosition","drawArrays","uOffset","clipOffsetX","_mc","clipOffsetY","clipLocX","clipLocY","clipLimitX","clipLimitY","uClipLimit","uClipOffset","uClipLoc","uCentreOffset","uAlpha","uScale","ImageCollection","firstgid","imageWidth","imageHeight","imageMargin","imageSpacing","containsImageIndex","imageIndex","gid","Tile","flipped","scanned","setCollisionCallback","setCollision","resetCollision","isInteresting","collides","faces","TilemapParser","version","widthInPixels","heightInPixels","tilesets","tilesetLayers","imagecollections","tiles","collideIndexes","collision","currentLayer","debugMap","_results","_tempA","NORTH","EAST","SOUTH","WEST","setTileSize","createBlankLayer","addTilesetImage","tileset","tileMargin","tileSpacing","getTilesetIndex","setImage","newSet","Tileset","countX","countY","columns","rows","createFromObjects","CustomClass","adjustY","found","createFromTiles","replacements","getLayer","customClass","lw","lh","createLayer","getLayerIndex","rootLayer","TilemapLayerGL","childLayer","fromLayer","checkChildLayer","linkedLayers","groupEnd","lastgid","indexes","bodies","getImageIndex","setTileIndexCallback","setTileLocationCallback","recalculate","setCollisionByIndex","calculateFaces","setCollisionBetween","setCollisionByExclusion","setPreventRecalculate","preventingRecalculate","needToRecalculate","above","below","getTileAbove","getTileBelow","getTileLeft","getTileRight","setLayer","hasTile","removeTile","removeTileWorldXY","putTile","putTileWorldXY","searchTileIndex","getTile","nonNull","getTileWorldXY","paste","tileblock","tileA","tileB","swapHandler","removeAllLayers","dump","txt","map","renderSettings","enableScrollDelta","overdrawRatio","copyCanvas","debugSettings","missingImageFill","debuggedTileOverfill","forceFullRedraw","debugAlpha","facingEdgeStroke","collidingTileOverfill","scrollFactorX","scrollFactorY","rayStepRate","_wrap","renderWidth","renderHeight","_scrollX","_scrollY","ensureSharedCopyCanvas","sharedCopyCanvas","resizeWorld","resolveTileset","tileIndex","setIndex","containsTileIndex","resetTilesetCache","setScale","xScale","yScale","shiftCanvas","copyW","copyH","copyContext","renderRegion","lastAlpha","xmax","ymax","baseX","baseY","normStartX","normStartY","renderDeltaScroll","shiftX","shiftY","renderW","renderH","trueTop","trueBottom","trueLeft","trueRight","renderFull","redrawAll","mc","renderDebug","_fixX","_unfixX","_fixY","_unfixY","getTileX","getTileY","getTileXY","getRayCastTiles","interestingFace","coord","fetchAll","wy","wx","_renderMode","offx","offy","addDegenerate","drawGl","flippedVal","INSERT_NULL","getEmptyData","parseCSV","parseTiledJSON","fields","sliced","curl","compression","encoding","binaryString","atob","bytes","opacity","curi","lastSet","tileproperties","tileProperties","updateTileData","imagewidth","imageheight","newCollection","ti","curo","polyline","polygon","ellipse","sid","drawCoords","coordIndex","dw","dh","setSpacing","rowCount","colCount","Particle","autoScale","scaleData","_s","autoAlpha","alphaData","_a","onEmit","setAlphaData","setScaleData","emitters","ID","minParticleSpeed","maxParticleSpeed","minParticleScale","maxParticleScale","minRotation","maxRotation","minParticleAlpha","maxParticleAlpha","particleClass","particleDrag","on","particleAnchor","emitX","emitY","particleBringToTop","particleSendToBack","_minParticleScale","_maxParticleScale","_quantity","_timer","_counter","_flowQuantity","_flowTotal","_explode","emitParticle","makeParticles","particle","rndKey","rndFrame","explode","flow","forceQuantity","setXSpeed","setYSpeed","setRotation","setAlpha","rate","tweenData","at","bullets","autoExpandBulletsGroup","autofire","shots","fireLimit","fireRate","fireRateVariance","fireFrom","fireAngle","bulletInheritSpriteSpeed","bulletAnimation","bulletFrameRandom","bulletFrameCycle","bulletWorldWrap","bulletWorldWrapPadding","bulletAngleOffset","bulletAngleVariance","bulletSpeed","bulletSpeedVariance","bulletLifespan","bulletKillDistance","bulletGravity","bulletRotateToVelocity","bulletKey","bulletFrame","_bulletClass","Bullet","_bulletCollideWorldBounds","_bulletKillType","KILL_WORLD_BOUNDS","customBody","bulletBounds","bulletFrames","bulletFrameIndex","anims","onFire","onKill","onFireLimit","trackedSprite","trackedPointer","trackRotation","trackOffset","_nextFire","KILL_NEVER","KILL_LIFESPAN","KILL_DISTANCE","KILL_WEAPON_BOUNDS","KILL_CAMERA_BOUNDS","KILL_STATIC_BOUNDS","killAll","resetShots","newLimit","fire","trackSprite","trackPointer","moveX","moveY","bullet","bulletManager","killType","bulletKillType","killDistance","rotateToVelocity","bodyDirty","bulletCollideWorldBounds","fireAtPointer","fireAtSprite","fireAtXY","setBulletBodyOffset","setBulletFrames","cycle","addBulletAnimation","debugBodies","onAccess","onError","onTimeout","videoStream","isStreaming","retryLimit","retry","retryInterval","_retryID","_pending","_autoplay","_endCallback","_playCallback","_video","createVideoFromBlob","videoWidth","videoHeight","createVideoFromURL","snapshot","connectToMediaStream","stream","startMediaStream","captureAudio","removeVideoElement","setAttribute","getUserMediaTimeout","getUserMediaSuccess","getUserMediaError","mozSrcObject","createObjectURL","onloadeddata","checkStream","checkVideoProgress","change","playbackRate","setPause","setResume","playHandler","getTracks","track","playing","ended","changeSource","grab","hasChildNodes","firstChild","removeAttribute"],"mappings":"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","file":"phaser-arcade-physics.min.js"}
\ No newline at end of file
+{"version":3,"sources":["phaser-arcade-physics.js"],"names":["root","this","PIXI","game","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","_UID","Float32Array","Uint16Array","Uint32Array","ArrayBuffer","Array","PI_2","Math","PI","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","DisplayObject","position","Point","scale","pivot","rotation","alpha","visible","hitArea","renderable","parent","worldAlpha","worldTransform","Matrix","worldPosition","worldScale","worldRotation","filterArea","_sr","_cr","_bounds","Rectangle","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","prototype","constructor","destroy","children","i","length","_destroyCachedSprite","updateTransform","p","world","a","b","c","d","tx","ty","pt","wt","rotationCache","sin","cos","x","y","set","sqrt","atan2","transformCallback","call","transformCallbackContext","preUpdate","generateTexture","resolution","scaleMode","renderer","bounds","getLocalBounds","renderTexture","RenderTexture","width","height","_tempMatrix","render","updateCache","_generateCachedSprite","toGlobal","apply","toLocal","from","applyInverse","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","max","ceil","texture","resize","tempFilters","_filters","filters","anchor","displayObjectUpdateTransform","Object","defineProperties","get","value","worldVisible","item","mask","isMask","isArray","passes","filterPasses","j","push","_filterBlock","target","blendMode","blendModes","MULTIPLY","NORMAL","cacheAsBitmap","DisplayObjectContainer","ignoreChildInput","create","addChild","child","addChildAt","index","removeChild","splice","Error","swapChildren","child2","index1","getChildIndex","index2","indexOf","setChildIndex","currentIndex","getChildAt","removeChildAt","undefined","removeChildren","beginIndex","endIndex","range","removed","begin","displayObjectContainerUpdateTransform","getBounds","targetCoordinateSpace","isTargetCoordinateSpaceDisplayObject","isTargetCoordinateSpaceThisOrParent","contains","matrixCache","identityMatrix","childBounds","childMaxX","childMaxY","minX","Infinity","minY","maxX","maxY","childVisible","w0","w1","h0","h1","x1","y1","x2","y2","x3","y3","x4","y4","targetCoordinateSpaceBounds","spriteBatch","flush","filterManager","pushFilter","stop","maskManager","pushMask","start","popMask","popFilter","defineProperty","_width","_height","Texture","emptyTexture","tint","cachedTint","tintedTexture","shader","exists","baseTexture","hasLoaded","onTextureUpdate","frame","setTexture","destroyBase","skipRender","valid","matrix","temp","crop","currentBlendMode","context","globalCompositeOperation","blendModesCanvas","globalAlpha","smoothProperty","scaleModes","LINEAR","dx","trim","dy","shakeX","shakeY","roundPixels","setTransform","cw","ch","requiresReTint","CanvasTinter","getTintedTexture","drawImage","cx","cy","source","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","setContext","shaderManager","setShader","fastShader","transform","isRotated","childTransform","hex2rgb","hex","rgb2hex","rgb","canUseNewCanvasBlendModes","document","pngHead","pngEnd","magenta","Image","src","yellow","canvas","CanvasPool","getContext","getImageData","data","remove","getNextPowerOfTwo","number","result","isPowerOfTwo","idx","getFirst","container","createElement","pool","removeByCanvas","getTotal","getFree","initDefaultShaders","CompileVertexShader","shaderSrc","_CompileShader","VERTEX_SHADER","CompileFragmentShader","FRAGMENT_SHADER","shaderType","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","window","console","log","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","PixiShader","program","textureCount","firstRun","dirty","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","key","uniforms","uniformLocation","initUniforms","uniform","type","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","id","textureData","magFilter","minFilter","wrapS","CLAMP_TO_EDGE","wrapT","format","LUMINANCE","RGBA","repeat","REPEAT","pixelStorei","UNPACK_FLIP_Y_WEBGL","flipY","border","texImage2D","UNSIGNED_BYTE","texParameteri","TEXTURE_MAG_FILTER","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","uniform1i","syncUniforms","transpose","z","w","_dirty","instances","updateTexture","deleteProgram","PixiFastShader","uMatrix","aPositionCoord","aScale","aRotation","StripShader","translationMatrix","attribute","PrimitiveShader","tintColor","ComplexPrimitiveShader","color","glContexts","WebGLRenderer","defaultRenderer","transparent","autoResize","preserveDrawingBuffer","clearBeforeRender","view","_contextOptions","antialias","premultipliedAlpha","stencil","projection","offset","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","stencilManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","stage","contextLost","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","_bgColor","r","g","clear","COLOR_BUFFER_BIT","camera","_shake","renderDisplayObject","displayObject","buffer","setBlendMode","end","style","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","NEAREST","mipmap","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","generateMipmap","_powerOf2","blendModesWebGL","modes","ONE","ONE_MINUS_SRC_ALPHA","ADD","SRC_ALPHA","DST_ALPHA","DST_COLOR","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","blendModeWebGL","blendFunc","maskData","WebGLGraphics","updateGraphics","_webGL","pushStencil","popStencil","stencilStack","reverse","count","graphics","webGLData","bindGraphics","STENCIL_TEST","STENCIL_BUFFER_BIT","level","colorMask","stencilFunc","ALWAYS","stencilOp","KEEP","INVERT","mode","drawElements","TRIANGLE_FAN","indices","UNSIGNED_SHORT","EQUAL","DECR","INCR","TRIANGLE_STRIP","_currentGraphics","complexPrimitiveShader","uniform1f","toArray","uniform2f","uniform3fv","bindBuffer","ARRAY_BUFFER","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","primitiveShader","pop","maxAttibs","attribState","tempAttribState","stack","defaultShader","stripShader","setAttribs","attribs","attribId","enableVertexAttribArray","disableVertexAttribArray","_currentId","currentShader","vertSize","size","numVerts","numIndices","vertices","positions","colors","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","createBuffer","bufferData","STATIC_DRAW","DYNAMIC_DRAW","sprite","uvs","_uvs","aX","aY","x0","y0","renderTilingSprite","tilingTexture","TextureUvs","h","tilePosition","tileScaleOffset","offsetX","offsetY","scaleX","tileScale","scaleY","TEXTURE0","stride","bufferSubData","subarray","nextTexture","nextBlendMode","nextShader","batchSize","blendSwap","shaderSwap","skip","renderBatch","startIndex","TRIANGLES","deleteBuffer","maxSize","renderSprite","filterStack","texturePool","initShaderBuffers","filterBlock","_filterArea","_previous_stencil_mgr","filter","FilterTexture","padding","frameBuffer","_glFilterTexture","vertexArray","uvBuffer","uvArray","inputTexture","outputTexture","filterPass","applyFilterPass","sizeX","sizeY","currentFilter","colorBuffer","colorArray","createFramebuffer","DEFAULT","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","clearRect","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","tintMethod","tintWithMultiply","fillStyle","toString","substr","fillRect","tintWithPerPixel","rgbValues","pixelData","pixels","canHandleAlpha","putImageData","checkInverseAlpha","s1","s2","canUseMultiply","CanvasRenderer","refresh","Phaser","Canvas","getSmoothingPrefix","navigator","isCocoonJS","screencanvas","rgba","removeView","useNew","BaseTexture","complete","naturalWidth","naturalHeight","forceLoaded","unloadFromGPU","updateSourceImage","newSrc","warn","glTexture","fromCanvas","TextureSilentFail","noFrame","isTiling","requiresUpdate","setFrame","onBaseTextureLoaded","_updateUvs","tw","th","textureBuffer","renderWebGL","renderCanvas","tempMatrix","updateBase","identity","translate","append","realResolution","getImage","image","getBase64","getCanvas","toDataURL","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","Strip","canvasPadding","drawMode","DrawModes","_vertexBuffer","_initWebGL","_renderStrip","_indexBuffer","_uvBuffer","_colorBuffer","_renderCanvasTriangleStrip","_renderCanvasTriangles","_renderCanvasDrawTriangle","index0","textureSource","textureWidth","textureHeight","u0","u1","u2","v0","v1","v2","paddingX","paddingY","centerX","centerY","normX","normY","dist","beginPath","moveTo","lineTo","closePath","delta","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","renderStripFlat","strip","fill","updateFrame","n","rawX","rawY","EmptyRectangle","Rope","points","lastPoint","point","amount","total","nextPoint","perp","ratio","perpLength","num","TilingSprite","textureDebug","canvasBuffer","tilePattern","refreshTexture","frameWidth","frameHeight","generateTilingTexture","needsUpdate","createPattern","sessionBlendMode","forcePowerOfTwo","targetWidth","_frame","sourceSizeW","targetHeight","sourceSizeH","trimmed","spriteSourceSizeX","spriteSourceSizeY","strokeStyle","strokeRect","exports","module","define","amd","WheelEventProxy","scaleFactor","deltaMode","_scaleFactor","_deltaMode","originalEvent","GAMES","AUTO","CANVAS","WEBGL","HEADLESS","NONE","LEFT","RIGHT","UP","DOWN","SPRITE","BUTTON","IMAGE","GRAPHICS","TEXT","TILESPRITE","BITMAPTEXT","GROUP","RENDERTEXTURE","TILEMAP","TILEMAPLAYER","EMITTER","POLYGON","BITMAPDATA","CANVAS_FILTER","WEBGL_FILTER","ELLIPSE","SPRITEBATCH","RETROFONT","POINTER","ROPE","CIRCLE","RECTANGLE","LINE","MATRIX","POINT","ROUNDEDRECTANGLE","CREATURE","VIDEO","PENDING_ATLAS","HORIZONTAL","VERTICAL","LANDSCAPE","PORTRAIT","ANGLE_UP","ANGLE_DOWN","ANGLE_LEFT","ANGLE_RIGHT","ANGLE_NORTH_EAST","ANGLE_NORTH_WEST","ANGLE_SOUTH_EAST","ANGLE_SOUTH_WEST","TOP_LEFT","TOP_CENTER","TOP_RIGHT","LEFT_TOP","LEFT_CENTER","LEFT_BOTTOM","CENTER","RIGHT_TOP","RIGHT_CENTER","RIGHT_BOTTOM","BOTTOM_LEFT","BOTTOM_CENTER","BOTTOM_RIGHT","trunc","floor","Function","bind","slice","thisArg","bound","args","boundArgs","concat","arguments","TypeError","F","proto","arg","forEach","fun","t","len","CheapArray","assert","Utils","reverseString","string","split","getProperty","obj","prop","parts","last","l","current","setProperty","chanceRoll","chance","random","randomChoice","choice1","choice2","parseDimension","dimension","f","px","parseInt","innerWidth","innerHeight","pad","str","dir","padlen","right","left","isPlainObject","nodeType","hasOwnProperty","e","extend","options","name","copy","copyIsArray","clone","deep","mixinPrototype","mixin","replace","mixinKeys","keys","to","o","childNodes","cloneNode","Circle","diameter","_diameter","_radius","circumference","out","u","radius","setTo","copyFrom","copyTo","dest","distance","round","output","circumferencePoint","angle","asDegrees","offsetPoint","top","bottom","equals","intersects","degToRad","intersectsRectangle","abs","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","Ellipse","normx","normy","Line","fromSprite","startSprite","endSprite","useCenter","center","fromAngle","rotate","rotateAround","line","asSegment","intersectsPoints","reflect","midPoint","centerOn","add","pointOnLine","pointOnSegment","xMin","min","xMax","yMin","yMax","coordinatesOnLine","stepRate","results","sx","sy","err","e2","wrap","a1","a2","b1","b2","c1","c2","denom","uc","ua","ub","rect","bx1","by1","bx2","by2","normalAngle","fromArray","array","pos","newPos","tx1","d1","invert","subtract","multiply","divide","clampX","clamp","clampY","radToDeg","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","normalize","isZero","m","dot","cross","rperp","normalRightHand","negative","multiplyAdd","s","interpolate","project","amt","projectUnit","centroid","pointslength","parse","xProp","yProp","Polygon","area","_points","closed","flattened","toNumberArray","flatten","inside","ix","iy","jx","jy","Number","MAX_VALUE","calculateArea","p1","p2","avgHeight","floorAll","ceilAll","inflate","containsRect","intersection","intersectsRaw","tolerance","union","randomX","randomY","getPoint","empty","inflatePoint","containsRaw","rx","ry","rw","rh","containsPoint","volume","sameDimensions","aabb","NEGATIVE_INFINITY","POSITIVE_INFINITY","RoundedRectangle","Camera","deadzone","roundPx","atLimit","totalInView","lerp","onShakeComplete","Signal","onFlashComplete","onFadeComplete","fx","_targetPosition","_edge","_position","intensity","duration","horizontal","vertical","shakeBounds","_fxDuration","_fxType","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","SHAKE_BOTH","SHAKE_HORIZONTAL","SHAKE_VERTICAL","ENABLE_FX","boot","Graphics","follow","lerpX","lerpY","helper","unfollow","focusOn","setPosition","focusOnXY","shake","force","direction","flash","beginFill","drawRect","endFill","fade","update","updateFX","updateShake","checkBounds","time","elapsedMS","dispatch","rnd","frac","updateTarget","math","linear","setBoundsToWorld","vx","vw","vy","vh","setSize","reset","resetFX","State","make","cache","input","load","sound","state","tweens","particles","physics","preload","loadUpdate","loadRender","preRender","paused","resumed","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onStateChange","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","onPause","pause","onResume","resume","autoStart","newState","isBooted","callbackContext","clearWorld","clearCache","checkState","restart","dummy","previousStateKey","clearCurrentState","setCurrentState","totalQueuedFiles","totalQueuedPacks","loadComplete","removeAll","debug","link","unlink","_kickstart","getCurrentState","elapsedTime","renderType","_bindings","_prevParams","memorize","_shouldPropagate","active","_boundDispatch","validateListener","listener","fnName","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","has","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","_this","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","prevPoint","Date","mouse","date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","sampleRate","iChannel0","iChannel1","iChannel2","iChannel3","setResolution","pointer","toFixed","totalElapsedSeconds","addToWorld","anchorX","anchorY","Plugin","hasPreUpdate","hasUpdate","hasPostUpdate","hasRender","hasPostRender","postRender","PluginManager","plugins","_len","_i","plugin","postUpdate","Stage","disableVisibilityChange","currentRenderOrderID","_hiddenVar","_onChange","config","parseConfig","setBackgroundColor","DOM","getOffset","setUserSelect","setTouchAction","checkVisibility","hidden","webkitHidden","mozHidden","msHidden","event","visibilityChange","addEventListener","onblur","onfocus","onpagehide","onpageshow","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","updateColor","removeEventListener","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","physicsType","alive","ignoreDestroy","pendingDestroy","classType","cursor","inputEnableChildren","onChildInputDown","onChildInputUp","onChildInputOver","onChildInputOut","enableBodyDebug","physicsSortDirection","onDestroy","cursorIndex","fixedToCamera","cameraOffset","hash","_sortProperty","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","RETURN_ALL","SORT_ASCENDING","SORT_DESCENDING","silent","body","removeFromHash","updateZ","addToHash","inputEnabled","events","onAddedToGroup$dispatch","addAt","addMultiple","moveAll","getAt","createMultiple","quantity","singleKey","singleFrame","align","cellWidth","cellHeight","alignIn","resetCursor","next","previous","swap","child1","bringToTop","getIndex","sendToBack","moveUp","moveDown","xy","getByName","oldChild","newChild","hasProperty","operation","checkProperty","checkAlive","checkVisible","setAll","setAllChildren","checkAll","addAll","property","subAll","multiplyAll","divideAll","callAllExists","callback","existsValue","callbackFromArray","callAll","method","methodLength","contextLength","renderOrderID","predicate","checkExists","ArraySet","forEachExists","iterate","forEachAlive","forEachDead","sort","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","getFirstExists","createIfNull","resetChild","getFirstAlive","getFirstDead","loadTexture","getTop","getBottom","getClosestTo","object","tempDistance","getFurthestFrom","countLiving","countDead","getRandom","ArrayUtils","getRandomItem","getRandomExists","list","getAll","pick","destroyPhase","onRemovedFromGroup$dispatch","group","destroyTexture","removeBetween","destroyChildren","soft","World","_definedSize","stateChange","setBounds","useBounds","between","Game","physicsConfig","isRunning","raf","net","Device","lockRender","stepping","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","currentUpdateID","updatesThisFrame","_deltaTime","_lastCount","_spiraling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","now","whenReady","seed","ScaleManager","setUpRenderer","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Create","Net","Debug","showDebugHeader","RequestAnimationFrame","stopFocus","focus","hideBanner","v","webAudio","chrome","webGL","contextRestored","cocoonJS","smoothed","addToDOM","preventDefault","clearGLTextures","updateLogic","desiredFpsMult","updateRender","slowMotion","desiredFps","slowStep","elapsed","timeStep","enableStep","disableStep","step","removeFromDOM","muteOnPause","setMute","cordova","iOS","unsetMute","hitCanvas","hitContext","moveCallbacks","customCandidateHandler","customCandidateHandlerContext","pollRate","enabled","multiInputOverride","MOUSE_TOUCH_COMBINE","speed","circle","maxPointers","tapRate","doubleTapRate","holdRate","justPressedRate","justReleasedRate","recordPointerHistory","recordRate","recordLimit","pointer1","pointer2","pointer3","pointer4","pointer5","pointer6","pointer7","pointer8","pointer9","pointer10","pointers","activePointer","mousePointer","keyboard","touch","mspointer","gamepad","resetLocked","onDown","onUp","onTap","onHold","minPriorityID","interactiveItems","_localPoint","_pollCounter","_oldPosition","_x","_y","MOUSE_OVERRIDES_TOUCH","TOUCH_OVERRIDES_MOUSE","MAX_POINTERS","Pointer","PointerMode","CURSOR","addPointer","Mouse","Touch","MSPointer","Keyboard","Gamepad","_onClickTrampoline","onClickTrampoline","setInteractiveCandidateHandler","addMoveCallback","deleteMoveCallback","TOUCH","hard","resetSpeed","startPointer","countActivePointers","updatePointer","identifier","move","stopPointer","limit","getPointer","isActive","getPointerFromIdentifier","getPointerFromId","pointerId","getLocalPosition","hitTest","localPoint","TileSprite","graphicsData","shape","processClickTrampolines","mouseDownCallback","mouseUpCallback","mouseOutCallback","mouseOverCallback","mouseWheelCallback","capture","button","wheelDelta","locked","stopOnGameOut","pointerLock","_onMouseDown","_onMouseMove","_onMouseUp","_onMouseOut","_onMouseOver","_onMouseWheel","_wheelEvent","NO_BUTTON","LEFT_BUTTON","MIDDLE_BUTTON","RIGHT_BUTTON","BACK_BUTTON","FORWARD_BUTTON","WHEEL_UP","WHEEL_DOWN","android","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","_onMouseOutGlobal","onMouseOutGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","mouseMoveCallback","withinGame","leftButton","rightButton","bindEvent","deltaY","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","detail","deltaX","wheelDeltaX","deltaZ","pointerDownCallback","pointerMoveCallback","pointerUpCallback","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","_onMSPointerUpGlobal","_onMSPointerOut","_onMSPointerOver","onPointerDown","onPointerMove","onPointerUp","onPointerUpGlobal","onPointerOut","onPointerOver","pointerType","DeviceButton","buttonCode","isDown","isUp","timeDown","timeUp","repeats","altKey","shiftKey","ctrlKey","onFloat","padFloat","justPressed","justReleased","pointerMode","CONTACT","middleButton","backButton","forwardButton","eraserButton","ERASER_BUTTON","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","interactiveCandidates","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","resetButtons","processButtonsDown","buttons","processButtonsUp","updateButtons","down","toLowerCase","totalActivePointers","_touchedHandler","processInteractiveObjects","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","first","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","swapTarget","newTarget","_pointerOutHandler","_pointerOverHandler","leave","currentPointers","addClickTrampoline","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchLockCallbacks","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","addTouchLockCallback","onEnd","removeTouchLockCallback","cb","changedTouches","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","scaleLayer","dragOffset","dragFromCenter","dragStopBlocksInputUp","dragStartPoint","dragDistanceThreshold","dragTimeThreshold","downPoint","snapPoint","_dragPoint","_dragPhase","_pendingDrag","_dragTimePass","_dragDistancePass","_wasEnabled","_tempPoint","_pointerData","camX","camY","isOver","isOut","timeOver","timeOut","downDuration","onAddedToGroup","addedToGroup","onRemovedFromGroup","removedFromGroup","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","_dx","_dy","startDrag","_draggedPointerID","updateDrag","sendEvent","onInputOver$dispatch","onInputOut$dispatch","onInputDown$dispatch","dragTimeElapsed","onInputUp$dispatch","stopDrag","fromStart","globalToLocalX","py","globalToLocalY","checkBoundsRect","checkBoundsSprite","onDragUpdate","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","disableDrag","onDragStart$dispatch","grid","boundsFluid","scaleFluidInversed","onDragStop$dispatch","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","_gamepadIndexMap","_rawPads","_active","_gamepadSupportAvailable","webkitGetGamepads","webkitGamepads","userAgent","getGamepads","_prevRawGamepadTypes","_prevTimestamps","onConnectCallback","onDisconnectCallback","onDownCallback","onUpCallback","onAxisCallback","onFloatCallback","_ongamepadconnected","_gamepaddisconnected","_gamepads","SinglePad","addCallbacks","callbacks","onConnect","onDisconnect","onAxis","_onGamepadConnected","onGamepadConnected","_onGamepadDisconnected","onGamepadDisconnected","newPad","connect","removedPad","disconnect","_pollGamepads","pad1","pollStatus","pad2","pad3","pad4","rawGamepads","gamepadsChanged","_rawPad","singlePad","validConnections","rawIndices","padIndices","connected","k","rawPad","setDeadZones","deadZone","BUTTON_0","BUTTON_1","BUTTON_2","BUTTON_3","BUTTON_4","BUTTON_5","BUTTON_6","BUTTON_7","BUTTON_8","BUTTON_9","BUTTON_10","BUTTON_11","BUTTON_12","BUTTON_13","BUTTON_14","BUTTON_15","AXIS_0","AXIS_1","AXIS_2","AXIS_3","AXIS_4","AXIS_5","AXIS_6","AXIS_7","AXIS_8","AXIS_9","XBOX360_A","XBOX360_B","XBOX360_X","XBOX360_Y","XBOX360_LEFT_BUMPER","XBOX360_RIGHT_BUMPER","XBOX360_LEFT_TRIGGER","XBOX360_RIGHT_TRIGGER","XBOX360_BACK","XBOX360_START","XBOX360_STICK_LEFT_BUTTON","XBOX360_STICK_RIGHT_BUTTON","XBOX360_DPAD_LEFT","XBOX360_DPAD_RIGHT","XBOX360_DPAD_UP","XBOX360_DPAD_DOWN","XBOX360_STICK_LEFT_X","XBOX360_STICK_LEFT_Y","XBOX360_STICK_RIGHT_X","XBOX360_STICK_RIGHT_Y","PS3XC_X","PS3XC_CIRCLE","PS3XC_SQUARE","PS3XC_TRIANGLE","PS3XC_L1","PS3XC_R1","PS3XC_L2","PS3XC_R2","PS3XC_SELECT","PS3XC_START","PS3XC_STICK_LEFT_BUTTON","PS3XC_STICK_RIGHT_BUTTON","PS3XC_DPAD_UP","PS3XC_DPAD_DOWN","PS3XC_DPAD_LEFT","PS3XC_DPAD_RIGHT","PS3XC_STICK_LEFT_X","PS3XC_STICK_LEFT_Y","PS3XC_STICK_RIGHT_X","PS3XC_STICK_RIGHT_Y","padParent","_padParent","_prevTimestamp","_buttons","_buttonsLen","_axes","_axesLen","getButton","timestamp","rawButtonVal","isNaN","processButtonDown","processButtonUp","processButtonFloat","axes","processAxisChange","triggerCallback","disconnectingIndex","axis","axisCode","buttonValue","Key","keycode","_enabled","keyCode","onHoldCallback","onHoldContext","_justDown","_justUp","processKeyDown","processKeyUp","upDuration","pressEvent","onPressCallback","_keys","_capture","_onKeyDown","_onKeyPress","_onKeyUp","_k","onPress","addKey","addKeyCapture","addKeys","removeKey","removeKeyCapture","createCursorKeys","up","KeyCode","processKeyPress","clearCaptures","String","fromCharCode","charCode","A","charCodeAt","B","C","D","E","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","ZERO","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","NUMPAD_0","NUMPAD_1","NUMPAD_2","NUMPAD_3","NUMPAD_4","NUMPAD_5","NUMPAD_6","NUMPAD_7","NUMPAD_8","NUMPAD_9","NUMPAD_MULTIPLY","NUMPAD_ADD","NUMPAD_ENTER","NUMPAD_SUBTRACT","NUMPAD_DECIMAL","NUMPAD_DIVIDE","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","F13","F14","F15","COLON","EQUALS","COMMA","UNDERSCORE","PERIOD","QUESTION_MARK","TILDE","OPEN_BRACKET","BACKWARD_SLASH","CLOSED_BRACKET","QUOTES","BACKSPACE","TAB","CLEAR","ENTER","SHIFT","CONTROL","ALT","CAPS_LOCK","ESC","SPACEBAR","PAGE_UP","PAGE_DOWN","END","HOME","PLUS","MINUS","INSERT","DELETE","HELP","NUM_LOCK","match","Component","Angle","wrapAngle","Animation","play","frameRate","loop","killOnComplete","animations","AutoCull","autoCull","inCamera","checkWorldBounds","Bounds","alignTo","BringToTop","Core","install","components","previousPosition","Events","PhysicsBody","AnimationManager","LoadTexture","FixedToCamera","previousRotation","fresh","_exists","P2JS","removeFromWorld","customRender","Crop","cropRect","_crop","updateCrop","resetFrame","oldX","oldY","oldW","oldH","Delta","Destroy","onDestroy$dispatch","removeFrom","Video","onChangeSource","resizeFrame","BitmapText","_glyphs","_parent","_onDestroy","_onAddedToGroup","_onRemovedFromGroup","_onRemovedFromWorld","_onKilled","_onRevived","_onEnterBounds","_onOutOfBounds","_onInputOver","_onInputOut","_onInputDown","_onInputUp","_onDragStart","_onDragUpdate","_onDragStop","_onAnimationStart","_onAnimationComplete","_onAnimationLoop","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","onAnimationStart","onAnimationComplete","onAnimationLoop","backing","_fixedToCamera","Health","health","maxHealth","damage","kill","setHealth","heal","InCamera","InputEnabled","InWorld","outOfCameraBoundsKill","_outOfBoundsFired","onEnterBounds$dispatch","onOutOfBounds$dispatch","outOfBoundsKill","inWorld","LifeSpan","lifespan","physicsElapsedMS","revive","onRevived$dispatch","onKilled$dispatch","stopAnimation","BitmapData","hasFrameData","loadFrameData","getFrameData","frameData","Tilemap","TilemapLayer","img","base","frameName","Overlap","overlap","_reset","Reset","ScaleMinMax","scaleMin","scaleMax","checkTransform","setScaleMinMax","Smoothed","existing","weapon","Weapon","createBullets","creature","mesh","Creature","tween","physicsGroup","audio","audioSprite","addSprite","tileSprite","rope","text","Text","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","font","characterWidth","characterHeight","chars","charsPerRow","xSpacing","ySpacing","xOffset","yOffset","RetroFont","bitmapText","tilemap","tileWidth","tileHeight","addToCache","uuid","addRenderTexture","video","url","bitmapData","addBitmapData","Tween","preUpdatePhysics","preUpdateLifeSpan","preUpdateInWorld","preUpdateCore","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","justReleasedPreventsOver","freezeFrames","forceOut","setFrames","onInputOverHandler","onInputOutHandler","onInputDownHandler","onInputUpHandler","removedFromWorld","STATE_OVER","STATE_OUT","STATE_DOWN","STATE_UP","clearFrames","setStateFrame","switchImmediately","frameKey","changeStateFrame","setStateSound","marker","soundKey","markerKey","Sound","AudioSprite","playStateSound","setSounds","overSound","overMarker","downSound","downMarker","outSound","outMarker","upSound","upMarker","setOverSound","setOutSound","setDownSound","setUpSound","changedUp","skipPool","ctx","imageData","FrameData","textureFrame","addFrame","Frame","disableTextureUpload","cls","_image","_pos","_size","_scale","_rotate","_alpha","prev","_anchor","_tempR","_tempG","_tempB","_circle","_swapCanvas","moveH","moveV","draw","addImage","processPixelRGB","pixel","createColor","unpackPixel","getPixel32","setPixel32","processPixel","replaceRGB","r1","g1","r2","g2","region","packPixel","setHSL","bHaveH","bHaveS","bHaveL","HSLtoRGB","shiftHSL","red","green","blue","immediate","LITTLE_ENDIAN","setPixel","getPixel","getPixelRGB","hsl","hsv","getPixels","getFirstPixel","scan","newWidth","newHeight","op","copyTransform","copyRect","drawGroup","drawGroupProxy","drawFull","renderGraphics","shadow","blur","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","alphaMask","sourceRect","maskRect","blendSourceAtop","blendReset","extract","destination","prevFont","fillText","arc","lineWidth","stroke","textureLine","blendSourceOver","blendSourceIn","blendSourceOut","blendDestinationOver","blendDestinationIn","blendDestinationOut","blendDestinationAtop","blendXor","blendAdd","blendMultiply","blendScreen","blendOverlay","blendDarken","blendLighten","blendColorDodge","blendColorBurn","blendHardLight","blendSoftLight","blendDifference","blendExclusion","blendHue","blendSaturation","blendColor","blendLuminosity","getSmoothingEnabled","setSmoothingEnabled","getTransform","translateX","translateY","skewX","skewY","fillAlpha","lineColor","currentPath","boundsPadding","_localBounds","_boundsDirty","webGLDirty","cachedSpriteDirty","lineStyle","lineAlpha","drawShape","quadraticCurveTo","cpX","cpY","toX","toY","xa","ya","fromX","fromY","bezierCurveTo","cpX2","cpY2","dt","dt2","dt3","t2","t3","arcTo","mm","dd","cc","tt","k1","k2","j1","j2","qx","qy","startAngle","endAngle","anticlockwise","segments","sweep","segs","startX","startY","filling","theta","theta2","cTheta","sTheta","segMinus","remainder","real","fillColor","drawRoundedRect","drawCircle","drawEllipse","drawPolygon","path","clearDirty","updateLocalBounds","updateCachedSpriteTexture","_prevTint","tempPoint","RECT","RREC","CIRC","ELIP","cachedSprite","destroyCachedSprite","GraphicsData","POLY","_lineTint","_fillTint","EarCut","Triangulate","holeIndices","dim","hasHoles","outerLen","outerNode","linkedList","triangles","eliminateHoles","earcutLinked","clockwise","sum","insertNode","filterPoints","again","steiner","removeNode","ear","pass","indexCurve","isEarHashed","isEar","cureLocalIntersections","splitEarcut","pointInTriangle","minTX","minTY","maxTX","maxTY","minZ","zOrder","maxZ","nextZ","prevZ","locallyInside","isValidDiagonal","splitPolygon","queue","getLeftmost","compareX","eliminateHole","hole","findHoleBridge","hx","hy","tan","tanMin","sortLinked","q","tail","numMerges","pSize","qSize","inSize","leftmost","ax","ay","bx","by","intersectsPolygon","middleInside","q1","q2","Node","an","bp","stencilBufferLimit","lastIndex","graphicsDataPool","switchMode","canDrawUsingSimple","buildPoly","buildComplexPoly","buildLine","buildRectangle","buildCircle","buildRoundedRectangle","upload","WebGLGraphicsData","rectData","verts","vertPos","tempPoints","rrectData","recPoints","quadraticBezierCurve","vecPos","getPt","n1","n2","perc","diff","xb","yb","circleData","totalSegs","seg","firstPoint","midPointX","midPointY","unshift","p1x","p1y","p2x","p2y","p3x","p3y","perpx","perpy","perp2x","perp2y","perp3x","perp3y","pdist","indexCount","indexStart","glPoints","glIndicies","updateGraphicsTint","kappa","ox","oy","xe","ye","xm","ym","maxRadius","tintR","tintG","tintB","drawTriangle","cull","triangle","cameraToFace","ab","faceNormal","drawTriangles","point1","point2","point3","renderXY","renderRawXY","textBounds","strokeColors","fontStyles","fontWeights","autoRound","useAdvancedWrap","_res","_text","_fontComponents","_lineSpacing","_charCount","setStyle","updateText","setShadow","shadowStroke","shadowFill","backgroundColor","boundsAlignH","boundsAlignV","strokeThickness","wordWrap","wordWrapWidth","maxLines","tabs","fontToComponents","fontStyle","fontVariant","fontWeight","fontSize","componentsToFont","outputText","runWordWrap","lines","lineWidths","maxLineWidth","fontProperties","determineFontProperties","drawnLines","measureLine","measureText","tab","section","snapToCeil","lineHeight","lineSpacing","textBaseline","lineCap","lineJoin","linePositionX","linePositionY","ascent","updateLine","updateShadow","strokeText","renderTabLine","snap","lineLength","letter","clearColors","clearFontValues","addColor","addStrokeColor","addFontStyle","addFontWeight","weight","precalculateWordWrap","wrappedLines","advancedWordWrap","basicWordWrap","linesCount","currentLineWidth","words","word","wordWithSpace","wordWidth","newWord","secondPart","spaceLeft","wordWidthWithSpace","updateFont","family","exec","fontFamily","setText","parseList","setTextBounds","properties","fontPropertiesCache","fontPropertiesCanvas","fontPropertiesContext","baseline","descent","imagedata","parseFloat","textWidth","textHeight","_prevAnchor","_maxWidth","_data","getBitmapFont","_font","_fontSize","_align","_tint","sourceWidth","sourceHeight","scanLine","lastSpace","wrappedWidth","prevCharCode","maxWidth","test","charAt","charData","kerning","xAdvance","cleanText","re","purgeGlyphs","kept","checkImageKey","characterSpacingX","characterSpacingY","characterPerRow","multiLine","autoUpperCase","customSpacingX","customSpacingY","fixedWidth","fontSet","grabData","currentX","currentY","updateFrameData","stamp","ALIGN_LEFT","ALIGN_RIGHT","ALIGN_CENTER","TEXT_SET1","TEXT_SET2","TEXT_SET3","TEXT_SET4","TEXT_SET5","TEXT_SET6","TEXT_SET7","TEXT_SET8","TEXT_SET9","TEXT_SET10","TEXT_SET11","setFixedWidth","lineAlignment","content","characterSpacing","allowLowerCase","buildRetroFontText","getLongestLine","pasteLine","longestLine","removeUnsupportedCharacters","stripCR","newString","aChar","code","updateOffset","diffX","diffY","frames","getFrames","newText","toUpperCase","_hasUpdateAnimation","_updateAnimationCallback","updateAnimation","_updateAnimation","difference","_scroll","def","physicsElapsed","autoScroll","stopScroll","deviceReadyAt","initialized","desktop","iOSVersion","node","nodeWebkit","electron","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","canvasBitBltShift","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","chromeVersion","epiphany","firefox","firefoxVersion","ie","ieVersion","trident","tridentVersion","edge","mobileSafari","midori","opera","safari","safariVersion","webApp","silk","audioData","ogg","opus","mp3","wav","m4a","webm","dolby","oggVideo","h264Video","mp4Video","webmVideo","vp9Video","hlsVideo","iPhone","iPhone4","iPad","pixelRatio","littleEndian","support32bit","fullscreen","requestFullscreen","cancelFullscreen","fullscreenKeyboard","onInitialized","nonPrimer","readyCheck","_readyCheck","_monitor","_queue","readyState","setTimeout","_initialize","_checkOS","vita","kindle","RegExp","$1","_checkFeatures","getItem","error","WebGLRenderingContext","compatMode","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","oGetUserMedia","URL","webkitURL","mozURL","msURL","_checkInput","documentElement","maxTouchPoints","msPointerEnabled","pointerEnabled","_checkFullScreenSupport","fs","cfs","Element","_checkBrowser","$3","process","require","versions","_checkVideo","videoElement","canPlayType","_checkAudio","audioElement","major","minor","$2","_checkIsLittleEndian","_checkIsUint8ClampedImageData","Uint8ClampedArray","elem","createImageData","_checkDevice","Int8Array","Int32Array","vibrate","webkitVibrate","mozVibrate","msVibrate","_checkCSS3D","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","insertBefore","getComputedStyle","getPropertyValue","canPlayAudio","canPlayVideo","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","matches","display","msTouchAction","overflowHidden","getElementById","overflow","appendChild","parentNode","vendor","prefix","setImageRenderingCrisp","types","msInterpolationMode","setImageRenderingBicubic","forceSetTimeOut","vendors","requestAnimationFrame","cancelAnimationFrame","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","timeToCall","clearTimeout","isSetTimeOut","isRAF","PI2","fuzzyEqual","epsilon","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","shear","snapTo","gap","snapToFloor","roundTo","place","pow","floorTo","ceilTo","rotateToAngle","currentAngle","targetAngle","getShortestAngle","angle1","angle2","times","angleBetween","angleBetweenY","angleBetweenPoints","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","maxAdd","minSub","wrapValue","isOdd","isEven","minProperty","maxProperty","radians","linearInterpolation","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","p0","factorial","res","p3","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","distanceSq","distancePow","clampBottom","within","mapLinear","smoothstep","smootherstep","sign","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","sow","integer","integerInRange","realInRange","normal","ary","weightedPick","QuadTree","maxObjects","maxLevels","objects","nodes","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","getHostName","location","hostname","checkDomainName","domain","updateQueryString","redirect","href","separator","getQueryString","parameter","keyValues","search","substring","decodeURI","decodeURIComponent","frameBased","_tweens","_add","easeMap","Power0","Easing","Power1","Power2","Power3","Power4","Linear","None","Quad","Quadratic","Out","Cubic","Quart","Quartic","Quint","Quintic","Sine","Sinusoidal","Expo","Exponential","Circ","Circular","Elastic","Back","Bounce","Quad.easeIn","In","Cubic.easeIn","Quart.easeIn","Quint.easeIn","Sine.easeIn","Expo.easeIn","Circ.easeIn","Elastic.easeIn","Back.easeIn","Bounce.easeIn","Quad.easeOut","Cubic.easeOut","Quart.easeOut","Quint.easeOut","Sine.easeOut","Expo.easeOut","Circ.easeOut","Elastic.easeOut","Back.easeOut","Bounce.easeOut","Quad.easeInOut","InOut","Cubic.easeInOut","Quart.easeInOut","Quint.easeInOut","Sine.easeInOut","Expo.easeInOut","Circ.easeInOut","Elastic.easeInOut","Back.easeInOut","Bounce.easeInOut","_pauseAll","_resumeAll","pendingDelete","_manager","addTweens","numTweens","isTweening","some","_pause","_resume","pauseAll","resumeAll","manager","timeline","timeScale","repeatCounter","onStart","onLoop","onRepeat","onChildComplete","onComplete","chainedTween","isPaused","_onUpdateCallback","_onUpdateCallbackContext","_pausedTime","_hasStarted","ease","yoyo","Default","TweenData","vEnd","loadValues","updateTweenData","repeatDelay","yoyoDelay","easing","interpolation","repeatAll","chain","startTime","status","PENDING","RUNNING","LOOPED","COMPLETE","generateData","vStart","vStartCache","vEndCache","repeatTotal","inReverse","easingFunction","interpolationFunction","interpolationContext","isFrom","yoyoCounter","ms","fps","blob","reversed","asin","prevTime","_desiredFps","suggestedFps","advancedTiming","fpsMin","fpsMax","msMin","msMax","pauseDuration","timeExpected","Timer","_frameCount","_elapsedAccumulator","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","previousDateNow","updateAdvancedTiming","updateTimers","elapsedSince","since","elapsedSecondsSince","running","expired","nextTick","timeCap","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","tick","TimerEvent","clearEvents","clearPendingEvents","adjustEvents","baseTime","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","anim","copyFrameData","useNumericIndex","getFrameIndexes","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","getFrame","getFrameByName","_frameIndex","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onUpdate","isReversed","_timeLastFrame","_timeNextFrame","updateCurrentFrame","onAnimationStart$dispatch","reverseOnce","frameId","useLocalFrameIndex","frameIndex","dispatchComplete","onAnimationComplete$dispatch","onAnimationLoop$dispatch","signalUpdate","fromPlay","generateFrameNames","suffix","zeroPad","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","_frameNames","getFrameRange","AnimationParser","spriteSheet","frameMax","margin","spacing","row","column","JSONData","json","newFrame","filename","sourceSize","spriteSourceSize","JSONDataPyxel","signature","tileheight","tilewidth","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","autoResolveURL","_cache","binary","bitmapFont","_urlMap","_urlResolver","_urlTemp","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","SHADER","RENDER_TEXTURE","addDefaultImage","addMissingImage","MISSING","addCanvas","removeImage","_resolveURL","addSound","audioTag","decoded","isDecoding","touchLocked","addText","addPhysicsData","addTilemap","mapData","addBinary","binaryData","addBitmapFont","atlasData","atlasType","LoaderParser","jsonBitmapFont","xmlBitmapFont","addJSON","addXML","addVideo","isBlob","addShader","addSpriteSheet","addTextureAtlas","TEXTURE_ATLAS_XML_STARLING","TEXTURE_ATLAS_JSON_PYXEL","reloadSound","getSound","reloadSoundComplete","updateSound","decodedSound","isSoundDecoded","isSoundReady","checkKey","checkURL","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkVideoKey","checkShaderKey","checkRenderTextureKey","full","getTextureFrame","getSoundData","getText","getPhysicsData","fixtureKey","fixtures","fixture","getTilemapData","getBinary","getBitmapData","getJSON","getXML","getVideo","getShader","getRenderTexture","getBaseTexture","getFrameCount","getFrameByIndex","getURL","getKeys","removeCanvas","destroyBaseTexture","removeSound","removeText","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","removeJSON","removeXML","removeVideo","removeShader","removeRenderTexture","removeSpriteSheet","removeTextureAtlas","atlas","baseURL","isLoading","preloadSprite","crossOrigin","headers","requestedWith","onLoadStart","onLoadComplete","onPackComplete","onFileStart","onFileComplete","onFileError","useXDomainRequest","_warnedAboutXDomainRequest","enableParallel","maxParallelDownloads","_withSyncPointDepth","_fileList","_flightQueue","_processingHead","_fileLoadStarted","_totalPackCount","_totalFileCount","_loadedPackCount","_loadedFileCount","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","checkKeyExists","getAssetIndex","bestFound","loaded","loading","getAsset","fileIndex","addToFileList","overwrite","extension","syncPoint","currentFile","replaceInFileList","pack","images","urls","script","spritesheet","autoDecode","noAudio","jsonURL","jsonData","audiosprite","loadEvent","asBlob","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","atlasURL","parseXml","atlasJSONArray","atlasJSONHash","atlasXML","withSyncPoint","addSyncPoint","asset","removeFile","updateProgress","processLoadQueue","finishedLoading","requestUrl","requestObject","progress","syncblock","inflightLimit","processPack","loadFile","abnormal","asyncComplete","errorMessage","packData","transformUrl","xhrLoad","fileComplete","loadImageTag","getAudioURL","usingWebAudio","usingAudioTag","loadAudioTag","fileError","getVideoURL","loadVideoTag","jsonLoadComplete","xmlLoadComplete","csvLoadComplete","onload","onerror","controls","autoplay","videoLoadEvent","canplay","Audio","playThroughEvent","XDomainRequest","xhrLoadWithXDR","xhr","XMLHttpRequest","open","responseType","setRequestHeader","message","send","timeout","ontimeout","onprogress","videoType","uri","lastIndexOf","audioType","reason","loadNext","responseText","response","decode","language","defer","head","contentType","domparser","DOMParser","parseFromString","ActiveXObject","async","loadXML","totalLoadedFiles","totalLoadedPacks","progressFloat","info","common","getAttribute","letters","kernings","second","finalizeBitmapFont","_face","_lineHeight","_id","_xoffset","_yoffset","_xadvance","_second","_first","_amount","bitmapFontData","autoplayKey","sounds","spritemap","addMarker","connectToMaster","markers","totalDuration","currentTime","durationMS","stopTime","pausedPosition","pausedTime","currentMarker","fadeTween","pendingPlayback","override","allowMultiple","externalNode","masterGainNode","gainNode","_sound","masterGain","createGain","createGainNode","gain","soundHasUnlocked","onDecoded","onPlay","onStop","onMute","onMarkerComplete","_volume","_buffer","_muted","_tempMarker","_tempPosition","_tempVolume","_tempPause","_muteVolume","_tempLoop","_onDecodedEventDispatched","removeMarker","onEndedHandler","onended","isDecoded","loopFull","forceRestart","noteOff","createBufferSource","noteGrainOn","muted","mute","prevMarker","fadeIn","fadeTo","fadeOut","fadeComplete","updateGlobalVolume","globalVolume","onSoundDecode","onVolumeChange","onUnMute","channels","_codeMuted","_unlockSource","_sounds","_watchList","_watching","_watchCallback","_watchContext","disableAudio","disableWebAudio","audioContext","fakeiOSTouchLock","setTouchLock","unlock","noteOn","stopAll","soundData","decodeAudioData","setDecodedCallback","files","playbackState","PLAYING_STATE","FINISHED_STATE","removeByKey","close","dom","minWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","onOrientationChange","enterIncorrectOrientation","leaveIncorrectOrientation","hasPhaserSetFullScreen","fullScreenTarget","_createdFullScreenTarget","onFullScreenInit","onFullScreenChange","onFullScreenError","screenOrientation","getScreenOrientation","scaleFactorInversed","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","canExpandParent","clickTrampoline","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentScaleFactor","trackParentInterval","onSizeChange","onResize","onResizeContext","_pendingScaleMode","_fullScreenRestore","_gameSize","_userScaleFactor","_userScaleTrim","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_tempBounds","_lastReportedCanvasSize","_lastReportedGameSize","_booted","setupScale","EXACT_FIT","SHOW_ALL","RESIZE","USER_SCALE","compat","_orientationChange","orientationChange","_windowResize","windowResize","_fullScreenChange","fullScreenChange","_fullScreenError","fullScreenError","_gameResumed","setGameSize","FlexGrid","fullScreenScaleMode","getParentBounds","visualBounds","updateDimensions","queueUpdate","currentScaleMode","setUserScale","hScale","vScale","hTrim","vTrim","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","updateLayout","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","previousOrientation","previouslyIncorrect","isLandscape","isPortrait","changed","correctnessChanged","scrollTop","reflowGame","setMaximum","setExactFit","isFullScreen","boundingParent","setShowAll","resetCanvas","reflowCanvas","layoutBounds","clientRect","getBoundingClientRect","parentRect","offsetParent","wc","windowBounds","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","multiplier","createFullScreenTarget","fsTarget","background","startFullScreen","allowTrampoline","cleanupCreatedTarget","initData","targetElement","ALLOW_KEYBOARD_INPUT","stopFullScreen","prepScreenMode","enteringFullscreen","createdTarget","scaleSprite","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","bmd","columnWidth","renderShadow","currentAlpha","scaleManager","currentColor","soundInfo","cameraInfo","hideIfUp","downColor","upColor","worldX","worldY","spriteInputInfo","justDown","justUp","inputInfo","spriteBounds","filled","rectangle","ropeSegments","self","segment","spriteInfo","spriteCoords","lineInfo","geom","forceType","quadTree","quadtree","Body","NINJA","Ninja","BOX2D","Box2D","renderBody","bodyInfo","renderBodyInfo","box2d","box2dWorld","renderDebugDraw","box2dBody","displayList","box","scrollY","scrollLeft","scrollX","clientTop","clientLeft","cushion","calibrate","coords","getAspectRatio","inLayoutViewport","primaryFallback","screen","mozOrientation","msOrientation","matchMedia","documentBounds","pageXOffset","pageYOffset","treatAsDesktop","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","getByKey","randomIndex","removeRandomItem","shuffle","transposeMatrix","sourceRowCount","sourceColCount","rotateMatrix","findClosest","arr","NaN","low","high","rotateRight","rotateLeft","numberArray","numberArrayStep","LinkedList","entity","palettes","0","1","2","3","4","5","6","7","8","9","PALETTE_ARNE","PALETTE_JMP","PALETTE_CGA","PALETTE_C64","PALETTE_JAPANESE_MACHINE","pixelWidth","pixelHeight","palette","boundsCustom","boundsFull","boundsNone","positionCustom","positionFluid","positionFull","positionNone","scaleCustom","scaleFluid","scaleFull","scaleNone","customWidth","customHeight","customOffsetX","customOffsetY","ratioH","ratioV","layers","createCustomLayer","layer","FlexLayer","createFluidLayer","createFullLayer","createFixedLayer","persist","fitSprite","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","toABGR","hueToColor","HSVtoRGB","color32","getColor","getColor32","RGBtoString","componentToHex","hexToRGB","hexToColor","webToColor","web","tempColor","getRGB","HSVColorWheel","HSLColorWheel","interpolateColor","color1","color2","steps","currentStep","src1","src2","interpolateColorWithRGB","or","og","ob","interpolateRGB","getRandomColor","getWebRGB","getAlpha","getAlphaFloat","getRed","getGreen","getBlue","blendNormal","blendAverage","blendSubtract","blendNegation","blendLinearDodge","blendLinearBurn","blendLinearLight","blendVividLight","blendPinLight","blendHardMix","blendReflect","blendGlow","blendPhoenix","arcade","ninja","chipmunk","matter","CHIPMUNK","MATTERJS","P2","Matter","startSystem","system","enableAABB","gravity","checkCollision","OVERLAP_BIAS","forceX","sortDirection","LEFT_RIGHT","skipQuadTree","_total","SORT_NONE","RIGHT_LEFT","TOP_BOTTOM","BOTTOM_TOP","updateMotion","velocityDelta","computeVelocity","angularVelocity","angularAcceleration","angularDrag","maxAngular","velocity","acceleration","drag","maxVelocity","allowGravity","object1","object2","overlapCallback","processCallback","collideHandler","collide","collideCallback","sortLeftRight","sortRightLeft","sortTopBottom","sortBottomTop","overlapOnly","collideGroupVsSelf","collideSpriteVsSprite","collideSpriteVsGroup","collideSpriteVsTilemapLayer","collideGroupVsGroup","collideGroupVsTilemapLayer","sprite1","sprite2","separate","items","bounds1","bounds2","group1","group2","body1","body2","none","isCircle","separateCircle","bodyRect","bodyCircle","resultX","resultY","separateX","separateY","onOverlap","onCollide","circleBodyIntersects","getOverlapX","getOverlapY","angleCollision","immovable","customSeparateX","tempVel1","mass","tempVel2","bounce","maxOverlap","deltaAbsX","embedded","touching","overlapX","deltaAbsY","overlapY","moves","friction","nv1","nv2","avg","customSeparateY","getObjectsUnderPointer","getObjectsAtLocation","callbackArg","moveToObject","maxTime","distanceBetween","moveToPointer","angleToPointer","distanceToPointer","moveToXY","distanceToXY","velocityFromAngle","velocityFromRotation","accelerationFromRotation","accelerateToObject","xSpeedMax","ySpeedMax","accelerateToPointer","accelerateToXY","angleToXY","angleBetweenCenters","worldAngleToPointer","allowRotation","preRotation","newVelocity","deltaMax","worldBounce","onWorldBounds","facing","overlapR","collideWorldBounds","any","wasTouching","blocked","tilePadding","syncBounds","isMoving","stopVelocityOnCollide","moveTimer","moveDistance","moveDuration","moveTarget","moveEnd","onMoveComplete","movementCallback","movementCallbackContext","_sx","_sy","updateBounds","asx","asy","updateMovement","collided","stopMovement","stopVelocity","check","bodyBounds","moveFrom","setCircle","onFloor","onCeiling","onWall","TilemapCollision","TILE_BIAS","tilemapLayer","getTiles","separateTile","tile","tilemapLayerOffsetX","tilemapLayerOffsetY","collisionCallback","collisionCallbackContext","faceLeft","faceRight","faceTop","faceBottom","tileCheckX","tileCheckY","collideRight","collideLeft","processTileSeparationX","collideDown","collideUp","processTileSeparationY","ImageCollection","firstgid","imageWidth","imageHeight","imageMargin","imageSpacing","containsImageIndex","imageIndex","gid","Tile","flipped","scanned","setCollisionCallback","setCollision","resetCollision","isInteresting","collides","faces","TilemapParser","version","widthInPixels","heightInPixels","tilesets","imagecollections","tiles","collideIndexes","collision","currentLayer","debugMap","_results","_tempA","NORTH","EAST","SOUTH","WEST","setTileSize","createBlankLayer","addTilesetImage","tileset","tileMargin","tileSpacing","getTilesetIndex","setImage","newSet","Tileset","countX","countY","columns","rows","createFromObjects","CustomClass","adjustY","found","createFromTiles","replacements","getLayer","customClass","lw","lh","createLayer","getLayerIndex","rootLayer","groupEnd","indexes","bodies","getImageIndex","setTileIndexCallback","setTileLocationCallback","recalculate","setCollisionByIndex","calculateFaces","setCollisionBetween","setCollisionByExclusion","setPreventRecalculate","preventingRecalculate","needToRecalculate","above","below","getTileAbove","getTileBelow","getTileLeft","getTileRight","setLayer","hasTile","removeTile","removeTileWorldXY","putTile","putTileWorldXY","searchTileIndex","getTile","nonNull","getTileWorldXY","paste","tileblock","tileA","tileB","swapHandler","removeAllLayers","dump","txt","map","renderSettings","enableScrollDelta","overdrawRatio","copyCanvas","debugSettings","missingImageFill","debuggedTileOverfill","forceFullRedraw","debugAlpha","facingEdgeStroke","collidingTileOverfill","scrollFactorX","scrollFactorY","rayStepRate","_wrap","_mc","renderWidth","renderHeight","_scrollX","_scrollY","ensureSharedCopyCanvas","sharedCopyCanvas","resizeWorld","_fixX","_unfixX","_fixY","_unfixY","getTileX","getTileY","getTileXY","getRayCastTiles","interestingFace","coord","fetchAll","wy","wx","resolveTileset","tileIndex","setIndex","containsTileIndex","resetTilesetCache","setScale","xScale","yScale","shiftCanvas","copyW","copyH","copyContext","renderRegion","lastAlpha","xmax","ymax","baseX","baseY","normStartX","normStartY","renderDeltaScroll","shiftX","shiftY","renderW","renderH","trueTop","trueBottom","trueLeft","trueRight","renderFull","redrawAll","mc","renderDebug","INSERT_NULL","getEmptyData","parseCSV","parseTiledJSON","fields","sliced","curl","compression","encoding","binaryString","atob","bytes","opacity","flippedVal","curi","lastSet","tileproperties","tileProperties","updateTileData","imagewidth","imageheight","newCollection","ti","lastgid","curo","polyline","polygon","ellipse","sid","drawCoords","coordIndex","setSpacing","rowCount","colCount","Particle","autoScale","scaleData","_s","autoAlpha","alphaData","_a","onEmit","setAlphaData","setScaleData","emitters","ID","minParticleSpeed","maxParticleSpeed","minParticleScale","maxParticleScale","minRotation","maxRotation","minParticleAlpha","maxParticleAlpha","particleClass","particleDrag","on","particleAnchor","emitX","emitY","particleBringToTop","particleSendToBack","_minParticleScale","_maxParticleScale","_quantity","_timer","_counter","_flowQuantity","_flowTotal","_explode","emitParticle","makeParticles","particle","rndKey","rndFrame","explode","flow","forceQuantity","setXSpeed","setYSpeed","setRotation","setAlpha","rate","tweenData","at","bullets","autoExpandBulletsGroup","autofire","shots","fireLimit","fireRate","fireRateVariance","fireFrom","fireAngle","bulletInheritSpriteSpeed","bulletAnimation","bulletFrameRandom","bulletFrameCycle","bulletWorldWrap","bulletWorldWrapPadding","bulletAngleOffset","bulletAngleVariance","bulletSpeed","bulletSpeedVariance","bulletLifespan","bulletKillDistance","bulletGravity","bulletRotateToVelocity","bulletKey","bulletFrame","_bulletClass","Bullet","_bulletCollideWorldBounds","_bulletKillType","KILL_WORLD_BOUNDS","customBody","bulletBounds","bulletFrames","bulletFrameIndex","anims","onFire","onKill","onFireLimit","trackedSprite","trackedPointer","trackRotation","trackOffset","_nextFire","_rotatedPoint","KILL_NEVER","KILL_LIFESPAN","KILL_DISTANCE","KILL_WEAPON_BOUNDS","KILL_CAMERA_BOUNDS","KILL_STATIC_BOUNDS","killAll","resetShots","newLimit","fire","trackSprite","trackPointer","moveX","moveY","bullet","bulletManager","killType","bulletKillType","killDistance","rotateToVelocity","bodyDirty","bulletCollideWorldBounds","fireAtPointer","fireAtSprite","fireAtXY","setBulletBodyOffset","setBulletFrames","cycle","addBulletAnimation","debugBodies","onAccess","onError","onTimeout","videoStream","isStreaming","retryLimit","retry","retryInterval","_retryID","_pending","_autoplay","_endCallback","_playCallback","_video","createVideoFromBlob","videoWidth","videoHeight","createVideoFromURL","snapshot","connectToMediaStream","stream","startMediaStream","captureAudio","removeVideoElement","setAttribute","getUserMediaTimeout","getUserMediaSuccess","getUserMediaError","mozSrcObject","createObjectURL","onloadeddata","checkStream","checkVideoProgress","change","playbackRate","setPause","setResume","playHandler","getTracks","track","playing","ended","changeSource","grab","hasChildNodes","firstChild","removeAttribute"],"mappings":"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","file":"phaser-arcade-physics.min.js"}
\ No newline at end of file
diff --git a/build/custom/phaser-arcade-physics.min.js b/build/custom/phaser-arcade-physics.min.js
index 8297997cb2..4c2d6cf281 100644
--- a/build/custom/phaser-arcade-physics.min.js
+++ b/build/custom/phaser-arcade-physics.min.js
@@ -1,23 +1,23 @@
/* Phaser v2.6.2 - http://phaser.io - @photonstorm - (c) 2016 Photon Storm Ltd. */
-(function(){var a=this,b=b||{};return b.game=null,b.WEBGL_RENDERER=0,b.CANVAS_RENDERER=1,b.VERSION="v2.2.9",b._UID=0,"undefined"!=typeof Float32Array?(b.Float32Array=Float32Array,b.Uint16Array=Uint16Array,b.Uint32Array=Uint32Array,b.ArrayBuffer=ArrayBuffer):(b.Float32Array=Array,b.Uint16Array=Array),b.PI_2=2*Math.PI,b.RAD_TO_DEG=180/Math.PI,b.DEG_TO_RAD=Math.PI/180,b.RETINA_PREFIX="@2x",b.DisplayObject=function(){this.position=new b.Point(0,0),this.scale=new b.Point(1,1),this.pivot=new b.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.hitArea=null,this.renderable=!1,this.parent=null,this.worldAlpha=1,this.worldTransform=new b.Matrix,this.worldPosition=new b.Point(0,0),this.worldScale=new b.Point(1,1),this.worldRotation=0,this.filterArea=null,this._sr=0,this._cr=1,this._bounds=new b.Rectangle(0,0,0,0),this._currentBounds=null,this._mask=null,this._cacheAsBitmap=!1,this._cacheIsDirty=!1},b.DisplayObject.prototype.constructor=b.DisplayObject,b.DisplayObject.prototype={destroy:function(){if(this.children){for(var a=this.children.length;a--;)this.children[a].destroy();this.children=[]}this.hitArea=null,this.parent=null,this.worldTransform=null,this.filterArea=null,this.renderable=!1,this._bounds=null,this._currentBounds=null,this._mask=null,this._destroyCachedSprite()},updateTransform:function(a){if(!a&&!this.parent&&!this.game)return this;var c=this.parent;a?c=a:this.parent||(c=this.game.world);var d,e,f,g,h,i,j=c.worldTransform,k=this.worldTransform;return this.rotation%b.PI_2?(this.rotation!==this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation)),d=this._cr*this.scale.x,e=this._sr*this.scale.x,f=-this._sr*this.scale.y,g=this._cr*this.scale.y,h=this.position.x,i=this.position.y,(this.pivot.x||this.pivot.y)&&(h-=this.pivot.x*d+this.pivot.y*f,i-=this.pivot.x*e+this.pivot.y*g),k.a=d*j.a+e*j.c,k.b=d*j.b+e*j.d,k.c=f*j.a+g*j.c,k.d=f*j.b+g*j.d,k.tx=h*j.a+i*j.c+j.tx,k.ty=h*j.b+i*j.d+j.ty):(d=this.scale.x,g=this.scale.y,h=this.position.x-this.pivot.x*d,i=this.position.y-this.pivot.y*g,k.a=d*j.a,k.b=d*j.b,k.c=g*j.c,k.d=g*j.d,k.tx=h*j.a+i*j.c+j.tx,k.ty=h*j.b+i*j.d+j.ty),this.worldAlpha=this.alpha*c.worldAlpha,this.worldPosition.set(k.tx,k.ty),this.worldScale.set(this.scale.x*Math.sqrt(k.a*k.a+k.c*k.c),this.scale.y*Math.sqrt(k.b*k.b+k.d*k.d)),this.worldRotation=Math.atan2(-k.c,k.d),this._currentBounds=null,this.transformCallback&&this.transformCallback.call(this.transformCallbackContext,k,j),this},preUpdate:function(){},generateTexture:function(a,c,d){var e=this.getLocalBounds(),f=new b.RenderTexture(0|e.width,0|e.height,d,c,a);return b.DisplayObject._tempMatrix.tx=-e.x,b.DisplayObject._tempMatrix.ty=-e.y,f.render(this,b.DisplayObject._tempMatrix),f},updateCache:function(){return this._generateCachedSprite(),this},toGlobal:function(a){return this.updateTransform(),this.worldTransform.apply(a)},toLocal:function(a,b){return b&&(a=b.toGlobal(a)),this.updateTransform(),this.worldTransform.applyInverse(a)},_renderCachedSprite:function(a){this._cachedSprite.worldAlpha=this.worldAlpha,a.gl?b.Sprite.prototype._renderWebGL.call(this._cachedSprite,a):b.Sprite.prototype._renderCanvas.call(this._cachedSprite,a)},_generateCachedSprite:function(){this._cacheAsBitmap=!1;var a=this.getLocalBounds();if(a.width=Math.max(1,Math.ceil(a.width)),a.height=Math.max(1,Math.ceil(a.height)),this.updateTransform(),this._cachedSprite)this._cachedSprite.texture.resize(a.width,a.height);else{var c=new b.RenderTexture(a.width,a.height);this._cachedSprite=new b.Sprite(c),this._cachedSprite.worldTransform=this.worldTransform}var d=this._filters;this._filters=null,this._cachedSprite.filters=d,b.DisplayObject._tempMatrix.tx=-a.x,b.DisplayObject._tempMatrix.ty=-a.y,this._cachedSprite.texture.render(this,b.DisplayObject._tempMatrix,!0),this._cachedSprite.anchor.x=-(a.x/a.width),this._cachedSprite.anchor.y=-(a.y/a.height),this._filters=d,this._cacheAsBitmap=!0},_destroyCachedSprite:function(){this._cachedSprite&&(this._cachedSprite.texture.destroy(!0),this._cachedSprite=null)}},b.DisplayObject.prototype.displayObjectUpdateTransform=b.DisplayObject.prototype.updateTransform,Object.defineProperties(b.DisplayObject.prototype,{x:{get:function(){return this.position.x},set:function(a){this.position.x=a}},y:{get:function(){return this.position.y},set:function(a){this.position.y=a}},worldVisible:{get:function(){if(this.visible){var a=this.parent;do{if(!a.visible)return!1;a=a.parent}while(a);return!0}return!1}},mask:{get:function(){return this._mask},set:function(a){this._mask&&(this._mask.isMask=!1),this._mask=a,a&&(this._mask.isMask=!0)}},filters:{get:function(){return this._filters},set:function(a){if(Array.isArray(a)){for(var c=[],d=0;d=0&&b<=this.children.length)return a.parent&&a.parent.removeChild(a),a.parent=this,this.children.splice(b,0,a),a;throw new Error(a+"addChildAt: The index "+b+" supplied is out of bounds "+this.children.length)},b.DisplayObjectContainer.prototype.swapChildren=function(a,b){if(a!==b){var c=this.getChildIndex(a),d=this.getChildIndex(b);if(c<0||d<0)throw new Error("swapChildren: Both the supplied DisplayObjects must be a child of the caller.");this.children[c]=b,this.children[d]=a}},b.DisplayObjectContainer.prototype.getChildIndex=function(a){var b=this.children.indexOf(a);if(b===-1)throw new Error("The supplied DisplayObject must be a child of the caller");return b},b.DisplayObjectContainer.prototype.setChildIndex=function(a,b){if(b<0||b>=this.children.length)throw new Error("The supplied index is out of bounds");var c=this.getChildIndex(a);this.children.splice(c,1),this.children.splice(b,0,a)},b.DisplayObjectContainer.prototype.getChildAt=function(a){if(a<0||a>=this.children.length)throw new Error("getChildAt: Supplied index "+a+" does not exist in the child list, or the supplied DisplayObject must be a child of the caller");return this.children[a]},b.DisplayObjectContainer.prototype.removeChild=function(a){var b=this.children.indexOf(a);if(b!==-1)return this.removeChildAt(b)},b.DisplayObjectContainer.prototype.removeChildAt=function(a){var b=this.getChildAt(a);return b&&(b.parent=void 0,this.children.splice(a,1)),b},b.DisplayObjectContainer.prototype.removeChildren=function(a,b){void 0===a&&(a=0),void 0===b&&(b=this.children.length);var c=b-a;if(c>0&&c<=b){for(var d=this.children.splice(begin,c),e=0;eh?l:h,m=m>i?m:i)}var p=this._bounds;if(!n){p=new b.Rectangle;var q=p.x,r=p.width+p.x,s=p.y,t=p.height+p.y,u=this.worldTransform,v=u.a,w=u.b,x=u.c,y=u.d,z=u.tx,A=u.ty,B=v*r+x*t+z,C=y*t+w*r+A,D=v*q+x*t+z,E=y*t+w*q+A,F=v*q+x*s+z,G=y*s+w*q+A,H=v*r+x*s+z,I=y*s+w*r+A;l=B,m=C,j=B,k=C,j=Dl?D:l,l=F>l?F:l,l=H>l?H:l,m=E>m?E:m,m=G>m?G:m,m=I>m?I:m}if(p.x=j,p.y=k,p.width=l-j,p.height=m-k,c)for(a.worldTransform=f,e=0;eo?t:o,o=v>o?v:o,o=x>o?x:o,o=z>o?z:o,p=u>p?u:p,p=w>p?w:p,p=y>p?y:p,p=A>p?A:p}var B=this._bounds;return B.x=q,B.width=o-q,B.y=r,B.height=p-r,this._currentBounds=B,B},b.Sprite.prototype._renderWebGL=function(a,b){if(this.visible&&!(this.alpha<=0)&&this.renderable){var c=this.worldTransform;if(b&&(c=b),this._mask||this._filters){var d=a.spriteBatch;this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this);for(var e=0;e>16&255)/255,(a>>8&255)/255,(255&a)/255]},b.rgb2hex=function(a){return(255*a[0]<<16)+(255*a[1]<<8)+255*a[2]},b.canUseNewCanvasBlendModes=function(){if(void 0===document)return!1;var a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/",c="AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==",d=new Image;d.src=a+"AP804Oa6"+c;var e=new Image;e.src=a+"/wCKxvRF"+c;var f=b.CanvasPool.create(this,6,1),g=f.getContext("2d");if(g.globalCompositeOperation="multiply",g.drawImage(d,0,0),g.drawImage(e,2,0),!g.getImageData(2,0,1,1))return!1;var h=g.getImageData(2,0,1,1).data;return b.CanvasPool.remove(this),255===h[0]&&0===h[1]&&0===h[2]},b.getNextPowerOfTwo=function(a){if(a>0&&0===(a&a-1))return a;for(var b=1;b0&&0===(a&a-1)&&b>0&&0===(b&b-1)},b.CanvasPool={create:function(a,c,d){var e,f=b.CanvasPool.getFirst();if(f===-1){var g={parent:a,canvas:document.createElement("canvas")};b.CanvasPool.pool.push(g),e=g.canvas}else b.CanvasPool.pool[f].parent=a,e=b.CanvasPool.pool[f].canvas;return void 0!==c&&(e.width=c,e.height=d),e},getFirst:function(){for(var a=b.CanvasPool.pool,c=0;c=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture);var e=c._uvs;if(e){var f,g,h,i,j=a.anchor.x,k=a.anchor.y;if(c.trim){var l=c.trim;g=l.x-j*l.width,f=g+c.crop.width,i=l.y-k*l.height,h=i+c.crop.height}else f=c.frame.width*(1-j),g=c.frame.width*-j,h=c.frame.height*(1-k),i=c.frame.height*-k;var m=4*this.currentBatchSize*this.vertSize,n=c.baseTexture.resolution,o=d.a/n,p=d.b/n,q=d.c/n,r=d.d/n,s=d.tx,t=d.ty,u=this.colors,v=this.positions;this.renderSession.roundPixels?(v[m]=o*g+q*i+s|0,v[m+1]=r*i+p*g+t|0,v[m+5]=o*f+q*i+s|0,v[m+6]=r*i+p*f+t|0,v[m+10]=o*f+q*h+s|0,v[m+11]=r*h+p*f+t|0,v[m+15]=o*g+q*h+s|0,v[m+16]=r*h+p*g+t|0):(v[m]=o*g+q*i+s,v[m+1]=r*i+p*g+t,v[m+5]=o*f+q*i+s,v[m+6]=r*i+p*f+t,v[m+10]=o*f+q*h+s,v[m+11]=r*h+p*f+t,v[m+15]=o*g+q*h+s,v[m+16]=r*h+p*g+t),v[m+2]=e.x0,v[m+3]=e.y0,v[m+7]=e.x1,v[m+8]=e.y1,v[m+12]=e.x2,v[m+13]=e.y2,v[m+17]=e.x3,v[m+18]=e.y3;var w=a.tint;u[m+4]=u[m+9]=u[m+14]=u[m+19]=(w>>16)+(65280&w)+((255&w)<<16)+(255*a.worldAlpha<<24),this.sprites[this.currentBatchSize++]=a}},b.WebGLSpriteBatch.prototype.renderTilingSprite=function(a){var c=a.tilingTexture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture),a._uvs||(a._uvs=new b.TextureUvs);var d=a._uvs,e=c.baseTexture.width,f=c.baseTexture.height;a.tilePosition.x%=e*a.tileScaleOffset.x,a.tilePosition.y%=f*a.tileScaleOffset.y;var g=a.tilePosition.x/(e*a.tileScaleOffset.x),h=a.tilePosition.y/(f*a.tileScaleOffset.y),i=a.width/e/(a.tileScale.x*a.tileScaleOffset.x),j=a.height/f/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-g,d.y0=0-h,d.x1=1*i-g,d.y1=0-h,d.x2=1*i-g,d.y2=1*j-h,d.x3=0-g,d.y3=1*j-h;var k=a.tint,l=(k>>16)+(65280&k)+((255&k)<<16)+(255*a.worldAlpha<<24),m=this.positions,n=this.colors,o=a.width,p=a.height,q=a.anchor.x,r=a.anchor.y,s=o*(1-q),t=o*-q,u=p*(1-r),v=p*-r,w=4*this.currentBatchSize*this.vertSize,x=c.baseTexture.resolution,y=a.worldTransform,z=y.a/x,A=y.b/x,B=y.c/x,C=y.d/x,D=y.tx,E=y.ty;m[w++]=z*t+B*v+D,m[w++]=C*v+A*t+E,m[w++]=d.x0,m[w++]=d.y0,n[w++]=l,m[w++]=z*s+B*v+D,m[w++]=C*v+A*s+E,m[w++]=d.x1,m[w++]=d.y1,n[w++]=l,m[w++]=z*s+B*u+D,m[w++]=C*u+A*s+E,m[w++]=d.x2,m[w++]=d.y2,n[w++]=l,m[w++]=z*t+B*u+D,m[w++]=C*u+A*t+E,m[w++]=d.x3,m[w++]=d.y3,n[w++]=l,this.sprites[this.currentBatchSize++]=a},b.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a,c=this.gl;if(this.dirty){this.dirty=!1,c.activeTexture(c.TEXTURE0),c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a=this.defaultShader.shaders[c.id];var d=4*this.vertSize;c.vertexAttribPointer(a.aVertexPosition,2,c.FLOAT,!1,d,0),c.vertexAttribPointer(a.aTextureCoord,2,c.FLOAT,!1,d,8),c.vertexAttribPointer(a.colorAttribute,4,c.UNSIGNED_BYTE,!0,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.positions.subarray(0,4*this.currentBatchSize*this.vertSize);c.bufferSubData(c.ARRAY_BUFFER,0,e)}for(var f,g,h,i,j=0,k=0,l=null,m=this.renderSession.blendModeManager.currentBlendMode,n=null,o=!1,p=!1,q=0,r=this.currentBatchSize;q0&&(s=!1),(l!==f&&!s||o||p)&&(this.renderBatch(l,j,k),k=q,j=0,l=f,o&&(m=g,this.renderSession.blendModeManager.setBlendMode(m)),p)){n=h,a=n.shaders[c.id],a||(a=new b.PixiShader(c),a.fragmentSrc=n.fragmentSrc,a.uniforms=n.uniforms,a.init(),n.shaders[c.id]=a),this.renderSession.shaderManager.setShader(a),a.dirty&&a.syncUniforms();var t=this.renderSession.projection;c.uniform2f(a.projectionVector,t.x,t.y);var u=this.renderSession.offset;c.uniform2f(a.offsetVector,u.x,u.y)}j++}this.renderBatch(l,j,k),this.currentBatchSize=0}},b.WebGLSpriteBatch.prototype.renderBatch=function(a,b,c){if(0!==b){var d=this.gl;if(a._dirty[d.id]){if(!this.renderSession.renderer.updateTexture(a))return}else d.bindTexture(d.TEXTURE_2D,a._glTextures[d.id]);d.drawElements(d.TRIANGLES,6*b,d.UNSIGNED_SHORT,6*c*2),this.renderSession.drawCount++}},b.WebGLSpriteBatch.prototype.stop=function(){this.flush(),this.dirty=!0},b.WebGLSpriteBatch.prototype.start=function(){this.dirty=!0},b.WebGLSpriteBatch.prototype.destroy=function(){this.vertices=null,this.indices=null,this.gl.deleteBuffer(this.vertexBuffer),this.gl.deleteBuffer(this.indexBuffer),this.currentBaseTexture=null,this.gl=null},b.WebGLFastSpriteBatch=function(a){this.vertSize=10,this.maxSize=6e3,this.size=this.maxSize;var c=4*this.size*this.vertSize,d=6*this.maxSize;this.vertices=new b.Float32Array(c),this.indices=new b.Uint16Array(d),this.vertexBuffer=null,this.indexBuffer=null,this.lastIndexCount=0;for(var e=0,f=0;e=this.size&&this.flush()}},b.WebGLFastSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.currentBaseTexture._glTextures[a.id]||this.renderSession.renderer.updateTexture(this.currentBaseTexture,a),a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var b=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,b)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLFastSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.start=function(){var a=this.gl;a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var b=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,b.x,b.y),a.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var c=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,c,0),a.vertexAttribPointer(this.shader.aPositionCoord,2,a.FLOAT,!1,c,8),a.vertexAttribPointer(this.shader.aScale,2,a.FLOAT,!1,c,16),a.vertexAttribPointer(this.shader.aRotation,1,a.FLOAT,!1,c,24),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,c,28),a.vertexAttribPointer(this.shader.colorAttribute,1,a.FLOAT,!1,c,36)},b.WebGLFilterManager=function(){this.filterStack=[],this.offsetX=0,this.offsetY=0},b.WebGLFilterManager.prototype.constructor=b.WebGLFilterManager,b.WebGLFilterManager.prototype.setContext=function(a){this.gl=a,this.texturePool=[],this.initShaderBuffers()},b.WebGLFilterManager.prototype.begin=function(a,b){this.renderSession=a,this.defaultShader=a.shaderManager.defaultShader;var c=this.renderSession.projection;this.width=2*c.x,this.height=2*-c.y,this.buffer=b},b.WebGLFilterManager.prototype.pushFilter=function(a){var c=this.gl,d=this.renderSession.projection,e=this.renderSession.offset;a._filterArea=a.target.filterArea||a.target.getBounds(),a._previous_stencil_mgr=this.renderSession.stencilManager,this.renderSession.stencilManager=new b.WebGLStencilManager,this.renderSession.stencilManager.setContext(c),c.disable(c.STENCIL_TEST),this.filterStack.push(a);var f=a.filterPasses[0];this.offsetX+=a._filterArea.x,this.offsetY+=a._filterArea.y;var g=this.texturePool.pop();g?g.resize(this.width*this.renderSession.resolution,this.height*this.renderSession.resolution):g=new b.FilterTexture(this.gl,this.width*this.renderSession.resolution,this.height*this.renderSession.resolution),c.bindTexture(c.TEXTURE_2D,g.texture);var h=a._filterArea,i=f.padding;h.x-=i,h.y-=i,h.width+=2*i,h.height+=2*i,h.x<0&&(h.x=0),h.width>this.width&&(h.width=this.width),h.y<0&&(h.y=0),h.height>this.height&&(h.height=this.height),c.bindFramebuffer(c.FRAMEBUFFER,g.frameBuffer),c.viewport(0,0,h.width*this.renderSession.resolution,h.height*this.renderSession.resolution),d.x=h.width/2,d.y=-h.height/2,e.x=-h.x,e.y=-h.y,c.colorMask(!0,!0,!0,!0),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),a._glFilterTexture=g},b.WebGLFilterManager.prototype.popFilter=function(){var a=this.gl,c=this.filterStack.pop(),d=c._filterArea,e=c._glFilterTexture,f=this.renderSession.projection,g=this.renderSession.offset;if(c.filterPasses.length>1){a.viewport(0,0,d.width*this.renderSession.resolution,d.height*this.renderSession.resolution),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=d.height,this.vertexArray[2]=d.width,this.vertexArray[3]=d.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=d.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=d.width/this.width,this.uvArray[5]=d.height/this.height,this.uvArray[6]=d.width/this.width,this.uvArray[7]=d.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);var h=e,i=this.texturePool.pop();i||(i=new b.FilterTexture(this.gl,this.width*this.renderSession.resolution,this.height*this.renderSession.resolution)),i.resize(this.width*this.renderSession.resolution,this.height*this.renderSession.resolution),a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var j=0;j0?a.enable(a.STENCIL_TEST):a.disable(a.STENCIL_TEST),this.applyFilterPass(m,d,n,o),this.texturePool.push(e),c._glFilterTexture=null},b.WebGLFilterManager.prototype.applyFilterPass=function(a,c,d,e){var f=this.gl,g=a.shaders[f.id];g||(g=new b.PixiShader(f),g.fragmentSrc=a.fragmentSrc,g.uniforms=a.uniforms,g.init(),a.shaders[f.id]=g),this.renderSession.shaderManager.setShader(g),f.uniform2f(g.projectionVector,d/2,-e/2),f.uniform2f(g.offsetVector,0,0),a.uniforms.dimensions&&(a.uniforms.dimensions.value[0]=this.width,a.uniforms.dimensions.value[1]=this.height,a.uniforms.dimensions.value[2]=this.vertexArray[0],a.uniforms.dimensions.value[3]=this.vertexArray[5]),g.syncUniforms(),f.bindBuffer(f.ARRAY_BUFFER,this.vertexBuffer),f.vertexAttribPointer(g.aVertexPosition,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ARRAY_BUFFER,this.uvBuffer),f.vertexAttribPointer(g.aTextureCoord,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ARRAY_BUFFER,this.colorBuffer),f.vertexAttribPointer(g.colorAttribute,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,this.indexBuffer),f.drawElements(f.TRIANGLES,6,f.UNSIGNED_SHORT,0),this.renderSession.drawCount++},b.WebGLFilterManager.prototype.initShaderBuffers=function(){var a=this.gl;this.vertexBuffer=a.createBuffer(),this.uvBuffer=a.createBuffer(),this.colorBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.vertexArray=new b.Float32Array([0,0,1,0,0,1,1,1]),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertexArray,a.STATIC_DRAW),this.uvArray=new b.Float32Array([0,0,1,0,0,1,1,1]),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),a.bufferData(a.ARRAY_BUFFER,this.uvArray,a.STATIC_DRAW),this.colorArray=new b.Float32Array([1,16777215,1,16777215,1,16777215,1,16777215]),a.bindBuffer(a.ARRAY_BUFFER,this.colorBuffer),a.bufferData(a.ARRAY_BUFFER,this.colorArray,a.STATIC_DRAW),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,1,3,2]),a.STATIC_DRAW)},b.WebGLFilterManager.prototype.destroy=function(){var a=this.gl;this.filterStack=null,this.offsetX=0,this.offsetY=0;for(var b=0;b=0;a--){var c=this._glTextures[a],d=b.glContexts[a];d&&c&&d.deleteTexture(c)}this._glTextures.length=0,this.dirty()},b.BaseTexture.fromCanvas=function(a,c){return 0===a.width&&(a.width=1),0===a.height&&(a.height=1),new b.BaseTexture(a,c)},b.TextureSilentFail=!1,b.Texture=function(a,c,d,e){this.noFrame=!1,c||(this.noFrame=!0,c=new b.Rectangle(0,0,1,1)),a instanceof b.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=c,this.trim=e,this.valid=!1,this.isTiling=!1,this.requiresUpdate=!1,this.requiresReTint=!1,this._uvs=null,this.width=0,this.height=0,this.crop=d||new b.Rectangle(0,0,1,1),a.hasLoaded&&(this.noFrame&&(c=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(c))},b.Texture.prototype.constructor=b.Texture,b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame)},b.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy(),this.valid=!1},b.Texture.prototype.setFrame=function(a){if(this.noFrame=!1,this.frame=a,this.width=a.width,this.height=a.height,this.crop.x=a.x,this.crop.y=a.y,this.crop.width=a.width,this.crop.height=a.height,!this.trim&&(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height)){if(!b.TextureSilentFail)throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);return void(this.valid=!1)}this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&this._updateUvs()},b.Texture.prototype._updateUvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.RenderTexture=function(a,c,d,e,f){if(this.width=a||100,this.height=c||100,this.resolution=f||1,this.frame=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.crop=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution,this.baseTexture._glTextures=[],this.baseTexture.resolution=this.resolution,this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,b.Texture.call(this,this.baseTexture,new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution)),this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var g=this.renderer.gl;this.baseTexture._dirty[g.id]=!1,this.textureBuffer=new b.FilterTexture(g,this.width,this.height,this.baseTexture.scaleMode),this.baseTexture._glTextures[g.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(.5*this.width,.5*-this.height)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width*this.resolution,this.height*this.resolution),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,this.tempMatrix=new Phaser.Matrix,this._updateUvs()},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){a===this.width&&c===this.height||(this.valid=a>0&&c>0,this.width=a,this.height=c,this.frame.width=this.crop.width=a*this.resolution,this.frame.height=this.crop.height=c*this.resolution,d&&(this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.valid&&this.textureBuffer.resize(this.width,this.height))},b.RenderTexture.prototype.clear=function(){this.valid&&(this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear())},b.RenderTexture.prototype.renderWebGL=function(a,b,c){if(this.valid&&0!==a.alpha){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1);for(var e=0;e0){var v=this.canvasPadding/this.worldTransform.a,w=this.canvasPadding/this.worldTransform.d,x=(j+k+l)/3,y=(m+n+o)/3,z=j-x,A=m-y,B=Math.sqrt(z*z+A*A);j=x+z/B*(B+v),m=y+A/B*(B+w),z=k-x,A=n-y,B=Math.sqrt(z*z+A*A),k=x+z/B*(B+v),n=y+A/B*(B+w),z=l-x,A=o-y,B=Math.sqrt(z*z+A*A),l=x+z/B*(B+v),o=y+A/B*(B+w)}a.save(),a.beginPath(),a.moveTo(j,m),a.lineTo(k,n),a.lineTo(l,o),a.closePath(),a.clip();var C=p*t+s*r+q*u-t*r-s*q-p*u,D=j*t+s*l+k*u-t*l-s*k-j*u,E=p*k+j*r+q*l-k*r-j*q-p*l,F=p*t*l+s*k*r+j*q*u-j*t*r-s*q*l-p*k*u,G=m*t+s*o+n*u-t*o-s*n-m*u,H=p*n+m*r+q*o-n*r-m*q-p*o,I=p*t*o+s*n*r+m*q*u-m*t*r-s*q*o-p*n*u;a.transform(D/C,G/C,E/C,H/C,F/C,I/C),a.drawImage(g,0,0),a.restore()},b.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.vertices,d=c.length/2;this.count++,b.beginPath();for(var e=1;ej?s:j,k=t>k?t:k}if(l===-(1/0)||k===1/0)return b.EmptyRectangle;var u=this._bounds;return u.x=l,u.width=j-l,u.y=m,u.height=k-m,this._currentBounds=u,u},b.Strip.DrawModes={TRIANGLE_STRIP:0,TRIANGLES:1},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.vertices=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;j1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this._width=c||128,this._height=d||128,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point,this.renderable=!0,this.tint=16777215,this.textureDebug=!1,this.blendMode=b.blendModes.NORMAL,this.canvasBuffer=null,this.tilingTexture=null,this.tilePattern=null,this.refreshTexture=!0,this.frameWidth=0,this.frameHeight=0},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible&&this.renderable&&0!==this.alpha){if(this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),this.refreshTexture){if(this.generateTilingTexture(!0,a),!this.tilingTexture)return;this.tilingTexture.needsUpdate&&(a.renderer.updateTexture(this.tilingTexture.baseTexture),this.tilingTexture.needsUpdate=!1)}a.spriteBatch.renderTilingSprite(this);for(var b=0;bv?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.destroy=function(){b.Sprite.prototype.destroy.call(this),this.canvasBuffer&&(this.canvasBuffer.destroy(),this.canvasBuffer=null),this.tileScale=null,this.tileScaleOffset=null,this.tilePosition=null,this.tilingTexture&&(this.tilingTexture.destroy(!0),this.tilingTexture=null)},Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b,b}).call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.7.0 Beta 3",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,CIRCLE:21,RECTANGLE:22,LINE:23,MATRIX:24,POINT:25,ROUNDEDRECTANGLE:26,CREATURE:27,VIDEO:28,PENDING_ATLAS:-1,HORIZONTAL:0,VERTICAL:1,LANDSCAPE:0,PORTRAIT:1,ANGLE_UP:270,ANGLE_DOWN:90,ANGLE_LEFT:180,ANGLE_RIGHT:0,ANGLE_NORTH_EAST:315,ANGLE_NORTH_WEST:225,ANGLE_SOUTH_EAST:45,ANGLE_SOUTH_WEST:135,TOP_LEFT:0,TOP_CENTER:1,TOP_RIGHT:2,LEFT_TOP:3,LEFT_CENTER:4,LEFT_BOTTOM:5,CENTER:6,RIGHT_TOP:7,RIGHT_CENTER:8,RIGHT_BOTTOM:9,BOTTOM_LEFT:10,BOTTOM_CENTER:11,BOTTOM_RIGHT:12,blendModes:{NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1},PIXI:PIXI||{}};if(Math.trunc||(Math.trunc=function(a){return a<0?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function a(b){if(b&&(a.prototype=b),!(this instanceof a))return new a}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;e0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if(void 0===b)var b=0;if(void 0===c)var c=" ";if(void 0===d)var d=3;a=a.toString();var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(a){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);i0&&(this._radius=.5*d),this.type=c.CIRCLE},c.Circle.prototype={circumference:function(){return 2*(Math.PI*this._radius)},random:function(a){void 0===a&&(a=new c.Point);var b=2*Math.PI*Math.random(),d=Math.random()+Math.random(),e=d>1?2-d:d,f=e*Math.cos(b),g=e*Math.sin(b);return a.x=this.x+f*this.radius,a.y=this.y+g*this.radius,a},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,this.diameter,this.diameter)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return void 0===a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return void 0===d&&(d=!1),void 0===e&&(e=new c.Point),d===!0&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return i+j<=k},PIXI.Circle=c.Circle,c.Ellipse=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.ELLIPSE},c.Ellipse.prototype={setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},getBounds:function(){return new c.Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},clone:function(a){return void 0===a||null===a?a=new c.Ellipse(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a},contains:function(a,b){return c.Ellipse.contains(this,a,b)},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random()*Math.PI*2,d=Math.random();return a.x=Math.sqrt(d)*Math.cos(b),a.y=Math.sqrt(d)*Math.sin(b),a.x=this.x+a.x*this.width/2,a.y=this.y+a.y*this.height/2,a},toString:function(){return"[{Phaser.Ellipse (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+")}]"}},c.Ellipse.prototype.constructor=c.Ellipse,Object.defineProperty(c.Ellipse.prototype,"left",{get:function(){return this.x},set:function(a){this.x=a}}),Object.defineProperty(c.Ellipse.prototype,"right",{
-get:function(){return this.x+this.width},set:function(a){a=c&&a<=d&&b>=e&&b<=f},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random();return a.x=this.start.x+b*(this.end.x-this.start.x),a.y=this.start.y+b*(this.end.y-this.start.y),a},coordinatesOnLine:function(a,b){void 0===a&&(a=1),void 0===b&&(b=[]);var c=Math.round(this.start.x),d=Math.round(this.start.y),e=Math.round(this.end.x),f=Math.round(this.end.y),g=Math.abs(e-c),h=Math.abs(f-d),i=c-h&&(k-=h,c+=i),m=0&&p<=1&&q>=0&&q<=1?g:null}return g},c.Line.intersects=function(a,b,d,e){return c.Line.intersectsPoints(a.start,a.end,b.start,b.end,d,e)},c.Line.intersectsRectangle=function(a,b){if(!c.Rectangle.intersects(a,b))return!1;var d=a.start.x,e=a.start.y,f=a.end.x,g=a.end.y,h=b.x,i=b.y,j=b.right,k=b.bottom,l=0;if(d>=h&&d<=j&&e>=i&&e<=k||f>=h&&f<=j&&g>=i&&g<=k)return!0;if(d=h){if(l=e+(g-e)*(h-d)/(f-d),l>i&&l<=k)return!0}else if(d>j&&f<=j&&(l=e+(g-e)*(j-d)/(f-d),l>=i&&l<=k))return!0;if(e=i){if(l=d+(f-d)*(i-e)/(g-e),l>=h&&l<=j)return!0}else if(e>k&&g<=k&&(l=d+(f-d)*(k-e)/(g-e),l>=h&&l<=j))return!0;return!1},c.Line.reflect=function(a,b){return 2*b.normalAngle-3.141592653589793-a.angle},c.Matrix=function(a,b,d,e,f,g){void 0!==a&&null!==a||(a=1),void 0!==b&&null!==b||(b=0),void 0!==d&&null!==d||(d=0),void 0!==e&&null!==e||(e=1),void 0!==f&&null!==f||(f=0),void 0!==g&&null!==g||(g=0),this.a=a,this.b=b,this.c=d,this.d=e,this.tx=f,this.ty=g,this.type=c.MATRIX},c.Matrix.prototype={fromArray:function(a){return this.setTo(a[0],a[1],a[3],a[4],a[2],a[5])},setTo:function(a,b,c,d,e,f){return this.a=a,this.b=b,this.c=c,this.d=d,this.tx=e,this.ty=f,this},clone:function(a){return void 0===a||null===a?a=new c.Matrix(this.a,this.b,this.c,this.d,this.tx,this.ty):(a.a=this.a,a.b=this.b,a.c=this.c,a.d=this.d,a.tx=this.tx,a.ty=this.ty),a},copyTo:function(a){return a.copyFrom(this),a},copyFrom:function(a){return this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.tx=a.tx,this.ty=a.ty,this},toArray:function(a,b){return void 0===b&&(b=new PIXI.Float32Array(9)),a?(b[0]=this.a,b[1]=this.b,b[2]=0,b[3]=this.c,b[4]=this.d,b[5]=0,b[6]=this.tx,b[7]=this.ty,b[8]=1):(b[0]=this.a,b[1]=this.c,b[2]=this.tx,b[3]=this.b,b[4]=this.d,b[5]=this.ty,b[6]=0,b[7]=0,b[8]=1),b},apply:function(a,b){return void 0===b&&(b=new c.Point),b.x=this.a*a.x+this.c*a.y+this.tx,b.y=this.b*a.x+this.d*a.y+this.ty,b},applyInverse:function(a,b){void 0===b&&(b=new c.Point);var d=1/(this.a*this.d+this.c*-this.b),e=a.x,f=a.y;return b.x=this.d*d*e+-this.c*d*f+(this.ty*this.c-this.tx*this.d)*d,b.y=this.a*d*f+-this.b*d*e+(-this.ty*this.a+this.tx*this.b)*d,b},translate:function(a,b){return this.tx+=a,this.ty+=b,this},scale:function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},rotate:function(a){var b=Math.cos(a),c=Math.sin(a),d=this.a,e=this.c,f=this.tx;return this.a=d*b-this.b*c,this.b=d*c+this.b*b,this.c=e*b-this.d*c,this.d=e*c+this.d*b,this.tx=f*b-this.ty*c,this.ty=f*c+this.ty*b,this},append:function(a){var b=this.a,c=this.b,d=this.c,e=this.d;return this.a=a.a*b+a.b*d,this.b=a.a*c+a.b*e,this.c=a.c*b+a.d*d,this.d=a.c*c+a.d*e,this.tx=a.tx*b+a.ty*d+this.tx,this.ty=a.tx*c+a.ty*e+this.ty,this},identity:function(){return this.setTo(1,0,0,1,0,0)}},c.identityMatrix=new c.Matrix,PIXI.Matrix=c.Matrix,PIXI.identityMatrix=c.identityMatrix,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b,this.type=c.POINT},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return void 0===a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return void 0===b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(this.y*-1,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.negative=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return void 0===e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return void 0===e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){void 0===d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){void 0===d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(a.y*-1,a.x)},c.Point.normalize=function(a,b){void 0===b&&(b=new c.Point);var d=a.getMagnitude();return 0!==d&&b.setTo(a.x/d,a.y/d),b},c.Point.rotate=function(a,b,d,e,f,g){if(f&&(e=c.Math.degToRad(e)),void 0===g){a.subtract(b,d);var h=Math.sin(e),i=Math.cos(e),j=i*a.x-h*a.y,k=h*a.x+i*a.y;a.x=j+b,a.y=k+d}else{var l=e+Math.atan2(a.y-d,a.x-b);a.x=b+g*Math.cos(l),a.y=d+g*Math.sin(l)}return a},c.Point.centroid=function(a,b){if(void 0===b&&(b=new c.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(d<1)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return b.copyFrom(a[0]),b;for(var e=0;e0&&this.setTo.apply(this,arguments),this.closed=!0,this.flattened=!1,this.type=c.POLYGON},c.Polygon.prototype={toNumberArray:function(a){void 0===a&&(a=[]);for(var b=0;b0){Array.isArray(a)||(a=Array.prototype.slice.call(arguments));for(var b=Number.MAX_VALUE,c=0,d=a.length;c=this.right?this.width=0:this.width=this.right-a,this.x=a}}),Object.defineProperty(c.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){a<=this.x?this.width=0:this.width=a-this.x}}),Object.defineProperty(c.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(c.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(c.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(c.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(c.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(c.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(c.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(c.Rectangle.prototype,"topLeft",{get:function(){return new c.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"topRight",{get:function(){return new c.Point(this.x+this.width,this.y)},set:function(a){this.right=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){a===!0&&this.setTo(0,0,0,0)}}),c.Rectangle.prototype.constructor=c.Rectangle,c.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},c.Rectangle.inflatePoint=function(a,b){return c.Rectangle.inflate(a,b.x,b.y)},c.Rectangle.size=function(a,b){return void 0===b||null===b?b=new c.Point(a.width,a.height):b.setTo(a.width,a.height),b},c.Rectangle.clone=function(a,b){return void 0===b||null===b?b=new c.Rectangle(a.x,a.y,a.width,a.height):b.setTo(a.x,a.y,a.width,a.height),b},c.Rectangle.contains=function(a,b,c){return!(a.width<=0||a.height<=0)&&(b>=a.x&&b=a.y&&c=a&&e=b&&fb.volume)&&(a.x>=b.x&&a.y>=b.y&&a.rightb.right||a.y>b.bottom)},c.Rectangle.intersectsRaw=function(a,b,c,d,e,f){return void 0===f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1}},c.RoundedRectangle.prototype.constructor=c.RoundedRectangle,PIXI.RoundedRectangle=c.RoundedRectangle,c.Camera=function(a,b,d,e,f,g){this.game=a,this.world=a.world,this.id=0,this.view=new c.Rectangle(d,e,f,g),this.bounds=new c.Rectangle(d,e,f,g),this.deadzone=null,this.visible=!0,this.roundPx=!0,this.atLimit={x:!1,y:!1},this.target=null,this.displayObject=null,this.scale=null,this.totalInView=0,this.lerp=new c.Point(1,1),this.onShakeComplete=new c.Signal,this.onFlashComplete=new c.Signal,this.onFadeComplete=new c.Signal,this.fx=null,this._targetPosition=new c.Point,this._edge=0,this._position=new c.Point,this._shake={intensity:0,duration:0,horizontal:!1,vertical:!1,shakeBounds:!0,x:0,y:0},this._fxDuration=0,this._fxType=0},c.Camera.FOLLOW_LOCKON=0,c.Camera.FOLLOW_PLATFORMER=1,c.Camera.FOLLOW_TOPDOWN=2,c.Camera.FOLLOW_TOPDOWN_TIGHT=3,c.Camera.SHAKE_BOTH=4,c.Camera.SHAKE_HORIZONTAL=5,c.Camera.SHAKE_VERTICAL=6,c.Camera.ENABLE_FX=!0,c.Camera.prototype={boot:function(){this.displayObject=this.game.world,this.scale=this.game.world.scale,this.game.camera=this,c.Graphics&&c.Camera.ENABLE_FX&&(this.fx=new c.Graphics(this.game),this.game.stage.addChild(this.fx))},preUpdate:function(){this.totalInView=0},follow:function(a,b,d,e){void 0===b&&(b=c.Camera.FOLLOW_LOCKON),void 0===d&&(d=1),void 0===e&&(e=1),this.target=a,this.lerp.set(d,e);var f;switch(b){case c.Camera.FOLLOW_PLATFORMER:var g=this.width/8,h=this.height/3;this.deadzone=new c.Rectangle((this.width-g)/2,(this.height-h)/2-.25*h,g,h);break;case c.Camera.FOLLOW_TOPDOWN:f=Math.max(this.width,this.height)/4,this.deadzone=new c.Rectangle((this.width-f)/2,(this.height-f)/2,f,f);break;case c.Camera.FOLLOW_TOPDOWN_TIGHT:f=Math.max(this.width,this.height)/8,this.deadzone=new c.Rectangle((this.width-f)/2,(this.height-f)/2,f,f);break;case c.Camera.FOLLOW_LOCKON:this.deadzone=null;break;default:this.deadzone=null}},unfollow:function(){this.target=null},focusOn:function(a){this.setPosition(Math.round(a.x-this.view.halfWidth),Math.round(a.y-this.view.halfHeight))},focusOnXY:function(a,b){this.setPosition(Math.round(a-this.view.halfWidth),Math.round(b-this.view.halfHeight))},shake:function(a,b,d,e,f){return void 0===a&&(a=.05),void 0===b&&(b=500),void 0===d&&(d=!0),void 0===e&&(e=c.Camera.SHAKE_BOTH),void 0===f&&(f=!0),!(!d&&this._shake.duration>0)&&(this._shake.intensity=a,this._shake.duration=b,this._shake.shakeBounds=f,this._shake.x=0,this._shake.y=0,this._shake.horizontal=e===c.Camera.SHAKE_BOTH||e===c.Camera.SHAKE_HORIZONTAL,this._shake.vertical=e===c.Camera.SHAKE_BOTH||e===c.Camera.SHAKE_VERTICAL,!0)},flash:function(a,b,c){return void 0===a&&(a=16777215),void 0===b&&(b=500),void 0===c&&(c=!1),!(!this.fx||!c&&this._fxDuration>0)&&(this.fx.clear(),this.fx.beginFill(a),this.fx.drawRect(0,0,this.width,this.height),this.fx.endFill(),this.fx.alpha=1,this._fxDuration=b,this._fxType=0,!0)},fade:function(a,b,c){return void 0===a&&(a=0),void 0===b&&(b=500),void 0===c&&(c=!1),!(!this.fx||!c&&this._fxDuration>0)&&(this.fx.clear(),this.fx.beginFill(a),this.fx.drawRect(0,0,this.width,this.height),this.fx.endFill(),this.fx.alpha=0,this._fxDuration=b,this._fxType=1,!0)},update:function(){this._fxDuration>0&&this.updateFX(),this._shake.duration>0&&this.updateShake(),this.bounds&&this.checkBounds(),this.roundPx&&(this.view.floor(),this._shake.x=Math.floor(this._shake.x),this._shake.y=Math.floor(this._shake.y)),this.displayObject.position.x=-this.view.x,this.displayObject.position.y=-this.view.y},updateFX:function(){0===this._fxType?(this.fx.alpha-=this.game.time.elapsedMS/this._fxDuration,this.fx.alpha<=0&&(this._fxDuration=0,this.fx.alpha=0,this.onFlashComplete.dispatch())):(this.fx.alpha+=this.game.time.elapsedMS/this._fxDuration,this.fx.alpha>=1&&(this._fxDuration=0,this.fx.alpha=1,this.onFadeComplete.dispatch()))},updateShake:function(){this._shake.duration-=this.game.time.elapsedMS,this._shake.duration<=0?(this.onShakeComplete.dispatch(),this._shake.x=0,this._shake.y=0):(this._shake.horizontal&&(this._shake.x=this.game.rnd.frac()*this._shake.intensity*this.view.width*2-this._shake.intensity*this.view.width),this._shake.vertical&&(this._shake.y=this.game.rnd.frac()*this._shake.intensity*this.view.height*2-this._shake.intensity*this.view.height))},updateTarget:function(){this._targetPosition.x=this.view.x+this.target.worldPosition.x,this._targetPosition.y=this.view.y+this.target.worldPosition.y,this.deadzone?(this._edge=this._targetPosition.x-this.view.x,this._edgethis.deadzone.right&&(this.view.x=this.game.math.linear(this.view.x,this._targetPosition.x-this.deadzone.right,this.lerp.x)),this._edge=this._targetPosition.y-this.view.y,this._edgethis.deadzone.bottom&&(this.view.y=this.game.math.linear(this.view.y,this._targetPosition.y-this.deadzone.bottom,this.lerp.y))):(this.view.x=this.game.math.linear(this.view.x,this._targetPosition.x-this.view.halfWidth,this.lerp.x),this.view.y=this.game.math.linear(this.view.y,this._targetPosition.y-this.view.halfHeight,this.lerp.y)),this.bounds&&this.checkBounds(),this.roundPx&&this.view.floor(),this.displayObject.position.x=-this.view.x,this.displayObject.position.y=-this.view.y},setBoundsToWorld:function(){this.bounds&&this.bounds.copyFrom(this.game.world.bounds)},checkBounds:function(){this.atLimit.x=!1,this.atLimit.y=!1;var a=this.view.x+this._shake.x,b=this.view.right+this._shake.x,c=this.view.y+this._shake.y,d=this.view.bottom+this._shake.y;a<=this.bounds.x*this.scale.x&&(this.atLimit.x=!0,this.view.x=this.bounds.x*this.scale.x,this._shake.shakeBounds||(this._shake.x=0)),b>=this.bounds.right*this.scale.x&&(this.atLimit.x=!0,this.view.x=this.bounds.right*this.scale.x-this.width,this._shake.shakeBounds||(this._shake.x=0)),c<=this.bounds.top*this.scale.y&&(this.atLimit.y=!0,this.view.y=this.bounds.top*this.scale.y,this._shake.shakeBounds||(this._shake.y=0)),d>=this.bounds.bottom*this.scale.y&&(this.atLimit.y=!0,this.view.y=this.bounds.bottom*this.scale.y-this.height,this._shake.shakeBounds||(this._shake.y=0))},setPosition:function(a,b){this.view.x=a,this.view.y=b,this.bounds&&this.checkBounds()},setSize:function(a,b){this.view.width=a,this.view.height=b},reset:function(){this.target=null,this.view.x=0,this.view.y=0,this._shake.duration=0,this.resetFX()},resetFX:function(){this.fx.clear(),this.fx.alpha=0,this._fxDuration=0}},c.Camera.prototype.constructor=c.Camera,Object.defineProperty(c.Camera.prototype,"x",{get:function(){return this.view.x},set:function(a){this.view.x=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"y",{get:function(){return this.view.y},set:function(a){this.view.y=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"position",{get:function(){return this._position.set(this.view.x,this.view.y),this._position},set:function(a){"undefined"!=typeof a.x&&(this.view.x=a.x),"undefined"!=typeof a.y&&(this.view.y=a.y),this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"width",{get:function(){return this.view.width},set:function(a){this.view.width=a}}),Object.defineProperty(c.Camera.prototype,"height",{get:function(){return this.view.height},set:function(a){this.view.height=a}}),Object.defineProperty(c.Camera.prototype,"shakeIntensity",{get:function(){return this._shake.intensity},set:function(a){this._shake.intensity=a}}),c.State=function(){this.game=null,this.key="",this.add=null,this.make=null,this.camera=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.sound=null,this.scale=null,this.stage=null,this.state=null,this.time=null,this.tweens=null,this.world=null,this.particles=null,this.physics=null,this.rnd=null},c.State.prototype={init:function(){},preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},preRender:function(){},render:function(){},resize:function(){},paused:function(){},resumed:function(){},pauseUpdate:function(){},shutdown:function(){}},c.State.prototype.constructor=c.State,c.StateManager=function(a,b){this.game=a,this.states={},this._pendingState=null,"undefined"!=typeof b&&null!==b&&(this._pendingState=b),this._clearWorld=!1,this._clearCache=!1,this._created=!1,this._args=[],this.current="",this.onStateChange=new c.Signal,this.onInitCallback=null,this.onPreloadCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPreRenderCallback=null,this.onLoadUpdateCallback=null,this.onLoadRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.onShutDownCallback=null},c.StateManager.prototype={boot:function(){this.game.onPause.add(this.pause,this),this.game.onResume.add(this.resume,this),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){void 0===d&&(d=!1);var e;return b instanceof c.State?e=b:"object"==typeof b?(e=b,e.game=this.game):"function"==typeof b&&(e=new b(this.game)),this.states[a]=e,d&&(this.game.isBooted?this.start(a):this._pendingState=a),e},remove:function(a){this.current===a&&(this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onPreRenderCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null),delete this.states[a]},start:function(a,b,c){void 0===b&&(b=!0),void 0===c&&(c=!1),this.checkState(a)&&(this._pendingState=a,this._clearWorld=b,this._clearCache=c,arguments.length>3&&(this._args=Array.prototype.splice.call(arguments,3)))},restart:function(a,b){void 0===a&&(a=!0),void 0===b&&(b=!1),this._pendingState=this.current,this._clearWorld=a,this._clearCache=b,arguments.length>2&&(this._args=Array.prototype.slice.call(arguments,2))},dummy:function(){},preUpdate:function(){
-if(this._pendingState&&this.game.isBooted){var a=this.current;if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.onStateChange.dispatch(this.current,a),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(!0),this.onPreloadCallback.call(this.callbackContext,this.game),0===this.game.load.totalQueuedFiles()&&0===this.game.load.totalQueuedPacks()?this.loadComplete():this.game.load.start()):this.loadComplete()}},clearCurrentState:function(){this.current&&(this.onShutDownCallback&&this.onShutDownCallback.call(this.callbackContext,this.game),this.game.tweens.removeAll(),this.game.camera.reset(),this.game.input.reset(!0),this.game.physics.clear(),this.game.time.removeAll(),this.game.scale.reset(this._clearWorld),this.game.debug&&this.game.debug.reset(),this._clearWorld&&(this.game.world.shutdown(),this._clearCache&&this.game.cache.destroy()))},checkState:function(a){return this.states[a]?!!(this.states[a].preload||this.states[a].create||this.states[a].update||this.states[a].render)||(console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions: preload, create, update or render"),!1):(console.warn("Phaser.StateManager - No state found with the key: "+a),!1)},link:function(a){this.states[a].game=this.game,this.states[a].add=this.game.add,this.states[a].make=this.game.make,this.states[a].camera=this.game.camera,this.states[a].cache=this.game.cache,this.states[a].input=this.game.input,this.states[a].load=this.game.load,this.states[a].math=this.game.math,this.states[a].sound=this.game.sound,this.states[a].scale=this.game.scale,this.states[a].state=this,this.states[a].stage=this.game.stage,this.states[a].time=this.game.time,this.states[a].tweens=this.game.tweens,this.states[a].world=this.game.world,this.states[a].particles=this.game.particles,this.states[a].rnd=this.game.rnd,this.states[a].physics=this.game.physics,this.states[a].key=a},unlink:function(a){this.states[a]&&(this.states[a].game=null,this.states[a].add=null,this.states[a].make=null,this.states[a].camera=null,this.states[a].cache=null,this.states[a].input=null,this.states[a].load=null,this.states[a].math=null,this.states[a].sound=null,this.states[a].scale=null,this.states[a].state=null,this.states[a].stage=null,this.states[a].time=null,this.states[a].tweens=null,this.states[a].world=null,this.states[a].particles=null,this.states[a].rnd=null,this.states[a].physics=null)},setCurrentState:function(a){this.callbackContext=this.states[a],this.link(a),this.onInitCallback=this.states[a].init||this.dummy,this.onPreloadCallback=this.states[a].preload||null,this.onLoadRenderCallback=this.states[a].loadRender||null,this.onLoadUpdateCallback=this.states[a].loadUpdate||null,this.onCreateCallback=this.states[a].create||null,this.onUpdateCallback=this.states[a].update||null,this.onPreRenderCallback=this.states[a].preRender||null,this.onRenderCallback=this.states[a].render||null,this.onResizeCallback=this.states[a].resize||null,this.onPausedCallback=this.states[a].paused||null,this.onResumedCallback=this.states[a].resumed||null,this.onPauseUpdateCallback=this.states[a].pauseUpdate||null,this.onShutDownCallback=this.states[a].shutdown||this.dummy,""!==this.current&&this.game.physics.reset(),this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[]),this.game._kickstart=!0},getCurrentState:function(){return this.states[this.current]},loadComplete:function(){this._created===!1&&this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game),this._created===!1&&this.onCreateCallback?(this._created=!0,this.onCreateCallback.call(this.callbackContext,this.game)):this._created=!0},pause:function(){this._created&&this.onPausedCallback&&this.onPausedCallback.call(this.callbackContext,this.game)},resume:function(){this._created&&this.onResumedCallback&&this.onResumedCallback.call(this.callbackContext,this.game)},update:function(){this._created?this.onUpdateCallback&&this.onUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},pauseUpdate:function(){this._created?this.onPauseUpdateCallback&&this.onPauseUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},preRender:function(a){this._created&&this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game,a)},resize:function(a,b){this.onResizeCallback&&this.onResizeCallback.call(this.callbackContext,a,b)},render:function(){this._created?this.onRenderCallback&&(this.game.renderType===c.CANVAS?(this.game.context.save(),this.game.context.setTransform(1,0,0,1,0,0),this.onRenderCallback.call(this.callbackContext,this.game),this.game.context.restore()):this.onRenderCallback.call(this.callbackContext,this.game)):this.onLoadRenderCallback&&this.onLoadRenderCallback.call(this.callbackContext,this.game)},destroy:function(){this._clearWorld=!0,this._clearCache=!0,this.clearCurrentState(),this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.game=null,this.states={},this._pendingState=null,this.current=""}},c.StateManager.prototype.constructor=c.StateManager,Object.defineProperty(c.StateManager.prototype,"created",{get:function(){return this._created}}),c.Signal=function(){},c.Signal.prototype={_bindings:null,_prevParams:null,memorize:!1,_shouldPropagate:!0,active:!0,_boundDispatch:!1,validateListener:function(a,b){if("function"!=typeof a)throw new Error("Phaser.Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}",b))},_registerListener:function(a,b,d,e,f){var g,h=this._indexOfListener(a,d);if(h!==-1){if(g=this._bindings[h],g.isOnce()!==b)throw new Error("You cannot add"+(b?"":"Once")+"() then add"+(b?"Once":"")+"() the same listener without removing the relationship first.")}else g=new c.SignalBinding(this,a,b,d,e,f),this._addBinding(g);return this.memorize&&this._prevParams&&g.execute(this._prevParams),g},_addBinding:function(a){this._bindings||(this._bindings=[]);var b=this._bindings.length;do b--;while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){if(!this._bindings)return-1;void 0===b&&(b=null);for(var c,d=this._bindings.length;d--;)if(c=this._bindings[d],c._listener===a&&c.context===b)return d;return-1},has:function(a,b){return this._indexOfListener(a,b)!==-1},add:function(a,b,c){this.validateListener(a,"add");var d=[];if(arguments.length>3)for(var e=3;e3)for(var e=3;e=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e,f){void 0===e&&(e=!0);var g=new this.classType(this.game,a,b,c,d);return g.exists=e,g.visible=e,g.alive=e,this.add(g,!1,f)},c.Group.prototype.createMultiple=function(a,b,c,d){void 0===c&&(c=0),void 0===d&&(d=!1),Array.isArray(b)||(b=[b]),Array.isArray(c)||(c=[c]);var e=this,f=[];return b.forEach(function(b){c.forEach(function(c){for(var g=0;gthis.children.length||a===-1&&b===-1)return!1;for(var h=new c.Rectangle(0,0,d,e),i=a*d,j=b*e,k=g;kthis.children.length-1&&(a=0),this.cursor)return this.cursorIndex=a,this.cursor=this.children[this.cursorIndex],this.cursor};c.Group.prototype.next=function(){if(this.cursor)return this.cursorIndex>=this.children.length-1?this.cursorIndex=0:this.cursorIndex++,this.cursor=this.children[this.cursorIndex],this.cursor},c.Group.prototype.previous=function(){if(this.cursor)return 0===this.cursorIndex?this.cursorIndex=this.children.length-1:this.cursorIndex--,this.cursor=this.children[this.cursorIndex],this.cursor},c.Group.prototype.swap=function(a,b){this.swapChildren(a,b),this.updateZ()},c.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a,!1,!0),this.addAt(a,0,!0)),a},c.Group.prototype.moveUp=function(a){if(a.parent===this&&this.getIndex(a)0){var b=this.getIndex(a),c=this.getAt(b-1);c&&this.swap(a,c)}return a},c.Group.prototype.xy=function(a,b,c){return a<0||a>this.children.length?-1:(this.getChildAt(a).x=b,void(this.getChildAt(a).y=c))},c.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},c.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},c.Group.prototype.getByName=function(a){for(var b=0;b0))return!1;var f=b.length;return 1===f?0===d?a[b[0]]=c:1==d?a[b[0]]+=c:2==d?a[b[0]]-=c:3==d?a[b[0]]*=c:4==d&&(a[b[0]]/=c):2===f?0===d?a[b[0]][b[1]]=c:1==d?a[b[0]][b[1]]+=c:2==d?a[b[0]][b[1]]-=c:3==d?a[b[0]][b[1]]*=c:4==d&&(a[b[0]][b[1]]/=c):3===f?0===d?a[b[0]][b[1]][b[2]]=c:1==d?a[b[0]][b[1]][b[2]]+=c:2==d?a[b[0]][b[1]][b[2]]-=c:3==d?a[b[0]][b[1]][b[2]]*=c:4==d&&(a[b[0]][b[1]][b[2]]/=c):4===f&&(0===d?a[b[0]][b[1]][b[2]][b[3]]=c:1==d?a[b[0]][b[1]][b[2]][b[3]]+=c:2==d?a[b[0]][b[1]][b[2]][b[3]]-=c:3==d?a[b[0]][b[1]][b[2]][b[3]]*=c:4==d&&(a[b[0]][b[1]][b[2]][b[3]]/=c)),!0},c.Group.prototype.checkProperty=function(a,b,d,e){return void 0===e&&(e=!1),!(!c.Utils.getProperty(a,b)&&e)&&c.Utils.getProperty(a,b)===d},c.Group.prototype.set=function(a,b,c,d,e,f,g){if(void 0===g&&(g=!1),b=b.split("."),void 0===d&&(d=!1),void 0===e&&(e=!1),(d===!1||d&&a.alive)&&(e===!1||e&&a.visible))return this.setProperty(a,b,c,f,g)},c.Group.prototype.setAll=function(a,b,c,d,e,f){void 0===c&&(c=!1),void 0===d&&(d=!1),void 0===f&&(f=!1),a=a.split("."),e=e||0;for(var g=0;g2){c=[];for(var d=2;d2){e=[];for(var f=2;f2){d=[null];for(var e=2;e2){d=[null];for(var e=2;e2){d=[null];for(var e=2;eb[this._sortProperty]?1:a.zb[this._sortProperty]?-1:0},c.Group.prototype.iterate=function(a,b,d,e,f,g){if(0===this.children.length){if(d===c.Group.RETURN_TOTAL)return 0;if(d===c.Group.RETURN_ALL)return[]}var h=0;if(d===c.Group.RETURN_ALL)var i=[];for(var j=0;j0)return this.children[this.children.length-1]},c.Group.prototype.getBottom=function(){if(this.children.length>0)return this.children[0]},c.Group.prototype.getClosestTo=function(a,b,d){for(var e=Number.MAX_VALUE,f=0,g=null,h=0;he&&(!b||b.call(d,i,f))&&(e=f,g=i))}return g},c.Group.prototype.countLiving=function(){return this.iterate("alive",!0,c.Group.RETURN_TOTAL)},c.Group.prototype.countDead=function(){return this.iterate("alive",!1,c.Group.RETURN_TOTAL)},c.Group.prototype.getRandom=function(a,b){return void 0===a&&(a=0),void 0===b&&(b=this.children.length),0===b?null:c.ArrayUtils.getRandomItem(this.children,a,b)},c.Group.prototype.getRandomExists=function(a,b){var c=this.getAll("exists",!0,a,b);return this.game.rnd.pick(c)},c.Group.prototype.getAll=function(a,b,c,d){void 0===c&&(c=0),void 0===d&&(d=this.children.length);for(var e=[],f=c;f0&&a instanceof c.Group){do a.add(this.children[0],b);while(this.children.length>0);this.hash=[],this.cursor=null}return a},c.Group.prototype.removeAll=function(a,b,c){if(void 0===a&&(a=!1),void 0===b&&(b=!1),void 0===c&&(c=!1),0!==this.children.length){do{!b&&this.children[0].events&&this.children[0].events.onRemovedFromGroup$dispatch(this.children[0],this);var d=this.removeChild(this.children[0]);this.removeFromHash(d),a&&d&&d.destroy(!0,c)}while(this.children.length>0);
-this.hash=[],this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if(void 0===b&&(b=this.children.length-1),void 0===c&&(c=!1),void 0===d&&(d=!1),0!==this.children.length){if(a>b||a<0||b>this.children.length)return!1;for(var e=b;e>=a;){!d&&this.children[e].events&&this.children[e].events.onRemovedFromGroup$dispatch(this.children[e],this);var f=this.removeChild(this.children[e]);this.removeFromHash(f),c&&f&&f.destroy(!0),this.cursor===this.children[e]&&(this.cursor=null),e--}this.updateZ()}},c.Group.prototype.destroy=function(a,b){null===this.game||this.ignoreDestroy||(void 0===a&&(a=!0),void 0===b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,this.pendingDestroy=!1,b||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(c.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,c.Group.RETURN_TOTAL)}}),Object.defineProperty(c.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(c.Group.prototype,"angle",{get:function(){return c.Math.radToDeg(this.rotation)},set:function(a){this.rotation=c.Math.degToRad(a)}}),Object.defineProperty(c.Group.prototype,"centerX",{get:function(){return this.getBounds().centerX},set:function(a){var b=this.getBounds(),c=this.x-b.x;this.x=a+c-b.halfWidth}}),Object.defineProperty(c.Group.prototype,"centerY",{get:function(){return this.getBounds().centerY},set:function(a){var b=this.getBounds(),c=this.y-b.y;this.y=a+c-b.halfHeight}}),Object.defineProperty(c.Group.prototype,"left",{get:function(){return this.getBounds().left},set:function(a){var b=this.getBounds(),c=this.x-b.x;this.x=a+c}}),Object.defineProperty(c.Group.prototype,"right",{get:function(){return this.getBounds().right},set:function(a){var b=this.getBounds(),c=this.x-b.x;this.x=a+c-b.width}}),Object.defineProperty(c.Group.prototype,"top",{get:function(){return this.getBounds().top},set:function(a){var b=this.getBounds(),c=this.y-b.y;this.y=a+c}}),Object.defineProperty(c.Group.prototype,"bottom",{get:function(){return this.getBounds().bottom},set:function(a){var b=this.getBounds(),c=this.y-b.y;this.y=a+c-b.height}}),c.World=function(a){c.Group.call(this,a,null,"__world",!1),this.bounds=new c.Rectangle(0,0,a.width,a.height),this.camera=null,this._definedSize=!1,this._width=a.width,this._height=a.height,this.game.state.onStateChange.add(this.stateChange,this)},c.World.prototype=Object.create(c.Group.prototype),c.World.prototype.constructor=c.World,c.World.prototype.boot=function(){this.camera=new c.Camera(this.game,0,0,0,this.game.width,this.game.height),this.game.stage.addChild(this),this.camera.boot()},c.World.prototype.stateChange=function(){this.x=0,this.y=0,this.camera.reset()},c.World.prototype.setBounds=function(a,b,c,d){this._definedSize=!0,this._width=c,this._height=d,this.bounds.setTo(a,b,c,d),this.x=a,this.y=b,this.camera.bounds&&this.camera.bounds.setTo(a,b,Math.max(c,this.game.width),Math.max(d,this.game.height)),this.game.physics.setBoundsToWorld()},c.World.prototype.resize=function(a,b){this._definedSize&&(athis.bounds.right&&(a.x=this.bounds.left)),e&&(a.y+a._currentBounds.heightthis.bounds.bottom&&(a.y=this.bounds.top))):(d&&a.x+bthis.bounds.right&&(a.x=this.bounds.left-b),e&&a.y+bthis.bounds.bottom&&(a.y=this.bounds.top-b))},Object.defineProperty(c.World.prototype,"width",{get:function(){return this.bounds.width},set:function(a){a1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiraling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(this.time.desiredFpsMult),c++,!this.forceSingleUpdate||1!==c);)this.time.refresh();c>this._lastCount?this._spiraling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: Maximum limit of "+c.Input.MAX_POINTERS+" pointers reached."),null;var a=this.pointers.length+1,b=new c.Pointer(this.game,a,c.PointerMode.TOUCH);return this.pointers.push(b),this["pointer"+a]=b,b},update:function(){if(this.keyboard&&this.keyboard.update(),this.pollRate>0&&this._pollCounter=0&&this.countActivePointers(this.maxPointers)>=this.maxPointers)return null;if(!this.pointer1.active)return this.pointer1.start(a);if(!this.pointer2.active)return this.pointer2.start(a);for(var b=2;b0;c++){var d=this.pointers[c];d.active&&b--}return a-b},getPointer:function(a){void 0===a&&(a=!1);for(var b=0;b=g&&this._localPoint.x=h&&this._localPoint.y=g&&this._localPoint.x=h&&this._localPoint.y0&&this._pollCounterthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp&&this.timeUp+a>this.game.time.time},reset:function(){this.isDown=!1,this.isUp=!0,this.timeDown=this.game.time.time,this.repeats=0,this.altKey=!1,this.shiftKey=!1,this.ctrlKey=!1},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.parent=null,this.game=null}},c.DeviceButton.prototype.constructor=c.DeviceButton,Object.defineProperty(c.DeviceButton.prototype,"duration",{get:function(){return this.isUp?-1:this.game.time.time-this.timeDown}}),c.Pointer=function(a,b,d){this.game=a,this.id=b,this.type=c.POINTER,this.exists=!0,this.identifier=0,this.pointerId=null,this.pointerMode=d||c.PointerMode.CURSOR|c.PointerMode.CONTACT,this.target=null,this.button=null,this.leftButton=new c.DeviceButton(this,c.Pointer.LEFT_BUTTON),this.middleButton=new c.DeviceButton(this,c.Pointer.MIDDLE_BUTTON),this.rightButton=new c.DeviceButton(this,c.Pointer.RIGHT_BUTTON),this.backButton=new c.DeviceButton(this,c.Pointer.BACK_BUTTON),this.forwardButton=new c.DeviceButton(this,c.Pointer.FORWARD_BUTTON),this.eraserButton=new c.DeviceButton(this,c.Pointer.ERASER_BUTTON),this._holdSent=!1,this._history=[],this._nextDrop=0,this._stateReset=!1,this.withinGame=!1,this.clientX=-1,this.clientY=-1,this.pageX=-1,this.pageY=-1,this.screenX=-1,this.screenY=-1,this.rawMovementX=0,this.rawMovementY=0,this.movementX=0,this.movementY=0,this.x=-1,this.y=-1,this.isMouse=0===b,this.isDown=!1,this.isUp=!0,this.timeDown=0,this.timeUp=0,this.previousTapTime=0,this.totalTouches=0,this.msSinceLastClick=Number.MAX_VALUE,this.targetObject=null,this.interactiveCandidates=[],this.active=!1,this.dirty=!1,this.position=new c.Point,this.positionDown=new c.Point,this.positionUp=new c.Point,this.circle=new c.Circle(0,0,44),this._clickTrampolines=null,this._trampolineTargetObject=null},c.Pointer.NO_BUTTON=0,c.Pointer.LEFT_BUTTON=1,c.Pointer.RIGHT_BUTTON=2,c.Pointer.MIDDLE_BUTTON=4,c.Pointer.BACK_BUTTON=8,c.Pointer.FORWARD_BUTTON=16,c.Pointer.ERASER_BUTTON=32,c.Pointer.prototype={resetButtons:function(){this.isDown=!1,this.isUp=!0,this.isMouse&&(this.leftButton.reset(),this.middleButton.reset(),this.rightButton.reset(),this.backButton.reset(),this.forwardButton.reset(),this.eraserButton.reset())},processButtonsDown:function(a,b){c.Pointer.LEFT_BUTTON&a&&this.leftButton.start(b),c.Pointer.RIGHT_BUTTON&a&&this.rightButton.start(b),c.Pointer.MIDDLE_BUTTON&a&&this.middleButton.start(b),c.Pointer.BACK_BUTTON&a&&this.backButton.start(b),c.Pointer.FORWARD_BUTTON&a&&this.forwardButton.start(b),c.Pointer.ERASER_BUTTON&a&&this.eraserButton.start(b)},processButtonsUp:function(a,b){a===c.Mouse.LEFT_BUTTON&&this.leftButton.stop(b),a===c.Mouse.RIGHT_BUTTON&&this.rightButton.stop(b),a===c.Mouse.MIDDLE_BUTTON&&this.middleButton.stop(b),a===c.Mouse.BACK_BUTTON&&this.backButton.stop(b),a===c.Mouse.FORWARD_BUTTON&&this.forwardButton.stop(b),5===a&&this.eraserButton.stop(b)},updateButtons:function(a){this.button=a.button;var b="down"===a.type.toLowerCase().substr(-4);void 0!==a.buttons?b?this.processButtonsDown(a.buttons,a):this.processButtonsUp(a.button,a):b?this.leftButton.start(a):(this.leftButton.stop(a),this.rightButton.stop(a)),1===a.buttons&&a.ctrlKey&&this.leftButton.isDown&&(this.leftButton.stop(a),this.rightButton.start(a)),this.isUp=!0,this.isDown=!1,(this.leftButton.isDown||this.rightButton.isDown||this.middleButton.isDown||this.backButton.isDown||this.forwardButton.isDown||this.eraserButton.isDown)&&(this.isUp=!1,this.isDown=!0)},start:function(a){var b=this.game.input;return a.pointerId&&(this.pointerId=a.pointerId),this.identifier=a.identifier,this.target=a.target,this.isMouse?this.updateButtons(a):(this.isDown=!0,this.isUp=!1),this.active=!0,this.withinGame=!0,this.dirty=!1,this._history=[],this._clickTrampolines=null,this._trampolineTargetObject=null,this.msSinceLastClick=this.game.time.time-this.timeDown,this.timeDown=this.game.time.time,this._holdSent=!1,this.move(a,!0),this.positionDown.setTo(this.x,this.y),(b.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||b.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||b.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===b.totalActivePointers)&&(b.x=this.x,b.y=this.y,b.position.setTo(this.x,this.y),b.onDown.dispatch(this,a),b.resetSpeed(this.x,this.y)),this._stateReset=!1,this.totalTouches++,null!==this.targetObject&&this.targetObject._touchedHandler(this),this},update:function(){var a=this.game.input;this.active&&(this.dirty&&(a.interactiveItems.total>0&&this.processInteractiveObjects(!1),this.dirty=!1),this._holdSent===!1&&this.duration>=a.holdRate&&((a.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||a.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||a.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===a.totalActivePointers)&&a.onHold.dispatch(this),this._holdSent=!0),a.recordPointerHistory&&this.game.time.time>=this._nextDrop&&(this._nextDrop=this.game.time.time+a.recordRate,this._history.push({x:this.position.x,y:this.position.y}),this._history.length>a.recordLimit&&this._history.shift()))},move:function(a,b){var d=this.game.input;if(!d.pollLocked){if(void 0===b&&(b=!1),void 0!==a.button&&(this.button=a.button),b&&this.isMouse&&this.updateButtons(a),this.clientX=a.clientX,this.clientY=a.clientY,this.pageX=a.pageX,this.pageY=a.pageY,this.screenX=a.screenX,this.screenY=a.screenY,this.isMouse&&d.mouse.locked&&!b&&(this.rawMovementX=a.movementX||a.mozMovementX||a.webkitMovementX||0,this.rawMovementY=a.movementY||a.mozMovementY||a.webkitMovementY||0,this.movementX+=this.rawMovementX,this.movementY+=this.rawMovementY),this.x=(this.pageX-this.game.scale.offset.x)*d.scale.x,this.y=(this.pageY-this.game.scale.offset.y)*d.scale.y,this.position.setTo(this.x,this.y),this.circle.x=this.x,this.circle.y=this.y,(d.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||d.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||d.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===d.totalActivePointers)&&(d.activePointer=this,d.x=this.x,d.y=this.y,d.position.setTo(d.x,d.y),d.circle.x=d.x,d.circle.y=d.y),this.withinGame=this.game.scale.bounds.contains(this.pageX,this.pageY),this.game.paused)return this;for(var e=d.moveCallbacks.length;e--;)d.moveCallbacks[e].callback.call(d.moveCallbacks[e].context,this,this.x,this.y,b);return null!==this.targetObject&&this.targetObject.isDragged===!0?this.targetObject.update(this)===!1&&(this.targetObject=null):d.interactiveItems.total>0&&this.processInteractiveObjects(b),this}},processInteractiveObjects:function(a){var b=0,c=-1,d=null,e=this.game.input.interactiveItems.first;for(this.interactiveCandidates=[];e;)e.checked=!1,e.validForInput(c,b,!1)&&(e.checked=!0,(a&&e.checkPointerDown(this,!0)||!a&&e.checkPointerOver(this,!0))&&(b=e.sprite.renderOrderID,c=e.priorityID,d=e,this.interactiveCandidates.push(e))),e=this.game.input.interactiveItems.next;for(e=this.game.input.interactiveItems.first;e;)!e.checked&&e.validForInput(c,b,!0)&&(a&&e.checkPointerDown(this,!1)||!a&&e.checkPointerOver(this,!1))&&(b=e.sprite.renderOrderID,c=e.priorityID,d=e,this.interactiveCandidates.push(e)),e=this.game.input.interactiveItems.next;return this.game.input.customCandidateHandler&&(d=this.game.input.customCandidateHandler.call(this.game.input.customCandidateHandlerContext,this,this.interactiveCandidates,d)),this.swapTarget(d,!1),null!==this.targetObject},swapTarget:function(a,b){void 0===b&&(b=!1),null===a?this.targetObject&&(this.targetObject._pointerOutHandler(this,b),this.targetObject=null):null===this.targetObject?(this.targetObject=a,a._pointerOverHandler(this,b)):this.targetObject===a?a.update(this)===!1&&(this.targetObject=null):(this.targetObject._pointerOutHandler(this,b),this.targetObject=a,this.targetObject._pointerOverHandler(this,b))},leave:function(a){this.withinGame=!1,this.move(a,!1)},stop:function(a){var b=this.game.input;return this._stateReset&&this.withinGame?void a.preventDefault():(this.timeUp=this.game.time.time,(b.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||b.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||b.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===b.totalActivePointers)&&(b.onUp.dispatch(this,a),this.duration>=0&&this.duration<=b.tapRate&&(this.timeUp-this.previousTapTime0&&(this.active=!1),this.withinGame=this.game.scale.bounds.contains(a.pageX,a.pageY),this.pointerId=null,this.identifier=null,this.positionUp.setTo(this.x,this.y),this.isMouse===!1&&b.currentPointers--,b.interactiveItems.callAll("_releasedHandler",this),this._clickTrampolines&&(this._trampolineTargetObject=this.targetObject),this.targetObject=null,this)},justPressed:function(a){return a=a||this.game.input.justPressedRate,this.isDown===!0&&this.timeDown+a>this.game.time.time},justReleased:function(a){return a=a||this.game.input.justReleasedRate,this.isUp&&this.timeUp+a>this.game.time.time},addClickTrampoline:function(a,b,c,d){if(this.isDown){for(var e=this._clickTrampolines=this._clickTrampolines||[],f=0;fa||this.priorityID===a&&this.sprite.renderOrderID>b))},isPixelPerfect:function(){return this.pixelPerfectClick||this.pixelPerfectOver},pointerX:function(a){return a=a||0,this._pointerData[a].x},pointerY:function(a){return a=a||0,this._pointerData[a].y},pointerDown:function(a){return a=a||0,this._pointerData[a].isDown},pointerUp:function(a){return a=a||0,this._pointerData[a].isUp},pointerTimeDown:function(a){return a=a||0,this._pointerData[a].timeDown},pointerTimeUp:function(a){return a=a||0,this._pointerData[a].timeUp},pointerOver:function(a){if(!this.enabled)return!1;if(void 0===a){for(var b=0;b<10;b++)if(this._pointerData[b].isOver)return!0;return!1}return this._pointerData[a].isOver},pointerOut:function(a){if(!this.enabled)return!1;if(void 0!==a)return this._pointerData[a].isOut;for(var b=0;b<10;b++)if(this._pointerData[b].isOut)return!0},pointerTimeOver:function(a){return a=a||0,this._pointerData[a].timeOver},pointerTimeOut:function(a){return a=a||0,this._pointerData[a].timeOut},pointerDragged:function(a){return a=a||0,this._pointerData[a].isDragged},checkPointerDown:function(a,b){return!!(a.isDown&&this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&0!==this.sprite.worldScale.x&&0!==this.sprite.worldScale.y)&&(!!this.game.input.hitTest(this.sprite,a,this._tempPoint)&&(void 0===b&&(b=!1),!(!b&&this.pixelPerfectClick)||this.checkPixel(this._tempPoint.x,this._tempPoint.y)))},checkPointerOver:function(a,b){return!!(this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&0!==this.sprite.worldScale.x&&0!==this.sprite.worldScale.y)&&(!!this.game.input.hitTest(this.sprite,a,this._tempPoint)&&(void 0===b&&(b=!1),!(!b&&this.pixelPerfectOver)||this.checkPixel(this._tempPoint.x,this._tempPoint.y)))},checkPixel:function(a,b,c){if(this.sprite.texture.baseTexture.source){if(null===a&&null===b){this.game.input.getLocalPosition(this.sprite,c,this._tempPoint);var a=this._tempPoint.x,b=this._tempPoint.y}if(0!==this.sprite.anchor.x&&(a-=-this.sprite.texture.frame.width*this.sprite.anchor.x),0!==this.sprite.anchor.y&&(b-=-this.sprite.texture.frame.height*this.sprite.anchor.y),a+=this.sprite.texture.frame.x,b+=this.sprite.texture.frame.y,this.sprite.texture.trim&&(a-=this.sprite.texture.trim.x,b-=this.sprite.texture.trim.y,athis.sprite.texture.crop.right||bthis.sprite.texture.crop.bottom))return this._dx=a,this._dy=b,!1;this._dx=a,this._dy=b,this.game.input.hitContext.clearRect(0,0,1,1),this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source,a,b,1,1,0,0,1,1);var d=this.game.input.hitContext.getImageData(0,0,1,1);if(d.data[3]>=this.pixelPerfectAlpha)return!0}return!1},update:function(a){if(null!==this.sprite&&void 0!==this.sprite.parent)return this.enabled&&this.sprite.visible&&this.sprite.parent.visible?this._pendingDrag?(this._dragDistancePass||(this._dragDistancePass=c.Math.distance(a.x,a.y,this.downPoint.x,this.downPoint.y)>=this.dragDistanceThreshold),this._dragDistancePass&&this._dragTimePass&&this.startDrag(a),!0):this.draggable&&this._draggedPointerID===a.id?this.updateDrag(a,!1):this._pointerData[a.id].isOver?this.checkPointerOver(a)?(this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,!0):(this._pointerOutHandler(a),!1):void 0:(this._pointerOutHandler(a),!1)},_pointerOverHandler:function(a,b){if(null!==this.sprite){var d=this._pointerData[a.id];if(d.isOver===!1||a.dirty){var e=d.isOver===!1;d.isOver=!0,d.isOut=!1,d.timeOver=this.game.time.time,d.x=a.x-this.sprite.x,d.y=a.y-this.sprite.y,this.useHandCursor&&d.isDragged===!1&&(this.game.canvas.style.cursor="pointer",this._setHandCursor=!0),!b&&e&&this.sprite&&this.sprite.events&&this.sprite.events.onInputOver$dispatch(this.sprite,a),this.sprite.parent&&this.sprite.parent.type===c.GROUP&&this.sprite.parent.onChildInputOver.dispatch(this.sprite,a)}}},_pointerOutHandler:function(a,b){if(null!==this.sprite){var d=this._pointerData[a.id];d.isOver=!1,d.isOut=!0,d.timeOut=this.game.time.time,this.useHandCursor&&d.isDragged===!1&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),!b&&this.sprite&&this.sprite.events&&(this.sprite.events.onInputOut$dispatch(this.sprite,a),this.sprite&&this.sprite.parent&&this.sprite.parent.type===c.GROUP&&this.sprite.parent.onChildInputOut.dispatch(this.sprite,a))}},_touchedHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(!b.isDown&&b.isOver){if(this.pixelPerfectClick&&!this.checkPixel(null,null,a))return;if(b.isDown=!0,b.isUp=!1,b.timeDown=this.game.time.time,this.downPoint.set(a.x,a.y),a.dirty=!0,this.sprite&&this.sprite.events&&(this.sprite.events.onInputDown$dispatch(this.sprite,a),this.sprite&&this.sprite.parent&&this.sprite.parent.type===c.GROUP&&this.sprite.parent.onChildInputDown.dispatch(this.sprite,a),null===this.sprite))return;this.draggable&&this.isDragged===!1&&(0===this.dragTimeThreshold&&0===this.dragDistanceThreshold?this.startDrag(a):(this._pendingDrag=!0,this._dragDistancePass=0===this.dragDistanceThreshold,this.dragTimeThreshold>0?(this._dragTimePass=!1,this.game.time.events.add(this.dragTimeThreshold,this.dragTimeElapsed,this,a)):this._dragTimePass=!0)),this.bringToTop&&this.sprite.bringToTop()}}},dragTimeElapsed:function(a){this._dragTimePass=!0,this._pendingDrag&&this.sprite&&this._dragDistancePass&&this.startDrag(a)},_releasedHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(b.isDown&&a.isUp){b.isDown=!1,b.isUp=!0,b.timeUp=this.game.time.time,b.downDuration=b.timeUp-b.timeDown;var d=this.checkPointerOver(a);this.sprite&&this.sprite.events&&(this.dragStopBlocksInputUp&&(!this.dragStopBlocksInputUp||this.draggable&&this.isDragged&&this._draggedPointerID===a.id)||this.sprite.events.onInputUp$dispatch(this.sprite,a,d),this.sprite&&this.sprite.parent&&this.sprite.parent.type===c.GROUP&&this.sprite.parent.onChildInputUp.dispatch(this.sprite,a,d),d&&(d=this.checkPointerOver(a))),b.isOver=d,!d&&this.useHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),a.dirty=!0,this._pendingDrag=!1,this.draggable&&this.isDragged&&this._draggedPointerID===a.id&&this.stopDrag(a)}}},updateDrag:function(a,b){if(void 0===b&&(b=!1),a.isUp)return this.stopDrag(a),!1;var c=this.globalToLocalX(a.x)+this._dragPoint.x+this.dragOffset.x,d=this.globalToLocalY(a.y)+this._dragPoint.y+this.dragOffset.y;if(this.sprite.fixedToCamera)this.allowHorizontalDrag&&(this.sprite.cameraOffset.x=c),this.allowVerticalDrag&&(this.sprite.cameraOffset.y=d),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY,this.snapPoint.set(this.sprite.cameraOffset.x,this.sprite.cameraOffset.y));else{var e=this.game.camera.x-this._pointerData[a.id].camX,f=this.game.camera.y-this._pointerData[a.id].camY;this.allowHorizontalDrag&&(this.sprite.x=c+e),this.allowVerticalDrag&&(this.sprite.y=d+f),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY,this.snapPoint.set(this.sprite.x,this.sprite.y))}return this.sprite.events.onDragUpdate.dispatch(this.sprite,a,c,d,this.snapPoint,b),!0},justOver:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isOver&&this.overDuration(a)this.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.ythis.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.leftthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-(this.sprite.height-this.sprite.offsetY)));
-},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.cameraOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.cameraOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.cameraOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.cameraOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.leftthis.boundsSprite.right&&(this.sprite.x=this.boundsSprite.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsSprite.bottom&&(this.sprite.y=this.boundsSprite.bottom-(this.sprite.height-this.sprite.offsetY)))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Gamepad=function(a){this.game=a,this._gamepadIndexMap={},this._rawPads=[],this._active=!1,this.enabled=!0,this._gamepadSupportAvailable=!!navigator.webkitGetGamepads||!!navigator.webkitGamepads||navigator.userAgent.indexOf("Firefox/")!=-1||!!navigator.getGamepads,this._prevRawGamepadTypes=[],this._prevTimestamps=[],this.callbackContext=this,this.onConnectCallback=null,this.onDisconnectCallback=null,this.onDownCallback=null,this.onUpCallback=null,this.onAxisCallback=null,this.onFloatCallback=null,this._ongamepadconnected=null,this._gamepaddisconnected=null,this._gamepads=[new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this)]},c.Gamepad.prototype={addCallbacks:function(a,b){"undefined"!=typeof b&&(this.onConnectCallback="function"==typeof b.onConnect?b.onConnect:this.onConnectCallback,this.onDisconnectCallback="function"==typeof b.onDisconnect?b.onDisconnect:this.onDisconnectCallback,this.onDownCallback="function"==typeof b.onDown?b.onDown:this.onDownCallback,this.onUpCallback="function"==typeof b.onUp?b.onUp:this.onUpCallback,this.onAxisCallback="function"==typeof b.onAxis?b.onAxis:this.onAxisCallback,this.onFloatCallback="function"==typeof b.onFloat?b.onFloat:this.onFloatCallback,this.callbackContext=a)},start:function(){if(!this._active){this._active=!0;var a=this;this._onGamepadConnected=function(b){return a.onGamepadConnected(b)},this._onGamepadDisconnected=function(b){return a.onGamepadDisconnected(b)},window.addEventListener("gamepadconnected",this._onGamepadConnected,!1),window.addEventListener("gamepaddisconnected",this._onGamepadDisconnected,!1)}},onGamepadConnected:function(a){var b=a.gamepad;this._rawPads.push(b),this._gamepads[b.index].connect(b)},onGamepadDisconnected:function(a){var b=a.gamepad;for(var c in this._rawPads)this._rawPads[c].index===b.index&&this._rawPads.splice(c,1);this._gamepads[b.index].disconnect()},update:function(){this._pollGamepads(),this.pad1.pollStatus(),this.pad2.pollStatus(),this.pad3.pollStatus(),this.pad4.pollStatus()},_pollGamepads:function(){if(this._active){if(navigator.getGamepads)var a=navigator.getGamepads();else if(navigator.webkitGetGamepads)var a=navigator.webkitGetGamepads();else if(navigator.webkitGamepads)var a=navigator.webkitGamepads();if(a){this._rawPads=[];for(var b=!1,c=0;c0&&d>this.deadZone||d<0&&d<-this.deadZone?this.processAxisChange(c,d):this.processAxisChange(c,0)}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var b=!this.connected;this.connected=!0,this.index=a.index,this._rawPad=a,this._buttons=[],this._buttonsLen=a.buttons.length,this._axes=[],this._axesLen=a.axes.length;for(var d=0;dthis.maxHealth&&(this.health=this.maxHealth),this},heal:function(a){return this.alive&&(this.health+=a,this.health>this.maxHealth&&(this.health=this.maxHealth)),this}},c.Component.InCamera=function(){},c.Component.InCamera.prototype={inCamera:{get:function(){return this.game.world.camera.view.intersects(this._bounds)}}},c.Component.InputEnabled=function(){},c.Component.InputEnabled.prototype={input:null,inputEnabled:{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}},c.Component.InWorld=function(){},c.Component.InWorld.preUpdate=function(){if(this.autoCull||this.checkWorldBounds){if(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y,this.autoCull)if(this.game.world.camera.view.intersects(this._bounds))this.renderable=!0,this.game.world.camera.totalInView++;else if(this.renderable=!1,this.outOfCameraBoundsKill)return this.kill(),!1;if(this.checkWorldBounds)if(this._outOfBoundsFired&&this.game.world.bounds.intersects(this._bounds))this._outOfBoundsFired=!1,this.events.onEnterBounds$dispatch(this);else if(!this._outOfBoundsFired&&!this.game.world.bounds.intersects(this._bounds)&&(this._outOfBoundsFired=!0,this.events.onOutOfBounds$dispatch(this),this.outOfBoundsKill))return this.kill(),!1}return!0},c.Component.InWorld.prototype={checkWorldBounds:!1,outOfBoundsKill:!1,outOfCameraBoundsKill:!1,_outOfBoundsFired:!1,inWorld:{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}},c.Component.LifeSpan=function(){},c.Component.LifeSpan.preUpdate=function(){return!(this.lifespan>0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0))||(this.kill(),!1)},c.Component.LifeSpan.prototype={
-alive:!0,lifespan:0,revive:function(a){return void 0===a&&(a=100),this.alive=!0,this.exists=!0,this.visible=!0,"function"==typeof this.setHealth&&this.setHealth(a),this.events&&this.events.onRevived$dispatch(this),this},kill:function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this}},c.Component.LoadTexture=function(){},c.Component.LoadTexture.prototype={customRender:!1,_frame:null,loadTexture:function(a,b,d){a===c.PENDING_ATLAS?(a=b,b=0):b=b||0,(d||void 0===d)&&this.animations&&this.animations.stop(),this.key=a,this.customRender=!1;var e=this.game.cache,f=!0,g=!this.texture.baseTexture.scaleMode;if(c.RenderTexture&&a instanceof c.RenderTexture)this.key=a.key,this.setTexture(a);else if(c.BitmapData&&a instanceof c.BitmapData)this.customRender=!0,this.setTexture(a.texture),f=e.hasFrameData(a.key,c.Cache.BITMAPDATA)?!this.animations.loadFrameData(e.getFrameData(a.key,c.Cache.BITMAPDATA),b):!this.animations.loadFrameData(a.frameData,0);else if(c.Video&&a instanceof c.Video){this.customRender=!0;var h=a.texture.valid;this.setTexture(a.texture),this.setFrame(a.texture.frame.clone()),a.onChangeSource.add(this.resizeFrame,this),this.texture.valid=h}else if(c.Tilemap&&a instanceof c.TilemapLayer)this.setTexture(PIXI.Texture.fromCanvas(a.canvas));else if(a instanceof PIXI.Texture)this.setTexture(a);else{var i=e.getImage(a,!0);this.key=i.key,this.setTexture(new PIXI.Texture(i.base)),"__default"===a?this.texture.baseTexture.skipRender=!0:this.texture.baseTexture.skipRender=!1,f=!this.animations.loadFrameData(i.frameData,b)}f&&(this._frame=c.Rectangle.clone(this.texture.frame)),g||(this.texture.baseTexture.scaleMode=1)},setFrame:function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture.requiresReTint=!0,this.texture._updateUvs(),this.tilingTexture&&(this.refreshTexture=!0)},resizeFrame:function(a,b,c){this.texture.frame.resize(b,c),this.texture.setFrame(this.texture.frame)},resetFrame:function(){this._frame&&this.setFrame(this._frame)},frame:{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}},frameName:{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}},c.Component.Overlap=function(){},c.Component.Overlap.prototype={overlap:function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())}},c.Component.PhysicsBody=function(){},c.Component.PhysicsBody.preUpdate=function(){return this.fresh&&this.exists?(this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this.body&&this.body.preUpdate(),this.fresh=!1,!1):(this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,!(!this._exists||!this.parent.exists)||(this.renderOrderID=-1,!1))},c.Component.PhysicsBody.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate()},c.Component.PhysicsBody.prototype={body:null,x:{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}},y:{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}}},c.Component.Reset=function(){},c.Component.Reset.prototype.reset=function(a,b,c){return void 0===c&&(c=1),this.world.set(a,b),this.position.set(a,b),this.fresh=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this.components.InWorld&&(this._outOfBoundsFired=!1),this.components.LifeSpan&&(this.alive=!0,this.health=c),this.components.PhysicsBody&&this.body&&this.body.reset(a,b,!1,!1),this},c.Component.ScaleMinMax=function(){},c.Component.ScaleMinMax.prototype={transformCallback:null,transformCallbackContext:this,scaleMin:null,scaleMax:null,checkTransform:function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},setScaleMinMax:function(a,b,d,e){void 0===b?b=d=e=a:void 0===d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e),null===this.scaleMin?this.transformCallback=null:(this.transformCallback=this.checkTransform,this.transformCallbackContext=this)}},c.Component.Smoothed=function(){},c.Component.Smoothed.prototype={smoothed:{get:function(){return!this.texture.baseTexture.scaleMode},set:function(a){a?this.texture&&(this.texture.baseTexture.scaleMode=0):this.texture&&(this.texture.baseTexture.scaleMode=1)}}},c.GameObjectFactory=function(a){this.game=a,this.world=this.game.world},c.GameObjectFactory.prototype={existing:function(a){return this.world.add(a)},weapon:function(a,b,d,e){var f=this.game.plugins.add(c.Weapon);return f.createBullets(a,b,d,e),f},image:function(a,b,d,e,f){return void 0===f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return void 0===e&&(e=this.world),e.create(a,b,c,d)},creature:function(a,b,d,e,f){void 0===f&&(f=this.world);var g=new c.Creature(this.game,a,b,d,e);return f.add(g),g},tween:function(a){return this.game.tweens.create(a)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},physicsGroup:function(a,b,d,e){return new c.Group(this.game,b,d,e,(!0),a)},spriteBatch:function(a,b,d){return void 0===a&&(a=null),void 0===b&&(b="group"),void 0===d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},tileSprite:function(a,b,d,e,f,g,h){return void 0===h&&(h=this.world),h.add(new c.TileSprite(this.game,a,b,d,e,f,g))},rope:function(a,b,d,e,f,g){return void 0===g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return void 0===f&&(f=this.world),f.add(new c.Text(this.game,a,b,d,e))},button:function(a,b,d,e,f,g,h,i,j,k){return void 0===k&&(k=this.world),k.add(new c.Button(this.game,a,b,d,e,f,g,h,i,j))},graphics:function(a,b,d){return void 0===d&&(d=this.world),d.add(new c.Graphics(this.game,a,b))},emitter:function(a,b,d){return this.game.particles.add(new c.Particles.Arcade.Emitter(this.game,a,b,d))},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return void 0===g&&(g=this.world),g.add(new c.BitmapText(this.game,a,b,d,e,f))},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){void 0!==d&&""!==d||(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},video:function(a,b){return new c.Video(this.game,a,b)},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),void 0!==d&&""!==d||(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.slice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a},plugin:function(a){return this.game.plugins.add(a)}},c.GameObjectFactory.prototype.constructor=c.GameObjectFactory,c.GameObjectCreator=function(a){this.game=a,this.world=this.game.world},c.GameObjectCreator.prototype={image:function(a,b,d,e){return new c.Image(this.game,a,b,d,e)},sprite:function(a,b,d,e){return new c.Sprite(this.game,a,b,d,e)},tween:function(a){return new c.Tween(a,this.game,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},spriteBatch:function(a,b,d){return void 0===b&&(b="group"),void 0===d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,b,d,e,f,g){return new c.TileSprite(this.game,a,b,d,e,f,g)},rope:function(a,b,d,e,f){return new c.Rope(this.game,a,b,d,e,f)},text:function(a,b,d,e){return new c.Text(this.game,a,b,d,e)},button:function(a,b,d,e,f,g,h,i,j){return new c.Button(this.game,a,b,d,e,f,g,h,i,j)},graphics:function(a,b){return new c.Graphics(this.game,a,b)},emitter:function(a,b,d){return new c.Particles.Arcade.Emitter(this.game,a,b,d)},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return new c.BitmapText(this.game,a,b,d,e,f,g)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){void 0!==d&&""!==d||(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),void 0!==d&&""!==d||(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.slice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a}},c.GameObjectCreator.prototype.constructor=c.GameObjectCreator,c.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.SPRITE,this.physicsType=c.SPRITE,PIXI.Sprite.call(this,c.Cache.DEFAULT),c.Component.Core.init.call(this,a,b,d,e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Component.Core.install.call(c.Sprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Sprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Sprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Sprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Sprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Sprite.prototype.preUpdate=function(){return!!(this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld())&&this.preUpdateCore()},c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.IMAGE,PIXI.Sprite.call(this,c.Cache.DEFAULT),c.Component.Core.init.call(this,a,b,d,e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Component.Core.install.call(c.Image.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Destroy","FixedToCamera","InputEnabled","LifeSpan","LoadTexture","Overlap","Reset","Smoothed"]),c.Image.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Image.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Image.prototype.preUpdate=function(){return!!this.preUpdateInWorld()&&this.preUpdateCore()},c.Button=function(a,b,d,e,f,g,h,i,j,k){b=b||0,d=d||0,e=e||null,f=f||null,g=g||this,c.Image.call(this,a,b,d,e,i),this.type=c.BUTTON,this.physicsType=c.SPRITE,this._onOverFrame=null,this._onOutFrame=null,this._onDownFrame=null,this._onUpFrame=null,this.onOverSound=null,this.onOutSound=null,this.onDownSound=null,this.onUpSound=null,this.onOverSoundMarker="",this.onOutSoundMarker="",this.onDownSoundMarker="",this.onUpSoundMarker="",this.onInputOver=new c.Signal,this.onInputOut=new c.Signal,this.onInputDown=new c.Signal,this.onInputUp=new c.Signal,this.onOverMouseOnly=!0,this.justReleasedPreventsOver=c.PointerMode.TOUCH,this.freezeFrames=!1,this.forceOut=!1,this.inputEnabled=!0,this.input.start(0,!0),this.input.useHandCursor=!0,this.setFrames(h,i,j,k),null!==f&&this.onInputUp.add(f,g),this.events.onInputOver.add(this.onInputOverHandler,this),this.events.onInputOut.add(this.onInputOutHandler,this),this.events.onInputDown.add(this.onInputDownHandler,this),this.events.onInputUp.add(this.onInputUpHandler,this),this.events.onRemovedFromWorld.add(this.removedFromWorld,this)},c.Button.prototype=Object.create(c.Image.prototype),c.Button.prototype.constructor=c.Button;var g="Over",h="Out",i="Down",j="Up";c.Button.prototype.clearFrames=function(){this.setFrames(null,null,null,null)},c.Button.prototype.removedFromWorld=function(){this.inputEnabled=!1},c.Button.prototype.setStateFrame=function(a,b,c){var d="_on"+a+"Frame";null!==b?(this[d]=b,c&&this.changeStateFrame(a)):this[d]=null},c.Button.prototype.changeStateFrame=function(a){if(this.freezeFrames)return!1;var b="_on"+a+"Frame",c=this[b];return"string"==typeof c?(this.frameName=c,!0):"number"==typeof c&&(this.frame=c,!0)},c.Button.prototype.setFrames=function(a,b,c,d){this.setStateFrame(g,a,this.input.pointerOver()),this.setStateFrame(h,b,!this.input.pointerOver()),this.setStateFrame(i,c,this.input.pointerDown()),this.setStateFrame(j,d,this.input.pointerUp())},c.Button.prototype.setStateSound=function(a,b,d){var e="on"+a+"Sound",f="on"+a+"SoundMarker";b instanceof c.Sound||b instanceof c.AudioSprite?(this[e]=b,this[f]="string"==typeof d?d:""):(this[e]=null,this[f]="")},c.Button.prototype.playStateSound=function(a){var b="on"+a+"Sound",c=this[b];if(c){var d="on"+a+"SoundMarker",e=this[d];return c.play(e),!0}return!1},c.Button.prototype.setSounds=function(a,b,c,d,e,f,k,l){this.setStateSound(g,a,b),this.setStateSound(h,e,f),this.setStateSound(i,c,d),this.setStateSound(j,k,l)},c.Button.prototype.setOverSound=function(a,b){this.setStateSound(g,a,b)},c.Button.prototype.setOutSound=function(a,b){this.setStateSound(h,a,b)},c.Button.prototype.setDownSound=function(a,b){this.setStateSound(i,a,b)},c.Button.prototype.setUpSound=function(a,b){this.setStateSound(j,a,b)},c.Button.prototype.onInputOverHandler=function(a,b){b.justReleased()&&(this.justReleasedPreventsOver&b.pointerMode)===b.pointerMode||(this.changeStateFrame(g),this.onOverMouseOnly&&!b.isMouse||(this.playStateSound(g),this.onInputOver&&this.onInputOver.dispatch(this,b)))},c.Button.prototype.onInputOutHandler=function(a,b){this.changeStateFrame(h),this.playStateSound(h),this.onInputOut&&this.onInputOut.dispatch(this,b)},c.Button.prototype.onInputDownHandler=function(a,b){this.changeStateFrame(i),this.playStateSound(i),this.onInputDown&&this.onInputDown.dispatch(this,b)},c.Button.prototype.onInputUpHandler=function(a,b,c){if(this.playStateSound(j),this.onInputUp&&this.onInputUp.dispatch(this,b,c),!this.freezeFrames)if(this.forceOut===!0||(this.forceOut&b.pointerMode)===b.pointerMode)this.changeStateFrame(h);else{var d=this.changeStateFrame(j);d||(c?this.changeStateFrame(g):this.changeStateFrame(h))}},c.SpriteBatch=function(a,b,d,e){void 0!==b&&null!==b||(b=a.world),PIXI.SpriteBatch.call(this),c.Group.call(this,a,b,d,e),this.type=c.SPRITEBATCH},c.SpriteBatch.prototype=c.Utils.extend(!0,c.SpriteBatch.prototype,PIXI.SpriteBatch.prototype,c.Group.prototype),c.SpriteBatch.prototype.constructor=c.SpriteBatch,c.BitmapData=function(a,b,d,e,f){void 0!==d&&0!==d||(d=256),void 0!==e&&0!==e||(e=256),void 0===f&&(f=!1),this.game=a,this.key=b,this.width=d,this.height=e,this.canvas=c.Canvas.create(this,d,e,null,f),this.context=this.canvas.getContext("2d",{alpha:!0}),this.ctx=this.context,this.smoothProperty=a.renderType===c.CANVAS?a.renderer.renderSession.smoothProperty:c.Canvas.getSmoothingPrefix(this.context),this.imageData=this.context.getImageData(0,0,d,e),this.data=null,this.imageData&&(this.data=this.imageData.data),this.pixels=null,this.data&&(this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data),this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.frameData=new c.FrameData,this.textureFrame=this.frameData.addFrame(new c.Frame(0,0,0,d,e,"bitmapData")),this.texture.frame=this.textureFrame,this.type=c.BITMAPDATA,this.disableTextureUpload=!1,this.dirty=!1,this.cls=this.clear,this._image=null,this._pos=new c.Point,this._size=new c.Point,this._scale=new c.Point,this._rotate=0,this._alpha={prev:1,current:1},this._anchor=new c.Point,this._tempR=0,this._tempG=0,this._tempB=0,this._circle=new c.Circle,this._swapCanvas=void 0},c.BitmapData.prototype={move:function(a,b,c){return 0!==a&&this.moveH(a,c),0!==b&&this.moveV(b,c),this},moveH:function(a,b){void 0===b&&(b=!0),void 0===this._swapCanvas&&(this._swapCanvas=PIXI.CanvasPool.create(this,this.width,this.height));var c=this._swapCanvas,d=c.getContext("2d"),e=this.height,f=this.canvas;if(d.clearRect(0,0,this.width,this.height),a<0){a=Math.abs(a);var g=this.width-a;b&&d.drawImage(f,0,0,a,e,g,0,a,e),d.drawImage(f,a,0,g,e,0,0,g,e)}else{var g=this.width-a;b&&d.drawImage(f,g,0,a,e,0,0,a,e),d.drawImage(f,0,0,g,e,a,0,g,e)}return this.clear(),this.copy(this._swapCanvas)},moveV:function(a,b){void 0===b&&(b=!0),void 0===this._swapCanvas&&(this._swapCanvas=PIXI.CanvasPool.create(this,this.width,this.height));var c=this._swapCanvas,d=c.getContext("2d"),e=this.width,f=this.canvas;if(d.clearRect(0,0,this.width,this.height),a<0){a=Math.abs(a);var g=this.height-a;b&&d.drawImage(f,0,0,e,a,0,g,e,a),d.drawImage(f,0,a,e,g,0,0,e,g)}else{var g=this.height-a;b&&d.drawImage(f,0,g,e,a,0,0,e,a),d.drawImage(f,0,0,e,g,0,a,e,g)}return this.clear(),this.copy(this._swapCanvas)},add:function(a){if(Array.isArray(a))for(var b=0;b=0&&a<=this.width&&b>=0&&b<=this.height&&(c.Device.LITTLE_ENDIAN?this.pixels[b*this.width+a]=g<<24|f<<16|e<<8|d:this.pixels[b*this.width+a]=d<<24|e<<16|f<<8|g,h&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)),this},setPixel:function(a,b,c,d,e,f){return this.setPixel32(a,b,c,d,e,255,f)},getPixel:function(a,b,d){d||(d=c.Color.createColor());var e=~~(a+b*this.width);return e*=4,d.r=this.data[e],d.g=this.data[++e],d.b=this.data[++e],d.a=this.data[++e],d},getPixel32:function(a,b){if(a>=0&&a<=this.width&&b>=0&&b<=this.height)return this.pixels[b*this.width+a]},getPixelRGB:function(a,b,d,e,f){return c.Color.unpackPixel(this.getPixel32(a,b),d,e,f)},getPixels:function(a){return this.context.getImageData(a.x,a.y,a.width,a.height)},getFirstPixel:function(a){void 0===a&&(a=0);var b=c.Color.createColor(),d=0,e=0,f=1,g=!1;1===a?(f=-1,e=this.height):3===a&&(f=-1,d=this.width);do c.Color.unpackPixel(this.getPixel32(d,e),b),0===a||1===a?(d++,d===this.width&&(d=0,e+=f,(e>=this.height||e<=0)&&(g=!0))):2!==a&&3!==a||(e++,e===this.height&&(e=0,d+=f,(d>=this.width||d<=0)&&(g=!0)));while(0===b.a&&!g);return b.x=d,b.y=e,b},getBounds:function(a){return void 0===a&&(a=new c.Rectangle),a.x=this.getFirstPixel(2).x,a.x===this.width?a.setTo(0,0,0,0):(a.y=this.getFirstPixel(0).y,a.width=this.getFirstPixel(3).x-a.x+1,a.height=this.getFirstPixel(1).y-a.y+1,a)},addToWorld:function(a,b,c,d,e,f){e=e||1,f=f||1;var g=this.game.add.image(a,b,this);return g.anchor.set(c,d),g.scale.set(e,f),g},copy:function(a,b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){if(void 0!==a&&null!==a||(a=this),(a instanceof c.RenderTexture||a instanceof PIXI.RenderTexture)&&(a=a.getCanvas()),this._image=a,a instanceof c.Sprite||a instanceof c.Image||a instanceof c.Text||a instanceof PIXI.Sprite)this._pos.set(a.texture.crop.x,a.texture.crop.y),this._size.set(a.texture.crop.width,a.texture.crop.height),this._scale.set(a.scale.x,a.scale.y),this._anchor.set(a.anchor.x,a.anchor.y),this._rotate=a.rotation,this._alpha.current=a.alpha,a.texture instanceof c.RenderTexture||a.texture instanceof PIXI.RenderTexture?this._image=a.texture.getCanvas():this._image=a.texture.baseTexture.source,void 0!==g&&null!==g||(g=a.x),void 0!==h&&null!==h||(h=a.y),a.texture.trim&&(g+=a.texture.trim.x-a.anchor.x*a.texture.trim.width,h+=a.texture.trim.y-a.anchor.y*a.texture.trim.height),16777215!==a.tint&&(a.cachedTint!==a.tint&&(a.cachedTint=a.tint,a.tintedTexture=PIXI.CanvasTinter.getTintedTexture(a,a.tint)),this._image=a.tintedTexture,this._pos.set(0));else{if(this._pos.set(0),this._scale.set(1),this._anchor.set(0),this._rotate=0,this._alpha.current=1,a instanceof c.BitmapData)this._image=a.canvas;else if("string"==typeof a){if(a=this.game.cache.getImage(a),null===a)return;this._image=a}this._size.set(this._image.width,this._image.height)}if(void 0!==b&&null!==b||(b=0),void 0!==d&&null!==d||(d=0),e&&(this._size.x=e),f&&(this._size.y=f),void 0!==g&&null!==g||(g=b),void 0!==h&&null!==h||(h=d),void 0!==i&&null!==i||(i=this._size.x),void 0!==j&&null!==j||(j=this._size.y),"number"==typeof k&&(this._rotate=k),"number"==typeof l&&(this._anchor.x=l),"number"==typeof m&&(this._anchor.y=m),"number"==typeof n&&(this._scale.x=n),"number"==typeof o&&(this._scale.y=o),"number"==typeof p&&(this._alpha.current=p),void 0===q&&(q=null),void 0===r&&(r=!1),!(this._alpha.current<=0||0===this._scale.x||0===this._scale.y||0===this._size.x||0===this._size.y)){var s=this.context;return this._alpha.prev=s.globalAlpha,s.save(),s.globalAlpha=this._alpha.current,q&&(this.op=q),r&&(g|=0,h|=0),s.translate(g,h),s.scale(this._scale.x,this._scale.y),s.rotate(this._rotate),s.drawImage(this._image,this._pos.x+b,this._pos.y+d,this._size.x,this._size.y,-i*this._anchor.x,-j*this._anchor.y,i,j),s.restore(),s.globalAlpha=this._alpha.prev,this.dirty=!0,this}},copyTransform:function(a,b,d){if(void 0===b&&(b=null),void 0===d&&(d=!1),!a.hasOwnProperty("worldTransform")||!a.worldVisible||0===a.worldAlpha)return this;var e=a.worldTransform;if(this._pos.set(a.texture.crop.x,a.texture.crop.y),this._size.set(a.texture.crop.width,a.texture.crop.height),0===e.a||0===e.d||0===this._size.x||0===this._size.y)return this;a.texture instanceof c.RenderTexture||a.texture instanceof PIXI.RenderTexture?this._image=a.texture.getCanvas():this._image=a.texture.baseTexture.source;var f=e.tx,g=e.ty;a.texture.trim&&(f+=a.texture.trim.x-a.anchor.x*a.texture.trim.width,g+=a.texture.trim.y-a.anchor.y*a.texture.trim.height),16777215!==a.tint&&(a.cachedTint!==a.tint&&(a.cachedTint=a.tint,a.tintedTexture=PIXI.CanvasTinter.getTintedTexture(a,a.tint)),this._image=a.tintedTexture,this._pos.set(0)),d&&(f|=0,g|=0);var h=this.context;return this._alpha.prev=h.globalAlpha,h.save(),h.globalAlpha=this._alpha.current,b&&(this.op=b),h[this.smoothProperty]=a.texture.baseTexture.scaleMode===PIXI.scaleModes.LINEAR,h.setTransform(e.a,e.b,e.c,e.d,f,g),h.drawImage(this._image,this._pos.x,this._pos.y,this._size.x,this._size.y,-this._size.x*a.anchor.x,-this._size.y*a.anchor.y,this._size.x,this._size.y),h.restore(),h.globalAlpha=this._alpha.prev,this.dirty=!0,this},copyRect:function(a,b,c,d,e,f,g){return this.copy(a,b.x,b.y,b.width,b.height,c,d,b.width,b.height,0,0,0,1,1,e,f,g)},draw:function(a,b,c,d,e,f,g){return this.copy(a,null,null,null,null,b,c,d,e,null,null,null,null,null,null,f,g)},drawGroup:function(a,b,c){return a.total>0&&a.forEachExists(this.drawGroupProxy,this,b,c),this},drawGroupProxy:function(a,b,d){if(a.hasOwnProperty("texture")&&this.copyTransform(a,b,d),a.type===c.GROUP&&a.exists)this.drawGroup(a,b,d);else if(a.hasOwnProperty("children")&&a.children.length>0)for(var e=0;eb.width&&(e=b.width);var f=this.context;return f.fillStyle=f.createPattern(b,d),this._circle=new c.Circle(a.start.x,a.start.y,b.height),this._circle.circumferencePoint(a.angle-1.5707963267948966,!1,this._pos),f.save(),f.translate(this._pos.x,this._pos.y),f.rotate(a.angle),f.fillRect(0,0,e,b.height),f.restore(),this.dirty=!0,this}},render:function(){return!this.disableTextureUpload&&this.dirty&&(this.baseTexture.dirty(),this.dirty=!1),this},destroy:function(){this.frameData.destroy(),this.texture.destroy(!0),PIXI.CanvasPool.remove(this)},blendReset:function(){return this.op="source-over",this},blendSourceOver:function(){return this.op="source-over",this},blendSourceIn:function(){return this.op="source-in",this},blendSourceOut:function(){return this.op="source-out",this},blendSourceAtop:function(){return this.op="source-atop",this},blendDestinationOver:function(){return this.op="destination-over",this},blendDestinationIn:function(){return this.op="destination-in",this},blendDestinationOut:function(){return this.op="destination-out",this},blendDestinationAtop:function(){return this.op="destination-atop",this},blendXor:function(){return this.op="xor",this},blendAdd:function(){return this.op="lighter",this},blendMultiply:function(){return this.op="multiply",this},blendScreen:function(){return this.op="screen",this},blendOverlay:function(){return this.op="overlay",this},blendDarken:function(){return this.op="darken",this},blendLighten:function(){return this.op="lighten",this},blendColorDodge:function(){return this.op="color-dodge",this},blendColorBurn:function(){return this.op="color-burn",this},blendHardLight:function(){return this.op="hard-light",this},blendSoftLight:function(){return this.op="soft-light",this},blendDifference:function(){return this.op="difference",this},blendExclusion:function(){return this.op="exclusion",this},blendHue:function(){return this.op="hue",this},blendSaturation:function(){
-return this.op="saturation",this},blendColor:function(){return this.op="color",this},blendLuminosity:function(){return this.op="luminosity",this}},Object.defineProperty(c.BitmapData.prototype,"smoothed",{get:function(){c.Canvas.getSmoothingEnabled(this.context)},set:function(a){c.Canvas.setSmoothingEnabled(this.context,a)}}),Object.defineProperty(c.BitmapData.prototype,"op",{get:function(){return this.context.globalCompositeOperation},set:function(a){this.context.globalCompositeOperation=a}}),c.BitmapData.getTransform=function(a,b,c,d,e,f){return"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),"number"!=typeof c&&(c=1),"number"!=typeof d&&(d=1),"number"!=typeof e&&(e=0),"number"!=typeof f&&(f=0),{sx:c,sy:d,scaleX:c,scaleY:d,skewX:e,skewY:f,translateX:a,translateY:b,tx:a,ty:b}},c.BitmapData.prototype.constructor=c.BitmapData,PIXI.Graphics=function(){PIXI.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=0,this.lineColor=0,this.graphicsData=[],this.tint=16777215,this.blendMode=PIXI.blendModes.NORMAL,this.currentPath=null,this._webGL=[],this.isMask=!1,this.boundsPadding=0,this._localBounds=new PIXI.Rectangle(0,0,1,1),this.dirty=!0,this._boundsDirty=!1,this.webGLDirty=!1,this.cachedSpriteDirty=!1},PIXI.Graphics.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Graphics.prototype.constructor=PIXI.Graphics,PIXI.Graphics.prototype.lineStyle=function(a,b,c){return this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=void 0===c?1:c,this.currentPath&&(this.currentPath.shape.points.length?this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))):(this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha)),this},PIXI.Graphics.prototype.moveTo=function(a,b){return this.drawShape(new PIXI.Polygon([a,b])),this},PIXI.Graphics.prototype.lineTo=function(a,b){return this.currentPath||this.moveTo(0,0),this.currentPath.shape.points.push(a,b),this.dirty=!0,this._boundsDirty=!0,this},PIXI.Graphics.prototype.quadraticCurveTo=function(a,b,c,d){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);var e,f,g=20,h=this.currentPath.shape.points;0===h.length&&this.moveTo(0,0);for(var i=h[h.length-2],j=h[h.length-1],k=0,l=1;l<=g;++l)k=l/g,e=i+(a-i)*k,f=j+(b-j)*k,h.push(e+(a+(c-a)*k-e)*k,f+(b+(d-b)*k-f)*k);return this.dirty=!0,this._boundsDirty=!0,this},PIXI.Graphics.prototype.bezierCurveTo=function(a,b,c,d,e,f){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);for(var g,h,i,j,k,l=20,m=this.currentPath.shape.points,n=m[m.length-2],o=m[m.length-1],p=0,q=1;q<=l;++q)p=q/l,g=1-p,h=g*g,i=h*g,j=p*p,k=j*p,m.push(i*n+3*h*p*a+3*g*j*c+k*e,i*o+3*h*p*b+3*g*j*d+k*f);return this.dirty=!0,this._boundsDirty=!0,this},PIXI.Graphics.prototype.arcTo=function(a,b,c,d,e){this.currentPath?0===this.currentPath.shape.points.length&&this.currentPath.shape.points.push(a,b):this.moveTo(a,b);var f=this.currentPath.shape.points,g=f[f.length-2],h=f[f.length-1],i=h-b,j=g-a,k=d-b,l=c-a,m=Math.abs(i*l-j*k);if(m<1e-8||0===e)f[f.length-2]===a&&f[f.length-1]===b||f.push(a,b);else{var n=i*i+j*j,o=k*k+l*l,p=i*k+j*l,q=e*Math.sqrt(n)/m,r=e*Math.sqrt(o)/m,s=q*p/n,t=r*p/o,u=q*l+r*j,v=q*k+r*i,w=j*(r+s),x=i*(r+s),y=l*(q+t),z=k*(q+t),A=Math.atan2(x-v,w-u),B=Math.atan2(z-v,y-u);this.arc(u+a,v+b,e,A,B,j*k>l*i)}return this.dirty=!0,this._boundsDirty=!0,this},PIXI.Graphics.prototype.arc=function(a,b,c,d,e,f,g){if(d===e)return this;void 0===f&&(f=!1),void 0===g&&(g=40),!f&&e<=d?e+=2*Math.PI:f&&d<=e&&(d+=2*Math.PI);var h=f?(d-e)*-1:e-d,i=Math.ceil(Math.abs(h)/(2*Math.PI))*g;if(0===h)return this;var j=a+Math.cos(d)*c,k=b+Math.sin(d)*c;f&&this.filling?this.moveTo(a,b):this.moveTo(j,k);for(var l=this.currentPath.shape.points,m=h/(2*i),n=2*m,o=Math.cos(m),p=Math.sin(m),q=i-1,r=q%1/q,s=0;s<=q;s++){var t=s+r*s,u=m+d+n*t,v=Math.cos(u),w=-Math.sin(u);l.push((o*v+p*w)*c+a,(o*-w+p*v)*c+b)}return this.dirty=!0,this._boundsDirty=!0,this},PIXI.Graphics.prototype.beginFill=function(a,b){return this.filling=!0,this.fillColor=a||0,this.fillAlpha=void 0===b?1:b,this.currentPath&&this.currentPath.shape.points.length<=2&&(this.currentPath.fill=this.filling,this.currentPath.fillColor=this.fillColor,this.currentPath.fillAlpha=this.fillAlpha),this},PIXI.Graphics.prototype.endFill=function(){return this.filling=!1,this.fillColor=null,this.fillAlpha=1,this},PIXI.Graphics.prototype.drawRect=function(a,b,c,d){return this.drawShape(new PIXI.Rectangle(a,b,c,d)),this},PIXI.Graphics.prototype.drawRoundedRect=function(a,b,c,d,e){return this.drawShape(new PIXI.RoundedRectangle(a,b,c,d,e)),this},PIXI.Graphics.prototype.drawCircle=function(a,b,c){return this.drawShape(new PIXI.Circle(a,b,c)),this},PIXI.Graphics.prototype.drawEllipse=function(a,b,c,d){return this.drawShape(new PIXI.Ellipse(a,b,c,d)),this},PIXI.Graphics.prototype.drawPolygon=function(a){(a instanceof c.Polygon||a instanceof PIXI.Polygon)&&(a=a.points);var b=a;if(!Array.isArray(b)){b=new Array(arguments.length);for(var d=0;dv?p:v,v=r>v?r:v,v=t>v?t:v,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,this._bounds.x=x,this._bounds.width=v-x,this._bounds.y=y,this._bounds.height=w-y,this._currentBounds=this._bounds}return this._currentBounds},PIXI.Graphics.prototype.containsPoint=function(a){this.worldTransform.applyInverse(a,tempPoint);for(var b=this.graphicsData,c=0;cb?h+j:b,d=ie?i+k:e;else if(n===PIXI.Graphics.CIRC)h=f.x,i=f.y,j=f.radius+o/2,k=f.radius+o/2,a=h-jb?h+j:b,d=i-ke?i+k:e;else if(n===PIXI.Graphics.ELIP)h=f.x,i=f.y,j=f.width+o/2,k=f.height+o/2,a=h-jb?h+j:b,d=i-ke?i+k:e;else{g=f.points;for(var p=0;pb?h+o:b,d=i-oe?i+o:e}}else a=0,b=0,d=0,e=0;var q=this.boundsPadding;this._localBounds.x=a-q,this._localBounds.width=b-a+2*q,this._localBounds.y=d-q,this._localBounds.height=e-d+2*q},PIXI.Graphics.prototype._generateCachedSprite=function(){var a=this.getLocalBounds();if(this._cachedSprite)this._cachedSprite.buffer.resize(a.width,a.height);else{var b=new PIXI.CanvasBuffer(a.width,a.height),c=PIXI.Texture.fromCanvas(b.canvas);this._cachedSprite=new PIXI.Sprite(c),this._cachedSprite.buffer=b,this._cachedSprite.worldTransform=this.worldTransform}this._cachedSprite.anchor.x=-(a.x/a.width),this._cachedSprite.anchor.y=-(a.y/a.height),this._cachedSprite.buffer.context.translate(-a.x,-a.y),this.worldAlpha=1,PIXI.CanvasGraphics.renderGraphics(this,this._cachedSprite.buffer.context),this._cachedSprite.alpha=this.alpha},PIXI.Graphics.prototype.updateCachedSpriteTexture=function(){var a=this._cachedSprite,b=a.texture,c=a.buffer.canvas;b.baseTexture.width=c.width,b.baseTexture.height=c.height,b.crop.width=b.frame.width=c.width,b.crop.height=b.frame.height=c.height,a._width=c.width,a._height=c.height,b.baseTexture.dirty()},PIXI.Graphics.prototype.destroyCachedSprite=function(){this._cachedSprite.texture.destroy(!0),this._cachedSprite=null},PIXI.Graphics.prototype.drawShape=function(a){this.currentPath&&this.currentPath.shape.points.length<=2&&this.graphicsData.pop(),this.currentPath=null,a instanceof c.Polygon&&(a=a.clone(),a.flatten());var b=new PIXI.GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.filling,a);return this.graphicsData.push(b),b.type===PIXI.Graphics.POLY&&(b.shape.closed=this.filling,this.currentPath=b),this.dirty=!0,this._boundsDirty=!0,b},Object.defineProperty(PIXI.Graphics.prototype,"cacheAsBitmap",{get:function(){return this._cacheAsBitmap},set:function(a){this._cacheAsBitmap=a,this._cacheAsBitmap?this._generateCachedSprite():this.destroyCachedSprite(),this.dirty=!0,this.webGLDirty=!0}}),PIXI.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this._lineTint=b,this.fillColor=d,this.fillAlpha=e,this._fillTint=d,this.fill=f,this.shape=g,this.type=g.type},PIXI.GraphicsData.prototype.constructor=PIXI.GraphicsData,PIXI.GraphicsData.prototype.clone=function(){return new GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.fill,this.shape)},PIXI.PolyK={},PIXI.PolyK.Triangulate=function(a){var b=!0,c=a.length>>1;if(c<3)return[];for(var d=[],e=[],f=0;f3;){var h=e[(f+0)%g],i=e[(f+1)%g],j=e[(f+2)%g],k=a[2*h],l=a[2*h+1],m=a[2*i],n=a[2*i+1],o=a[2*j],p=a[2*j+1],q=!1;if(PIXI.PolyK._convex(k,l,m,n,o,p,b)){q=!0;for(var r=0;r3*g){if(!b)return null;for(d=[],e=[],f=0;f=0&&v>=0&&u+v<1},PIXI.PolyK._convex=function(a,b,c,d,e,f,g){return(b-d)*(e-c)+(c-a)*(f-d)>=0===g},PIXI.EarCut={},PIXI.EarCut.Triangulate=function(a,b,c){c=c||2;var d=b&&b.length,e=d?b[0]*c:a.length,f=PIXI.EarCut.linkedList(a,0,e,c,!0),g=[];if(!f)return g;var h,i,j,k,l,m,n;if(d&&(f=PIXI.EarCut.eliminateHoles(a,b,f,c)),a.length>80*c){h=j=a[0],i=k=a[1];for(var o=c;oj&&(j=l),m>k&&(k=m);n=Math.max(j-h,k-i)}return PIXI.EarCut.earcutLinked(f,g,c,h,i,n),g},PIXI.EarCut.linkedList=function(a,b,c,d,e){var f,g,h,i=0;for(f=b,g=c-d;f0)for(f=b;f=b;f-=d)h=PIXI.EarCut.insertNode(f,a[f],a[f+1],h);return h},PIXI.EarCut.filterPoints=function(a,b){if(!a)return a;b||(b=a);var c,d=a;do if(c=!1,d.steiner||!PIXI.EarCut.equals(d,d.next)&&0!==PIXI.EarCut.area(d.prev,d,d.next))d=d.next;else{if(PIXI.EarCut.removeNode(d),d=b=d.prev,d===d.next)return null;c=!0}while(c||d!==b);return b},PIXI.EarCut.earcutLinked=function(a,b,c,d,e,f,g){if(a){!g&&f&&PIXI.EarCut.indexCurve(a,d,e,f);for(var h,i,j=a;a.prev!==a.next;)if(h=a.prev,i=a.next,f?PIXI.EarCut.isEarHashed(a,d,e,f):PIXI.EarCut.isEar(a))b.push(h.i/c),b.push(a.i/c),b.push(i.i/c),PIXI.EarCut.removeNode(a),a=i.next,j=i.next;else if(a=i,a===j){g?1===g?(a=PIXI.EarCut.cureLocalIntersections(a,b,c),PIXI.EarCut.earcutLinked(a,b,c,d,e,f,2)):2===g&&PIXI.EarCut.splitEarcut(a,b,c,d,e,f):PIXI.EarCut.earcutLinked(PIXI.EarCut.filterPoints(a),b,c,d,e,f,1);break}}},PIXI.EarCut.isEar=function(a){var b=a.prev,c=a,d=a.next;if(PIXI.EarCut.area(b,c,d)>=0)return!1;for(var e=a.next.next;e!==a.prev;){if(PIXI.EarCut.pointInTriangle(b.x,b.y,c.x,c.y,d.x,d.y,e.x,e.y)&&PIXI.EarCut.area(e.prev,e,e.next)>=0)return!1;e=e.next}return!0},PIXI.EarCut.isEarHashed=function(a,b,c,d){var e=a.prev,f=a,g=a.next;if(PIXI.EarCut.area(e,f,g)>=0)return!1;for(var h=e.xf.x?e.x>g.x?e.x:g.x:f.x>g.x?f.x:g.x,k=e.y>f.y?e.y>g.y?e.y:g.y:f.y>g.y?f.y:g.y,l=PIXI.EarCut.zOrder(h,i,b,c,d),m=PIXI.EarCut.zOrder(j,k,b,c,d),n=a.nextZ;n&&n.z<=m;){if(n!==a.prev&&n!==a.next&&PIXI.EarCut.pointInTriangle(e.x,e.y,f.x,f.y,g.x,g.y,n.x,n.y)&&PIXI.EarCut.area(n.prev,n,n.next)>=0)return!1;n=n.nextZ}for(n=a.prevZ;n&&n.z>=l;){if(n!==a.prev&&n!==a.next&&PIXI.EarCut.pointInTriangle(e.x,e.y,f.x,f.y,g.x,g.y,n.x,n.y)&&PIXI.EarCut.area(n.prev,n,n.next)>=0)return!1;n=n.prevZ}return!0},PIXI.EarCut.cureLocalIntersections=function(a,b,c){var d=a;do{var e=d.prev,f=d.next.next;PIXI.EarCut.intersects(e,d,d.next,f)&&PIXI.EarCut.locallyInside(e,f)&&PIXI.EarCut.locallyInside(f,e)&&(b.push(e.i/c),b.push(d.i/c),b.push(f.i/c),PIXI.EarCut.removeNode(d),PIXI.EarCut.removeNode(d.next),d=a=f),d=d.next}while(d!==a);return d},PIXI.EarCut.splitEarcut=function(a,b,c,d,e,f){var g=a;do{for(var h=g.next.next;h!==g.prev;){if(g.i!==h.i&&PIXI.EarCut.isValidDiagonal(g,h)){var i=PIXI.EarCut.splitPolygon(g,h);return g=PIXI.EarCut.filterPoints(g,g.next),i=PIXI.EarCut.filterPoints(i,i.next),PIXI.EarCut.earcutLinked(g,b,c,d,e,f),void PIXI.EarCut.earcutLinked(i,b,c,d,e,f)}h=h.next}g=g.next}while(g!==a)},PIXI.EarCut.eliminateHoles=function(a,b,c,d){var e,f,g,h,i,j=[];for(e=0,f=b.length;e=d.next.y){var h=d.x+(f-d.y)*(d.next.x-d.x)/(d.next.y-d.y);h<=e&&h>g&&(g=h,c=d.x=d.x&&d.x>=c.x&&PIXI.EarCut.pointInTriangle(fc.x)&&PIXI.EarCut.locallyInside(d,a)&&(c=d,k=i)),d=d.next;return c},PIXI.EarCut.indexCurve=function(a,b,c,d){var e=a;do null===e.z&&(e.z=PIXI.EarCut.zOrder(e.x,e.y,b,c,d)),e.prevZ=e.prev,e.nextZ=e.next,e=e.next;while(e!==a);e.prevZ.nextZ=null,e.prevZ=null,PIXI.EarCut.sortLinked(e)},PIXI.EarCut.sortLinked=function(a){var b,c,d,e,f,g,h,i,j=1;do{for(c=a,a=null,f=null,g=0;c;){for(g++,d=c,h=0,b=0;b0||i>0&&d;)0===h?(e=d,d=d.nextZ,i--):0!==i&&d?c.z<=d.z?(e=c,c=c.nextZ,h--):(e=d,d=d.nextZ,i--):(e=c,c=c.nextZ,h--),f?f.nextZ=e:a=e,e.prevZ=f,f=e;c=d}f.nextZ=null,j*=2}while(g>1);return a},PIXI.EarCut.zOrder=function(a,b,c,d,e){return a=32767*(a-c)/e,b=32767*(b-d)/e,a=16711935&(a|a<<8),a=252645135&(a|a<<4),a=858993459&(a|a<<2),a=1431655765&(a|a<<1),b=16711935&(b|b<<8),b=252645135&(b|b<<4),b=858993459&(b|b<<2),b=1431655765&(b|b<<1),a|b<<1},PIXI.EarCut.getLeftmost=function(a){var b=a,c=a;do b.x=0&&(a-g)*(d-h)-(c-g)*(b-h)>=0&&(c-g)*(f-h)-(e-g)*(d-h)>=0},PIXI.EarCut.isValidDiagonal=function(a,b){return PIXI.EarCut.equals(a,b)||a.next.i!==b.i&&a.prev.i!==b.i&&!PIXI.EarCut.intersectsPolygon(a,b)&&PIXI.EarCut.locallyInside(a,b)&&PIXI.EarCut.locallyInside(b,a)&&PIXI.EarCut.middleInside(a,b)},PIXI.EarCut.area=function(a,b,c){return(b.y-a.y)*(c.x-b.x)-(b.x-a.x)*(c.y-b.y)},PIXI.EarCut.equals=function(a,b){return a.x===b.x&&a.y===b.y},PIXI.EarCut.intersects=function(a,b,c,d){return PIXI.EarCut.area(a,b,c)>0!=PIXI.EarCut.area(a,b,d)>0&&PIXI.EarCut.area(c,d,a)>0!=PIXI.EarCut.area(c,d,b)>0},PIXI.EarCut.intersectsPolygon=function(a,b){var c=a;do{if(c.i!==a.i&&c.next.i!==a.i&&c.i!==b.i&&c.next.i!==b.i&&PIXI.EarCut.intersects(c,c.next,a,b))return!0;c=c.next}while(c!==a);return!1},PIXI.EarCut.locallyInside=function(a,b){return PIXI.EarCut.area(a.prev,a,a.next)<0?PIXI.EarCut.area(a,b,a.next)>=0&&PIXI.EarCut.area(a,a.prev,b)>=0:PIXI.EarCut.area(a,b,a.prev)<0||PIXI.EarCut.area(a,a.next,b)<0},PIXI.EarCut.middleInside=function(a,b){var c=a,d=!1,e=(a.x+b.x)/2,f=(a.y+b.y)/2;do c.y>f!=c.next.y>f&&e<(c.next.x-c.x)*(f-c.y)/(c.next.y-c.y)+c.x&&(d=!d),c=c.next;while(c!==a);return d},PIXI.EarCut.splitPolygon=function(a,b){var c=new PIXI.EarCut.Node(a.i,a.x,a.y),d=new PIXI.EarCut.Node(b.i,b.x,b.y),e=a.next,f=b.prev;return a.next=b,b.prev=a,c.next=e,e.prev=c,d.next=c,c.prev=d,f.next=d,d.prev=f,d},PIXI.EarCut.insertNode=function(a,b,c,d){var e=new PIXI.EarCut.Node(a,b,c);return d?(e.next=d.next,e.prev=d,d.next.prev=e,d.next=e):(e.prev=e,e.next=e),e},PIXI.EarCut.removeNode=function(a){a.next.prev=a.prev,a.prev.next=a.next,a.prevZ&&(a.prevZ.nextZ=a.nextZ),a.nextZ&&(a.nextZ.prevZ=a.prevZ)},PIXI.EarCut.Node=function(a,b,c){this.i=a,this.x=b,this.y=c,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1},PIXI.WebGLGraphics=function(){},PIXI.WebGLGraphics.stencilBufferLimit=6,PIXI.WebGLGraphics.renderGraphics=function(a,b){var c,d=b.gl,e=b.projection,f=b.offset,g=b.shaderManager.primitiveShader;a.dirty&&PIXI.WebGLGraphics.updateGraphics(a,d);for(var h=a._webGL[d.id],i=0;i=PIXI.WebGLGraphics.stencilBufferLimit)if(g.points.length<2*PIXI.WebGLGraphics.stencilBufferLimit){f=PIXI.WebGLGraphics.switchMode(c,0);var h=PIXI.WebGLGraphics.buildPoly(g,f);h||(f=PIXI.WebGLGraphics.switchMode(c,1),PIXI.WebGLGraphics.buildComplexPoly(g,f))}else f=PIXI.WebGLGraphics.switchMode(c,1),PIXI.WebGLGraphics.buildComplexPoly(g,f);g.lineWidth>0&&(f=PIXI.WebGLGraphics.switchMode(c,0),PIXI.WebGLGraphics.buildLine(g,f))}else f=PIXI.WebGLGraphics.switchMode(c,0),g.type===PIXI.Graphics.RECT?PIXI.WebGLGraphics.buildRectangle(g,f):g.type===PIXI.Graphics.CIRC||g.type===PIXI.Graphics.ELIP?PIXI.WebGLGraphics.buildCircle(g,f):g.type===PIXI.Graphics.RREC&&PIXI.WebGLGraphics.buildRoundedRectangle(g,f);c.lastIndex++}for(d=0;d19600?(u=q-s,v=r-t,E=Math.sqrt(u*u+v*v),u/=E,v/=E,u*=K,v*=K,F.push(m-u,n-v),F.push(N,O,P,M),F.push(m+u,n+v),F.push(N,O,P,M),F.push(m-u,n-v),F.push(N,O,P,M),I++):(F.push(i,j),F.push(N,O,P,M),F.push(m-(i-m),n-(j-n)),F.push(N,O,P,M)));for(k=d[2*(H-2)],l=d[2*(H-2)+1],m=d[2*(H-1)],n=d[2*(H-1)+1],q=-(l-n),r=k-m,E=Math.sqrt(q*q+r*r),q/=E,r/=E,q*=K,r*=K,F.push(m-q,n-r),F.push(N,O,P,M),F.push(m+q,n+r),F.push(N,O,P,M),G.push(J),c=0;ch?e:h,i=fj?f:j;c.push(g,i,h,i,h,j,g,j);var l=c.length/2;for(k=0;kA?A:z,b.beginPath(),b.moveTo(v,w+z),b.lineTo(v,w+y-z),b.quadraticCurveTo(v,w+y,v+z,w+y),b.lineTo(v+x-z,w+y),b.quadraticCurveTo(v+x,w+y,v+x,w+y-z),b.lineTo(v+x,w+z),b.quadraticCurveTo(v+x,w,v+x-z,w),b.lineTo(v+z,w),b.quadraticCurveTo(v,w,v,w+z),b.closePath(),(e.fillColor||0===e.fillColor)&&(b.globalAlpha=e.fillAlpha*c,b.fillStyle="#"+("00000"+(0|g).toString(16)).substr(-6),b.fill()),e.lineWidth&&(b.globalAlpha=e.lineAlpha*c,b.strokeStyle="#"+("00000"+(0|h).toString(16)).substr(-6),b.stroke())}}},PIXI.CanvasGraphics.renderGraphicsMask=function(a,b){var c=a.graphicsData.length;if(0!==c){b.beginPath();for(var d=0;dy?y:x,b.moveTo(t,u+x),b.lineTo(t,u+w-x),b.quadraticCurveTo(t,u+w,t+x,u+w),b.lineTo(t+v-x,u+w),b.quadraticCurveTo(t+v,u+w,t+v,u+w-x),b.lineTo(t+v,u+x),b.quadraticCurveTo(t+v,u,t+v-x,u),b.lineTo(t+x,u),b.quadraticCurveTo(t,u,t,u+x),b.closePath()}}}},PIXI.CanvasGraphics.updateGraphicsTint=function(a){if(16777215!==a.tint)for(var b=(a.tint>>16&255)/255,c=(a.tint>>8&255)/255,d=(255&a.tint)/255,e=0;e>16&255)/255*b*255<<16)+((g>>8&255)/255*c*255<<8)+(255&g)/255*d*255,f._lineTint=((h>>16&255)/255*b*255<<16)+((h>>8&255)/255*c*255<<8)+(255&h)/255*d*255;
-}},c.Graphics=function(a,b,d){void 0===b&&(b=0),void 0===d&&(d=0),this.type=c.GRAPHICS,this.physicsType=c.SPRITE,this.anchor=new c.Point,PIXI.Graphics.call(this),c.Component.Core.init.call(this,a,b,d,"",null)},c.Graphics.prototype=Object.create(PIXI.Graphics.prototype),c.Graphics.prototype.constructor=c.Graphics,c.Component.Core.install.call(c.Graphics.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.Graphics.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Graphics.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Graphics.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Graphics.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Graphics.prototype.preUpdate=function(){return!!(this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld())&&this.preUpdateCore()},c.Graphics.prototype.postUpdate=function(){c.Component.PhysicsBody.postUpdate.call(this),c.Component.FixedToCamera.postUpdate.call(this),this._boundsDirty&&(this.updateLocalBounds(),this._boundsDirty=!1);for(var a=0;a0&&this.drawPolygon(d)}else this.drawPolygon(d)},c.Graphics.prototype.drawTriangles=function(a,b,d){void 0===d&&(d=!1);var e,f=new c.Point,g=new c.Point,h=new c.Point,i=[];if(b)if(a[0]instanceof c.Point)for(e=0;e0&&this.style.maxLines0||this.strokeColors.length>0||this.fontWeights.length>0||this.fontStyles.length>0?this.measureLine(b[h]):this.context.measureText(b[h]).width,this.style.wordWrap&&(i-=this.context.measureText(" ").width)}else{var j=b[h].split(/(?:\t)/),i=this.padding.x+this.style.strokeThickness;if(Array.isArray(c))for(var k=0,l=0;l0||this.strokeColors.length>0||this.fontWeights.length>0||this.fontStyles.length>0?this.measureLine(j[l]):Math.ceil(this.context.measureText(j[l]).width),l>0&&(k+=c[l-1]),i=k+m}else for(var l=0;l0||this.strokeColors.length>0||this.fontWeights.length>0||this.fontStyles.length>0?this.measureLine(j[l]):Math.ceil(this.context.measureText(j[l]).width);var n=this.game.math.snapToCeil(i,c)-i;i+=n}}d[h]=Math.ceil(i),e=Math.max(e,d[h])}this.canvas.width=e*this._res;var o=f.fontSize+this.style.strokeThickness+this.padding.y,p=o*g,q=this._lineSpacing;q<0&&Math.abs(q)>o&&(q=-o),0!==q&&(p+=q>0?q*b.length:q*(b.length-1)),this.canvas.height=p*this._res,this.context.scale(this._res,this._res),navigator.isCocoonJS&&this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.style.backgroundColor&&(this.context.fillStyle=this.style.backgroundColor,this.context.fillRect(0,0,this.canvas.width,this.canvas.height)),this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.textBaseline="alphabetic",this.context.lineWidth=this.style.strokeThickness,this.context.lineCap="round",this.context.lineJoin="round";var r,s;for(this._charCount=0,h=0;h0&&(s+=q*h),"right"===this.style.align?r+=e-d[h]:"center"===this.style.align&&(r+=(e-d[h])/2),this.autoRound&&(r=Math.round(r),s=Math.round(s)),this.colors.length>0||this.strokeColors.length>0||this.fontWeights.length>0||this.fontStyles.length>0?this.updateLine(b[h],r,s):(this.style.stroke&&this.style.strokeThickness&&(this.updateShadow(this.style.shadowStroke),0===c?this.context.strokeText(b[h],r,s):this.renderTabLine(b[h],r,s,!1)),this.style.fill&&(this.updateShadow(this.style.shadowFill),0===c?this.context.fillText(b[h],r,s):this.renderTabLine(b[h],r,s,!0)));this.updateTexture()},c.Text.prototype.renderTabLine=function(a,b,c,d){var e=a.split(/(?:\t)/),f=this.style.tabs,g=0;if(Array.isArray(f))for(var h=0,i=0;i0&&(h+=f[i-1]),g=b+h,d?this.context.fillText(e[i],g,c):this.context.strokeText(e[i],g,c);else for(var i=0;i0||this.fontStyles.length>0){var e=this.fontToComponents(this.context.font);this.fontStyles[this._charCount]&&(e.fontStyle=this.fontStyles[this._charCount]),this.fontWeights[this._charCount]&&(e.fontWeight=this.fontWeights[this._charCount]),this.context.font=this.componentsToFont(e)}this.style.stroke&&this.style.strokeThickness&&(this.strokeColors[this._charCount]&&(this.context.strokeStyle=this.strokeColors[this._charCount]),this.updateShadow(this.style.shadowStroke)),this.style.fill&&(this.colors[this._charCount]&&(this.context.fillStyle=this.colors[this._charCount]),this.updateShadow(this.style.shadowFill)),b+=this.context.measureText(d).width,this._charCount++}return Math.ceil(b)},c.Text.prototype.updateLine=function(a,b,c){for(var d=0;d0||this.fontStyles.length>0){var f=this.fontToComponents(this.context.font);this.fontStyles[this._charCount]&&(f.fontStyle=this.fontStyles[this._charCount]),this.fontWeights[this._charCount]&&(f.fontWeight=this.fontWeights[this._charCount]),this.context.font=this.componentsToFont(f)}this.style.stroke&&this.style.strokeThickness&&(this.strokeColors[this._charCount]&&(this.context.strokeStyle=this.strokeColors[this._charCount]),this.updateShadow(this.style.shadowStroke),this.context.strokeText(e,b,c)),this.style.fill&&(this.colors[this._charCount]&&(this.context.fillStyle=this.colors[this._charCount]),this.updateShadow(this.style.shadowFill),this.context.fillText(e,b,c)),b+=this.context.measureText(e).width,this._charCount++}},c.Text.prototype.clearColors=function(){return this.colors=[],this.strokeColors=[],this.dirty=!0,this},c.Text.prototype.clearFontValues=function(){return this.fontStyles=[],this.fontWeights=[],this.dirty=!0,this},c.Text.prototype.addColor=function(a,b){return this.colors[b]=a,this.dirty=!0,this},c.Text.prototype.addStrokeColor=function(a,b){return this.strokeColors[b]=a,this.dirty=!0,this},c.Text.prototype.addFontStyle=function(a,b){return this.fontStyles[b]=a,this.dirty=!0,this},c.Text.prototype.addFontWeight=function(a,b){return this.fontWeights[b]=a,this.dirty=!0,this},c.Text.prototype.precalculateWordWrap=function(a){this.texture.baseTexture.resolution=this._res,this.context.font=this.style.font;var b=this.runWordWrap(a);return b.split(/(?:\r\n|\r|\n)/)},c.Text.prototype.runWordWrap=function(a){return this.useAdvancedWrap?this.advancedWordWrap(a):this.basicWordWrap(a)},c.Text.prototype.advancedWordWrap=function(a){for(var b=this.context,c=this.style.wordWrapWidth,d="",e=a.replace(/ +/gi," ").split(/\r?\n/gi),f=e.length,g=0;gk){if(0===m){for(var q=o;q.length&&(q=q.slice(0,-1),p=b.measureText(q).width,!(p<=k)););if(!q.length)throw new Error("This text's wordWrapWidth setting is less than a single character!");var r=n.substr(q.length);l[m]=r,i+=q}var s=l[m].length?m:m+1,t=l.slice(s).join(" ").replace(/[ \n]*$/gi,"");e[g+1]=t+" "+(e[g+1]||""),f=e.length;break}i+=o,k-=p}d+=i.replace(/[ \n]*$/gi,"")+"\n"}}return d=d.replace(/[\s|\n]*$/gi,"")},c.Text.prototype.basicWordWrap=function(a){for(var b="",c=a.split("\n"),d=0;de?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}dd&&(this.style.wordWrapWidth=d)),this.updateTexture(),this},c.Text.prototype.updateTexture=function(){var a=this.texture.baseTexture,b=this.texture.crop,c=this.texture.frame,d=this.canvas.width,e=this.canvas.height;if(a.width=d,a.height=e,b.width=d,b.height=e,c.width=d,c.height=e,this.texture.width=d,this.texture.height=e,this._width=d,this._height=e,this.textBounds){var f=this.textBounds.x,g=this.textBounds.y;"right"===this.style.boundsAlignH?f+=this.textBounds.width-this.canvas.width:"center"===this.style.boundsAlignH&&(f+=this.textBounds.halfWidth-this.canvas.width/2),"bottom"===this.style.boundsAlignV?g+=this.textBounds.height-this.canvas.height:"middle"===this.style.boundsAlignV&&(g+=this.textBounds.halfHeight-this.canvas.height/2),this.pivot.x=-f,this.pivot.y=-g}this.renderable=0!==d&&0!==e,this.texture.requiresReTint=!0,this.texture.baseTexture.dirty()},c.Text.prototype._renderWebGL=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderWebGL.call(this,a)},c.Text.prototype._renderCanvas=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderCanvas.call(this,a)},c.Text.prototype.determineFontProperties=function(a){var b=c.Text.fontPropertiesCache[a];if(!b){b={};var d=c.Text.fontPropertiesCanvas,e=c.Text.fontPropertiesContext;e.font=a;var f=Math.ceil(e.measureText("|MÉq").width),g=Math.ceil(e.measureText("|MÉq").width),h=2*g;if(g=1.4*g|0,d.width=f,d.height=h,e.fillStyle="#f00",e.fillRect(0,0,f,h),e.font=a,e.textBaseline="alphabetic",e.fillStyle="#000",e.fillText("|MÉq",0,g),!e.getImageData(0,0,f,h))return b.ascent=g,b.descent=g+6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b,b;var i,j,k=e.getImageData(0,0,f,h).data,l=k.length,m=4*f,n=0,o=!1;for(i=0;ig;i--){for(j=0;j0?this._maxWidth:null,j=[],k=0;k=i&&f>-1)return{width:g||e,text:c.substr(0,k-(k-f)),end:l,chars:j};e+=(n.xAdvance+p)*b,j.push(d+(n.xOffset+p)*b),d+=(n.xAdvance+p)*b,h=m}return{width:e,text:c,end:l,chars:j}},c.BitmapText.prototype.cleanText=function(a,b){void 0===b&&(b="");var c=this._data.font;if(!c)return"";for(var d=/\r\n|\n\r|\n|\r/g,e=a.replace(d,"\n").split("\n"),f=0;fthis.textWidth&&(this.textWidth=f.width),e+=a.lineHeight*c,b=b.substr(f.text.length+1)}while(f.end===!1);this.textHeight=e;for(var g=0,h=0,i=this.textWidth*this.anchor.x,j=this.textHeight*this.anchor.y,k=0;k0&&(this._fontSize=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"maxWidth",{get:function(){return this._maxWidth},set:function(a){a!==this._maxWidth&&(this._maxWidth=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"smoothed",{get:function(){return!this._data.base.scaleMode},set:function(a){a?this._data.base.scaleMode=0:this._data.base.scaleMode=1}}),c.RetroFont=function(a,b,d,e,f,g,h,i,j,k){if(!a.cache.checkImageKey(b))return!1;void 0!==g&&null!==g||(g=a.cache.getImage(b).width/d),this.characterWidth=d,this.characterHeight=e,this.characterSpacingX=h||0,this.characterSpacingY=i||0,this.characterPerRow=g,this.offsetX=j||0,this.offsetY=k||0,this.align="left",this.multiLine=!1,this.autoUpperCase=!0,this.customSpacingX=0,this.customSpacingY=0,this.fixedWidth=0,this.fontSet=a.cache.getImage(b),this._text="",this.grabData=[],this.frameData=new c.FrameData;for(var l=this.offsetX,m=this.offsetY,n=0,o=0;o?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",c.RetroFont.TEXT_SET2=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",c.RetroFont.TEXT_SET4="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",c.RetroFont.TEXT_SET5="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",c.RetroFont.TEXT_SET6="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",c.RetroFont.TEXT_SET7="AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",c.RetroFont.TEXT_SET8="0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET9="ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",c.RetroFont.TEXT_SET10="ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET11="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789",c.RetroFont.prototype.setFixedWidth=function(a,b){void 0===b&&(b="left"),this.fixedWidth=a,this.align=b},c.RetroFont.prototype.setText=function(a,b,c,d,e,f){this.multiLine=b||!1,this.customSpacingX=c||0,this.customSpacingY=d||0,this.align=e||"left",f?this.autoUpperCase=!1:this.autoUpperCase=!0,a.length>0&&(this.text=a)},c.RetroFont.prototype.buildRetroFontText=function(){var a=0,b=0;if(this.clear(),this.multiLine){var d=this._text.split("\n");this.fixedWidth>0?this.resize(this.fixedWidth,d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0):this.resize(this.getLongestLine()*(this.characterWidth+this.customSpacingX),d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0);for(var e=0;e0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),a=0,this.align===c.RetroFont.ALIGN_RIGHT?a=this.width-this._text.length*(this.characterWidth+this.customSpacingX):this.align===c.RetroFont.ALIGN_CENTER&&(a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2),a<0&&(a=0),this.pasteLine(this._text,a,0,this.customSpacingX);this.requiresReTint=!0},c.RetroFont.prototype.pasteLine=function(a,b,c,d){for(var e=0;e=0&&(this.stamp.frame=this.grabData[a.charCodeAt(e)],this.renderXY(this.stamp,b,c,!1),b+=this.characterWidth+d,b>this.width))break},c.RetroFont.prototype.getLongestLine=function(){var a=0;if(this._text.length>0)for(var b=this._text.split("\n"),c=0;ca&&(a=b[c].length);return a},c.RetroFont.prototype.removeUnsupportedCharacters=function(a){for(var b="",c=0;c=0||!a&&"\n"===d)&&(b=b.concat(d))}return b},c.RetroFont.prototype.updateOffset=function(a,b){
-if(this.offsetX!==a||this.offsetY!==b){for(var c=a-this.offsetX,d=b-this.offsetY,e=this.game.cache.getFrameData(this.stamp.key).getFrames(),f=e.length;f--;)e[f].x+=c,e[f].y+=d;this.buildRetroFontText()}},Object.defineProperty(c.RetroFont.prototype,"text",{get:function(){return this._text},set:function(a){var b;b=this.autoUpperCase?a.toUpperCase():a,b!==this._text&&(this._text=b,this.removeUnsupportedCharacters(this.multiLine),this.buildRetroFontText())}}),Object.defineProperty(c.RetroFont.prototype,"smoothed",{get:function(){return this.stamp.smoothed},set:function(a){this.stamp.smoothed=a,this.buildRetroFontText()}}),c.Rope=function(a,b,d,e,f,g){this.points=[],this.points=g,this._hasUpdateAnimation=!1,this._updateAnimationCallback=null,b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.ROPE,PIXI.Rope.call(this,c.Cache.DEFAULT,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return!!(this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld())&&this.preUpdateCore()},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this},Object.defineProperty(c.Rope.prototype,"updateAnimation",{get:function(){return this._updateAnimation},set:function(a){a&&"function"==typeof a?(this._hasUpdateAnimation=!0,this._updateAnimation=a):(this._hasUpdateAnimation=!1,this._updateAnimation=null)}}),Object.defineProperty(c.Rope.prototype,"segments",{get:function(){for(var a,b,d,e,f,g,h,i,j=[],k=0;k=1)&&(l.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(l.mspointer=!0),l.cocoonJS||("onwheel"in window||l.ie&&"WheelEvent"in window?l.wheelEvent="wheel":"onmousewheel"in window?l.wheelEvent="mousewheel":l.firefox&&"MouseScrollEvent"in window&&(l.wheelEvent="DOMMouseScroll"))}function d(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c=9&&/Mac OS X (\d+)_(\d+)/.test(navigator.userAgent)){var c=parseInt(RegExp.$1,10),d=parseInt(RegExp.$2,10);(10===c&&d>=11||c>10)&&(l.dolby=!0)}}catch(a){}}function h(){l.pixelRatio=window.devicePixelRatio||1,l.iPhone=navigator.userAgent.toLowerCase().indexOf("iphone")!=-1,l.iPhone4=2==l.pixelRatio&&l.iPhone,l.iPad=navigator.userAgent.toLowerCase().indexOf("ipad")!=-1,"undefined"!=typeof Int8Array?l.typedArray=!0:l.typedArray=!1,"undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint32Array&&(l.littleEndian=i(),l.LITTLE_ENDIAN=l.littleEndian),l.support32bit="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof Int32Array&&null!==l.littleEndian&&j(),navigator.vibrate=navigator.vibrate||navigator.webkitVibrate||navigator.mozVibrate||navigator.msVibrate,navigator.vibrate&&(l.vibration=!0)}function i(){var a=new ArrayBuffer(4),b=new Uint8Array(a),c=new Uint32Array(a);return b[0]=161,b[1]=178,b[2]=195,b[3]=212,3569595041==c[0]||2712847316!=c[0]&&null}function j(){if(void 0===Uint8ClampedArray)return!1;var a=PIXI.CanvasPool.create(this,1,1),b=a.getContext("2d");if(!b)return!1;var c=b.createImageData(1,1);return PIXI.CanvasPool.remove(this),c.data instanceof Uint8ClampedArray}function k(){var a,b=document.createElement("p"),c={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};document.body.insertBefore(b,null);for(var d in c)void 0!==b.style[d]&&(b.style[d]="translate3d(1px,1px,1px)",a=window.getComputedStyle(b).getPropertyValue(c[d]));document.body.removeChild(b),l.css3D=void 0!==a&&a.length>0&&"none"!==a}var l=this;a(),e(),g(),f(),k(),h(),b(),d(),c()},c.Device.canPlayAudio=function(a){return!("mp3"!==a||!this.mp3)||(!("ogg"!==a||!this.ogg&&!this.opus)||(!("m4a"!==a||!this.m4a)||(!("opus"!==a||!this.opus)||(!("wav"!==a||!this.wav)||(!("webm"!==a||!this.webm)||!("mp4"!==a||!this.dolby))))))},c.Device.canPlayVideo=function(a){return!("webm"!==a||!this.webmVideo&&!this.vp9Video)||(!("mp4"!==a||!this.mp4Video&&!this.h264Video)||(!("ogg"!==a&&"ogv"!==a||!this.oggVideo)||!("mpeg"!==a||!this.hlsVideo)))},c.Device.isConsoleOpen=function(){return!(!window.console||!window.console.firebug)||!(!window.console||(console.profile(),console.profileEnd(),console.clear&&console.clear(),!console.profiles))&&console.profiles.length>0},c.Device.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.Canvas={create:function(a,b,c,d,e){b=b||256,c=c||256;var f=e?document.createElement("canvas"):PIXI.CanvasPool.create(a,b,c);return"string"==typeof d&&""!==d&&(f.id=d),f.width=b,f.height=c,f.style.display="block",f},setBackgroundColor:function(a,b){return b=b||"rgb(0,0,0)",a.style.backgroundColor=b,a},setTouchAction:function(a,b){return b=b||"none",a.style.msTouchAction=b,a.style["ms-touch-action"]=b,a.style["touch-action"]=b,a},setUserSelect:function(a,b){return b=b||"none",a.style["-webkit-touch-callout"]=b,a.style["-webkit-user-select"]=b,a.style["-khtml-user-select"]=b,a.style["-moz-user-select"]=b,a.style["-ms-user-select"]=b,a.style["user-select"]=b,a.style["-webkit-tap-highlight-color"]="rgba(0, 0, 0, 0)",a},addToDOM:function(a,b,c){var d;return void 0===c&&(c=!0),b&&("string"==typeof b?d=document.getElementById(b):"object"==typeof b&&1===b.nodeType&&(d=b)),d||(d=document.body),c&&d.style&&(d.style.overflow="hidden"),d.appendChild(a),a},removeFromDOM:function(a){a.parentNode&&a.parentNode.removeChild(a)},setTransform:function(a,b,c,d,e,f,g){return a.setTransform(d,f,g,e,b,c),a},setSmoothingEnabled:function(a,b){var d=c.Canvas.getSmoothingPrefix(a);return d&&(a[d]=b),a},getSmoothingPrefix:function(a){var b=["i","webkitI","msI","mozI","oI"];for(var c in b){var d=b[c]+"mageSmoothingEnabled";if(d in a)return d}return null},getSmoothingEnabled:function(a){var b=c.Canvas.getSmoothingPrefix(a);if(b)return a[b]},setImageRenderingCrisp:function(a){for(var b=["optimizeSpeed","crisp-edges","-moz-crisp-edges","-webkit-optimize-contrast","optimize-contrast","pixelated"],c=0;cb-c},fuzzyCeil:function(a,b){return void 0===b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return void 0===b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=arguments.length,c=0;c=0?a:a+2*Math.PI},maxAdd:function(a,b,c){return Math.min(a+b,c)},minSub:function(a,b,c){return Math.max(a-b,c)},wrap:function(a,b,c){var d=c-b;if(d<=0)return 0;var e=(a-b)%d;return e<0&&(e+=d),e+b},wrapValue:function(a,b,c){var d;return a=Math.abs(a),b=Math.abs(b),c=Math.abs(c),d=(a+b)%c},isOdd:function(a){return!!(1&a)},isEven:function(a){return!(1&a)},min:function(){if(1===arguments.length&&"object"==typeof arguments[0])var a=arguments[0];else var a=arguments;for(var b=1,c=0,d=a.length;ba[c]&&(c=b);return a[c]},minProperty:function(a){if(2===arguments.length&&"object"==typeof arguments[1])var b=arguments[1];else var b=arguments.slice(1);for(var c=1,d=0,e=b.length;cb[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){return b?this.wrap(a,-Math.PI,Math.PI):this.wrap(a,-180,180)},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return b<0?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;e<=d;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(b<0&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):b<0?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[c0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){void 0===b&&(b=1),void 0===c&&(c=1),void 0===d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;j0?1:0},percent:function(a,b,c){return void 0===c&&(c=0),a>b||c>b?1:aa?0:(a-c)/b}};var k=Math.PI/180,l=180/Math.PI;return c.Math.degToRad=function(a){return a*k},c.Math.radToDeg=function(a){return a*l},c.RandomDataGenerator=function(a){void 0===a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,"string"==typeof a?this.state(a):this.sow(a)},c.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){if(this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1,a)for(var b=0;b>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},sign:function(){return this.pick([-1,1])},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1)+.5)]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)},state:function(a){return"string"==typeof a&&a.match(/^!rnd/)&&(a=a.split(","),this.c=parseFloat(a[1]),this.s0=parseFloat(a[2]),this.s1=parseFloat(a[3]),this.s2=parseFloat(a[4])),["!rnd",this.c,this.s0,this.s1,this.s2].join(",")}},c.RandomDataGenerator.prototype.constructor=c.RandomDataGenerator,c.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},c.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.nodes[0]=new c.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[1]=new c.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[2]=new c.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[3]=new c.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&(b=this.getIndex(a),b!==-1))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof c.Rectangle)var b=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var b=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(d!==-1?b=b.concat(this.nodes[d].retrieve(a)):(b=b.concat(this.nodes[0].retrieve(a)),b=b.concat(this.nodes[1].retrieve(a)),b=b.concat(this.nodes[2].retrieve(a)),b=b.concat(this.nodes[3].retrieve(a)))),b},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},c.QuadTree.prototype.constructor=c.QuadTree,c.Net=function(a){this.game=a},c.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(a){return window.location.hostname.indexOf(a)!==-1},updateQueryString:function(a,b,c,d){void 0===c&&(c=!1),void 0!==d&&""!==d||(d=window.location.href);var e="",f=new RegExp("([?|&])"+a+"=.*?(&|#|$)(.*)","gi");if(f.test(d))e="undefined"!=typeof b&&null!==b?d.replace(f,"$1"+a+"="+b+"$2$3"):d.replace(f,"$1$3").replace(/(&|\?)$/,"");else if("undefined"!=typeof b&&null!==b){var g=d.indexOf("?")!==-1?"&":"?",h=d.split("#");d=h[0]+g+a+"="+b,h[1]&&(d+="#"+h[1]),e=d}else e=d;return c?void(window.location.href=e):e},getQueryString:function(a){void 0===a&&(a="");var b={},c=location.search.substring(1).split("&");for(var d in c){var e=c[d].split("=");if(e.length>1){if(a&&a==this.decodeURI(e[0]))return this.decodeURI(e[1]);b[this.decodeURI(e[0])]=this.decodeURI(e[1])}}return b},decodeURI:function(a){return decodeURIComponent(a.replace(/\+/g," "))}},c.Net.prototype.constructor=c.Net,c.TweenManager=function(a){this.game=a,this.frameBased=!1,this._tweens=[],this._add=[],this.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"Bounce.easeOut":c.Easing.Bounce.Out,"Quad.easeInOut":c.Easing.Quadratic.InOut,"Cubic.easeInOut":c.Easing.Cubic.InOut,"Quart.easeInOut":c.Easing.Quartic.InOut,"Quint.easeInOut":c.Easing.Quintic.InOut,"Sine.easeInOut":c.Easing.Sinusoidal.InOut,"Expo.easeInOut":c.Easing.Exponential.InOut,"Circ.easeInOut":c.Easing.Circular.InOut,"Elastic.easeInOut":c.Easing.Elastic.InOut,"Back.easeInOut":c.Easing.Back.InOut,"Bounce.easeInOut":c.Easing.Bounce.InOut},this.game.onPause.add(this._pauseAll,this),this.game.onResume.add(this._resumeAll,this)},c.TweenManager.prototype={getAll:function(){return this._tweens},removeAll:function(){for(var a=0;a0&&(this._tweens=this._tweens.concat(this._add),this._add.length=0),!0},isTweening:function(a){return this._tweens.some(function(b){return b.target===a})},_pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._pause()},_resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._resume()},pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].pause()},resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].resume(!0)}},c.TweenManager.prototype.constructor=c.TweenManager,c.Tween=function(a,b,d){this.game=b,this.target=a,this.manager=d,this.timeline=[],this.reverse=!1,this.timeScale=1,this.repeatCounter=0,this.pendingDelete=!1,this.onStart=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.Signal,
-this.isRunning=!1,this.current=0,this.properties={},this.chainedTween=null,this.isPaused=!1,this.frameBased=d.frameBased,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._pausedTime=0,this._codePaused=!1,this._hasStarted=!1},c.Tween.prototype={to:function(a,b,d,e,f,g,h){return(void 0===b||b<=0)&&(b=1e3),void 0!==d&&null!==d||(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.to cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return void 0===b&&(b=1e3),void 0!==d&&null!==d||(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.from cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if(void 0===a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;bthis.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this},stop:function(a){return void 0===a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this.target,this),this._hasStarted=!1,this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},updateTweenData:function(a,b,c){if(0===this.timeline.length)return this;if(void 0===c&&(c=0),c===-1)for(var d=0;d0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return void 0===a&&(a=!0),this.repeatCounter=a?-1:0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this._hasStarted=!1,this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;void 0===a&&(a=60),void 0===b&&(b=[]);for(var c=0;c0?this.isRunning=!1:this.isRunning=!0,this.isFrom)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a],this.parent.target[a]=this.vStart[a];return this.value=0,this.yoyoCounter=0,this.repeatCounter=this.repeatTotal,this},loadValues:function(){for(var a in this.parent.properties){if(this.vStart[a]=this.parent.properties[a],Array.isArray(this.vEnd[a])){if(0===this.vEnd[a].length)continue;0===this.percent&&(this.vEnd[a]=[this.vStart[a]].concat(this.vEnd[a]))}"undefined"!=typeof this.vEnd[a]?("string"==typeof this.vEnd[a]&&(this.vEnd[a]=this.vStart[a]+parseFloat(this.vEnd[a],10)),this.parent.properties[a]=this.vEnd[a]):this.vEnd[a]=this.vStart[a],this.vStartCache[a]=this.vStart[a],this.vEndCache[a]=this.vEnd[a]}return this},update:function(a){if(this.isRunning){if(a=this.startTime))return c.TweenData.PENDING;this.isRunning=!0}var b=this.parent.frameBased?this.game.time.physicsElapsedMS:this.game.time.elapsedMS;this.parent.reverse?(this.dt-=b*this.parent.timeScale,this.dt=Math.max(this.dt,0)):(this.dt+=b*this.parent.timeScale,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);for(var d in this.vEnd){var e=this.vStart[d],f=this.vEnd[d];Array.isArray(f)?this.parent.target[d]=this.interpolationFunction.call(this.interpolationContext,f,this.value):this.parent.target[d]=e+(f-e)*this.value}return!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent?this.repeat():c.TweenData.RUNNING},generateData:function(a){this.parent.reverse?this.dt=this.duration:this.dt=0;var b=[],c=!1,d=1/a*1e3;do{this.parent.reverse?(this.dt-=d,this.dt=Math.max(this.dt,0)):(this.dt+=d,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);var e={};for(var f in this.vEnd){var g=this.vStart[f],h=this.vEnd[f];Array.isArray(h)?e[f]=this.interpolationFunction(h,this.value):e[f]=g+(h-g)*this.value}b.push(e),(!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent)&&(c=!0)}while(!c);if(this.yoyo){var i=b.slice();i.reverse(),b=b.concat(i)}return b},repeat:function(){if(this.yoyo){if(this.inReverse&&0===this.repeatCounter){for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];return this.inReverse=!1,c.TweenData.COMPLETE}this.inReverse=!this.inReverse}else if(0===this.repeatCounter)return c.TweenData.COMPLETE;if(this.inReverse)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a];else{for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];this.repeatCounter>0&&this.repeatCounter--}return this.startTime=this.game.time.time,this.yoyo&&this.inReverse?this.startTime+=this.yoyoDelay:this.inReverse||(this.startTime+=this.repeatDelay),this.parent.reverse?this.dt=this.duration:this.dt=0,c.TweenData.LOOPED}},c.TweenData.prototype.constructor=c.TweenData,c.Easing={Linear:{None:function(a){return a}},Quadratic:{In:function(a){return a*a},Out:function(a){return a*(2-a)},InOut:function(a){return(a*=2)<1?.5*a*a:-.5*(--a*(a-2)-1)}},Cubic:{In:function(a){return a*a*a},Out:function(a){return--a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a:.5*((a-=2)*a*a+2)}},Quartic:{In:function(a){return a*a*a*a},Out:function(a){return 1- --a*a*a*a},InOut:function(a){return(a*=2)<1?.5*a*a*a*a:-.5*((a-=2)*a*a*a-2)}},Quintic:{In:function(a){return a*a*a*a*a},Out:function(a){return--a*a*a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2)}},Sinusoidal:{In:function(a){return 0===a?0:1===a?1:1-Math.cos(a*Math.PI/2)},Out:function(a){return 0===a?0:1===a?1:Math.sin(a*Math.PI/2)},InOut:function(a){return 0===a?0:1===a?1:.5*(1-Math.cos(Math.PI*a))}},Exponential:{In:function(a){return 0===a?0:Math.pow(1024,a-1)},Out:function(a){return 1===a?1:1-Math.pow(2,-10*a)},InOut:function(a){return 0===a?0:1===a?1:(a*=2)<1?.5*Math.pow(1024,a-1):.5*(-Math.pow(2,-10*(a-1))+2)}},Circular:{In:function(a){return 1-Math.sqrt(1-a*a)},Out:function(a){return Math.sqrt(1- --a*a)},InOut:function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)}},Elastic:{In:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||c<1?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),-(c*Math.pow(2,10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/d)))},Out:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||c<1?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),c*Math.pow(2,-10*a)*Math.sin((a-b)*(2*Math.PI)/d)+1)},InOut:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||c<1?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),(a*=2)<1?-.5*(c*Math.pow(2,10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/d)):c*Math.pow(2,-10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/d)*.5+1)}},Back:{In:function(a){var b=1.70158;return a*a*((b+1)*a-b)},Out:function(a){var b=1.70158;return--a*a*((b+1)*a+b)+1},InOut:function(a){var b=2.5949095;return(a*=2)<1?.5*(a*a*((b+1)*a-b)):.5*((a-=2)*a*((b+1)*a+b)+2)}},Bounce:{In:function(a){return 1-c.Easing.Bounce.Out(1-a)},Out:function(a){return a<1/2.75?7.5625*a*a:a<2/2.75?7.5625*(a-=1.5/2.75)*a+.75:a<2.5/2.75?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},InOut:function(a){return a<.5?.5*c.Easing.Bounce.In(2*a):.5*c.Easing.Bounce.Out(2*a-1)+.5}}},c.Easing.Default=c.Easing.Linear.None,c.Easing.Power0=c.Easing.Linear.None,c.Easing.Power1=c.Easing.Quadratic.Out,c.Easing.Power2=c.Easing.Cubic.Out,c.Easing.Power3=c.Easing.Quartic.Out,c.Easing.Power4=c.Easing.Quintic.Out,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=1/60,this.physicsElapsedMS=1/60*1e3,this.desiredFpsMult=1/60,this._desiredFps=60,this.suggestedFps=this.desiredFps,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,(!1)),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start(),this.timeExpected=this.time},add:function(a){return this._timers.push(a),a},create:function(a){void 0===a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;a=2*this._desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),this.msMin=Math.min(this.msMin,this.elapsed),this.msMax=Math.max(this.msMax,this.elapsed),this.frames++,this.now>this._timeLastSecond+1e3&&(this.fps=Math.round(1e3*this.frames/(this.now-this._timeLastSecond)),this.fpsMin=Math.min(this.fpsMin,this.fps),this.fpsMax=Math.max(this.fpsMax,this.fps),this._timeLastSecond=this.now,this.frames=0)},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.time,this.removeAll()}},Object.defineProperty(c.Time.prototype,"desiredFps",{get:function(){return this._desiredFps},set:function(a){this._desiredFps=a,this.physicsElapsed=1/a,this.physicsElapsedMS=1e3*this.physicsElapsed,this.desiredFpsMult=1/a}}),c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){void 0===b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.slice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.slice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.slice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(this.events.sort(this.sortHandler),this.nextTick=this.events[0].tick)},sortHandler:function(a,b){return a.tickb.tick?1:0},clearPendingEvents:function(){for(this._i=this.events.length;this._i--;)this.events[this._i].pendingDelete&&this.events.splice(this._i,1);this._len=this.events.length,this._i=0},update:function(a){if(this.paused)return!0;if(this.elapsed=a-this._now,this._now=a,this.elapsed>this.timeCap&&this.adjustEvents(a-this.elapsed),this._marked=0,this.clearPendingEvents(),this.running&&this._now>=this.nextTick&&this._len>0){for(;this._i=this.events[this._i].tick&&!this.events[this._i].pendingDelete;)this._newTick=this._now+this.events[this._i].delay-(this._now-this.events[this._i].tick),this._newTick<0&&(this._newTick=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):this.events[this._i].repeatCount>0?(this.events[this._i].repeatCount--,this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this._marked++,this.events[this._i].pendingDelete=!0,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)),this._i++;this.events.length>this._marked?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return!this.expired||!this.autoDestroy},pause:function(){this.running&&(this._codePaused=!0,this.paused||(this._pauseStarted=this.game.time.time,this.paused=!0))},_pause:function(){!this.paused&&this.running&&(this._pauseStarted=this.game.time.time,this.paused=!0)},adjustEvents:function(a){for(var b=0;bthis._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if(void 0===a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,void 0===e&&(e=!1),void 0===f&&(f=!(!b||"number"!=typeof b[0])),this._outputFrames=[],this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.sprite.tilingTexture&&(this.sprite.refreshTexture=!0),this._anims[a]},validateFrames:function(a,b){void 0===b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){if(this._anims[a])return this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d))},stop:function(a,b){void 0===b&&(b=!1),!this.currentAnim||"string"==typeof a&&a!==this.currentAnim.name||this.currentAnim.stop(b)},update:function(){return!(this.updateIfVisible&&!this.sprite.visible)&&(!(!this.currentAnim||!this.currentAnim.update())&&(this.currentFrame=this.currentAnim.currentFrame,!0))},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._outputFrames=[],this._frameData=null,this.currentAnim=null,this.currentFrame=null,this.sprite=null,this.game=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){if(this.currentAnim)return this.currentAnim.name}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){if(this.currentFrame)return this.currentFrame.index},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&this.sprite.setFrame(this.currentFrame))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){if(this.currentFrame)return this.currentFrame.name},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){void 0===h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.isReversed=!1,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=this.isReversed?this._frames.length-1:0,this.updateCurrentFrame(!1,!0),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this.onStart.dispatch(this._parent,this)},reverse:function(){return this.reversed=!this.reversed,this},reverseOnce:function(){return this.onComplete.addOnce(this.reverse.bind(this)),this.reverse()},setFrame:function(a,b){var c;if(void 0===b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame)&&(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this.isReversed?this._frameIndex-=this._frameSkip:this._frameIndex+=this._frameSkip,!this.isReversed&&this._frameIndex>=this._frames.length||this.isReversed&&this._frameIndex<=-1?this.loop?(this._frameIndex=Math.abs(this._frameIndex)%this._frames.length,this.isReversed&&(this._frameIndex=this._frames.length-1-this._frameIndex),this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&this._parent.setFrame(this.currentFrame),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this),!this.onUpdate||(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData)):(this.complete(),!1):this.updateCurrentFrame(!0)))},updateCurrentFrame:function(a,b){if(void 0===b&&(b=!1),!this._frameData)return!1;var c=this.currentFrame.index;return this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(b||!b&&c!==this.currentFrame.index)&&this._parent.setFrame(this.currentFrame),!this.onUpdate||!a||(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData)},next:function(a){void 0===a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},previous:function(a){void 0===a&&(a=1);var b=this._frameIndex-a;b<0&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this._frameData&&(this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose())},complete:function(){this._frameIndex=this._frames.length-1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"reversed",{get:function(){return this.isReversed},set:function(a){this.isReversed=a}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){void 0===e&&(e="");var g=[],h="";if(b=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},c.Frame.prototype={resize:function(a,b){this.width=a,this.height=b,this.centerX=Math.floor(a/2),this.centerY=Math.floor(b/2),this.distance=c.Math.distance(0,0,a,b),this.sourceSizeW=a,this.sourceSizeH=b,this.right=this.x+a,this.bottom=this.y+b},setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name);
-for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return void 0===a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>=this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null!=this._frameNames[a]},clone:function(){for(var a=new c.FrameData,b=0;bj&&(p=g,q+=e+h);return o},JSONData:function(a,b){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var d,e=new c.FrameData,f=b.frames,g=0;g tag");for(var d,e,f,g,h,i,j,k,l,m,n,o=new c.FrameData,p=b.getElementsByTagName("SubTexture"),q=0;q-1},getAssetIndex:function(a,b){for(var c=-1,d=0;d-1&&{index:c,file:this._fileList[c]}},reset:function(a,b){void 0===b&&(b=!1),this.resetLocked||(a&&(this.preloadSprite=null),this.isLoading=!1,this._processingHead=0,this._fileList.length=0,this._flightQueue.length=0,this._fileLoadStarted=!1,this._totalFileCount=0,this._totalPackCount=0,this._loadedPackCount=0,this._loadedFileCount=0,b&&(this.onLoadStart.removeAll(),this.onLoadComplete.removeAll(),this.onPackComplete.removeAll(),this.onFileStart.removeAll(),this.onFileComplete.removeAll(),this.onFileError.removeAll()))},addToFileList:function(a,b,c,d,e,f){if(void 0===e&&(e=!1),void 0===b||""===b)return console.warn("Phaser.Loader: Invalid or no key given of type "+a),this;if(void 0===c||null===c){if(!f)return console.warn("Phaser.Loader: No URL given for file type: "+a+" key: "+b),this;c=b+f}var g={type:a,key:b,path:this.path,url:c,syncPoint:this._withSyncPointDepth>0,data:null,loading:!1,loaded:!1,error:!1};if(d)for(var h in d)g[h]=d[h];var i=this.getAssetIndex(a,b);if(e&&i>-1){var j=this._fileList[i];j.loading||j.loaded?(this._fileList.push(g),this._totalFileCount++):this._fileList[i]=g}else i===-1&&(this._fileList.push(g),this._totalFileCount++);return this},replaceInFileList:function(a,b,c,d){return this.addToFileList(a,b,c,d,!0)},pack:function(a,b,c,d){if(void 0===b&&(b=null),void 0===c&&(c=null),void 0===d&&(d=null),!b&&!c)return console.warn("Phaser.Loader.pack - Both url and data are null. One must be set."),this;var e={type:"packfile",key:a,url:b,path:this.path,syncPoint:!0,data:null,loading:!1,loaded:!1,error:!1,callbackContext:d};c&&("string"==typeof c&&(c=JSON.parse(c)),e.data=c||{},e.loaded=!0);for(var f=0;f=e||d&&this._loadedPackCount===this._totalPackCount)break}if(this.updateProgress(),this._processingHead>=this._fileList.length)this.finishedLoading();else if(!this._flightQueue.length){console.warn("Phaser.Loader - aborting: processing queue empty, loading may have stalled");var f=this;setTimeout(function(){f.finishedLoading(!0)},2e3)}},finishedLoading:function(a){this.hasLoaded||(this.hasLoaded=!0,this.isLoading=!1,a||this._fileLoadStarted||(this._fileLoadStarted=!0,this.onLoadStart.dispatch()),this.onLoadComplete.dispatch(),this.game.state.loadComplete(),this.reset())},asyncComplete:function(a,b){void 0===b&&(b=""),a.loaded=!0,a.error=!!b,b&&(a.errorMessage=b,console.warn("Phaser.Loader - "+a.type+"["+a.key+"]: "+b)),this.processLoadQueue()},processPack:function(a){var b=a.data[a.key];if(!b)return void console.warn("Phaser.Loader - "+a.key+": pack has data, but not for pack key");for(var d=0;d=400&&f.status<=599?e.call(g,a,f):d.call(g,a,f)}catch(b){g.hasLoaded?window.console&&console.error(b):g.asyncComplete(a,b.message||"Exception");
-}},f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.hasLoaded?window.console&&console.error(b):g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,f.send()},xhrLoadWithXDR:function(a,b,c,d,e){this._warnedAboutXDomainRequest||this.game.device.ie&&!(this.game.device.ieVersion>=10)||(this._warnedAboutXDomainRequest=!0,console.warn("Phaser.Loader - using XDomainRequest outside of IE 9"));var f=new window.XDomainRequest;f.open("GET",b,!0),f.responseType=c,f.timeout=3e3,e=e||this.fileError;var g=this;f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.ontimeout=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.onprogress=function(){},f.onload=function(){try{return 4==f.readyState&&f.status>=400&&f.status<=599?e.call(g,a,f):d.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,setTimeout(function(){f.send()},0)},getVideoURL:function(a){for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);if(c=e.toLowerCase(),this.game.device.canPlayVideo(c))return a[b]}}return null},getAudioURL:function(a){if(this.game.sound.noAudio)return null;for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);if(c=e.toLowerCase(),this.game.device.canPlayAudio(c))return a[b]}}return null},fileError:function(a,b,c){var d=a.requestUrl||this.transformUrl(a.url,a),e="error loading asset from URL "+d;!c&&b&&(c=b.status),c&&(e=e+" ("+c+")"),this.asyncComplete(a,e)},fileComplete:function(a,b){var d=!0;switch(a.type){case"packfile":var e=JSON.parse(b.responseText);a.data=e||{};break;case"image":this.cache.addImage(a.key,a.url,a.data);break;case"spritesheet":this.cache.addSpriteSheet(a.key,a.url,a.data,a.frameWidth,a.frameHeight,a.frameMax,a.margin,a.spacing);break;case"textureatlas":if(null==a.atlasURL)this.cache.addTextureAtlas(a.key,a.url,a.data,a.atlasData,a.format);else if(d=!1,a.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||a.format==c.Loader.TEXTURE_ATLAS_JSON_HASH||a.format==c.Loader.TEXTURE_ATLAS_JSON_PYXEL)this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.jsonLoadComplete);else{if(a.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+a.format);this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.xmlLoadComplete)}break;case"bitmapfont":a.atlasURL?(d=!1,this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",function(a,b){var c;try{c=JSON.parse(b.responseText)}catch(a){}c?(a.atlasType="json",this.jsonLoadComplete(a,b)):(a.atlasType="xml",this.xmlLoadComplete(a,b))})):this.cache.addBitmapFont(a.key,a.url,a.data,a.atlasData,a.atlasType,a.xSpacing,a.ySpacing);break;case"video":if(a.asBlob)try{a.data=b.response}catch(b){throw new Error("Phaser.Loader. Unable to parse video file as Blob: "+a.key)}this.cache.addVideo(a.key,a.url,a.data,a.asBlob);break;case"audio":this.game.sound.usingWebAudio?(a.data=b.response,this.cache.addSound(a.key,a.url,a.data,!0,!1),a.autoDecode&&this.game.sound.decode(a.key)):this.cache.addSound(a.key,a.url,a.data,!1,!0);break;case"text":a.data=b.responseText,this.cache.addText(a.key,a.url,a.data);break;case"shader":a.data=b.responseText,this.cache.addShader(a.key,a.url,a.data);break;case"physics":var e=JSON.parse(b.responseText);this.cache.addPhysicsData(a.key,a.url,e,a.format);break;case"script":a.data=document.createElement("script"),a.data.language="javascript",a.data.type="text/javascript",a.data.defer=!1,a.data.text=b.responseText,document.head.appendChild(a.data),a.callback&&(a.data=a.callback.call(a.callbackContext,a.key,b.responseText));break;case"binary":a.callback?a.data=a.callback.call(a.callbackContext,a.key,b.response):a.data=b.response,this.cache.addBinary(a.key,a.data)}d&&this.asyncComplete(a)},jsonLoadComplete:function(a,b){var c=JSON.parse(b.responseText);"tilemap"===a.type?this.cache.addTilemap(a.key,a.url,c,a.format):"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,c,a.atlasType,a.xSpacing,a.ySpacing):"json"===a.type?this.cache.addJSON(a.key,a.url,c):this.cache.addTextureAtlas(a.key,a.url,a.data,c,a.format),this.asyncComplete(a)},csvLoadComplete:function(a,b){var c=b.responseText;this.cache.addTilemap(a.key,a.url,c,a.format),this.asyncComplete(a)},xmlLoadComplete:function(a,b){var c=b.responseText,d=this.parseXml(c);if(!d){var e=b.responseType||b.contentType;return console.warn("Phaser.Loader - "+a.key+": invalid XML ("+e+")"),void this.asyncComplete(a,"invalid XML")}"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,d,a.atlasType,a.xSpacing,a.ySpacing):"textureatlas"===a.type?this.cache.addTextureAtlas(a.key,a.url,a.data,d,a.format):"xml"===a.type&&this.cache.addXML(a.key,a.url,d),this.asyncComplete(a)},parseXml:function(a){var b;try{if(window.DOMParser){var c=new DOMParser;b=c.parseFromString(a,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)}catch(a){b=null}return b&&b.documentElement&&!b.getElementsByTagName("parsererror").length?b:null},updateProgress:function(){this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite?this.preloadSprite.sprite.updateCrop():this.preloadSprite=null)},totalLoadedFiles:function(){return this._loadedFileCount},totalQueuedFiles:function(){return this._totalFileCount-this._loadedFileCount},totalLoadedPacks:function(){return this._totalPackCount},totalQueuedPacks:function(){return this._totalPackCount-this._loadedPackCount}},Object.defineProperty(c.Loader.prototype,"progressFloat",{get:function(){var a=this._loadedFileCount/this._totalFileCount*100;return c.Math.clamp(a||0,0,100)}}),Object.defineProperty(c.Loader.prototype,"progress",{get:function(){return Math.round(this.progressFloat)}}),c.Loader.prototype.constructor=c.Loader,c.LoaderParser={bitmapFont:function(a,b,c,d){return this.xmlBitmapFont(a,b,c,d)},xmlBitmapFont:function(a,b,c,d){var e={},f=a.getElementsByTagName("info")[0],g=a.getElementsByTagName("common")[0];e.font=f.getAttribute("face"),e.size=parseInt(f.getAttribute("size"),10),e.lineHeight=parseInt(g.getAttribute("lineHeight"),10)+d,e.chars={};for(var h=a.getElementsByTagName("char"),i=0;i=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),this.isPlaying=!1,""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.time,this.isPlaying=!0):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):""!==this.currentMarker&&this.stop():this.loop?(this.onLoop.dispatch(this),""===this.currentMarker&&(this.currentTime=0,this.startTime=this.game.time.time),this.isPlaying=!1,this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop())))):void this.destroy()},loopFull:function(a){this.play(null,0,a,!0)},play:function(a,b,c,d,e){if(void 0!==a&&a!==!1&&null!==a||(a=""),void 0===e&&(e=!0),this.isPlaying&&!this.allowMultiple&&!e&&!this.override)return this;if(this._sound&&this.isPlaying&&!this.allowMultiple&&(this.override||e))if(this.usingWebAudio){if(void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}this.externalNode?this._sound.disconnect(this.externalNode):this.gainNode&&this._sound.disconnect(this.gainNode)}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);if(""===a&&Object.keys(this.markers).length>0)return this;if(""!==a){if(this.currentMarker=a,!this.markers[a])return this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,void 0===c&&(c=this._volume),void 0===d&&(d=this.loop),this.position=Math.max(0,b),this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(this._sound=this.context.createBufferSource(),this.externalNode?this._sound.connect(this.externalNode):this._sound.connect(this.gainNode),this._buffer=this.game.cache.getSoundData(this.key),this._sound.buffer=this._buffer,this.loop&&""===a&&(this._sound.loop=!0),this.loop||""!==a||(this._sound.onended=this.onEndedHandler.bind(this)),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=Math.ceil(1e3*this.totalDuration)),void 0===this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this.loop&&""===a?this._sound.start(0,0):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._muted||this.game.sound.mute?this._sound.volume=0:this._sound.volume=this._volume,this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,void 0===d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.time,this._tempPause=this._sound.currentTime,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=Math.max(0,this.position+this.pausedPosition/1e3);this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this.externalNode?this._sound.connect(this.externalNode):this._sound.connect(this.gainNode),this.loop&&(this._sound.loop=!0),this.loop||""!==this.currentMarker||(this._sound.onended=this.onEndedHandler.bind(this));var b=this.duration-this.pausedPosition/1e3;void 0===this._sound.start?this._sound.noteGrainOn(0,a,b):this.loop&&this.game.device.chrome?42===this.game.device.chromeVersion?this._sound.start(0):this._sound.start(0,a):this._sound.start(0,a,b)}else this._sound.currentTime=this._tempPause,this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.time-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio){if(void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}this.externalNode?this._sound.disconnect(this.externalNode):this.gainNode&&this._sound.disconnect(this.gainNode)}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);if(this.pendingPlayback=!1,this.isPlaying=!1,!this.paused){var a=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",null!==this.fadeTween&&this.fadeTween.stop(),this.onStop.dispatch(this,a)}},fadeIn:function(a,b,c){void 0===b&&(b=!1),void 0===c&&(c=this.currentMarker),this.paused||(this.play(c,0,0,b),this.fadeTo(a,1))},fadeOut:function(a){this.fadeTo(a,0)},fadeTo:function(a,b){if(this.isPlaying&&!this.paused&&b!==this.volume){if(void 0===a&&(a=1e3),void 0===b)return void console.warn("Phaser.Sound.fadeTo: No Volume Specified.");this.fadeTween=this.game.add.tween(this).to({volume:b},a,c.Easing.Linear.None,!0),this.fadeTween.onComplete.add(this.fadeComplete,this)}},fadeComplete:function(){this.onFadeComplete.dispatch(this,this.volume),0===this.volume&&this.stop()},updateGlobalVolume:function(a){this.usingAudioTag&&this._sound&&(this._sound.volume=a*this._volume)},destroy:function(a){void 0===a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},c.Sound.prototype.constructor=c.Sound,Object.defineProperty(c.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(c.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(c.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||!1,a!==this._muted&&(a?(this._muted=!0,this._muteVolume=this._tempVolume,this.usingWebAudio?this.gainNode.gain.value=0:this.usingAudioTag&&this._sound&&(this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this))}}),Object.defineProperty(c.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){return this.game.device.firefox&&this.usingAudioTag&&(a=this.game.math.clamp(a,0,1)),this._muted?void(this._muteVolume=a):(this._tempVolume=a,this._volume=a,void(this.usingWebAudio?this.gainNode.gain.value=a:this.usingAudioTag&&this._sound&&(this._sound.volume=a)))}}),c.SoundManager=function(a){this.game=a,this.onSoundDecode=new c.Signal,this.onVolumeChange=new c.Signal,this.onMute=new c.Signal,this.onUnMute=new c.Signal,this.context=null,this.usingWebAudio=!1,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32,this.muteOnPause=!0,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this._watchList=new c.ArraySet,this._watching=!1,this._watchCallback=null,this._watchContext=null},c.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.noAudio=!0,void(this.touchLocked=!1);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingAudioTag=!0,void(this.touchLocked=!1)}if(window.PhaserGlobal&&window.PhaserGlobal.audioContext)this.context=window.PhaserGlobal.audioContext;else if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}if(null===this.context){if(void 0===window.Audio)return void(this.noAudio=!0);this.usingAudioTag=!0}else this.usingWebAudio=!0,void 0===this.context.createGain?this.masterGain=this.context.createGainNode():this.masterGain=this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination);this.noAudio||(!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock)&&this.setTouchLock()},setTouchLock:function(){this.noAudio||window.PhaserGlobal&&window.PhaserGlobal.disableAudio===!0||(this.game.device.iOSVersion>8?this.game.input.touch.addTouchLockCallback(this.unlock,this,!0):this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0)},unlock:function(){if(this.noAudio||!this.touchLocked||null!==this._unlockSource)return!0;if(this.usingAudioTag)this.touchLocked=!1,this._unlockSource=null;else if(this.usingWebAudio){var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),void 0===this._unlockSource.start?this._unlockSource.noteOn(0):this._unlockSource.start(0)}return!0},stopAll:function(){if(!this.noAudio)for(var a=0;a1&&(a=1),this._volume!==a){if(this._volume=a,this.usingWebAudio)this.masterGain.gain.value=a;else for(var b=0;b=400?0:100,this.dom.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),this.signalSizeChange());
-var h=2*this._updateThrottle;this._updateThrottleb;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&this.hasPhaserSetFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isGamePortrait",{get:function(){return this.height>this.width}}),Object.defineProperty(c.ScaleManager.prototype,"isGameLandscape",{get:function(){return this.width>this.height}}),c.Utils.Debug=function(a){this.game=a,this.sprite=null,this.bmd=null,this.canvas=null,this.context=null,this.font="14px Courier",this.columnWidth=100,this.lineHeight=16,this.renderShadow=!0,this.currentX=0,this.currentY=0,this.currentAlpha=1,this.dirty=!1},c.Utils.Debug.prototype={boot:function(){this.game.renderType===c.CANVAS?this.context=this.game.context:(this.bmd=new c.BitmapData(this.game,"__DEBUG",this.game.width,this.game.height,(!0)),this.sprite=this.game.make.image(0,0,this.bmd),this.game.stage.addChild(this.sprite),this.game.scale.onSizeChange.add(this.resize,this),this.canvas=PIXI.CanvasPool.create(this,this.game.width,this.game.height),this.context=this.canvas.getContext("2d"))},resize:function(a,b,c){this.bmd.resize(b,c),this.canvas.width=b,this.canvas.height=c},preUpdate:function(){this.dirty&&this.sprite&&(this.bmd.clear(),this.bmd.draw(this.canvas,0,0),this.context.clearRect(0,0,this.game.width,this.game.height),this.dirty=!1)},reset:function(){this.context&&this.context.clearRect(0,0,this.game.width,this.game.height),this.sprite&&this.bmd.clear()},start:function(a,b,c,d){"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),c=c||"rgb(255,255,255)",void 0===d&&(d=0),this.currentX=a,this.currentY=b,this.currentColor=c,this.columnWidth=d,this.dirty=!0,this.context.save(),this.context.setTransform(1,0,0,1,0,0),this.context.strokeStyle=c,this.context.fillStyle=c,this.context.font=this.font,this.context.globalAlpha=this.currentAlpha},stop:function(){this.context.restore()},line:function(){for(var a=this.currentX,b=0;b0)for(var b=0;b=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},getScreenOrientation:function(a){var b=window.screen,c=b.orientation||b.mozOrientation||b.msOrientation;if(c&&"string"==typeof c.type)return c.type;if("string"==typeof c)return c;var d="portrait-primary",e="landscape-primary";if("screen"===a)return b.height>b.width?d:e;if("viewport"===a)return this.visualBounds.height>this.visualBounds.width?d:e;if("window.orientation"===a&&"number"==typeof window.orientation)return 0===window.orientation||180===window.orientation?d:e;if(window.matchMedia){if(window.matchMedia("(orientation: portrait)").matches)return d;if(window.matchMedia("(orientation: landscape)").matches)return e}return this.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0});var e=a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight;if(e){var f=function(){return Math.max(window.innerWidth,document.documentElement.clientWidth)},g=function(){return Math.max(window.innerHeight,document.documentElement.clientHeight)};Object.defineProperty(c.DOM.visualBounds,"width",{get:f}),Object.defineProperty(c.DOM.visualBounds,"height",{get:g}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:g})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return a-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);if(b>-1)return this.list.splice(b,1),a},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(this.list[c][a]=b)},callAll:function(a){for(var b=Array.prototype.slice.call(arguments,1),c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&this.list[c][a].apply(this.list[c],b)},removeAll:function(a){void 0===a&&(a=!1);for(var b=this.list.length;b--;)if(this.list[b]){var c=this.remove(this.list[b]);a&&c.destroy()}this.position=0,this.list=[]}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;e-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||b===-270||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(b===-90||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return void 0!==b&&null!==b||(b=c.Color.createColor()),void 0!==d&&null!==d||(d=!1),void 0!==e&&null!==e||(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},toABGR:function(a,b,c,d){return(d<<24|c<<16|b<<8|a)>>>0},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(b1&&(c-=1),c<1/6?a+6*(b-a)*c:c<.5?b:c<2/3?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a.color=c.Color.getColor(a.r,a.g,a.b),a.color32=c.Color.getColor32(255*a.a,a.r,a.g,a.b),a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return void 0===e&&(e=255),void 0===f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);if(b)return c.Color.getColor32(b.a,b.r,b.g,b.b)},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1,c.Color.updateColor(b)),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){void 0===a&&(a=1),void 0===b&&(b=1);for(var d=[],e=0;e<=359;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){void 0===a&&(a=.5),void 0===b&&(b=.5);for(var d=[],e=0;e<=359;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){void 0===f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if(void 0===a&&(a=0),void 0===b&&(b=255),void 0===d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},blendNormal:function(a){return a},blendLighten:function(a,b){return b>a?b:a},blendDarken:function(a,b){return b>a?a:b},blendMultiply:function(a,b){return a*b/255},blendAverage:function(a,b){return(a+b)/2},blendAdd:function(a,b){return Math.min(255,a+b)},blendSubtract:function(a,b){return Math.max(0,a+b-255)},blendDifference:function(a,b){return Math.abs(a-b)},blendNegation:function(a,b){return 255-Math.abs(255-a-b)},blendScreen:function(a,b){return 255-((255-a)*(255-b)>>8)},blendExclusion:function(a,b){return a+b-2*a*b/255},blendOverlay:function(a,b){return b<128?2*a*b/255:255-2*(255-a)*(255-b)/255},blendSoftLight:function(a,b){return b<128?2*((a>>1)+64)*(b/255):255-2*(255-((a>>1)+64))*(255-b)/255},blendHardLight:function(a,b){return c.Color.blendOverlay(b,a)},blendColorDodge:function(a,b){return 255===b?b:Math.min(255,(a<<8)/(255-b))},blendColorBurn:function(a,b){return 0===b?b:Math.max(0,255-(255-a<<8)/b)},blendLinearDodge:function(a,b){return c.Color.blendAdd(a,b)},blendLinearBurn:function(a,b){return c.Color.blendSubtract(a,b)},blendLinearLight:function(a,b){return b<128?c.Color.blendLinearBurn(a,2*b):c.Color.blendLinearDodge(a,2*(b-128))},blendVividLight:function(a,b){return b<128?c.Color.blendColorBurn(a,2*b):c.Color.blendColorDodge(a,2*(b-128))},blendPinLight:function(a,b){return b<128?c.Color.blendDarken(a,2*b):c.Color.blendLighten(a,2*(b-128))},blendHardMix:function(a,b){return c.Color.blendVividLight(a,b)<128?0:255},blendReflect:function(a,b){return 255===b?b:Math.min(255,a*a/(255-b))},blendGlow:function(a,b){return c.Color.blendReflect(b,a)},blendPhoenix:function(a,b){return Math.min(a,b)-Math.max(a,b)+255}},c.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.matter=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.MATTERJS=5,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game)),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config)),this.config.hasOwnProperty("matter")&&this.config.matter===!0&&c.Physics.hasOwnProperty("Matter")&&(this.matter=new c.Physics.Matter(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D?null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset():a===c.Physics.MATTERJS&&(null===this.matter?this.matter=new c.Physics.Matter(this.game,this.config):this.matter.reset())},enable:function(a,b,d){void 0===b&&(b=c.Physics.ARCADE),void 0===d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d?this.box2d.enable(a):b===c.Physics.MATTERJS&&this.matter?this.matter.enable(a):console.warn(a.key+" is attempting to enable a physics body using an unknown physics system.")},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate(),this.matter&&this.matter.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update(),this.matter&&this.matter.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld(),this.matter&&this.matter.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear(),this.matter&&this.matter.clear()},reset:function(){this.p2&&this.p2.reset(),this.box2d&&this.box2d.reset(),this.matter&&this.matter.reset()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.matter&&this.matter.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null,this.matter=null}},c.Physics.prototype.constructor=c.Physics,c.Physics.Arcade=function(a){this.game=a,this.gravity=new c.Point,this.bounds=new c.Rectangle(0,0,a.world.width,a.world.height),this.checkCollision={up:!0,down:!0,left:!0,right:!0},this.maxObjects=10,this.maxLevels=4,this.OVERLAP_BIAS=4,this.forceX=!1,this.sortDirection=c.Physics.Arcade.LEFT_RIGHT,this.skipQuadTree=!0,this.isPaused=!1,this.quadTree=new c.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this._total=0,this.setBoundsToWorld()},c.Physics.Arcade.prototype.constructor=c.Physics.Arcade,c.Physics.Arcade.SORT_NONE=0,c.Physics.Arcade.LEFT_RIGHT=1,c.Physics.Arcade.RIGHT_LEFT=2,c.Physics.Arcade.TOP_BOTTOM=3,c.Physics.Arcade.BOTTOM_TOP=4,c.Physics.Arcade.prototype={setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.copyFrom(this.game.world.bounds)},enable:function(a,b){void 0===b&&(b=!0);var d=1;if(Array.isArray(a))for(d=a.length;d--;)a[d]instanceof c.Group?this.enable(a[d].children,b):(this.enableBody(a[d]),b&&a[d].hasOwnProperty("children")&&a[d].children.length>0&&this.enable(a[d],!0));else a instanceof c.Group?this.enable(a.children,b):(this.enableBody(a),b&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,!0))},enableBody:function(a){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.Arcade.Body(a),a.parent&&a.parent instanceof c.Group&&a.parent.addToHash(a))},updateMotion:function(a){var b=this.computeVelocity(0,a,a.angularVelocity,a.angularAcceleration,a.angularDrag,a.maxAngular)-a.angularVelocity;a.angularVelocity+=b,a.rotation+=a.angularVelocity*this.game.time.physicsElapsed,a.velocity.x=this.computeVelocity(1,a,a.velocity.x,a.acceleration.x,a.drag.x,a.maxVelocity.x),a.velocity.y=this.computeVelocity(2,a,a.velocity.y,a.acceleration.y,a.drag.y,a.maxVelocity.y)},computeVelocity:function(a,b,c,d,e,f){return void 0===f&&(f=1e4),1===a&&b.allowGravity?c+=(this.gravity.x+b.gravity.x)*this.game.time.physicsElapsed:2===a&&b.allowGravity&&(c+=(this.gravity.y+b.gravity.y)*this.game.time.physicsElapsed),d?c+=d*this.game.time.physicsElapsed:e&&(e*=this.game.time.physicsElapsed,c-e>0?c-=e:c+e<0?c+=e:c=0),c>f?c=f:c<-f&&(c=-f),c},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},sortLeftRight:function(a,b){return a.body&&b.body?a.body.x-b.body.x:0},sortRightLeft:function(a,b){return a.body&&b.body?b.body.x-a.body.x:0},sortTopBottom:function(a,b){return a.body&&b.body?a.body.y-b.body.y:0},sortBottomTop:function(a,b){return a.body&&b.body?b.body.y-a.body.y:0},sort:function(a,b){null!==a.physicsSortDirection?b=a.physicsSortDirection:void 0===b&&(b=this.sortDirection),b===c.Physics.Arcade.LEFT_RIGHT?a.hash.sort(this.sortLeftRight):b===c.Physics.Arcade.RIGHT_LEFT?a.hash.sort(this.sortRightLeft):b===c.Physics.Arcade.TOP_BOTTOM?a.hash.sort(this.sortTopBottom):b===c.Physics.Arcade.BOTTOM_TOP&&a.hash.sort(this.sortBottomTop)},collideHandler:function(a,b,d,e,f,g){return void 0===b&&a.physicsType===c.GROUP?(this.sort(a),void this.collideGroupVsSelf(a,d,e,f,g)):void(a&&b&&a.exists&&b.exists&&(this.sortDirection!==c.Physics.Arcade.SORT_NONE&&(a.physicsType===c.GROUP&&this.sort(a),b.physicsType===c.GROUP&&this.sort(b)),a.physicsType===c.SPRITE?b.physicsType===c.SPRITE?this.collideSpriteVsSprite(a,b,d,e,f,g):b.physicsType===c.GROUP?this.collideSpriteVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.GROUP?b.physicsType===c.SPRITE?this.collideSpriteVsGroup(b,a,d,e,f,g):b.physicsType===c.GROUP?this.collideGroupVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.TILEMAPLAYER&&(b.physicsType===c.SPRITE?this.collideSpriteVsTilemapLayer(b,a,d,e,f,g):b.physicsType===c.GROUP&&this.collideGroupVsTilemapLayer(b,a,d,e,f,g))))},collideSpriteVsSprite:function(a,b,c,d,e,f){return!(!a.body||!b.body)&&(this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++),!0)},collideSpriteVsGroup:function(a,b,d,e,f,g){if(0!==b.length&&a.body)if(this.skipQuadTree||a.body.skipQuadTree)for(var h={},i=0;ih.right)break;if(h.x>a.body.right)continue}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(a.body.bottomh.bottom)break;if(h.y>a.body.bottom)continue}this.collideSpriteVsSprite(a,j,d,e,f,g)}}else{this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(b);for(var k=this.quadTree.retrieve(a),i=0;ik.right)continue;if(k.x>h.right)break}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(h.bottomk.bottom)continue;if(k.y>i.body.bottom)break}this.collideSpriteVsSprite(i,l,b,d,e,f)}}}}},collideGroupVsGroup:function(a,b,d,e,f,g){if(0!==a.length&&0!==b.length)for(var h=0;hh.bottom)&&(i.xh.right))return this.separateCircle(a,b,e)}var j=!1,k=!1;this.forceX||Math.abs(this.gravity.y+a.gravity.y)=b.right)&&!(a.position.y>=b.bottom))))},circleBodyIntersects:function(a,b){var d=c.Math.clamp(a.center.x,b.left,b.right),e=c.Math.clamp(a.center.y,b.top,b.bottom),f=(a.center.x-d)*(a.center.x-d),g=(a.center.y-e)*(a.center.y-e);return f+g<=a.radius*a.radius},separateCircle:function(a,b,d){this.getOverlapX(a,b),this.getOverlapY(a,b);var e=this.angleBetweenCenters(a,b),f=0;if(a.isCircle!==b.isCircle){var g={x:b.isCircle?a.position.x:b.position.x,y:b.isCircle?a.position.y:b.position.y,right:b.isCircle?a.right:b.right,bottom:b.isCircle?a.bottom:b.bottom},h={x:a.isCircle?a.position.x+a.radius:b.position.x+b.radius,y:a.isCircle?a.position.y+a.radius:b.position.y+b.radius,radius:a.isCircle?a.radius:b.radius};h.yg.right&&(f=c.Math.distance(h.x,h.y,g.right,g.y)-h.radius):h.y>g.bottom&&(h.xg.right&&(f=c.Math.distance(h.x,h.y,g.right,g.bottom)-h.radius)),f*=-1}else f=a.radius+b.radius-c.Math.distance(a.center.x,a.center.y,b.center.x,b.center.y);if(d||0===f||a.immovable&&b.immovable||a.customSeparateX||b.customSeparateX)return 0!==f&&(a.onOverlap&&a.onOverlap.dispatch(a.sprite,b.sprite),b.onOverlap&&b.onOverlap.dispatch(b.sprite,a.sprite)),0!==f;var i={x:a.velocity.x*Math.cos(e)+a.velocity.y*Math.sin(e),y:a.velocity.x*Math.sin(e)-a.velocity.y*Math.cos(e)},j={x:b.velocity.x*Math.cos(e)+b.velocity.y*Math.sin(e),y:b.velocity.x*Math.sin(e)-b.velocity.y*Math.cos(e)},k=((a.mass-b.mass)*i.x+2*b.mass*j.x)/(a.mass+b.mass),l=(2*a.mass*i.x+(b.mass-a.mass)*j.x)/(a.mass+b.mass);return a.immovable||(a.velocity.x=(k*Math.cos(e)-i.y*Math.sin(e))*a.bounce.x,a.velocity.y=(i.y*Math.cos(e)+k*Math.sin(e))*a.bounce.y),b.immovable||(b.velocity.x=(l*Math.cos(e)-j.y*Math.sin(e))*b.bounce.x,b.velocity.y=(j.y*Math.cos(e)+l*Math.sin(e))*b.bounce.y),Math.abs(e)0&&!a.immovable&&b.velocity.x>a.velocity.x?a.velocity.x*=-1:b.velocity.x<0&&!b.immovable&&a.velocity.x0&&!a.immovable&&b.velocity.y>a.velocity.y?a.velocity.y*=-1:b.velocity.y<0&&!b.immovable&&a.velocity.yMath.PI/2&&(a.velocity.x<0&&!a.immovable&&b.velocity.x0&&!b.immovable&&a.velocity.x>b.velocity.x?b.velocity.x*=-1:a.velocity.y<0&&!a.immovable&&b.velocity.y0&&!b.immovable&&a.velocity.x>b.velocity.y&&(b.velocity.y*=-1)),a.immovable||(a.x+=a.velocity.x*this.game.time.physicsElapsed-f*Math.cos(e),a.y+=a.velocity.y*this.game.time.physicsElapsed-f*Math.sin(e)),b.immovable||(b.x+=b.velocity.x*this.game.time.physicsElapsed+f*Math.cos(e),b.y+=b.velocity.y*this.game.time.physicsElapsed+f*Math.sin(e)),a.onCollide&&a.onCollide.dispatch(a.sprite,b.sprite),b.onCollide&&b.onCollide.dispatch(b.sprite,a.sprite),!0},getOverlapX:function(a,b,c){var d=0,e=a.deltaAbsX()+b.deltaAbsX()+this.OVERLAP_BIAS;return 0===a.deltaX()&&0===b.deltaX()?(a.embedded=!0,b.embedded=!0):a.deltaX()>b.deltaX()?(d=a.right-b.x,d>e&&!c||a.checkCollision.right===!1||b.checkCollision.left===!1?d=0:(a.touching.none=!1,a.touching.right=!0,b.touching.none=!1,b.touching.left=!0)):a.deltaX()e&&!c||a.checkCollision.left===!1||b.checkCollision.right===!1?d=0:(a.touching.none=!1,a.touching.left=!0,b.touching.none=!1,b.touching.right=!0)),a.overlapX=d,b.overlapX=d,d},getOverlapY:function(a,b,c){var d=0,e=a.deltaAbsY()+b.deltaAbsY()+this.OVERLAP_BIAS;return 0===a.deltaY()&&0===b.deltaY()?(a.embedded=!0,b.embedded=!0):a.deltaY()>b.deltaY()?(d=a.bottom-b.y,d>e&&!c||a.checkCollision.down===!1||b.checkCollision.up===!1?d=0:(a.touching.none=!1,a.touching.down=!0,b.touching.none=!1,b.touching.up=!0)):a.deltaY()e&&!c||a.checkCollision.up===!1||b.checkCollision.down===!1?d=0:(a.touching.none=!1,a.touching.up=!0,b.touching.none=!1,b.touching.down=!0)),a.overlapY=d,b.overlapY=d,d},separateX:function(a,b,c){var d=this.getOverlapX(a,b,c);if(c||0===d||a.immovable&&b.immovable||a.customSeparateX||b.customSeparateX)return 0!==d||a.embedded&&b.embedded;var e=a.velocity.x,f=b.velocity.x;if(a.immovable||b.immovable)a.immovable?(b.x+=d,b.velocity.x=e-f*b.bounce.x,a.moves&&(b.y+=(a.y-a.prev.y)*a.friction.y)):(a.x-=d,a.velocity.x=f-e*a.bounce.x,b.moves&&(a.y+=(b.y-b.prev.y)*b.friction.y));else{d*=.5,a.x-=d,b.x+=d;var g=Math.sqrt(f*f*b.mass/a.mass)*(f>0?1:-1),h=Math.sqrt(e*e*a.mass/b.mass)*(e>0?1:-1),i=.5*(g+h);g-=i,h-=i,a.velocity.x=i+g*a.bounce.x,b.velocity.x=i+h*b.bounce.x}return!0},separateY:function(a,b,c){var d=this.getOverlapY(a,b,c);if(c||0===d||a.immovable&&b.immovable||a.customSeparateY||b.customSeparateY)return 0!==d||a.embedded&&b.embedded;var e=a.velocity.y,f=b.velocity.y;if(a.immovable||b.immovable)a.immovable?(b.y+=d,b.velocity.y=e-f*b.bounce.y,a.moves&&(b.x+=(a.x-a.prev.x)*a.friction.x)):(a.y-=d,a.velocity.y=f-e*a.bounce.y,b.moves&&(a.x+=(b.x-b.prev.x)*b.friction.x));else{d*=.5,a.y-=d,b.y+=d;var g=Math.sqrt(f*f*b.mass/a.mass)*(f>0?1:-1),h=Math.sqrt(e*e*a.mass/b.mass)*(e>0?1:-1),i=.5*(g+h);g-=i,h-=i,a.velocity.y=i+g*a.bounce.y,b.velocity.y=i+h*b.bounce.y}return!0},getObjectsUnderPointer:function(a,b,c,d){if(0!==b.length&&a.exists)return this.getObjectsAtLocation(a.x,a.y,b,c,d,a)},getObjectsAtLocation:function(a,b,d,e,f,g){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(d);for(var h=new c.Rectangle(a,b,1,1),i=[],j=this.quadTree.retrieve(h),k=0;k0&&(c=this.distanceBetween(a,b)/(d/1e3)),a.body.velocity.x=Math.cos(e)*c,a.body.velocity.y=Math.sin(e)*c,e},moveToPointer:function(a,b,c,d){void 0===b&&(b=60),c=c||this.game.input.activePointer,void 0===d&&(d=0);var e=this.angleToPointer(a,c);return d>0&&(b=this.distanceToPointer(a,c)/(d/1e3)),a.body.velocity.x=Math.cos(e)*b,a.body.velocity.y=Math.sin(e)*b,e},moveToXY:function(a,b,c,d,e){void 0===d&&(d=60),void 0===e&&(e=0);var f=Math.atan2(c-a.y,b-a.x);return e>0&&(d=this.distanceToXY(a,b,c)/(e/1e3)),a.body.velocity.x=Math.cos(f)*d,a.body.velocity.y=Math.sin(f)*d,f},velocityFromAngle:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(this.game.math.degToRad(a))*b,Math.sin(this.game.math.degToRad(a))*b)},velocityFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerationFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerateToObject:function(a,b,c,d,e){void 0===c&&(c=60),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleBetween(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToPointer:function(a,b,c,d,e){void 0===c&&(c=60),void 0===b&&(b=this.game.input.activePointer),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleToPointer(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToXY:function(a,b,c,d,e,f){void 0===d&&(d=60),void 0===e&&(e=1e3),void 0===f&&(f=1e3);var g=this.angleToXY(a,b,c);return a.body.acceleration.setTo(Math.cos(g)*d,Math.sin(g)*d),a.body.maxVelocity.setTo(e,f),g},distanceBetween:function(a,b,c){void 0===c&&(c=!1);var d=c?a.world.x-b.world.x:a.x-b.x,e=c?a.world.y-b.world.y:a.y-b.y;return Math.sqrt(d*d+e*e)},distanceToXY:function(a,b,c,d){void 0===d&&(d=!1);var e=d?a.world.x-b:a.x-b,f=d?a.world.y-c:a.y-c;return Math.sqrt(e*e+f*f)},distanceToPointer:function(a,b,c){void 0===b&&(b=this.game.input.activePointer),void 0===c&&(c=!1);var d=c?a.world.x-b.worldX:a.x-b.worldX,e=c?a.world.y-b.worldY:a.y-b.worldY;return Math.sqrt(d*d+e*e)},angleBetween:function(a,b,c){return void 0===c&&(c=!1),c?Math.atan2(b.world.y-a.world.y,b.world.x-a.world.x):Math.atan2(b.y-a.y,b.x-a.x)},angleBetweenCenters:function(a,b){var c=b.centerX-a.centerX,d=b.centerY-a.centerY;return Math.atan2(d,c)},angleToXY:function(a,b,c,d){return void 0===d&&(d=!1),d?Math.atan2(c-a.world.y,b-a.world.x):Math.atan2(c-a.y,b-a.x)},angleToPointer:function(a,b,c){return void 0===b&&(b=this.game.input.activePointer),void 0===c&&(c=!1),c?Math.atan2(b.worldY-a.world.y,b.worldX-a.world.x):Math.atan2(b.worldY-a.y,b.worldX-a.x)},worldAngleToPointer:function(a,b){return this.angleToPointer(a,b,!0)}},c.Physics.Arcade.Body=function(a){this.sprite=a,this.game=a.game,this.type=c.Physics.ARCADE,this.enable=!0,this.isCircle=!1,this.radius=0,this.offset=new c.Point,this.position=new c.Point(a.x,a.y),this.prev=new c.Point(this.position.x,this.position.y),this.allowRotation=!0,this.rotation=a.rotation,this.preRotation=a.rotation,this.width=a.width,this.height=a.height,this.sourceWidth=a.width,this.sourceHeight=a.height,a.texture&&(this.sourceWidth=a.texture.frame.width,this.sourceHeight=a.texture.frame.height),this.halfWidth=Math.abs(a.width/2),
-this.halfHeight=Math.abs(a.height/2),this.center=new c.Point(a.x+this.halfWidth,a.y+this.halfHeight),this.velocity=new c.Point,this.newVelocity=new c.Point,this.deltaMax=new c.Point,this.acceleration=new c.Point,this.drag=new c.Point,this.allowGravity=!0,this.gravity=new c.Point,this.bounce=new c.Point,this.worldBounce=null,this.onWorldBounds=null,this.onCollide=null,this.onOverlap=null,this.maxVelocity=new c.Point(1e4,1e4),this.friction=new c.Point(1,0),this.angularVelocity=0,this.angularAcceleration=0,this.angularDrag=0,this.maxAngular=1e3,this.mass=1,this.angle=0,this.speed=0,this.facing=c.NONE,this.immovable=!1,this.moves=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.overlapR=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={up:!1,down:!1,left:!1,right:!1},this.tilePadding=new c.Point,this.dirty=!1,this.skipQuadTree=!1,this.syncBounds=!1,this.isMoving=!1,this.stopVelocityOnCollide=!0,this.moveTimer=0,this.moveDistance=0,this.moveDuration=0,this.moveTarget=null,this.moveEnd=null,this.onMoveComplete=new c.Signal,this.movementCallback=null,this.movementCallbackContext=null,this._reset=!0,this._sx=a.scale.x,this._sy=a.scale.y,this._dx=0,this._dy=0},c.Physics.Arcade.Body.prototype={updateBounds:function(){if(this.syncBounds){var a=this.sprite.getBounds();a.ceilAll(),a.width===this.width&&a.height===this.height||(this.width=a.width,this.height=a.height,this._reset=!0)}else{var b=Math.abs(this.sprite.scale.x),c=Math.abs(this.sprite.scale.y);b===this._sx&&c===this._sy||(this.width=this.sourceWidth*b,this.height=this.sourceHeight*c,this._sx=b,this._sy=c,this._reset=!0)}this._reset&&(this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight))},preUpdate:function(){this.enable&&!this.game.physics.arcade.isPaused&&(this.dirty=!0,this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.blocked.up=!1,this.blocked.down=!1,this.blocked.left=!1,this.blocked.right=!1,this.embedded=!1,this.updateBounds(),this.position.x=this.sprite.world.x-this.sprite.anchor.x*this.sprite.width+this.sprite.scale.x*this.offset.x,this.position.x-=this.sprite.scale.x<0?this.width:0,this.position.y=this.sprite.world.y-this.sprite.anchor.y*this.sprite.height+this.sprite.scale.y*this.offset.y,this.position.y-=this.sprite.scale.y<0?this.height:0,this.rotation=this.sprite.angle,this.preRotation=this.rotation,(this._reset||this.sprite.fresh)&&(this.prev.x=this.position.x,this.prev.y=this.position.y),this.moves&&(this.game.physics.arcade.updateMotion(this),this.newVelocity.set(this.velocity.x*this.game.time.physicsElapsed,this.velocity.y*this.game.time.physicsElapsed),this.position.x+=this.newVelocity.x,this.position.y+=this.newVelocity.y,this.position.x===this.prev.x&&this.position.y===this.prev.y||(this.angle=Math.atan2(this.velocity.y,this.velocity.x)),this.speed=Math.sqrt(this.velocity.x*this.velocity.x+this.velocity.y*this.velocity.y),this.collideWorldBounds&&this.checkWorldBounds()&&this.onWorldBounds&&this.onWorldBounds.dispatch(this.sprite,this.blocked.up,this.blocked.down,this.blocked.left,this.blocked.right)),this._dx=this.deltaX(),this._dy=this.deltaY(),this._reset=!1)},updateMovement:function(){var a=0,b=0!==this.overlapX||0!==this.overlapY;if(this.moveDuration>0?(this.moveTimer+=this.game.time.elapsedMS,a=this.moveTimer/this.moveDuration):(this.moveTarget.end.set(this.position.x,this.position.y),a=this.moveTarget.length/this.moveDistance),this.movementCallback)var c=this.movementCallback.call(this.movementCallbackContext,this,this.velocity,a);return!(b||a>=1||void 0!==c&&c!==!0)||(this.stopMovement(a>=1||this.stopVelocityOnCollide&&b),!1)},stopMovement:function(a){this.isMoving&&(this.isMoving=!1,a&&this.velocity.set(0),this.onMoveComplete.dispatch(this.sprite,0!==this.overlapX||0!==this.overlapY))},postUpdate:function(){this.enable&&this.dirty&&(this.isMoving&&this.updateMovement(),this.dirty=!1,this.deltaX()<0?this.facing=c.LEFT:this.deltaX()>0&&(this.facing=c.RIGHT),this.deltaY()<0?this.facing=c.UP:this.deltaY()>0&&(this.facing=c.DOWN),this.moves&&(this._dx=this.deltaX(),this._dy=this.deltaY(),0!==this.deltaMax.x&&0!==this._dx&&(this._dx<0&&this._dx<-this.deltaMax.x?this._dx=-this.deltaMax.x:this._dx>0&&this._dx>this.deltaMax.x&&(this._dx=this.deltaMax.x)),0!==this.deltaMax.y&&0!==this._dy&&(this._dy<0&&this._dy<-this.deltaMax.y?this._dy=-this.deltaMax.y:this._dy>0&&this._dy>this.deltaMax.y&&(this._dy=this.deltaMax.y)),this.sprite.position.x+=this._dx,this.sprite.position.y+=this._dy,this._reset=!0),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.allowRotation&&(this.sprite.angle+=this.deltaZ()),this.prev.x=this.position.x,this.prev.y=this.position.y)},checkWorldBounds:function(){var a=this.position,b=this.game.physics.arcade.bounds,c=this.game.physics.arcade.checkCollision,d=this.worldBounce?-this.worldBounce.x:-this.bounce.x,e=this.worldBounce?-this.worldBounce.y:-this.bounce.y;if(this.isCircle){var f={x:this.center.x-this.radius,y:this.center.y-this.radius,right:this.center.x+this.radius,bottom:this.center.y+this.radius};f.xb.right&&c.right&&(a.x=b.right-this.halfWidth-this.radius,this.velocity.x*=d,this.blocked.right=!0),f.yb.bottom&&c.down&&(a.y=b.bottom-this.halfHeight-this.radius,this.velocity.y*=e,this.blocked.down=!0)}else a.xb.right&&c.right&&(a.x=b.right-this.width,this.velocity.x*=d,this.blocked.right=!0),a.yb.bottom&&c.down&&(a.y=b.bottom-this.height,this.velocity.y*=e,this.blocked.down=!0);return this.blocked.up||this.blocked.down||this.blocked.left||this.blocked.right},moveFrom:function(a,b,c){if(void 0===b&&(b=this.speed),0===b)return!1;var d;return void 0===c?(d=this.angle,c=this.game.math.radToDeg(d)):d=this.game.math.degToRad(c),this.moveTimer=0,this.moveDuration=a,0===c||180===c?this.velocity.set(Math.cos(d)*b,0):90===c||270===c?this.velocity.set(0,Math.sin(d)*b):this.velocity.set(Math.cos(d)*b,Math.sin(d)*b),this.isMoving=!0,!0},moveTo:function(a,b,d){var e=b/(a/1e3);if(0===e)return!1;var f;return void 0===d?(f=this.angle,d=this.game.math.radToDeg(f)):f=this.game.math.degToRad(d),b=Math.abs(b),this.moveDuration=0,this.moveDistance=b,null===this.moveTarget&&(this.moveTarget=new c.Line,this.moveEnd=new c.Point),this.moveTarget.fromAngle(this.x,this.y,f,b),this.moveEnd.set(this.moveTarget.end.x,this.moveTarget.end.y),this.moveTarget.setTo(this.x,this.y,this.x,this.y),0===d||180===d?this.velocity.set(Math.cos(f)*e,0):90===d||270===d?this.velocity.set(0,Math.sin(f)*e):this.velocity.set(Math.cos(f)*e,Math.sin(f)*e),this.isMoving=!0,!0},setSize:function(a,b,c,d){void 0===c&&(c=this.offset.x),void 0===d&&(d=this.offset.y),this.sourceWidth=a,this.sourceHeight=b,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(c,d),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.isCircle=!1,this.radius=0},setCircle:function(a,b,c){void 0===b&&(b=this.offset.x),void 0===c&&(c=this.offset.y),a>0?(this.isCircle=!0,this.radius=a,this.sourceWidth=2*a,this.sourceHeight=2*a,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(b,c),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)):this.isCircle=!1},reset:function(a,b){this.velocity.set(0),this.acceleration.set(0),this.speed=0,this.angularVelocity=0,this.angularAcceleration=0,this.position.x=a-this.sprite.anchor.x*this.sprite.width+this.sprite.scale.x*this.offset.x,this.position.x-=this.sprite.scale.x<0?this.width:0,this.position.y=b-this.sprite.anchor.y*this.sprite.height+this.sprite.scale.y*this.offset.y,this.position.y-=this.sprite.scale.y<0?this.height:0,this.prev.x=this.position.x,this.prev.y=this.position.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,this._sx=this.sprite.scale.x,this._sy=this.sprite.scale.y,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},getBounds:function(a){return this.isCircle?(a.x=this.center.x-this.radius,a.y=this.center.y-this.radius,a.right=this.center.x+this.radius,a.bottom=this.center.y+this.radius):(a.x=this.x,a.y=this.y,a.right=this.right,a.bottom=this.bottom),a},hitTest:function(a,b){return this.isCircle?c.Circle.contains(this,a,b):c.Rectangle.contains(this,a,b)},onFloor:function(){return this.blocked.down},onCeiling:function(){return this.blocked.up},onWall:function(){return this.blocked.left||this.blocked.right},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.position.x-this.prev.x},deltaY:function(){return this.position.y-this.prev.y},deltaZ:function(){return this.rotation-this.preRotation},destroy:function(){this.sprite.parent&&this.sprite.parent instanceof c.Group&&this.sprite.parent.removeFromHash(this.sprite),this.sprite.body=null,this.sprite=null}},Object.defineProperty(c.Physics.Arcade.Body.prototype,"left",{get:function(){return this.position.x}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"right",{get:function(){return this.position.x+this.width}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"top",{get:function(){return this.position.y}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"bottom",{get:function(){return this.position.y+this.height}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a}}),c.Physics.Arcade.Body.render=function(a,b,c,d){void 0===d&&(d=!0),c=c||"rgba(0,255,0,0.4)",a.fillStyle=c,a.strokeStyle=c,b.isCircle?(a.beginPath(),a.arc(b.center.x-b.game.camera.x,b.center.y-b.game.camera.y,b.radius,0,2*Math.PI),d?a.fill():a.stroke()):d?a.fillRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height):a.strokeRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height)},c.Physics.Arcade.Body.renderBodyInfo=function(a,b){a.line("x: "+b.x.toFixed(2),"y: "+b.y.toFixed(2),"width: "+b.width,"height: "+b.height),a.line("velocity x: "+b.velocity.x.toFixed(2),"y: "+b.velocity.y.toFixed(2),"deltaX: "+b._dx.toFixed(2),"deltaY: "+b._dy.toFixed(2)),a.line("acceleration x: "+b.acceleration.x.toFixed(2),"y: "+b.acceleration.y.toFixed(2),"speed: "+b.speed.toFixed(2),"angle: "+b.angle.toFixed(2)),a.line("gravity x: "+b.gravity.x,"y: "+b.gravity.y,"bounce x: "+b.bounce.x.toFixed(2),"y: "+b.bounce.y.toFixed(2)),a.line("touching left: "+b.touching.left,"right: "+b.touching.right,"up: "+b.touching.up,"down: "+b.touching.down),a.line("blocked left: "+b.blocked.left,"right: "+b.blocked.right,"up: "+b.blocked.up,"down: "+b.blocked.down)},c.Physics.Arcade.Body.prototype.constructor=c.Physics.Arcade.Body,c.Physics.Arcade.TilemapCollision=function(){},c.Physics.Arcade.TilemapCollision.prototype={TILE_BIAS:16,collideSpriteVsTilemapLayer:function(a,b,c,d,e,f){if(!(!a.body||a.body.bottomb.bottom||a.body.rightb.right)){var g=b.getTiles(a.body.position.x-a.body.tilePadding.x-b.x,a.body.position.y-a.body.tilePadding.y-b.y,a.body.width+a.body.tilePadding.x,a.body.height+a.body.tilePadding.y,!1,!1);if(0!==g.length)for(var h=0;hb.deltaAbsY()?j=-1:b.deltaAbsX()0&&!a.blocked.right&&b.collideLeft&&a.checkCollision.right&&b.faceLeft&&a.right-e>b.left&&(d=a.right-e-b.left,d>this.TILE_BIAS&&(d=0)),0!==d&&(a.customSeparateX?a.overlapX=d:this.processTileSeparationX(a,d)),d},tileCheckY:function(a,b,c){var d=0,e=c.y;return a.deltaY()<0&&!a.blocked.up&&b.collideDown&&a.checkCollision.up?b.faceBottom&&a.y-e0&&!a.blocked.down&&b.collideUp&&a.checkCollision.down&&b.faceTop&&a.bottom-e>b.top&&(d=a.bottom-e-b.top,d>this.TILE_BIAS&&(d=0)),0!==d&&(a.customSeparateY?a.overlapY=d:this.processTileSeparationY(a,d)),d},processTileSeparationX:function(a,b){b<0?a.blocked.left=!0:b>0&&(a.blocked.right=!0),a.position.x-=b,0===a.bounce.x?a.velocity.x=0:a.velocity.x=-a.velocity.x*a.bounce.x},processTileSeparationY:function(a,b){b<0?a.blocked.up=!0:b>0&&(a.blocked.down=!0),a.position.y-=b,0===a.bounce.y?a.velocity.y=0:a.velocity.y=-a.velocity.y*a.bounce.y}},c.Utils.mixinPrototype(c.Physics.Arcade.prototype,c.Physics.Arcade.TilemapCollision.prototype),PIXI.Tilemap=function(a,b,c,d,e,f,g,h){PIXI.DisplayObject.call(this),this.texture=a,this._displayWidth=b,this._displayHeight=c,this.tileWidth=f,this.tileHeight=g,this.mapWidth=d,this.mapHeight=e,this.pxWidth=this.mapWidth*this.tileWidth,this.pxHeight=this.mapHeight*this.tileHeight,this.layer=h,this.glBatch=null,this.lastTile=-1,this.dirty=!0,this.blendMode=PIXI.blendModes.NORMAL,this.batchDataElement=16,this.buffer=new PIXI.Float32Array(d*e*this.batchDataElement),this.children=[]},PIXI.Tilemap.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.Tilemap.prototype.constructor=PIXI.Tilemap,PIXI.Tilemap.prototype.update=function(){},PIXI.Tilemap.prototype.postUpdate=function(){},PIXI.Tilemap.prototype._initWebGL=function(a){var b=a.gl;this.positionBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,this.positionBuffer),b.bufferData(b.ARRAY_BUFFER,this.buffer,b.STATIC_DRAW)},PIXI.Tilemap.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||(a.spriteBatch.stop(),this.positionBuffer||this._initWebGL(a),a.shaderManager.setShader(a.shaderManager.tilemapShader),this._renderWholeTilemap(a),a.spriteBatch.start())},PIXI.Tilemap.prototype._renderBatch=function(a){if(this.glBatch){for(var b,c,d,e,f=a.gl,g=.5*this.game.width,h=.5*this.game.height,i=1/this.texture.width,j=1/this.texture.height,k=1/g,l=1/h,m=.5*this.tileWidth/g,n=.5*this.tileHeight/h,o=this.buffer,p=0,q=!1,r=0,s=this.glBatch.length;r0){var y=a.shaderManager.tilemapShader;f.bufferData(f.ARRAY_BUFFER,o,f.STATIC_DRAW),f.vertexAttribPointer(y.aPosition,4,f.FLOAT,!1,0,0),f.drawArrays(f.TRIANGLE_STRIP,0,Math.floor(p/4))}}},PIXI.Tilemap.prototype._renderWholeTilemap=function(a){var b=a.gl,c=a.shaderManager.tilemapShader;a.blendModeManager.setBlendMode(this.blendMode),b.uniform2f(c.uOffset,a.offset.x/this.game.width*2,-a.offset.y/this.game.height*2);var d=this._mc.x/this.game.width*2,e=-this._mc.y/this.game.height*2,f=this._mc.x,g=-this._mc.y,h=this._mc.x+this._displayWidth,i=this.game.height-(this._mc.y+this._displayHeight);b.uniform2f(c.uClipLimit,h,i),b.uniform2f(c.uClipOffset,d,e),b.uniform2f(c.uClipLoc,f,g),b.uniform2f(c.uCentreOffset,1,-1),b.uniform1f(c.uAlpha,this.alpha),b.uniform2f(c.uScale,this.worldScale.x,this.worldScale.y),b.activeTexture(b.TEXTURE0),this.texture.baseTexture._dirty[b.id]?a.renderer.updateTexture(this.texture.baseTexture):b.bindTexture(b.TEXTURE_2D,this.texture.baseTexture._glTextures[b.id]),b.bindBuffer(b.ARRAY_BUFFER,this.positionBuffer),this._renderBatch(a)},PIXI.TilemapShader=function(a){this._UID=PIXI._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","uniform sampler2D uImageSampler;","uniform float uAlpha;","uniform vec2 uClipLoc;","uniform vec2 uClipLimit;","varying vec2 vTexCoord;","void main(void) {"," if ( gl_FragCoord.x >= uClipLoc.x && gl_FragCoord.y >= uClipLoc.y && gl_FragCoord.x < uClipLimit.x && gl_FragCoord.y > uClipLimit.y )"," gl_FragColor = texture2D(uImageSampler, vTexCoord) * uAlpha;","}"],this.vertexSrc=["precision lowp float;","uniform vec2 uOffset;","uniform vec2 uCentreOffset;","uniform vec2 uScale;","uniform vec2 uClipOffset;","attribute vec4 aPosition;","varying vec2 vTexCoord;","void main(void) {"," gl_Position.zw = vec2(1, 1);"," gl_Position.xy = (aPosition.xy + uOffset + uCentreOffset) * uScale - uCentreOffset + uClipOffset;"," vTexCoord = aPosition.zw;","}"],this.textureCount=0,this.init()},PIXI.TilemapShader.prototype.constructor=PIXI.TilemapShader,PIXI.TilemapShader.prototype.init=function(){var a=this.gl,b=PIXI.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(b),this.aPosition=a.getAttribLocation(b,"aPosition"),this.uSampler=a.getUniformLocation(b,"uImageSampler"),this.uClipLoc=a.getUniformLocation(b,"uClipLoc"),this.uClipLimit=a.getUniformLocation(b,"uClipLimit"),this.uClipOffset=a.getUniformLocation(b,"uClipOffset"),this.uOffset=a.getUniformLocation(b,"uOffset"),this.uCentreOffset=a.getUniformLocation(b,"uCentreOffset"),this.uScale=a.getUniformLocation(b,"uScale"),this.uAlpha=a.getUniformLocation(b,"uAlpha"),this.attributes=[this.aPosition],this.uniforms=[this.uClipOffset,this.uClipLoc,this.uClipLimit,this.uOffset,this.uCentreOffset,this.uAlpha,this.uScale,this.uSampler],this.program=b},PIXI.TilemapShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.gl=null,this.uniforms=null,this.attributes=null},c.ImageCollection=function(a,b,c,d,e,f,g){(void 0===c||c<=0)&&(c=32),(void 0===d||d<=0)&&(d=32),void 0===e&&(e=0),void 0===f&&(f=0),this.name=a,this.firstgid=0|b,this.imageWidth=0|c,this.imageHeight=0|d,this.imageMargin=0|e,this.imageSpacing=0|f,this.properties=g||{},this.images=[],this.total=0},c.ImageCollection.prototype={containsImageIndex:function(a){return a>=this.firstgid&&athis.right||b>this.bottom)},intersects:function(a,b,c,d){return!(c<=this.worldX)&&(!(d<=this.worldY)&&(!(a>=this.worldX+this.width)&&!(b>=this.worldY+this.height)))},setCollisionCallback:function(a,b){this.collisionCallback=a,this.collisionCallbackContext=b},destroy:function(){this.collisionCallback=null,this.collisionCallbackContext=null,this.properties=null},setCollision:function(a,b,c,d){this.collideLeft=a,this.collideRight=b,this.collideUp=c,this.collideDown=d,this.faceLeft=a,this.faceRight=b,this.faceTop=c,this.faceBottom=d},resetCollision:function(){this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1},isInteresting:function(a,b){return a&&b?this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.faceTop||this.faceBottom||this.faceLeft||this.faceRight||this.collisionCallback:a?this.collideLeft||this.collideRight||this.collideUp||this.collideDown:!!b&&(this.faceTop||this.faceBottom||this.faceLeft||this.faceRight)},copy:function(a){this.index=a.index,this.alpha=a.alpha,this.properties=a.properties,this.collideUp=a.collideUp,this.collideDown=a.collideDown,this.collideLeft=a.collideLeft,this.collideRight=a.collideRight,this.collisionCallback=a.collisionCallback,this.collisionCallbackContext=a.collisionCallbackContext}},c.Tile.prototype.constructor=c.Tile,Object.defineProperty(c.Tile.prototype,"collides",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown}}),Object.defineProperty(c.Tile.prototype,"canCollide",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.collisionCallback}}),Object.defineProperty(c.Tile.prototype,"left",{get:function(){return this.worldX}}),Object.defineProperty(c.Tile.prototype,"right",{get:function(){return this.worldX+this.width}}),Object.defineProperty(c.Tile.prototype,"top",{get:function(){return this.worldY}}),Object.defineProperty(c.Tile.prototype,"bottom",{get:function(){return this.worldY+this.height}}),c.Tilemap=function(a,b,d,e,f,g){this.game=a,this.key=b;var h=c.TilemapParser.parse(this.game,b,d,e,f,g);null!==h&&(this.width=h.width,this.height=h.height,this.tileWidth=h.tileWidth,this.tileHeight=h.tileHeight,this.orientation=h.orientation,this.format=h.format,this.version=h.version,this.properties=h.properties,this.widthInPixels=h.widthInPixels,this.heightInPixels=h.heightInPixels,this.layers=h.layers,this.tilesets=h.tilesets,this.tilesetLayers=null,this.imagecollections=h.imagecollections,this.tiles=h.tiles,this.objects=h.objects,this.collideIndexes=[],this.collision=h.collision,this.images=h.images,this.enableDebug=!1,this.currentLayer=0,this.debugMap=[],this._results=[],this._tempA=0,this._tempB=0)},c.Tilemap.CSV=0,c.Tilemap.TILED_JSON=1,c.Tilemap.NORTH=0,c.Tilemap.EAST=1,c.Tilemap.SOUTH=2,c.Tilemap.WEST=3,c.Tilemap.prototype={create:function(a,b,c,d,e,f){return void 0===f&&(f=this.game.world),this.width=b,this.height=c,this.setTileSize(d,e),this.layers.length=0,this.createBlankLayer(a,b,c,d,e,f)},setTileSize:function(a,b){this.tileWidth=a,this.tileHeight=b,this.widthInPixels=this.width*a,this.heightInPixels=this.height*b},addTilesetImage:function(a,b,d,e,f,g,h){if(void 0===a)return null;void 0===d&&(d=this.tileWidth),void 0===e&&(e=this.tileHeight),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=0),0===d&&(d=32),0===e&&(e=32);var i=null;if(void 0!==b&&null!==b||(b=a),b instanceof c.BitmapData)i=b.canvas;else{if(!this.game.cache.checkImageKey(b))return console.warn('Phaser.Tilemap.addTilesetImage: Invalid image key given: "'+b+'"'),null;i=this.game.cache.getImage(b)}var j=this.getTilesetIndex(a);if(null===j&&this.format===c.Tilemap.TILED_JSON)return console.warn('Phaser.Tilemap.addTilesetImage: No data found in the JSON matching the tileset name: "'+a+'"'),null;if(this.tilesets[j])return this.tilesets[j].setImage(i),this.tilesets[j];var k=new c.Tileset(a,h,d,e,f,g,{});k.setImage(i),this.tilesets.push(k);for(var l=this.tilesets.length-1,m=f,n=f,o=0,p=0,q=0,r=h;r1)for(l=0;lthis.layers.length)return void console.warn("Tilemap.createLayer: Invalid layer ID given: "+f);void 0===b||b<=0?b=Math.min(this.game.width,this.layers[f].widthInPixels):b>this.game.width&&(b=this.game.width),void 0===d||d<=0?d=Math.min(this.game.height,this.layers[f].heightInPixels):d>this.game.height&&(d=this.game.height),this.enableDebug&&(console.group("Tilemap.createLayer"),console.log("Name:",this.layers[f].name),console.log("Size:",b,"x",d),console.log("Tileset:",this.tilesets[0].name,"index:",f));var g;if(this.game.renderType===c.WEBGL){g=e.add(new c.TilemapLayerGL(this.game,this,f,b,d,this.tilesets[0]));for(var h,i=this.layers[f],j=1;j=a.firstgid&&e.index<=a.lastgid)return!0}return!1},createBlankLayer:function(a,b,d,e,f,g){if(void 0===g&&(g=this.game.world),null!==this.getLayerIndex(a))return void console.warn("Tilemap.createBlankLayer: Layer with matching name already exists: "+a);for(var h,i={name:a,x:0,y:0,width:b,height:d,widthInPixels:b*e,heightInPixels:d*f,alpha:1,visible:!0,properties:{},indexes:[],callbacks:[],bodies:[],data:null},j=[],k=0;kthis.game.width&&(m=this.game.width),n>this.game.height&&(n=this.game.height);var j;return j=this.game.renderType===c.WEBGL?new c.TilemapLayerGL(this.game,this,this.layers.length-1,m,n,null):new c.TilemapLayer(this.game,this,this.layers.length-1,m,n),j.name=a,g.add(j)},getIndex:function(a,b){for(var c=0;cb)){for(var f=a;f<=b;f++)this.setCollisionByIndex(f,c,d,!1);e&&this.calculateFaces(d)}},setCollisionByExclusion:function(a,b,c,d){void 0===b&&(b=!0),void 0===d&&(d=!0),c=this.getLayer(c);for(var e=0,f=this.tiles.length;e-1&&this.collideIndexes.splice(e,1)}for(var f=0;f0?this.layers[a].data[c-1][b]:null;
-},getTileBelow:function(a,b,c){return c0?this.layers[a].data[c][b-1]:null},getTileRight:function(a,b,c){return b-1},removeTile:function(a,b,d){if(d=this.getLayer(d),a>=0&&a=0&&b=0&&b=0&&d-1?this.layers[e].data[d][b].setCollision(!0,!0,!0,!0):this.layers[e].data[d][b].resetCollision(),this.layers[e].dirty=!0,this.calculateFaces(e),this.layers[e].data[d][b]}return null},putTileWorldXY:function(a,b,c,d,e,f){return f=this.getLayer(f),b=this.game.math.snapToFloor(b,d)/d,c=this.game.math.snapToFloor(c,e)/e,this.putTile(a,b,c,f)},searchTileIndex:function(a,b,c,d){void 0===b&&(b=0),void 0===c&&(c=!1),d=this.getLayer(d);var e=0;if(c){for(var f=this.layers[d].height-1;f>=0;f--)for(var g=this.layers[d].width-1;g>=0;g--)if(this.layers[d].data[f][g].index===a){if(e===b)return this.layers[d].data[f][g];e++}}else for(var f=0;f=0&&a=0&&bthis.layers[e].width&&(c=this.layers[e].width),d>this.layers[e].height&&(d=this.layers[e].height),this._results.length=0,this._results.push({x:a,y:b,width:c,height:d,layer:e});for(var f=b;f1?this.debugMap[this.layers[this.currentLayer].data[c][d]]?b.push("background: "+this.debugMap[this.layers[this.currentLayer].data[c][d]]):b.push("background: #ffffff"):b.push("background: rgb(0, 0, 0)");a+="\n"}b[0]=a,console.log.apply(console,b)},destroy:function(){this.removeAllLayers(),this.data=[],this.game=null}},c.Tilemap.prototype.constructor=c.Tilemap,Object.defineProperty(c.Tilemap.prototype,"layer",{get:function(){return this.layers[this.currentLayer]},set:function(a){a!==this.currentLayer&&this.setLayer(a)}}),c.TilemapLayer=function(a,b,d,e,f){e|=0,f|=0,c.Sprite.call(this,a,0,0),this.map=b,this.index=d,this.layer=b.layers[d],this.canvas=PIXI.CanvasPool.create(this,e,f),this.context=this.canvas.getContext("2d"),this.setTexture(new PIXI.Texture(new PIXI.BaseTexture(this.canvas))),this.type=c.TILEMAPLAYER,this.physicsType=c.TILEMAPLAYER,this.renderSettings={enableScrollDelta:!1,overdrawRatio:.2,copyCanvas:null},this.debug=!1,this.exists=!0,this.debugSettings={missingImageFill:"rgb(255,255,255)",debuggedTileOverfill:"rgba(0,255,0,0.4)",forceFullRedraw:!0,debugAlpha:.5,facingEdgeStroke:"rgba(0,255,0,1)",collidingTileOverfill:"rgba(0,255,0,0.2)"},this.scrollFactorX=1,this.scrollFactorY=1,this.rayStepRate=4,this._results=[],this.dirty=!0,this._wrap=!1,this._mc={scrollX:0,scrollY:0,renderWidth:0,renderHeight:0,tileWidth:b.tileWidth,tileHeight:b.tileHeight,cw:b.tileWidth,ch:b.tileHeight,tilesets:[]},this._scrollX=0,this._scrollY=0,a.device.canvasBitBltShift||(this.renderSettings.copyCanvas=c.TilemapLayer.ensureSharedCopyCanvas()),this.fixedToCamera=!0},c.TilemapLayer.prototype=Object.create(c.Sprite.prototype),c.TilemapLayer.prototype.constructor=c.TilemapLayer,c.TilemapLayer.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TilemapLayer.sharedCopyCanvas=null,c.TilemapLayer.ensureSharedCopyCanvas=function(){return this.sharedCopyCanvas||(this.sharedCopyCanvas=PIXI.CanvasPool.create(this,2,2)),this.sharedCopyCanvas},c.TilemapLayer.prototype.preUpdate=function(){return this.preUpdateCore()},c.TilemapLayer.prototype.postUpdate=function(){this.fixedToCamera&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y),this._scrollX=this.game.camera.view.x*this.scrollFactorX/this.scale.x,this._scrollY=this.game.camera.view.y*this.scrollFactorY/this.scale.y},c.TilemapLayer.prototype._renderCanvas=function(a){this.fixedToCamera&&(this.position.x=(this.game.camera.view.x+this.cameraOffset.x)/this.game.camera.scale.x,this.position.y=(this.game.camera.view.y+this.cameraOffset.y)/this.game.camera.scale.y),this._scrollX=this.game.camera.view.x*this.scrollFactorX/this.scale.x,this._scrollY=this.game.camera.view.y*this.scrollFactorY/this.scale.y,this.render(),PIXI.Sprite.prototype._renderCanvas.call(this,a)},c.TilemapLayer.prototype.destroy=function(){PIXI.CanvasPool.remove(this),c.Component.Destroy.prototype.destroy.call(this)},c.TilemapLayer.prototype.resize=function(a,b){this.canvas.width=a,this.canvas.height=b,this.texture.frame.resize(a,b),this.texture.width=a,this.texture.height=b,this.texture.crop.width=a,this.texture.crop.height=b,this.texture.baseTexture.width=a,this.texture.baseTexture.height=b,this.dirty=!0},c.TilemapLayer.prototype.resizeWorld=function(){this.game.world.setBounds(0,0,this.layer.widthInPixels*this.scale.x,this.layer.heightInPixels*this.scale.y)},c.TilemapLayer.prototype.resolveTileset=function(a){var b=this._mc.tilesets;if(a<2e3)for(;b.length=0;q++,s--,o+=k){q>=i&&(q-=i);var x=this.layer.data[q];for(p=v,r=e-c,n=t;r>=0;p++,r--,n+=j){p>=h&&(p-=h);var y=x[p];if(y&&!(y.index<0)){var z=y.index,A=l[z];void 0===A&&(A=this.resolveTileset(z)),y.alpha===m||this.debug||(g.globalAlpha=y.alpha,m=y.alpha),A?y.rotation||y.flipped?(g.save(),g.translate(n+y.centerX,o+y.centerY),g.rotate(y.rotation),y.flipped&&g.scale(-1,1),A.draw(g,-y.centerX,-y.centerY,z),g.restore()):A.draw(g,n,o,z):this.debugSettings.missingImageFill&&(g.fillStyle=this.debugSettings.missingImageFill,g.fillRect(n,o,j,k)),y.debug&&this.debugSettings.debuggedTileOverfill&&(g.fillStyle=this.debugSettings.debuggedTileOverfill,g.fillRect(n,o,j,k))}}}},c.TilemapLayer.prototype.renderDeltaScroll=function(a,b){var c=this._mc.scrollX,d=this._mc.scrollY,e=this.canvas.width,f=this.canvas.height,g=this._mc.tileWidth,h=this._mc.tileHeight,i=0,j=-g,k=0,l=-h;if(a<0?(i=e+a,j=e-1):a>0&&(j=a),b<0?(k=f+b,l=f-1):b>0&&(l=b),this.shiftCanvas(this.context,a,b),i=Math.floor((i+c)/g),j=Math.floor((j+c)/g),k=Math.floor((k+d)/h),l=Math.floor((l+d)/h),i<=j){this.context.clearRect(i*g-c,0,(j-i+1)*g,f);var m=Math.floor((0+d)/h),n=Math.floor((f-1+d)/h);this.renderRegion(c,d,i,m,j,n)}if(k<=l){this.context.clearRect(0,k*h-d,e,(l-k+1)*h);var o=Math.floor((0+c)/g),p=Math.floor((e-1+c)/g);this.renderRegion(c,d,o,k,p,l)}},c.TilemapLayer.prototype.renderFull=function(){var a=this._mc.scrollX,b=this._mc.scrollY,c=this.canvas.width,d=this.canvas.height,e=this._mc.tileWidth,f=this._mc.tileHeight,g=Math.floor(a/e),h=Math.floor((c-1+a)/e),i=Math.floor(b/f),j=Math.floor((d-1+b)/f);this.context.clearRect(0,0,c,d),this.renderRegion(a,b,g,i,h,j)},c.TilemapLayer.prototype.render=function(){var a=!1;if(this.visible){(this.dirty||this.layer.dirty)&&(this.layer.dirty=!1,a=!0);var b=this.canvas.width,c=this.canvas.height,d=0|this._scrollX,e=0|this._scrollY,f=this._mc,g=f.scrollX-d,h=f.scrollY-e;if(a||0!==g||0!==h||f.renderWidth!==b||f.renderHeight!==c)return this.context.save(),f.scrollX=d,f.scrollY=e,f.renderWidth===b&&f.renderHeight===c||(f.renderWidth=b,f.renderHeight=c),this.debug&&(this.context.globalAlpha=this.debugSettings.debugAlpha,this.debugSettings.forceFullRedraw&&(a=!0)),!a&&this.renderSettings.enableScrollDelta&&Math.abs(g)+Math.abs(h)