Bladeren bron

[ts] Closes #1804.

badlogic 4 jaren geleden
bovenliggende
commit
490d169ea2
58 gewijzigde bestanden met toevoegingen van 985 en 965 verwijderingen
  1. 2 1
      spine-ts/build/spine-all.d.ts
  2. 22 20
      spine-ts/build/spine-all.js
  3. 0 0
      spine-ts/build/spine-all.js.map
  4. 4 4
      spine-ts/build/spine-canvas.js
  5. 0 0
      spine-ts/build/spine-canvas.js.map
  6. 4 4
      spine-ts/build/spine-core.js
  7. 0 0
      spine-ts/build/spine-core.js.map
  8. 2 1
      spine-ts/build/spine-player.d.ts
  9. 22 20
      spine-ts/build/spine-player.js
  10. 0 0
      spine-ts/build/spine-player.js.map
  11. 4 4
      spine-ts/build/spine-threejs.js
  12. 0 0
      spine-ts/build/spine-threejs.js.map
  13. 2 1
      spine-ts/build/spine-webgl.d.ts
  14. 22 20
      spine-ts/build/spine-webgl.js
  15. 0 0
      spine-ts/build/spine-webgl.js.map
  16. 60 60
      spine-ts/canvas/example/assets/spineboy-ess.json
  17. 61 61
      spine-ts/canvas/example/assets/spineboy.atlas
  18. BIN
      spine-ts/canvas/example/assets/spineboy.png
  19. 1 1
      spine-ts/core/src/attachments/BoundingBoxAttachment.ts
  20. 1 1
      spine-ts/core/src/attachments/ClippingAttachment.ts
  21. 1 1
      spine-ts/core/src/attachments/PathAttachment.ts
  22. 1 1
      spine-ts/core/src/attachments/PointAttachment.ts
  23. 55 55
      spine-ts/player/example/assets/raptor-pma.atlas
  24. BIN
      spine-ts/player/example/assets/raptor-pma.png
  25. 43 39
      spine-ts/player/example/assets/raptor-pro.json
  26. 61 61
      spine-ts/player/example/assets/spineboy-pma.atlas
  27. BIN
      spine-ts/player/example/assets/spineboy-pma.png
  28. BIN
      spine-ts/player/example/assets/spineboy-pro.skel
  29. 43 39
      spine-ts/threejs/example/assets/raptor-pro.json
  30. 55 55
      spine-ts/threejs/example/assets/raptor.atlas
  31. BIN
      spine-ts/threejs/example/assets/raptor.png
  32. 9 9
      spine-ts/webgl/example/assets/coin-pma.atlas
  33. BIN
      spine-ts/webgl/example/assets/coin-pma.png
  34. BIN
      spine-ts/webgl/example/assets/coin-pro.skel
  35. 62 62
      spine-ts/webgl/example/assets/goblins-pma.atlas
  36. BIN
      spine-ts/webgl/example/assets/goblins-pma.png
  37. BIN
      spine-ts/webgl/example/assets/goblins-pro.skel
  38. 229 229
      spine-ts/webgl/example/assets/mix-and-match-pma.atlas
  39. BIN
      spine-ts/webgl/example/assets/mix-and-match-pma.png
  40. BIN
      spine-ts/webgl/example/assets/mix-and-match-pro.skel
  41. 42 42
      spine-ts/webgl/example/assets/owl-pma.atlas
  42. BIN
      spine-ts/webgl/example/assets/owl-pma.png
  43. BIN
      spine-ts/webgl/example/assets/owl-pro.skel
  44. 55 55
      spine-ts/webgl/example/assets/raptor-pma.atlas
  45. BIN
      spine-ts/webgl/example/assets/raptor-pma.png
  46. BIN
      spine-ts/webgl/example/assets/raptor-pro.skel
  47. 61 61
      spine-ts/webgl/example/assets/spineboy-pma.atlas
  48. BIN
      spine-ts/webgl/example/assets/spineboy-pma.png
  49. BIN
      spine-ts/webgl/example/assets/spineboy-pro.skel
  50. BIN
      spine-ts/webgl/example/assets/spineboy.png
  51. 8 8
      spine-ts/webgl/example/assets/stretchyman-pma.atlas
  52. BIN
      spine-ts/webgl/example/assets/stretchyman-pma.png
  53. BIN
      spine-ts/webgl/example/assets/stretchyman-pro.skel
  54. 33 33
      spine-ts/webgl/example/assets/tank-pma.atlas
  55. BIN
      spine-ts/webgl/example/assets/tank-pma.png
  56. BIN
      spine-ts/webgl/example/assets/tank-pro.skel
  57. BIN
      spine-ts/webgl/example/assets/vine-pro.skel
  58. 20 17
      spine-ts/webgl/src/WebGL.ts

+ 2 - 1
spine-ts/build/spine-all.d.ts

@@ -1786,7 +1786,8 @@ declare module spine.webgl {
 		canvas: HTMLCanvasElement | OffscreenCanvas;
 		gl: WebGLRenderingContext;
 		private restorables;
-		constructor(canvasOrContext: HTMLCanvasElement | WebGLRenderingContext | OffscreenCanvas | WebGL2RenderingContext, contextConfig?: any);
+		constructor(canvasOrContext: HTMLCanvasElement | WebGLRenderingContext | EventTarget | WebGL2RenderingContext, contextConfig?: any);
+		private setupCanvas;
 		addRestorable(restorable: Restorable): void;
 		removeRestorable(restorable: Restorable): void;
 	}

+ 22 - 20
spine-ts/build/spine-all.js

@@ -7781,7 +7781,7 @@ var spine;
 			return _this;
 		}
 		BoundingBoxAttachment.prototype.copy = function () {
-			var copy = new BoundingBoxAttachment(name);
+			var copy = new BoundingBoxAttachment(this.name);
 			this.copyTo(copy);
 			copy.color.setFromColor(this.color);
 			return copy;
@@ -7800,7 +7800,7 @@ var spine;
 			return _this;
 		}
 		ClippingAttachment.prototype.copy = function () {
-			var copy = new ClippingAttachment(name);
+			var copy = new ClippingAttachment(this.name);
 			this.copyTo(copy);
 			copy.endSlot = this.endSlot;
 			copy.color.setFromColor(this.color);
@@ -7944,7 +7944,7 @@ var spine;
 			return _this;
 		}
 		PathAttachment.prototype.copy = function () {
-			var copy = new PathAttachment(name);
+			var copy = new PathAttachment(this.name);
 			this.copyTo(copy);
 			copy.lengths = new Array(this.lengths.length);
 			spine.Utils.arrayCopy(this.lengths, 0, copy.lengths, 0, this.lengths.length);
@@ -7978,7 +7978,7 @@ var spine;
 			return Math.atan2(y, x) * spine.MathUtils.radDeg;
 		};
 		PointAttachment.prototype.copy = function () {
-			var copy = new PointAttachment(name);
+			var copy = new PointAttachment(this.name);
 			copy.x = this.x;
 			copy.y = this.y;
 			copy.rotation = this.rotation;
@@ -11029,30 +11029,32 @@ var spine;
 	(function (webgl) {
 		var ManagedWebGLRenderingContext = (function () {
 			function ManagedWebGLRenderingContext(canvasOrContext, contextConfig) {
-				var _this = this;
 				if (contextConfig === void 0) { contextConfig = { alpha: "true" }; }
 				this.restorables = new Array();
-				if (!((canvasOrContext instanceof WebGLRenderingContext) || (canvasOrContext instanceof WebGL2RenderingContext))) {
-					var canvas_1 = canvasOrContext;
-					this.gl = (canvas_1.getContext("webgl2", contextConfig) || canvas_1.getContext("webgl", contextConfig));
-					this.canvas = canvas_1;
-					canvas_1.addEventListener("webglcontextlost", function (e) {
-						var event = e;
-						if (e) {
-							e.preventDefault();
-						}
-					});
-					canvas_1.addEventListener("webglcontextrestored", function (e) {
-						for (var i = 0, n = _this.restorables.length; i < n; i++) {
-							_this.restorables[i].restore();
-						}
-					});
+				if (canvasOrContext instanceof HTMLCanvasElement || canvasOrContext instanceof EventTarget) {
+					this.setupCanvas(canvasOrContext, contextConfig);
 				}
 				else {
 					this.gl = canvasOrContext;
 					this.canvas = this.gl.canvas;
 				}
 			}
+			ManagedWebGLRenderingContext.prototype.setupCanvas = function (canvas, contextConfig) {
+				var _this = this;
+				this.gl = (canvas.getContext("webgl2", contextConfig) || canvas.getContext("webgl", contextConfig));
+				this.canvas = canvas;
+				canvas.addEventListener("webglcontextlost", function (e) {
+					var event = e;
+					if (e) {
+						e.preventDefault();
+					}
+				});
+				canvas.addEventListener("webglcontextrestored", function (e) {
+					for (var i = 0, n = _this.restorables.length; i < n; i++) {
+						_this.restorables[i].restore();
+					}
+				});
+			};
 			ManagedWebGLRenderingContext.prototype.addRestorable = function (restorable) {
 				this.restorables.push(restorable);
 			};

File diff suppressed because it is too large
+ 0 - 0
spine-ts/build/spine-all.js.map


+ 4 - 4
spine-ts/build/spine-canvas.js

@@ -7781,7 +7781,7 @@ var spine;
 			return _this;
 		}
 		BoundingBoxAttachment.prototype.copy = function () {
-			var copy = new BoundingBoxAttachment(name);
+			var copy = new BoundingBoxAttachment(this.name);
 			this.copyTo(copy);
 			copy.color.setFromColor(this.color);
 			return copy;
@@ -7800,7 +7800,7 @@ var spine;
 			return _this;
 		}
 		ClippingAttachment.prototype.copy = function () {
-			var copy = new ClippingAttachment(name);
+			var copy = new ClippingAttachment(this.name);
 			this.copyTo(copy);
 			copy.endSlot = this.endSlot;
 			copy.color.setFromColor(this.color);
@@ -7944,7 +7944,7 @@ var spine;
 			return _this;
 		}
 		PathAttachment.prototype.copy = function () {
-			var copy = new PathAttachment(name);
+			var copy = new PathAttachment(this.name);
 			this.copyTo(copy);
 			copy.lengths = new Array(this.lengths.length);
 			spine.Utils.arrayCopy(this.lengths, 0, copy.lengths, 0, this.lengths.length);
@@ -7978,7 +7978,7 @@ var spine;
 			return Math.atan2(y, x) * spine.MathUtils.radDeg;
 		};
 		PointAttachment.prototype.copy = function () {
-			var copy = new PointAttachment(name);
+			var copy = new PointAttachment(this.name);
 			copy.x = this.x;
 			copy.y = this.y;
 			copy.rotation = this.rotation;

File diff suppressed because it is too large
+ 0 - 0
spine-ts/build/spine-canvas.js.map


+ 4 - 4
spine-ts/build/spine-core.js

@@ -7781,7 +7781,7 @@ var spine;
 			return _this;
 		}
 		BoundingBoxAttachment.prototype.copy = function () {
-			var copy = new BoundingBoxAttachment(name);
+			var copy = new BoundingBoxAttachment(this.name);
 			this.copyTo(copy);
 			copy.color.setFromColor(this.color);
 			return copy;
@@ -7800,7 +7800,7 @@ var spine;
 			return _this;
 		}
 		ClippingAttachment.prototype.copy = function () {
-			var copy = new ClippingAttachment(name);
+			var copy = new ClippingAttachment(this.name);
 			this.copyTo(copy);
 			copy.endSlot = this.endSlot;
 			copy.color.setFromColor(this.color);
@@ -7944,7 +7944,7 @@ var spine;
 			return _this;
 		}
 		PathAttachment.prototype.copy = function () {
-			var copy = new PathAttachment(name);
+			var copy = new PathAttachment(this.name);
 			this.copyTo(copy);
 			copy.lengths = new Array(this.lengths.length);
 			spine.Utils.arrayCopy(this.lengths, 0, copy.lengths, 0, this.lengths.length);
@@ -7978,7 +7978,7 @@ var spine;
 			return Math.atan2(y, x) * spine.MathUtils.radDeg;
 		};
 		PointAttachment.prototype.copy = function () {
-			var copy = new PointAttachment(name);
+			var copy = new PointAttachment(this.name);
 			copy.x = this.x;
 			copy.y = this.y;
 			copy.rotation = this.rotation;

File diff suppressed because it is too large
+ 0 - 0
spine-ts/build/spine-core.js.map


+ 2 - 1
spine-ts/build/spine-player.d.ts

@@ -1755,7 +1755,8 @@ declare module spine.webgl {
 		canvas: HTMLCanvasElement | OffscreenCanvas;
 		gl: WebGLRenderingContext;
 		private restorables;
-		constructor(canvasOrContext: HTMLCanvasElement | WebGLRenderingContext | OffscreenCanvas | WebGL2RenderingContext, contextConfig?: any);
+		constructor(canvasOrContext: HTMLCanvasElement | WebGLRenderingContext | EventTarget | WebGL2RenderingContext, contextConfig?: any);
+		private setupCanvas;
 		addRestorable(restorable: Restorable): void;
 		removeRestorable(restorable: Restorable): void;
 	}

+ 22 - 20
spine-ts/build/spine-player.js

@@ -7781,7 +7781,7 @@ var spine;
 			return _this;
 		}
 		BoundingBoxAttachment.prototype.copy = function () {
-			var copy = new BoundingBoxAttachment(name);
+			var copy = new BoundingBoxAttachment(this.name);
 			this.copyTo(copy);
 			copy.color.setFromColor(this.color);
 			return copy;
@@ -7800,7 +7800,7 @@ var spine;
 			return _this;
 		}
 		ClippingAttachment.prototype.copy = function () {
-			var copy = new ClippingAttachment(name);
+			var copy = new ClippingAttachment(this.name);
 			this.copyTo(copy);
 			copy.endSlot = this.endSlot;
 			copy.color.setFromColor(this.color);
@@ -7944,7 +7944,7 @@ var spine;
 			return _this;
 		}
 		PathAttachment.prototype.copy = function () {
-			var copy = new PathAttachment(name);
+			var copy = new PathAttachment(this.name);
 			this.copyTo(copy);
 			copy.lengths = new Array(this.lengths.length);
 			spine.Utils.arrayCopy(this.lengths, 0, copy.lengths, 0, this.lengths.length);
@@ -7978,7 +7978,7 @@ var spine;
 			return Math.atan2(y, x) * spine.MathUtils.radDeg;
 		};
 		PointAttachment.prototype.copy = function () {
-			var copy = new PointAttachment(name);
+			var copy = new PointAttachment(this.name);
 			copy.x = this.x;
 			copy.y = this.y;
 			copy.rotation = this.rotation;
@@ -10761,30 +10761,32 @@ var spine;
 	(function (webgl) {
 		var ManagedWebGLRenderingContext = (function () {
 			function ManagedWebGLRenderingContext(canvasOrContext, contextConfig) {
-				var _this = this;
 				if (contextConfig === void 0) { contextConfig = { alpha: "true" }; }
 				this.restorables = new Array();
-				if (!((canvasOrContext instanceof WebGLRenderingContext) || (canvasOrContext instanceof WebGL2RenderingContext))) {
-					var canvas = canvasOrContext;
-					this.gl = (canvas.getContext("webgl2", contextConfig) || canvas.getContext("webgl", contextConfig));
-					this.canvas = canvas;
-					canvas.addEventListener("webglcontextlost", function (e) {
-						var event = e;
-						if (e) {
-							e.preventDefault();
-						}
-					});
-					canvas.addEventListener("webglcontextrestored", function (e) {
-						for (var i = 0, n = _this.restorables.length; i < n; i++) {
-							_this.restorables[i].restore();
-						}
-					});
+				if (canvasOrContext instanceof HTMLCanvasElement || canvasOrContext instanceof EventTarget) {
+					this.setupCanvas(canvasOrContext, contextConfig);
 				}
 				else {
 					this.gl = canvasOrContext;
 					this.canvas = this.gl.canvas;
 				}
 			}
+			ManagedWebGLRenderingContext.prototype.setupCanvas = function (canvas, contextConfig) {
+				var _this = this;
+				this.gl = (canvas.getContext("webgl2", contextConfig) || canvas.getContext("webgl", contextConfig));
+				this.canvas = canvas;
+				canvas.addEventListener("webglcontextlost", function (e) {
+					var event = e;
+					if (e) {
+						e.preventDefault();
+					}
+				});
+				canvas.addEventListener("webglcontextrestored", function (e) {
+					for (var i = 0, n = _this.restorables.length; i < n; i++) {
+						_this.restorables[i].restore();
+					}
+				});
+			};
 			ManagedWebGLRenderingContext.prototype.addRestorable = function (restorable) {
 				this.restorables.push(restorable);
 			};

File diff suppressed because it is too large
+ 0 - 0
spine-ts/build/spine-player.js.map


+ 4 - 4
spine-ts/build/spine-threejs.js

@@ -7781,7 +7781,7 @@ var spine;
 			return _this;
 		}
 		BoundingBoxAttachment.prototype.copy = function () {
-			var copy = new BoundingBoxAttachment(name);
+			var copy = new BoundingBoxAttachment(this.name);
 			this.copyTo(copy);
 			copy.color.setFromColor(this.color);
 			return copy;
@@ -7800,7 +7800,7 @@ var spine;
 			return _this;
 		}
 		ClippingAttachment.prototype.copy = function () {
-			var copy = new ClippingAttachment(name);
+			var copy = new ClippingAttachment(this.name);
 			this.copyTo(copy);
 			copy.endSlot = this.endSlot;
 			copy.color.setFromColor(this.color);
@@ -7944,7 +7944,7 @@ var spine;
 			return _this;
 		}
 		PathAttachment.prototype.copy = function () {
-			var copy = new PathAttachment(name);
+			var copy = new PathAttachment(this.name);
 			this.copyTo(copy);
 			copy.lengths = new Array(this.lengths.length);
 			spine.Utils.arrayCopy(this.lengths, 0, copy.lengths, 0, this.lengths.length);
@@ -7978,7 +7978,7 @@ var spine;
 			return Math.atan2(y, x) * spine.MathUtils.radDeg;
 		};
 		PointAttachment.prototype.copy = function () {
-			var copy = new PointAttachment(name);
+			var copy = new PointAttachment(this.name);
 			copy.x = this.x;
 			copy.y = this.y;
 			copy.rotation = this.rotation;

File diff suppressed because it is too large
+ 0 - 0
spine-ts/build/spine-threejs.js.map


+ 2 - 1
spine-ts/build/spine-webgl.d.ts

@@ -1755,7 +1755,8 @@ declare module spine.webgl {
 		canvas: HTMLCanvasElement | OffscreenCanvas;
 		gl: WebGLRenderingContext;
 		private restorables;
-		constructor(canvasOrContext: HTMLCanvasElement | WebGLRenderingContext | OffscreenCanvas | WebGL2RenderingContext, contextConfig?: any);
+		constructor(canvasOrContext: HTMLCanvasElement | WebGLRenderingContext | EventTarget | WebGL2RenderingContext, contextConfig?: any);
+		private setupCanvas;
 		addRestorable(restorable: Restorable): void;
 		removeRestorable(restorable: Restorable): void;
 	}

+ 22 - 20
spine-ts/build/spine-webgl.js

@@ -7781,7 +7781,7 @@ var spine;
 			return _this;
 		}
 		BoundingBoxAttachment.prototype.copy = function () {
-			var copy = new BoundingBoxAttachment(name);
+			var copy = new BoundingBoxAttachment(this.name);
 			this.copyTo(copy);
 			copy.color.setFromColor(this.color);
 			return copy;
@@ -7800,7 +7800,7 @@ var spine;
 			return _this;
 		}
 		ClippingAttachment.prototype.copy = function () {
-			var copy = new ClippingAttachment(name);
+			var copy = new ClippingAttachment(this.name);
 			this.copyTo(copy);
 			copy.endSlot = this.endSlot;
 			copy.color.setFromColor(this.color);
@@ -7944,7 +7944,7 @@ var spine;
 			return _this;
 		}
 		PathAttachment.prototype.copy = function () {
-			var copy = new PathAttachment(name);
+			var copy = new PathAttachment(this.name);
 			this.copyTo(copy);
 			copy.lengths = new Array(this.lengths.length);
 			spine.Utils.arrayCopy(this.lengths, 0, copy.lengths, 0, this.lengths.length);
@@ -7978,7 +7978,7 @@ var spine;
 			return Math.atan2(y, x) * spine.MathUtils.radDeg;
 		};
 		PointAttachment.prototype.copy = function () {
-			var copy = new PointAttachment(name);
+			var copy = new PointAttachment(this.name);
 			copy.x = this.x;
 			copy.y = this.y;
 			copy.rotation = this.rotation;
@@ -10761,30 +10761,32 @@ var spine;
 	(function (webgl) {
 		var ManagedWebGLRenderingContext = (function () {
 			function ManagedWebGLRenderingContext(canvasOrContext, contextConfig) {
-				var _this = this;
 				if (contextConfig === void 0) { contextConfig = { alpha: "true" }; }
 				this.restorables = new Array();
-				if (!((canvasOrContext instanceof WebGLRenderingContext) || (canvasOrContext instanceof WebGL2RenderingContext))) {
-					var canvas = canvasOrContext;
-					this.gl = (canvas.getContext("webgl2", contextConfig) || canvas.getContext("webgl", contextConfig));
-					this.canvas = canvas;
-					canvas.addEventListener("webglcontextlost", function (e) {
-						var event = e;
-						if (e) {
-							e.preventDefault();
-						}
-					});
-					canvas.addEventListener("webglcontextrestored", function (e) {
-						for (var i = 0, n = _this.restorables.length; i < n; i++) {
-							_this.restorables[i].restore();
-						}
-					});
+				if (canvasOrContext instanceof HTMLCanvasElement || canvasOrContext instanceof EventTarget) {
+					this.setupCanvas(canvasOrContext, contextConfig);
 				}
 				else {
 					this.gl = canvasOrContext;
 					this.canvas = this.gl.canvas;
 				}
 			}
+			ManagedWebGLRenderingContext.prototype.setupCanvas = function (canvas, contextConfig) {
+				var _this = this;
+				this.gl = (canvas.getContext("webgl2", contextConfig) || canvas.getContext("webgl", contextConfig));
+				this.canvas = canvas;
+				canvas.addEventListener("webglcontextlost", function (e) {
+					var event = e;
+					if (e) {
+						e.preventDefault();
+					}
+				});
+				canvas.addEventListener("webglcontextrestored", function (e) {
+					for (var i = 0, n = _this.restorables.length; i < n; i++) {
+						_this.restorables[i].restore();
+					}
+				});
+			};
 			ManagedWebGLRenderingContext.prototype.addRestorable = function (restorable) {
 				this.restorables.push(restorable);
 			};

File diff suppressed because it is too large
+ 0 - 0
spine-ts/build/spine-webgl.js.map


+ 60 - 60
spine-ts/canvas/example/assets/spineboy-ess.json

@@ -1,7 +1,7 @@
 {
 "skeleton": {
-	"hash": "MOhkPvw8nLOrjuLm/U98aFMannI",
-	"spine": "3.8.55",
+	"hash": "H25XqgajdGwsTgSp6dMCLw7Nh1Q",
+	"spine": "3.8.99",
 	"x": -221.27,
 	"y": -8.57,
 	"width": 470.72,
@@ -167,11 +167,37 @@
 	{
 		"name": "default",
 		"attachments": {
+			"eye": {
+				"eye-indifferent": { "x": 85.72, "y": -28.18, "rotation": -70.63, "width": 93, "height": 89 },
+				"eye-surprised": { "x": 85.72, "y": -28.18, "rotation": -70.63, "width": 93, "height": 89 }
+			},
+			"front-bracer": {
+				"front-bracer": { "x": 12.03, "y": -1.68, "rotation": 79.6, "width": 58, "height": 80 }
+			},
+			"front-fist": {
+				"front-fist-closed": { "x": 35.5, "y": 6, "rotation": 67.16, "width": 75, "height": 82 },
+				"front-fist-open": { "x": 39.57, "y": 7.76, "rotation": 67.16, "width": 86, "height": 87 }
+			},
+			"front-foot": {
+				"front-foot": { "x": 29.52, "y": 7.84, "rotation": 18.69, "width": 126, "height": 69 }
+			},
+			"front-shin": {
+				"front-shin": { "x": 55.12, "y": -3.54, "rotation": 96.59, "width": 82, "height": 184 }
+			},
+			"front-thigh": {
+				"front-thigh": { "x": 42.48, "y": 4.45, "rotation": 84.87, "width": 45, "height": 112 }
+			},
+			"front-upper-arm": {
+				"front-upper-arm": { "x": 25.2, "y": 1.17, "rotation": 97.9, "width": 46, "height": 97 }
+			},
+			"goggles": {
+				"goggles": { "x": 97.08, "y": 6.54, "rotation": -70.63, "width": 261, "height": 166 }
+			},
 			"gun": {
 				"gun": { "x": 77.3, "y": 16.4, "rotation": 60.83, "width": 210, "height": 203 }
 			},
-			"rear-shin": {
-				"rear-shin": { "x": 58.29, "y": -2.75, "rotation": 92.37, "width": 75, "height": 178 }
+			"head": {
+				"head": { "x": 128.96, "y": 0.3, "rotation": -70.63, "width": 271, "height": 298 }
 			},
 			"head-bb": {
 				"head": {
@@ -185,30 +211,6 @@
 				"mouth-oooo": { "x": 23.69, "y": -32.24, "rotation": -70.63, "width": 93, "height": 59 },
 				"mouth-smile": { "x": 23.69, "y": -32.24, "rotation": -70.63, "width": 93, "height": 59 }
 			},
-			"rear-upper-arm": {
-				"rear-upper-arm": { "x": 21.13, "y": 4.09, "rotation": 89.33, "width": 40, "height": 87 }
-			},
-			"front-upper-arm": {
-				"front-upper-arm": { "x": 25.2, "y": 1.17, "rotation": 97.9, "width": 46, "height": 97 }
-			},
-			"front-bracer": {
-				"front-bracer": { "x": 12.03, "y": -1.68, "rotation": 79.6, "width": 58, "height": 80 }
-			},
-			"front-foot": {
-				"front-foot": { "x": 29.52, "y": 7.84, "rotation": 18.69, "width": 126, "height": 69 }
-			},
-			"goggles": {
-				"goggles": { "x": 97.08, "y": 6.54, "rotation": -70.63, "width": 261, "height": 166 }
-			},
-			"front-shin": {
-				"front-shin": { "x": 55.12, "y": -3.54, "rotation": 96.59, "width": 82, "height": 184 }
-			},
-			"neck": {
-				"neck": { "x": 9.77, "y": -3.01, "rotation": -55.22, "width": 36, "height": 41 }
-			},
-			"head": {
-				"head": { "x": 128.96, "y": 0.3, "rotation": -70.63, "width": 271, "height": 298 }
-			},
 			"muzzle": {
 				"muzzle01": {
 					"x": 159.26,
@@ -247,28 +249,26 @@
 					"height": 90
 				}
 			},
+			"neck": {
+				"neck": { "x": 9.77, "y": -3.01, "rotation": -55.22, "width": 36, "height": 41 }
+			},
 			"rear-bracer": {
 				"rear-bracer": { "x": 11.15, "y": -2.2, "rotation": 66.17, "width": 56, "height": 72 }
 			},
-			"rear-thigh": {
-				"rear-thigh": { "x": 33.11, "y": -4.11, "rotation": 72.54, "width": 55, "height": 94 }
+			"rear-foot": {
+				"rear-foot": { "x": 31.51, "y": 3.58, "rotation": 23.07, "width": 113, "height": 60 }
 			},
-			"front-fist": {
-				"front-fist-closed": { "x": 35.5, "y": 6, "rotation": 67.16, "width": 75, "height": 82 },
-				"front-fist-open": { "x": 39.57, "y": 7.76, "rotation": 67.16, "width": 86, "height": 87 }
+			"rear-shin": {
+				"rear-shin": { "x": 58.29, "y": -2.75, "rotation": 92.37, "width": 75, "height": 178 }
 			},
-			"eye": {
-				"eye-indifferent": { "x": 85.72, "y": -28.18, "rotation": -70.63, "width": 93, "height": 89 },
-				"eye-surprised": { "x": 85.72, "y": -28.18, "rotation": -70.63, "width": 93, "height": 89 }
+			"rear-thigh": {
+				"rear-thigh": { "x": 33.11, "y": -4.11, "rotation": 72.54, "width": 55, "height": 94 }
 			},
-			"front-thigh": {
-				"front-thigh": { "x": 42.48, "y": 4.45, "rotation": 84.87, "width": 45, "height": 112 }
+			"rear-upper-arm": {
+				"rear-upper-arm": { "x": 21.13, "y": 4.09, "rotation": 89.33, "width": 40, "height": 87 }
 			},
 			"torso": {
 				"torso": { "x": 63.61, "y": 7.12, "rotation": -94.54, "width": 98, "height": 180 }
-			},
-			"rear-foot": {
-				"rear-foot": { "x": 31.51, "y": 3.58, "rotation": 23.07, "width": 113, "height": 60 }
 			}
 		}
 	}
@@ -279,11 +279,12 @@
 "animations": {
 	"death": {
 		"slots": {
-			"mouth": {
+			"eye": {
 				"attachment": [
-					{ "name": "mouth-oooo" },
-					{ "time": 2.2333, "name": "mouth-grind" },
-					{ "time": 4.5333, "name": "mouth-oooo" }
+					{ "name": "eye-surprised" },
+					{ "time": 0.4667, "name": "eye-indifferent" },
+					{ "time": 2.2333, "name": "eye-surprised" },
+					{ "time": 4.5333, "name": "eye-indifferent" }
 				]
 			},
 			"front-fist": {
@@ -291,12 +292,11 @@
 					{ "name": "front-fist-open" }
 				]
 			},
-			"eye": {
+			"mouth": {
 				"attachment": [
-					{ "name": "eye-surprised" },
-					{ "time": 0.4667, "name": "eye-indifferent" },
-					{ "time": 2.2333, "name": "eye-surprised" },
-					{ "time": 4.5333, "name": "eye-indifferent" }
+					{ "name": "mouth-oooo" },
+					{ "time": 2.2333, "name": "mouth-grind" },
+					{ "time": 4.5333, "name": "mouth-oooo" }
 				]
 			}
 		},
@@ -483,15 +483,15 @@
 	},
 	"hit": {
 		"slots": {
-			"mouth": {
+			"front-fist": {
 				"attachment": [
-					{ "name": "mouth-grind" },
-					{ "time": 0.3333, "name": "mouth-smile" }
+					{ "time": 0.1667, "name": "front-fist-open" }
 				]
 			},
-			"front-fist": {
+			"mouth": {
 				"attachment": [
-					{ "time": 0.1667, "name": "front-fist-open" }
+					{ "name": "mouth-grind" },
+					{ "time": 0.3333, "name": "mouth-smile" }
 				]
 			}
 		},
@@ -767,17 +767,17 @@
 	},
 	"jump": {
 		"slots": {
-			"mouth": {
-				"attachment": [
-					{ "name": "mouth-grind" }
-				]
-			},
 			"front-fist": {
 				"attachment": [
 					{ "name": "front-fist-open" },
 					{ "time": 0.2, "name": "front-fist-closed" },
 					{ "time": 0.6667, "name": "front-fist-open" }
 				]
+			},
+			"mouth": {
+				"attachment": [
+					{ "name": "mouth-grind" }
+				]
 			}
 		},
 		"bones": {

+ 61 - 61
spine-ts/canvas/example/assets/spineboy.atlas

@@ -6,280 +6,280 @@ filter: Linear,Linear
 repeat: none
 crosshair
   rotate: false
-  xy: 352, 7
+  xy: 813, 160
   size: 45, 45
   orig: 45, 45
   offset: 0, 0
   index: -1
 eye-indifferent
   rotate: false
-  xy: 862, 105
+  xy: 569, 2
   size: 47, 45
   orig: 47, 45
   offset: 0, 0
   index: -1
 eye-surprised
-  rotate: false
-  xy: 505, 79
+  rotate: true
+  xy: 643, 7
   size: 47, 45
   orig: 47, 45
   offset: 0, 0
   index: -1
 front-bracer
   rotate: false
-  xy: 826, 66
+  xy: 811, 51
   size: 29, 40
   orig: 29, 40
   offset: 0, 0
   index: -1
 front-fist-closed
   rotate: false
-  xy: 786, 65
+  xy: 807, 93
   size: 38, 41
   orig: 38, 41
   offset: 0, 0
   index: -1
 front-fist-open
-  rotate: true
-  xy: 710, 51
+  rotate: false
+  xy: 815, 210
   size: 43, 44
   orig: 43, 44
   offset: 0, 0
   index: -1
 front-foot
-  rotate: false
-  xy: 210, 6
+  rotate: true
+  xy: 706, 64
   size: 63, 35
   orig: 63, 35
   offset: 0, 0
   index: -1
 front-shin
-  rotate: true
-  xy: 665, 128
+  rotate: false
+  xy: 80, 11
   size: 41, 92
   orig: 41, 92
   offset: 0, 0
   index: -1
 front-thigh
-  rotate: true
-  xy: 2, 2
+  rotate: false
+  xy: 754, 12
   size: 23, 56
   orig: 23, 56
   offset: 0, 0
   index: -1
 front-upper-arm
   rotate: false
-  xy: 250, 205
+  xy: 618, 5
   size: 23, 49
   orig: 23, 49
   offset: 0, 0
   index: -1
 goggles
   rotate: false
-  xy: 665, 171
+  xy: 214, 20
   size: 131, 83
   orig: 131, 83
   offset: 0, 0
   index: -1
 gun
-  rotate: false
-  xy: 798, 152
+  rotate: true
+  xy: 347, 14
   size: 105, 102
   orig: 105, 102
   offset: 0, 0
   index: -1
 head
   rotate: false
-  xy: 2, 27
+  xy: 80, 105
   size: 136, 149
   orig: 136, 149
   offset: 0, 0
   index: -1
 hoverboard-board
-  rotate: false
-  xy: 2, 178
+  rotate: true
+  xy: 2, 8
   size: 246, 76
   orig: 246, 76
   offset: 0, 0
   index: -1
 hoverboard-thruster
-  rotate: true
-  xy: 722, 96
+  rotate: false
+  xy: 478, 2
   size: 30, 32
   orig: 30, 32
   offset: 0, 0
   index: -1
 hoverglow-small
-  rotate: false
-  xy: 275, 81
+  rotate: true
+  xy: 218, 117
   size: 137, 38
   orig: 137, 38
   offset: 0, 0
   index: -1
 mouth-grind
-  rotate: false
-  xy: 614, 97
+  rotate: true
+  xy: 775, 80
   size: 47, 30
   orig: 47, 30
   offset: 0, 0
   index: -1
 mouth-oooo
-  rotate: false
-  xy: 612, 65
+  rotate: true
+  xy: 779, 31
   size: 47, 30
   orig: 47, 30
   offset: 0, 0
   index: -1
 mouth-smile
-  rotate: false
-  xy: 661, 64
+  rotate: true
+  xy: 783, 207
   size: 47, 30
   orig: 47, 30
   offset: 0, 0
   index: -1
 muzzle-glow
   rotate: false
-  xy: 382, 54
+  xy: 779, 4
   size: 25, 25
   orig: 25, 25
   offset: 0, 0
   index: -1
 muzzle-ring
-  rotate: true
-  xy: 275, 54
+  rotate: false
+  xy: 451, 14
   size: 25, 105
   orig: 25, 105
   offset: 0, 0
   index: -1
 muzzle01
   rotate: true
-  xy: 911, 95
+  xy: 664, 60
   size: 67, 40
   orig: 67, 40
   offset: 0, 0
   index: -1
 muzzle02
-  rotate: false
-  xy: 792, 108
+  rotate: true
+  xy: 580, 56
   size: 68, 42
   orig: 68, 42
   offset: 0, 0
   index: -1
 muzzle03
   rotate: true
-  xy: 956, 171
+  xy: 478, 36
   size: 83, 53
   orig: 83, 53
   offset: 0, 0
   index: -1
 muzzle04
-  rotate: false
-  xy: 275, 7
+  rotate: true
+  xy: 533, 49
   size: 75, 45
   orig: 75, 45
   offset: 0, 0
   index: -1
 muzzle05
-  rotate: false
-  xy: 140, 3
+  rotate: true
+  xy: 624, 56
   size: 68, 38
   orig: 68, 38
   offset: 0, 0
   index: -1
 neck
   rotate: false
-  xy: 250, 182
+  xy: 806, 8
   size: 18, 21
   orig: 18, 21
   offset: 0, 0
   index: -1
 portal-bg
   rotate: false
-  xy: 140, 43
+  xy: 258, 121
   size: 133, 133
   orig: 133, 133
   offset: 0, 0
   index: -1
 portal-flare1
-  rotate: false
-  xy: 554, 65
+  rotate: true
+  xy: 690, 2
   size: 56, 30
   orig: 56, 30
   offset: 0, 0
   index: -1
 portal-flare2
-  rotate: true
-  xy: 759, 112
+  rotate: false
+  xy: 510, 3
   size: 57, 31
   orig: 57, 31
   offset: 0, 0
   index: -1
 portal-flare3
-  rotate: false
-  xy: 554, 97
+  rotate: true
+  xy: 722, 4
   size: 58, 30
   orig: 58, 30
   offset: 0, 0
   index: -1
 portal-shade
   rotate: false
-  xy: 275, 121
+  xy: 393, 121
   size: 133, 133
   orig: 133, 133
   offset: 0, 0
   index: -1
 portal-streaks1
   rotate: false
-  xy: 410, 126
+  xy: 528, 126
   size: 126, 128
   orig: 126, 128
   offset: 0, 0
   index: -1
 portal-streaks2
   rotate: false
-  xy: 538, 129
+  xy: 656, 129
   size: 125, 125
   orig: 125, 125
   offset: 0, 0
   index: -1
 rear-bracer
   rotate: false
-  xy: 857, 67
+  xy: 826, 13
   size: 28, 36
   orig: 28, 36
   offset: 0, 0
   index: -1
 rear-foot
-  rotate: false
-  xy: 663, 96
+  rotate: true
+  xy: 743, 70
   size: 57, 30
   orig: 57, 30
   offset: 0, 0
   index: -1
 rear-shin
-  rotate: true
-  xy: 414, 86
+  rotate: false
+  xy: 174, 14
   size: 38, 89
   orig: 38, 89
   offset: 0, 0
   index: -1
 rear-thigh
   rotate: false
-  xy: 756, 63
+  xy: 783, 158
   size: 28, 47
   orig: 28, 47
   offset: 0, 0
   index: -1
 rear-upper-arm
   rotate: true
-  xy: 60, 5
+  xy: 783, 136
   size: 20, 44
   orig: 20, 44
   offset: 0, 0
   index: -1
 torso
   rotate: false
-  xy: 905, 164
+  xy: 123, 13
   size: 49, 90
   orig: 49, 90
   offset: 0, 0

BIN
spine-ts/canvas/example/assets/spineboy.png


+ 1 - 1
spine-ts/core/src/attachments/BoundingBoxAttachment.ts

@@ -42,7 +42,7 @@ module spine {
 		}
 
 		copy (): Attachment {
-			let copy = new BoundingBoxAttachment(name);
+			let copy = new BoundingBoxAttachment(this.name);
 			this.copyTo(copy);
 			copy.color.setFromColor(this.color);
 			return copy;

+ 1 - 1
spine-ts/core/src/attachments/ClippingAttachment.ts

@@ -44,7 +44,7 @@ module spine {
 		}
 
 		copy (): Attachment {
-			let copy = new ClippingAttachment(name);
+			let copy = new ClippingAttachment(this.name);
 			this.copyTo(copy);
 			copy.endSlot = this.endSlot;
 			copy.color.setFromColor(this.color);

+ 1 - 1
spine-ts/core/src/attachments/PathAttachment.ts

@@ -53,7 +53,7 @@ module spine {
 		}
 
 		copy (): Attachment {
-			let copy = new PathAttachment(name);
+			let copy = new PathAttachment(this.name);
 			this.copyTo(copy);
 			copy.lengths = new Array<number>(this.lengths.length);
 			Utils.arrayCopy(this.lengths, 0, copy.lengths, 0, this.lengths.length);

+ 1 - 1
spine-ts/core/src/attachments/PointAttachment.ts

@@ -58,7 +58,7 @@ module spine {
 		}
 
 		copy (): Attachment {
-			let copy = new PointAttachment(name);
+			let copy = new PointAttachment(this.name);
 			copy.x = this.x;
 			copy.y = this.y;
 			copy.rotation = this.rotation;

+ 55 - 55
spine-ts/player/example/assets/raptor-pma.atlas

@@ -5,267 +5,267 @@ format: RGBA8888
 filter: Linear,Linear
 repeat: none
 back-arm
-  rotate: false
-  xy: 895, 295
+  rotate: true
+  xy: 829, 88
   size: 46, 25
   orig: 46, 25
   offset: 0, 0
   index: -1
 back-bracer
   rotate: true
-  xy: 992, 216
+  xy: 195, 238
   size: 39, 28
   orig: 39, 28
   offset: 0, 0
   index: -1
 back-hand
-  rotate: false
-  xy: 594, 58
+  rotate: true
+  xy: 724, 140
   size: 36, 34
   orig: 36, 34
   offset: 0, 0
   index: -1
 back-knee
   rotate: true
-  xy: 729, 86
+  xy: 760, 131
   size: 49, 67
   orig: 49, 67
   offset: 0, 0
   index: -1
 back-thigh
-  rotate: false
-  xy: 379, 2
+  rotate: true
+  xy: 225, 238
   size: 39, 24
   orig: 39, 24
   offset: 0, 0
   index: -1
 eyes-open
-  rotate: true
-  xy: 902, 194
+  rotate: false
+  xy: 975, 204
   size: 47, 45
   orig: 47, 45
   offset: 0, 0
   index: -1
 front-arm
   rotate: false
-  xy: 945, 306
+  xy: 969, 112
   size: 48, 26
   orig: 48, 26
   offset: 0, 0
   index: -1
 front-bracer
-  rotate: false
-  xy: 949, 197
+  rotate: true
+  xy: 724, 97
   size: 41, 29
   orig: 41, 29
   offset: 0, 0
   index: -1
 front-hand
   rotate: false
-  xy: 949, 266
+  xy: 251, 239
   size: 41, 38
   orig: 41, 38
   offset: 0, 0
   index: -1
 front-open-hand
-  rotate: false
-  xy: 875, 148
+  rotate: true
+  xy: 856, 76
   size: 43, 44
   orig: 43, 44
   offset: 0, 0
   index: -1
 front-thigh
   rotate: true
-  xy: 793, 171
+  xy: 729, 178
   size: 57, 29
   orig: 57, 29
   offset: 0, 0
   index: -1
 gun
-  rotate: true
-  xy: 379, 28
+  rotate: false
+  xy: 894, 251
   size: 107, 103
   orig: 107, 103
   offset: 0, 0
   index: -1
 gun-nohand
   rotate: false
-  xy: 487, 87
+  xy: 764, 241
   size: 105, 102
   orig: 105, 102
   offset: 0, 0
   index: -1
 head
   rotate: false
-  xy: 807, 361
+  xy: 756, 345
   size: 136, 149
   orig: 136, 149
   offset: 0, 0
   index: -1
 lower-leg
-  rotate: false
-  xy: 827, 195
+  rotate: true
+  xy: 475, 237
   size: 73, 98
   orig: 73, 98
   offset: 0, 0
   index: -1
 mouth-grind
-  rotate: true
-  xy: 920, 145
+  rotate: false
+  xy: 975, 172
   size: 47, 30
   orig: 47, 30
   offset: 0, 0
   index: -1
 mouth-smile
-  rotate: true
-  xy: 992, 257
+  rotate: false
+  xy: 975, 140
   size: 47, 30
   orig: 47, 30
   offset: 0, 0
   index: -1
 neck
   rotate: false
-  xy: 359, 114
+  xy: 366, 282
   size: 18, 21
   orig: 18, 21
   offset: 0, 0
   index: -1
 raptor-back-arm
-  rotate: false
-  xy: 653, 142
+  rotate: true
+  xy: 636, 97
   size: 82, 86
   orig: 82, 86
   offset: 0, 0
   index: -1
 raptor-body
   rotate: false
-  xy: 2, 277
+  xy: 2, 2
   size: 632, 233
   orig: 632, 233
   offset: 0, 0
   index: -1
 raptor-front-arm
   rotate: true
-  xy: 484, 4
+  xy: 871, 168
   size: 81, 102
   orig: 81, 102
   offset: 0, 0
   index: -1
 raptor-front-leg
   rotate: false
-  xy: 2, 18
+  xy: 2, 237
   size: 191, 257
   orig: 191, 257
   offset: 0, 0
   index: -1
 raptor-hindleg-back
   rotate: false
-  xy: 636, 295
+  xy: 195, 279
   size: 169, 215
   orig: 169, 215
   offset: 0, 0
   index: -1
 raptor-horn
-  rotate: false
-  xy: 195, 22
+  rotate: true
+  xy: 431, 312
   size: 182, 80
   orig: 182, 80
   offset: 0, 0
   index: -1
 raptor-horn-back
   rotate: true
-  xy: 945, 334
+  xy: 513, 318
   size: 176, 77
   orig: 176, 77
   offset: 0, 0
   index: -1
 raptor-jaw
   rotate: false
-  xy: 359, 137
+  xy: 894, 356
   size: 126, 138
   orig: 126, 138
   offset: 0, 0
   index: -1
 raptor-jaw-tooth
   rotate: true
-  xy: 895, 322
+  xy: 294, 240
   size: 37, 48
   orig: 37, 48
   offset: 0, 0
   index: -1
 raptor-mouth-inside
   rotate: true
-  xy: 949, 228
+  xy: 344, 241
   size: 36, 41
   orig: 36, 41
   offset: 0, 0
   index: -1
 raptor-saddle-strap-back
-  rotate: true
-  xy: 653, 86
+  rotate: false
+  xy: 575, 242
   size: 54, 74
   orig: 54, 74
   offset: 0, 0
   index: -1
 raptor-saddle-strap-front
-  rotate: false
-  xy: 594, 94
+  rotate: true
+  xy: 764, 182
   size: 57, 95
   orig: 57, 95
   offset: 0, 0
   index: -1
 raptor-saddle-w-shadow
   rotate: false
-  xy: 195, 104
+  xy: 592, 323
   size: 162, 171
   orig: 162, 171
   offset: 0, 0
   index: -1
 raptor-tail-shadow
-  rotate: false
-  xy: 636, 230
+  rotate: true
+  xy: 366, 305
   size: 189, 63
   orig: 189, 63
   offset: 0, 0
   index: -1
 raptor-tongue
   rotate: false
-  xy: 807, 295
+  xy: 387, 239
   size: 86, 64
   orig: 86, 64
   offset: 0, 0
   index: -1
 stirrup-back
   rotate: true
-  xy: 952, 151
+  xy: 829, 136
   size: 44, 35
   orig: 44, 35
   offset: 0, 0
   index: -1
 stirrup-front
-  rotate: false
-  xy: 902, 243
+  rotate: true
+  xy: 866, 121
   size: 45, 50
   orig: 45, 50
   offset: 0, 0
   index: -1
 stirrup-strap
   rotate: false
-  xy: 824, 147
+  xy: 918, 120
   size: 49, 46
   orig: 49, 46
   offset: 0, 0
   index: -1
 torso
-  rotate: false
-  xy: 737, 137
+  rotate: true
+  xy: 636, 181
   size: 54, 91
   orig: 54, 91
   offset: 0, 0
   index: -1
 visor
   rotate: false
-  xy: 487, 191
+  xy: 631, 237
   size: 131, 84
   orig: 131, 84
   offset: 0, 0

BIN
spine-ts/player/example/assets/raptor-pma.png


File diff suppressed because it is too large
+ 43 - 39
spine-ts/player/example/assets/raptor-pro.json


+ 61 - 61
spine-ts/player/example/assets/spineboy-pma.atlas

@@ -6,280 +6,280 @@ filter: Linear,Linear
 repeat: none
 crosshair
   rotate: false
-  xy: 352, 7
+  xy: 813, 160
   size: 45, 45
   orig: 45, 45
   offset: 0, 0
   index: -1
 eye-indifferent
   rotate: false
-  xy: 862, 105
+  xy: 569, 2
   size: 47, 45
   orig: 47, 45
   offset: 0, 0
   index: -1
 eye-surprised
-  rotate: false
-  xy: 505, 79
+  rotate: true
+  xy: 643, 7
   size: 47, 45
   orig: 47, 45
   offset: 0, 0
   index: -1
 front-bracer
   rotate: false
-  xy: 826, 66
+  xy: 811, 51
   size: 29, 40
   orig: 29, 40
   offset: 0, 0
   index: -1
 front-fist-closed
   rotate: false
-  xy: 786, 65
+  xy: 807, 93
   size: 38, 41
   orig: 38, 41
   offset: 0, 0
   index: -1
 front-fist-open
-  rotate: true
-  xy: 710, 51
+  rotate: false
+  xy: 815, 210
   size: 43, 44
   orig: 43, 44
   offset: 0, 0
   index: -1
 front-foot
-  rotate: false
-  xy: 210, 6
+  rotate: true
+  xy: 706, 64
   size: 63, 35
   orig: 63, 35
   offset: 0, 0
   index: -1
 front-shin
-  rotate: true
-  xy: 665, 128
+  rotate: false
+  xy: 80, 11
   size: 41, 92
   orig: 41, 92
   offset: 0, 0
   index: -1
 front-thigh
-  rotate: true
-  xy: 2, 2
+  rotate: false
+  xy: 754, 12
   size: 23, 56
   orig: 23, 56
   offset: 0, 0
   index: -1
 front-upper-arm
   rotate: false
-  xy: 250, 205
+  xy: 618, 5
   size: 23, 49
   orig: 23, 49
   offset: 0, 0
   index: -1
 goggles
   rotate: false
-  xy: 665, 171
+  xy: 214, 20
   size: 131, 83
   orig: 131, 83
   offset: 0, 0
   index: -1
 gun
-  rotate: false
-  xy: 798, 152
+  rotate: true
+  xy: 347, 14
   size: 105, 102
   orig: 105, 102
   offset: 0, 0
   index: -1
 head
   rotate: false
-  xy: 2, 27
+  xy: 80, 105
   size: 136, 149
   orig: 136, 149
   offset: 0, 0
   index: -1
 hoverboard-board
-  rotate: false
-  xy: 2, 178
+  rotate: true
+  xy: 2, 8
   size: 246, 76
   orig: 246, 76
   offset: 0, 0
   index: -1
 hoverboard-thruster
-  rotate: true
-  xy: 722, 96
+  rotate: false
+  xy: 478, 2
   size: 30, 32
   orig: 30, 32
   offset: 0, 0
   index: -1
 hoverglow-small
-  rotate: false
-  xy: 275, 81
+  rotate: true
+  xy: 218, 117
   size: 137, 38
   orig: 137, 38
   offset: 0, 0
   index: -1
 mouth-grind
-  rotate: false
-  xy: 614, 97
+  rotate: true
+  xy: 775, 80
   size: 47, 30
   orig: 47, 30
   offset: 0, 0
   index: -1
 mouth-oooo
-  rotate: false
-  xy: 612, 65
+  rotate: true
+  xy: 779, 31
   size: 47, 30
   orig: 47, 30
   offset: 0, 0
   index: -1
 mouth-smile
-  rotate: false
-  xy: 661, 64
+  rotate: true
+  xy: 783, 207
   size: 47, 30
   orig: 47, 30
   offset: 0, 0
   index: -1
 muzzle-glow
   rotate: false
-  xy: 382, 54
+  xy: 779, 4
   size: 25, 25
   orig: 25, 25
   offset: 0, 0
   index: -1
 muzzle-ring
-  rotate: true
-  xy: 275, 54
+  rotate: false
+  xy: 451, 14
   size: 25, 105
   orig: 25, 105
   offset: 0, 0
   index: -1
 muzzle01
   rotate: true
-  xy: 911, 95
+  xy: 664, 60
   size: 67, 40
   orig: 67, 40
   offset: 0, 0
   index: -1
 muzzle02
-  rotate: false
-  xy: 792, 108
+  rotate: true
+  xy: 580, 56
   size: 68, 42
   orig: 68, 42
   offset: 0, 0
   index: -1
 muzzle03
   rotate: true
-  xy: 956, 171
+  xy: 478, 36
   size: 83, 53
   orig: 83, 53
   offset: 0, 0
   index: -1
 muzzle04
-  rotate: false
-  xy: 275, 7
+  rotate: true
+  xy: 533, 49
   size: 75, 45
   orig: 75, 45
   offset: 0, 0
   index: -1
 muzzle05
-  rotate: false
-  xy: 140, 3
+  rotate: true
+  xy: 624, 56
   size: 68, 38
   orig: 68, 38
   offset: 0, 0
   index: -1
 neck
   rotate: false
-  xy: 250, 182
+  xy: 806, 8
   size: 18, 21
   orig: 18, 21
   offset: 0, 0
   index: -1
 portal-bg
   rotate: false
-  xy: 140, 43
+  xy: 258, 121
   size: 133, 133
   orig: 133, 133
   offset: 0, 0
   index: -1
 portal-flare1
-  rotate: false
-  xy: 554, 65
+  rotate: true
+  xy: 690, 2
   size: 56, 30
   orig: 56, 30
   offset: 0, 0
   index: -1
 portal-flare2
-  rotate: true
-  xy: 759, 112
+  rotate: false
+  xy: 510, 3
   size: 57, 31
   orig: 57, 31
   offset: 0, 0
   index: -1
 portal-flare3
-  rotate: false
-  xy: 554, 97
+  rotate: true
+  xy: 722, 4
   size: 58, 30
   orig: 58, 30
   offset: 0, 0
   index: -1
 portal-shade
   rotate: false
-  xy: 275, 121
+  xy: 393, 121
   size: 133, 133
   orig: 133, 133
   offset: 0, 0
   index: -1
 portal-streaks1
   rotate: false
-  xy: 410, 126
+  xy: 528, 126
   size: 126, 128
   orig: 126, 128
   offset: 0, 0
   index: -1
 portal-streaks2
   rotate: false
-  xy: 538, 129
+  xy: 656, 129
   size: 125, 125
   orig: 125, 125
   offset: 0, 0
   index: -1
 rear-bracer
   rotate: false
-  xy: 857, 67
+  xy: 826, 13
   size: 28, 36
   orig: 28, 36
   offset: 0, 0
   index: -1
 rear-foot
-  rotate: false
-  xy: 663, 96
+  rotate: true
+  xy: 743, 70
   size: 57, 30
   orig: 57, 30
   offset: 0, 0
   index: -1
 rear-shin
-  rotate: true
-  xy: 414, 86
+  rotate: false
+  xy: 174, 14
   size: 38, 89
   orig: 38, 89
   offset: 0, 0
   index: -1
 rear-thigh
   rotate: false
-  xy: 756, 63
+  xy: 783, 158
   size: 28, 47
   orig: 28, 47
   offset: 0, 0
   index: -1
 rear-upper-arm
   rotate: true
-  xy: 60, 5
+  xy: 783, 136
   size: 20, 44
   orig: 20, 44
   offset: 0, 0
   index: -1
 torso
   rotate: false
-  xy: 905, 164
+  xy: 123, 13
   size: 49, 90
   orig: 49, 90
   offset: 0, 0

BIN
spine-ts/player/example/assets/spineboy-pma.png


BIN
spine-ts/player/example/assets/spineboy-pro.skel


File diff suppressed because it is too large
+ 43 - 39
spine-ts/threejs/example/assets/raptor-pro.json


+ 55 - 55
spine-ts/threejs/example/assets/raptor.atlas

@@ -5,267 +5,267 @@ format: RGBA8888
 filter: Linear,Linear
 repeat: none
 back-arm
-  rotate: false
-  xy: 895, 295
+  rotate: true
+  xy: 829, 88
   size: 46, 25
   orig: 46, 25
   offset: 0, 0
   index: -1
 back-bracer
   rotate: true
-  xy: 992, 216
+  xy: 195, 238
   size: 39, 28
   orig: 39, 28
   offset: 0, 0
   index: -1
 back-hand
-  rotate: false
-  xy: 594, 58
+  rotate: true
+  xy: 724, 140
   size: 36, 34
   orig: 36, 34
   offset: 0, 0
   index: -1
 back-knee
   rotate: true
-  xy: 729, 86
+  xy: 760, 131
   size: 49, 67
   orig: 49, 67
   offset: 0, 0
   index: -1
 back-thigh
-  rotate: false
-  xy: 379, 2
+  rotate: true
+  xy: 225, 238
   size: 39, 24
   orig: 39, 24
   offset: 0, 0
   index: -1
 eyes-open
-  rotate: true
-  xy: 902, 194
+  rotate: false
+  xy: 975, 204
   size: 47, 45
   orig: 47, 45
   offset: 0, 0
   index: -1
 front-arm
   rotate: false
-  xy: 945, 306
+  xy: 969, 112
   size: 48, 26
   orig: 48, 26
   offset: 0, 0
   index: -1
 front-bracer
-  rotate: false
-  xy: 949, 197
+  rotate: true
+  xy: 724, 97
   size: 41, 29
   orig: 41, 29
   offset: 0, 0
   index: -1
 front-hand
   rotate: false
-  xy: 949, 266
+  xy: 251, 239
   size: 41, 38
   orig: 41, 38
   offset: 0, 0
   index: -1
 front-open-hand
-  rotate: false
-  xy: 875, 148
+  rotate: true
+  xy: 856, 76
   size: 43, 44
   orig: 43, 44
   offset: 0, 0
   index: -1
 front-thigh
   rotate: true
-  xy: 793, 171
+  xy: 729, 178
   size: 57, 29
   orig: 57, 29
   offset: 0, 0
   index: -1
 gun
-  rotate: true
-  xy: 379, 28
+  rotate: false
+  xy: 894, 251
   size: 107, 103
   orig: 107, 103
   offset: 0, 0
   index: -1
 gun-nohand
   rotate: false
-  xy: 487, 87
+  xy: 764, 241
   size: 105, 102
   orig: 105, 102
   offset: 0, 0
   index: -1
 head
   rotate: false
-  xy: 807, 361
+  xy: 756, 345
   size: 136, 149
   orig: 136, 149
   offset: 0, 0
   index: -1
 lower-leg
-  rotate: false
-  xy: 827, 195
+  rotate: true
+  xy: 475, 237
   size: 73, 98
   orig: 73, 98
   offset: 0, 0
   index: -1
 mouth-grind
-  rotate: true
-  xy: 920, 145
+  rotate: false
+  xy: 975, 172
   size: 47, 30
   orig: 47, 30
   offset: 0, 0
   index: -1
 mouth-smile
-  rotate: true
-  xy: 992, 257
+  rotate: false
+  xy: 975, 140
   size: 47, 30
   orig: 47, 30
   offset: 0, 0
   index: -1
 neck
   rotate: false
-  xy: 359, 114
+  xy: 366, 282
   size: 18, 21
   orig: 18, 21
   offset: 0, 0
   index: -1
 raptor-back-arm
-  rotate: false
-  xy: 653, 142
+  rotate: true
+  xy: 636, 97
   size: 82, 86
   orig: 82, 86
   offset: 0, 0
   index: -1
 raptor-body
   rotate: false
-  xy: 2, 277
+  xy: 2, 2
   size: 632, 233
   orig: 632, 233
   offset: 0, 0
   index: -1
 raptor-front-arm
   rotate: true
-  xy: 484, 4
+  xy: 871, 168
   size: 81, 102
   orig: 81, 102
   offset: 0, 0
   index: -1
 raptor-front-leg
   rotate: false
-  xy: 2, 18
+  xy: 2, 237
   size: 191, 257
   orig: 191, 257
   offset: 0, 0
   index: -1
 raptor-hindleg-back
   rotate: false
-  xy: 636, 295
+  xy: 195, 279
   size: 169, 215
   orig: 169, 215
   offset: 0, 0
   index: -1
 raptor-horn
-  rotate: false
-  xy: 195, 22
+  rotate: true
+  xy: 431, 312
   size: 182, 80
   orig: 182, 80
   offset: 0, 0
   index: -1
 raptor-horn-back
   rotate: true
-  xy: 945, 334
+  xy: 513, 318
   size: 176, 77
   orig: 176, 77
   offset: 0, 0
   index: -1
 raptor-jaw
   rotate: false
-  xy: 359, 137
+  xy: 894, 356
   size: 126, 138
   orig: 126, 138
   offset: 0, 0
   index: -1
 raptor-jaw-tooth
   rotate: true
-  xy: 895, 322
+  xy: 294, 240
   size: 37, 48
   orig: 37, 48
   offset: 0, 0
   index: -1
 raptor-mouth-inside
   rotate: true
-  xy: 949, 228
+  xy: 344, 241
   size: 36, 41
   orig: 36, 41
   offset: 0, 0
   index: -1
 raptor-saddle-strap-back
-  rotate: true
-  xy: 653, 86
+  rotate: false
+  xy: 575, 242
   size: 54, 74
   orig: 54, 74
   offset: 0, 0
   index: -1
 raptor-saddle-strap-front
-  rotate: false
-  xy: 594, 94
+  rotate: true
+  xy: 764, 182
   size: 57, 95
   orig: 57, 95
   offset: 0, 0
   index: -1
 raptor-saddle-w-shadow
   rotate: false
-  xy: 195, 104
+  xy: 592, 323
   size: 162, 171
   orig: 162, 171
   offset: 0, 0
   index: -1
 raptor-tail-shadow
-  rotate: false
-  xy: 636, 230
+  rotate: true
+  xy: 366, 305
   size: 189, 63
   orig: 189, 63
   offset: 0, 0
   index: -1
 raptor-tongue
   rotate: false
-  xy: 807, 295
+  xy: 387, 239
   size: 86, 64
   orig: 86, 64
   offset: 0, 0
   index: -1
 stirrup-back
   rotate: true
-  xy: 952, 151
+  xy: 829, 136
   size: 44, 35
   orig: 44, 35
   offset: 0, 0
   index: -1
 stirrup-front
-  rotate: false
-  xy: 902, 243
+  rotate: true
+  xy: 866, 121
   size: 45, 50
   orig: 45, 50
   offset: 0, 0
   index: -1
 stirrup-strap
   rotate: false
-  xy: 824, 147
+  xy: 918, 120
   size: 49, 46
   orig: 49, 46
   offset: 0, 0
   index: -1
 torso
-  rotate: false
-  xy: 737, 137
+  rotate: true
+  xy: 636, 181
   size: 54, 91
   orig: 54, 91
   offset: 0, 0
   index: -1
 visor
   rotate: false
-  xy: 487, 191
+  xy: 631, 237
   size: 131, 84
   orig: 131, 84
   offset: 0, 0

BIN
spine-ts/threejs/example/assets/raptor.png


+ 9 - 9
spine-ts/webgl/example/assets/coin-pma.atlas

@@ -6,49 +6,49 @@ filter: Linear,Linear
 repeat: none
 coin-front-logo
   rotate: false
-  xy: 2, 609
+  xy: 2, 570
   size: 305, 302
   orig: 305, 302
   offset: 0, 0
   index: -1
 coin-front-shine-logo
   rotate: false
-  xy: 309, 629
+  xy: 2, 286
   size: 282, 282
   orig: 282, 282
   offset: 0, 0
   index: -1
 coin-front-shine-spineboy
   rotate: false
-  xy: 2, 21
+  xy: 305, 283
   size: 282, 282
   orig: 282, 282
   offset: 0, 0
   index: -1
 coin-front-spineboy
-  rotate: false
-  xy: 2, 305
+  rotate: true
+  xy: 309, 567
   size: 305, 302
   orig: 305, 302
   offset: 0, 0
   index: -1
 coin-side-round
   rotate: false
-  xy: 309, 345
+  xy: 2, 2
   size: 144, 282
   orig: 144, 282
   offset: 0, 0
   index: -1
 coin-side-straight
-  rotate: true
-  xy: 2, 2
+  rotate: false
+  xy: 286, 286
   size: 17, 282
   orig: 17, 282
   offset: 0, 0
   index: -1
 shine
   rotate: false
-  xy: 593, 666
+  xy: 148, 39
   size: 72, 245
   orig: 72, 245
   offset: 0, 0

BIN
spine-ts/webgl/example/assets/coin-pma.png


BIN
spine-ts/webgl/example/assets/coin-pro.skel


+ 62 - 62
spine-ts/webgl/example/assets/goblins-pma.atlas

@@ -5,288 +5,288 @@ format: RGBA8888
 filter: Linear,Linear
 repeat: none
 dagger
-  rotate: true
-  xy: 372, 100
+  rotate: false
+  xy: 2, 18
   size: 26, 108
   orig: 26, 108
   offset: 0, 0
   index: -1
 goblin/eyes-closed
   rotate: false
-  xy: 2, 7
+  xy: 2, 4
   size: 34, 12
   orig: 34, 12
   offset: 0, 0
   index: -1
 goblin/head
-  rotate: false
-  xy: 107, 36
+  rotate: true
+  xy: 113, 23
   size: 103, 66
   orig: 103, 66
   offset: 0, 0
   index: -1
 goblin/left-arm
-  rotate: false
-  xy: 901, 56
+  rotate: true
+  xy: 937, 89
   size: 37, 35
   orig: 37, 35
   offset: 0, 0
   index: -1
 goblin/left-foot
-  rotate: false
-  xy: 929, 95
+  rotate: true
+  xy: 609, 61
   size: 65, 31
   orig: 65, 31
   offset: 0, 0
   index: -1
 goblin/left-hand
   rotate: false
-  xy: 452, 2
+  xy: 840, 21
   size: 36, 41
   orig: 36, 41
   offset: 0, 0
   index: -1
 goblin/left-lower-leg
-  rotate: true
-  xy: 713, 93
+  rotate: false
+  xy: 504, 56
   size: 33, 70
   orig: 33, 70
   offset: 0, 0
   index: -1
 goblin/left-shoulder
   rotate: false
-  xy: 610, 44
+  xy: 745, 17
   size: 29, 44
   orig: 29, 44
   offset: 0, 0
   index: -1
 goblin/left-upper-leg
-  rotate: true
-  xy: 638, 93
+  rotate: false
+  xy: 397, 53
   size: 33, 73
   orig: 33, 73
   offset: 0, 0
   index: -1
 goblin/neck
   rotate: false
-  xy: 490, 2
+  xy: 862, 85
   size: 36, 41
   orig: 36, 41
   offset: 0, 0
   index: -1
 goblin/pelvis
   rotate: false
-  xy: 482, 45
+  xy: 776, 18
   size: 62, 43
   orig: 62, 43
   offset: 0, 0
   index: -1
 goblin/right-arm
   rotate: true
-  xy: 690, 2
+  xy: 181, 5
   size: 23, 50
   orig: 23, 50
   offset: 0, 0
   index: -1
 goblin/right-foot
-  rotate: false
-  xy: 771, 58
+  rotate: true
+  xy: 747, 63
   size: 63, 33
   orig: 63, 33
   offset: 0, 0
   index: -1
 goblin/right-hand
   rotate: false
-  xy: 940, 56
+  xy: 878, 3
   size: 36, 37
   orig: 36, 37
   offset: 0, 0
   index: -1
 goblin/right-lower-leg
-  rotate: true
-  xy: 482, 90
+  rotate: false
+  xy: 321, 50
   size: 36, 76
   orig: 36, 76
   offset: 0, 0
   index: -1
 goblin/right-shoulder
-  rotate: true
-  xy: 602, 3
+  rotate: false
+  xy: 663, 14
   size: 39, 45
   orig: 39, 45
   offset: 0, 0
   index: -1
 goblin/right-upper-leg
-  rotate: true
-  xy: 641, 57
+  rotate: false
+  xy: 675, 63
   size: 34, 63
   orig: 34, 63
   offset: 0, 0
   index: -1
 goblin/torso
-  rotate: true
-  xy: 212, 34
+  rotate: false
+  xy: 181, 30
   size: 68, 96
   orig: 68, 96
   offset: 0, 0
   index: -1
 goblin/undie-straps
   rotate: false
-  xy: 380, 5
+  xy: 38, 2
   size: 55, 19
   orig: 55, 19
   offset: 0, 0
   index: -1
 goblin/undies
   rotate: false
-  xy: 174, 5
+  xy: 974, 97
   size: 36, 29
   orig: 36, 29
   offset: 0, 0
   index: -1
 goblingirl/eyes-closed
   rotate: false
-  xy: 269, 11
+  xy: 397, 30
   size: 37, 21
   orig: 37, 21
   offset: 0, 0
   index: -1
 goblingirl/head
-  rotate: false
-  xy: 2, 21
+  rotate: true
+  xy: 30, 23
   size: 103, 81
   orig: 103, 81
   offset: 0, 0
   index: -1
 goblingirl/left-arm
   rotate: true
-  xy: 978, 56
+  xy: 916, 8
   size: 37, 35
   orig: 37, 35
   offset: 0, 0
   index: -1
 goblingirl/left-foot
-  rotate: false
-  xy: 107, 3
+  rotate: true
+  xy: 642, 61
   size: 65, 31
   orig: 65, 31
   offset: 0, 0
   index: -1
 goblingirl/left-hand
   rotate: false
-  xy: 565, 2
+  xy: 900, 86
   size: 35, 40
   orig: 35, 40
   offset: 0, 0
   index: -1
 goblingirl/left-lower-leg
-  rotate: true
-  xy: 785, 93
+  rotate: false
+  xy: 539, 56
   size: 33, 70
   orig: 33, 70
   offset: 0, 0
   index: -1
 goblingirl/left-shoulder
-  rotate: true
-  xy: 690, 27
+  rotate: false
+  xy: 633, 13
   size: 28, 46
   orig: 28, 46
   offset: 0, 0
   index: -1
 goblingirl/left-upper-leg
-  rotate: true
-  xy: 857, 93
+  rotate: false
+  xy: 574, 56
   size: 33, 70
   orig: 33, 70
   offset: 0, 0
   index: -1
 goblingirl/neck
   rotate: false
-  xy: 528, 2
+  xy: 878, 42
   size: 35, 41
   orig: 35, 41
   offset: 0, 0
   index: -1
 goblingirl/pelvis
-  rotate: false
-  xy: 546, 45
+  rotate: true
+  xy: 817, 64
   size: 62, 43
   orig: 62, 43
   offset: 0, 0
   index: -1
 goblingirl/right-arm
   rotate: false
-  xy: 452, 48
+  xy: 603, 4
   size: 28, 50
   orig: 28, 50
   offset: 0, 0
   index: -1
 goblingirl/right-foot
-  rotate: false
-  xy: 836, 58
+  rotate: true
+  xy: 782, 63
   size: 63, 33
   orig: 63, 33
   offset: 0, 0
   index: -1
 goblingirl/right-hand
-  rotate: true
-  xy: 771, 20
+  rotate: false
+  xy: 915, 47
   size: 36, 37
   orig: 36, 37
   offset: 0, 0
   index: -1
 goblingirl/right-lower-leg
-  rotate: true
-  xy: 560, 90
+  rotate: false
+  xy: 359, 50
   size: 36, 76
   orig: 36, 76
   offset: 0, 0
   index: -1
 goblingirl/right-shoulder
   rotate: false
-  xy: 649, 10
+  xy: 704, 16
   size: 39, 45
   orig: 39, 45
   offset: 0, 0
   index: -1
 goblingirl/right-upper-leg
-  rotate: true
-  xy: 706, 57
+  rotate: false
+  xy: 711, 63
   size: 34, 63
   orig: 34, 63
   offset: 0, 0
   index: -1
 goblingirl/torso
   rotate: false
-  xy: 310, 2
+  xy: 251, 30
   size: 68, 96
   orig: 68, 96
   offset: 0, 0
   index: -1
 goblingirl/undie-straps
   rotate: false
-  xy: 212, 13
+  xy: 95, 2
   size: 55, 19
   orig: 55, 19
   offset: 0, 0
   index: -1
 goblingirl/undies
   rotate: false
-  xy: 810, 27
+  xy: 974, 66
   size: 36, 29
   orig: 36, 29
   offset: 0, 0
   index: -1
 shield
   rotate: false
-  xy: 380, 26
+  xy: 432, 54
   size: 70, 72
   orig: 70, 72
   offset: 0, 0
   index: -1
 spear
   rotate: true
-  xy: 2, 104
+  xy: 233, 6
   size: 22, 368
   orig: 22, 368
   offset: 0, 0

BIN
spine-ts/webgl/example/assets/goblins-pma.png


BIN
spine-ts/webgl/example/assets/goblins-pro.skel


+ 229 - 229
spine-ts/webgl/example/assets/mix-and-match-pma.atlas

@@ -6,280 +6,280 @@ filter: Linear,Linear
 repeat: none
 base-head
   rotate: false
-  xy: 150, 109
+  xy: 587, 2
   size: 95, 73
   orig: 95, 73
   offset: 0, 0
   index: -1
 boy/arm-front
-  rotate: true
-  xy: 113, 279
+  rotate: false
+  xy: 558, 271
   size: 36, 115
   orig: 36, 115
   offset: 0, 0
   index: -1
 boy/backpack
   rotate: false
-  xy: 249, 357
+  xy: 235, 109
   size: 119, 153
   orig: 119, 153
   offset: 0, 0
   index: -1
 boy/backpack-pocket
-  rotate: false
-  xy: 988, 266
+  rotate: true
+  xy: 328, 73
   size: 34, 62
   orig: 34, 62
   offset: 0, 0
   index: -1
 boy/backpack-strap-front
-  rotate: true
-  xy: 725, 241
+  rotate: false
+  xy: 665, 79
   size: 38, 88
   orig: 38, 88
   offset: 0, 0
   index: -1
 boy/backpack-up
   rotate: true
-  xy: 628, 172
+  xy: 395, 364
   size: 21, 70
   orig: 21, 70
   offset: 0, 0
   index: -1
 boy/body
   rotate: true
-  xy: 845, 413
+  xy: 251, 264
   size: 97, 132
   orig: 97, 132
   offset: 0, 0
   index: -1
 boy/boot-ribbon-front
   rotate: false
-  xy: 1013, 422
+  xy: 648, 131
   size: 9, 11
   orig: 9, 11
   offset: 0, 0
   index: -1
 boy/collar
-  rotate: false
-  xy: 789, 282
+  rotate: true
+  xy: 744, 4
   size: 73, 29
   orig: 73, 29
   offset: 0, 0
   index: -1
 boy/ear
-  rotate: false
-  xy: 994, 138
+  rotate: true
+  xy: 383, 109
   size: 19, 23
   orig: 19, 23
   offset: 0, 0
   index: -1
 boy/eye-back-low-eyelid
-  rotate: false
-  xy: 483, 310
+  rotate: true
+  xy: 739, 284
   size: 17, 6
   orig: 17, 6
   offset: 0, 0
   index: -1
 boy/eye-back-pupil
   rotate: true
-  xy: 960, 266
+  xy: 832, 443
   size: 8, 9
   orig: 8, 9
   offset: 0, 0
   index: -1
 boy/eye-back-up-eyelid
   rotate: false
-  xy: 555, 173
+  xy: 558, 264
   size: 23, 5
   orig: 23, 5
   offset: 0, 0
   index: -1
 boy/eye-back-up-eyelid-back
   rotate: true
-  xy: 546, 151
+  xy: 802, 491
   size: 19, 10
   orig: 19, 10
   offset: 0, 0
   index: -1
 boy/eye-front-low-eyelid
   rotate: true
-  xy: 1015, 151
+  xy: 386, 363
   size: 22, 7
   orig: 22, 7
   offset: 0, 0
   index: -1
 boy/eye-front-pupil
   rotate: false
-  xy: 386, 136
+  xy: 816, 389
   size: 9, 9
   orig: 9, 9
   offset: 0, 0
   index: -1
 boy/eye-front-up-eyelid
   rotate: true
-  xy: 377, 190
+  xy: 160, 71
   size: 31, 6
   orig: 31, 6
   offset: 0, 0
   index: -1
 boy/eye-front-up-eyelid-back
   rotate: true
-  xy: 700, 167
+  xy: 801, 434
   size: 26, 9
   orig: 26, 9
   offset: 0, 0
   index: -1
 boy/eye-iris-back
   rotate: false
-  xy: 578, 154
+  xy: 618, 264
   size: 17, 17
   orig: 17, 17
   offset: 0, 0
   index: -1
 boy/eye-iris-front
   rotate: false
-  xy: 558, 153
+  xy: 727, 264
   size: 18, 18
   orig: 18, 18
   offset: 0, 0
   index: -1
 boy/eye-white-back
-  rotate: true
-  xy: 461, 83
+  rotate: false
+  xy: 580, 131
   size: 20, 12
   orig: 20, 12
   offset: 0, 0
   index: -1
 boy/eye-white-front
-  rotate: true
-  xy: 991, 330
+  rotate: false
+  xy: 510, 130
   size: 27, 13
   orig: 27, 13
   offset: 0, 0
   index: -1
 boy/eyebrow-back
-  rotate: false
-  xy: 504, 146
+  rotate: true
+  xy: 751, 88
   size: 20, 11
   orig: 20, 11
   offset: 0, 0
   index: -1
 boy/eyebrow-front
-  rotate: true
-  xy: 471, 122
+  rotate: false
+  xy: 483, 130
   size: 25, 11
   orig: 25, 11
   offset: 0, 0
   index: -1
 boy/hair-back
-  rotate: false
-  xy: 867, 330
+  rotate: true
+  xy: 494, 388
   size: 122, 81
   orig: 122, 81
   offset: 0, 0
   index: -1
 boy/hair-bangs
   rotate: false
-  xy: 483, 203
+  xy: 667, 284
   size: 70, 37
   orig: 70, 37
   offset: 0, 0
   index: -1
 boy/hair-side
-  rotate: true
-  xy: 979, 435
+  rotate: false
+  xy: 789, 374
   size: 25, 43
   orig: 25, 43
   offset: 0, 0
   index: -1
 boy/hand-backfingers
-  rotate: true
-  xy: 711, 168
+  rotate: false
+  xy: 467, 364
   size: 19, 21
   orig: 19, 21
   offset: 0, 0
   index: -1
 boy/hand-front-fingers
-  rotate: true
-  xy: 734, 168
+  rotate: false
+  xy: 488, 364
   size: 19, 21
   orig: 19, 21
   offset: 0, 0
   index: -1
 boy/hat
-  rotate: false
-  xy: 388, 241
+  rotate: true
+  xy: 615, 417
   size: 93, 56
   orig: 93, 56
   offset: 0, 0
   index: -1
 boy/leg-front
   rotate: false
-  xy: 85, 104
+  xy: 138, 104
   size: 31, 158
   orig: 31, 158
   offset: 0, 0
   index: -1
 boy/mouth-close
-  rotate: false
-  xy: 580, 173
+  rotate: true
+  xy: 551, 365
   size: 21, 5
   orig: 21, 5
   offset: 0, 0
   index: -1
 girl-blue-cape/mouth-close
-  rotate: false
-  xy: 580, 173
+  rotate: true
+  xy: 551, 365
   size: 21, 5
   orig: 21, 5
   offset: 0, 0
   index: -1
 girl-spring-dress/mouth-close
-  rotate: false
-  xy: 580, 173
+  rotate: true
+  xy: 551, 365
   size: 21, 5
   orig: 21, 5
   offset: 0, 0
   index: -1
 girl/mouth-close
-  rotate: false
-  xy: 580, 173
+  rotate: true
+  xy: 551, 365
   size: 21, 5
   orig: 21, 5
   offset: 0, 0
   index: -1
 boy/mouth-smile
-  rotate: true
-  xy: 1015, 175
+  rotate: false
+  xy: 705, 79
   size: 29, 7
   orig: 29, 7
   offset: 0, 0
   index: -1
 boy/nose
-  rotate: false
-  xy: 597, 154
+  rotate: true
+  xy: 836, 473
   size: 17, 10
   orig: 17, 10
   offset: 0, 0
   index: -1
 boy/pompom
   rotate: true
-  xy: 979, 462
+  xy: 747, 273
   size: 48, 43
   orig: 48, 43
   offset: 0, 0
   index: -1
 boy/zip
-  rotate: true
-  xy: 780, 171
+  rotate: false
+  xy: 648, 144
   size: 14, 23
   orig: 14, 23
   offset: 0, 0
   index: -1
 girl-blue-cape/back-eyebrow
   rotate: false
-  xy: 504, 112
+  xy: 602, 131
   size: 18, 12
   orig: 18, 12
   offset: 0, 0
@@ -293,749 +293,749 @@ girl-blue-cape/body-dress
   index: -1
 girl-blue-cape/body-ribbon
   rotate: false
-  xy: 942, 123
+  xy: 615, 283
   size: 50, 38
   orig: 50, 38
   offset: 0, 0
   index: -1
 girl-blue-cape/cape-back
   rotate: false
-  xy: 113, 317
+  xy: 2, 69
   size: 134, 193
   orig: 134, 193
   offset: 0, 0
   index: -1
 girl-blue-cape/cape-back-up
-  rotate: false
-  xy: 504, 309
+  rotate: true
+  xy: 386, 387
   size: 123, 106
   orig: 123, 106
   offset: 0, 0
   index: -1
 girl-blue-cape/cape-ribbon
-  rotate: true
-  xy: 526, 151
+  rotate: false
+  xy: 675, 264
   size: 50, 18
   orig: 50, 18
   offset: 0, 0
   index: -1
 girl-blue-cape/cape-shoulder-back
-  rotate: true
-  xy: 881, 123
+  rotate: false
+  xy: 751, 110
   size: 49, 59
   orig: 49, 59
   offset: 0, 0
   index: -1
 girl-blue-cape/cape-shoulder-front
-  rotate: false
-  xy: 2, 2
+  rotate: true
+  xy: 113, 264
   size: 62, 76
   orig: 62, 76
   offset: 0, 0
   index: -1
 girl-blue-cape/cape-up-front
   rotate: true
-  xy: 629, 313
+  xy: 399, 264
   size: 98, 117
   orig: 98, 117
   offset: 0, 0
   index: -1
 girl-blue-cape/ear
-  rotate: true
-  xy: 397, 82
+  rotate: false
+  xy: 775, 2
   size: 19, 23
   orig: 19, 23
   offset: 0, 0
   index: -1
 girl-spring-dress/ear
-  rotate: true
-  xy: 397, 82
+  rotate: false
+  xy: 775, 2
   size: 19, 23
   orig: 19, 23
   offset: 0, 0
   index: -1
 girl/ear
-  rotate: true
-  xy: 397, 82
+  rotate: false
+  xy: 775, 2
   size: 19, 23
   orig: 19, 23
   offset: 0, 0
   index: -1
 girl-blue-cape/eye-back-low-eyelid
-  rotate: true
-  xy: 104, 64
+  rotate: false
+  xy: 802, 463
   size: 17, 6
   orig: 17, 6
   offset: 0, 0
   index: -1
 girl-spring-dress/eye-back-low-eyelid
-  rotate: true
-  xy: 104, 64
+  rotate: false
+  xy: 802, 463
   size: 17, 6
   orig: 17, 6
   offset: 0, 0
   index: -1
 girl/eye-back-low-eyelid
-  rotate: true
-  xy: 104, 64
+  rotate: false
+  xy: 802, 463
   size: 17, 6
   orig: 17, 6
   offset: 0, 0
   index: -1
 girl-blue-cape/eye-back-pupil
   rotate: false
-  xy: 805, 176
+  xy: 816, 367
   size: 8, 9
   orig: 8, 9
   offset: 0, 0
   index: -1
 girl-spring-dress/eye-back-pupil
   rotate: false
-  xy: 805, 176
+  xy: 816, 367
   size: 8, 9
   orig: 8, 9
   offset: 0, 0
   index: -1
 girl/eye-back-pupil
   rotate: false
-  xy: 805, 176
+  xy: 816, 367
   size: 8, 9
   orig: 8, 9
   offset: 0, 0
   index: -1
 girl-blue-cape/eye-back-up-eyelid
   rotate: false
-  xy: 118, 105
+  xy: 554, 131
   size: 24, 12
   orig: 24, 12
   offset: 0, 0
   index: -1
 girl-spring-dress/eye-back-up-eyelid
   rotate: false
-  xy: 118, 105
+  xy: 554, 131
   size: 24, 12
   orig: 24, 12
   offset: 0, 0
   index: -1
 girl/eye-back-up-eyelid
   rotate: false
-  xy: 118, 105
+  xy: 554, 131
   size: 24, 12
   orig: 24, 12
   offset: 0, 0
   index: -1
 girl-blue-cape/eye-back-up-eyelid-back
-  rotate: false
-  xy: 230, 304
+  rotate: true
+  xy: 832, 453
   size: 17, 11
   orig: 17, 11
   offset: 0, 0
   index: -1
 girl-spring-dress/eye-back-up-eyelid-back
-  rotate: false
-  xy: 230, 304
+  rotate: true
+  xy: 832, 453
   size: 17, 11
   orig: 17, 11
   offset: 0, 0
   index: -1
 girl/eye-back-up-eyelid-back
-  rotate: false
-  xy: 230, 304
+  rotate: true
+  xy: 832, 453
   size: 17, 11
   orig: 17, 11
   offset: 0, 0
   index: -1
 girl-blue-cape/eye-front-low-eyelid
   rotate: true
-  xy: 1016, 118
+  xy: 739, 303
   size: 18, 6
   orig: 18, 6
   offset: 0, 0
   index: -1
 girl-spring-dress/eye-front-low-eyelid
   rotate: true
-  xy: 1016, 118
+  xy: 739, 303
   size: 18, 6
   orig: 18, 6
   offset: 0, 0
   index: -1
 girl/eye-front-low-eyelid
   rotate: true
-  xy: 1016, 118
+  xy: 739, 303
   size: 18, 6
   orig: 18, 6
   offset: 0, 0
   index: -1
 girl-blue-cape/eye-front-pupil
   rotate: false
-  xy: 471, 111
+  xy: 816, 378
   size: 9, 9
   orig: 9, 9
   offset: 0, 0
   index: -1
 girl-spring-dress/eye-front-pupil
   rotate: false
-  xy: 471, 111
+  xy: 816, 378
   size: 9, 9
   orig: 9, 9
   offset: 0, 0
   index: -1
 girl/eye-front-pupil
   rotate: false
-  xy: 471, 111
+  xy: 816, 378
   size: 9, 9
   orig: 9, 9
   offset: 0, 0
   index: -1
 girl-blue-cape/eye-front-up-eyelid
   rotate: true
-  xy: 828, 413
+  xy: 392, 77
   size: 30, 14
   orig: 30, 14
   offset: 0, 0
   index: -1
 girl-spring-dress/eye-front-up-eyelid
   rotate: true
-  xy: 828, 413
+  xy: 392, 77
   size: 30, 14
   orig: 30, 14
   offset: 0, 0
   index: -1
 girl/eye-front-up-eyelid
   rotate: true
-  xy: 828, 413
+  xy: 392, 77
   size: 30, 14
   orig: 30, 14
   offset: 0, 0
   index: -1
 girl-blue-cape/eye-front-up-eyelid-back
-  rotate: true
-  xy: 947, 206
+  rotate: false
+  xy: 455, 130
   size: 26, 11
   orig: 26, 11
   offset: 0, 0
   index: -1
 girl-spring-dress/eye-front-up-eyelid-back
-  rotate: true
-  xy: 947, 206
+  rotate: false
+  xy: 455, 130
   size: 26, 11
   orig: 26, 11
   offset: 0, 0
   index: -1
 girl/eye-front-up-eyelid-back
-  rotate: true
-  xy: 947, 206
+  rotate: false
+  xy: 455, 130
   size: 26, 11
   orig: 26, 11
   offset: 0, 0
   index: -1
 girl-blue-cape/eye-iris-back
   rotate: false
-  xy: 126, 86
+  xy: 637, 264
   size: 17, 17
   orig: 17, 17
   offset: 0, 0
   index: -1
 girl-blue-cape/eye-iris-front
   rotate: false
-  xy: 484, 139
+  xy: 802, 471
   size: 18, 18
   orig: 18, 18
   offset: 0, 0
   index: -1
 girl-blue-cape/eye-white-back
-  rotate: true
-  xy: 1006, 337
+  rotate: false
+  xy: 596, 264
   size: 20, 16
   orig: 20, 16
   offset: 0, 0
   index: -1
 girl-spring-dress/eye-white-back
-  rotate: true
-  xy: 1006, 337
+  rotate: false
+  xy: 596, 264
   size: 20, 16
   orig: 20, 16
   offset: 0, 0
   index: -1
 girl-blue-cape/eye-white-front
-  rotate: false
-  xy: 994, 120
+  rotate: true
+  xy: 814, 5
   size: 20, 16
   orig: 20, 16
   offset: 0, 0
   index: -1
 girl-spring-dress/eye-white-front
-  rotate: false
-  xy: 994, 120
+  rotate: true
+  xy: 814, 5
   size: 20, 16
   orig: 20, 16
   offset: 0, 0
   index: -1
 girl/eye-white-front
-  rotate: false
-  xy: 994, 120
+  rotate: true
+  xy: 814, 5
   size: 20, 16
   orig: 20, 16
   offset: 0, 0
   index: -1
 girl-blue-cape/front-eyebrow
-  rotate: false
-  xy: 183, 95
+  rotate: true
+  xy: 822, 472
   size: 18, 12
   orig: 18, 12
   offset: 0, 0
   index: -1
 girl-blue-cape/hair-back
-  rotate: false
-  xy: 748, 313
+  rotate: true
+  xy: 508, 145
   size: 117, 98
   orig: 117, 98
   offset: 0, 0
   index: -1
 girl-blue-cape/hair-bangs
-  rotate: false
-  xy: 388, 199
+  rotate: true
+  xy: 673, 419
   size: 91, 40
   orig: 91, 40
   offset: 0, 0
   index: -1
 girl-blue-cape/hair-head-side-back
-  rotate: false
-  xy: 783, 187
+  rotate: true
+  xy: 196, 331
   size: 30, 52
   orig: 30, 52
   offset: 0, 0
   index: -1
 girl-blue-cape/hair-head-side-front
   rotate: false
-  xy: 483, 159
+  xy: 738, 323
   size: 41, 42
   orig: 41, 42
   offset: 0, 0
   index: -1
 girl-blue-cape/hair-side
   rotate: false
-  xy: 66, 7
+  xy: 473, 3
   size: 36, 71
   orig: 36, 71
   offset: 0, 0
   index: -1
 girl-blue-cape/hand-front-fingers
-  rotate: true
-  xy: 757, 168
+  rotate: false
+  xy: 509, 365
   size: 19, 21
   orig: 19, 21
   offset: 0, 0
   index: -1
 girl-spring-dress/hand-front-fingers
-  rotate: true
-  xy: 757, 168
+  rotate: false
+  xy: 509, 365
   size: 19, 21
   orig: 19, 21
   offset: 0, 0
   index: -1
 girl-blue-cape/leg-front
   rotate: true
-  xy: 668, 413
+  xy: 168, 72
   size: 30, 158
   orig: 30, 158
   offset: 0, 0
   index: -1
 girl-blue-cape/mouth-smile
-  rotate: true
-  xy: 546, 172
+  rotate: false
+  xy: 736, 79
   size: 29, 7
   orig: 29, 7
   offset: 0, 0
   index: -1
 girl-spring-dress/mouth-smile
-  rotate: true
-  xy: 546, 172
+  rotate: false
+  xy: 736, 79
   size: 29, 7
   orig: 29, 7
   offset: 0, 0
   index: -1
 girl/mouth-smile
-  rotate: true
-  xy: 546, 172
+  rotate: false
+  xy: 736, 79
   size: 29, 7
   orig: 29, 7
   offset: 0, 0
   index: -1
 girl-blue-cape/nose
-  rotate: true
-  xy: 1015, 138
+  rotate: false
+  xy: 747, 264
   size: 11, 7
   orig: 11, 7
   offset: 0, 0
   index: -1
 girl-spring-dress/nose
-  rotate: true
-  xy: 1015, 138
+  rotate: false
+  xy: 747, 264
   size: 11, 7
   orig: 11, 7
   offset: 0, 0
   index: -1
 girl/nose
-  rotate: true
-  xy: 1015, 138
+  rotate: false
+  xy: 747, 264
   size: 11, 7
   orig: 11, 7
   offset: 0, 0
   index: -1
 girl-blue-cape/sleeve-back
-  rotate: true
-  xy: 440, 105
+  rotate: false
+  xy: 767, 79
   size: 42, 29
   orig: 42, 29
   offset: 0, 0
   index: -1
 girl-blue-cape/sleeve-front
   rotate: true
-  xy: 867, 276
+  xy: 408, 76
   size: 52, 119
   orig: 52, 119
   offset: 0, 0
   index: -1
 girl-spring-dress/arm-front
-  rotate: true
-  xy: 370, 299
+  rotate: false
+  xy: 596, 282
   size: 17, 111
   orig: 17, 111
   offset: 0, 0
   index: -1
 girl-spring-dress/back-eyebrow
-  rotate: false
-  xy: 603, 166
+  rotate: true
+  xy: 608, 149
   size: 18, 12
   orig: 18, 12
   offset: 0, 0
   index: -1
 girl-spring-dress/body-up
   rotate: false
-  xy: 815, 163
+  xy: 179, 4
   size: 64, 66
   orig: 64, 66
   offset: 0, 0
   index: -1
 girl-spring-dress/cloak-down
   rotate: false
-  xy: 386, 147
+  xy: 775, 27
   size: 50, 50
   orig: 50, 50
   offset: 0, 0
   index: -1
 girl-spring-dress/cloak-up
-  rotate: false
-  xy: 881, 174
+  rotate: true
+  xy: 360, 7
   size: 64, 58
   orig: 64, 58
   offset: 0, 0
   index: -1
 girl-spring-dress/eye-iris-back
   rotate: false
-  xy: 145, 90
+  xy: 656, 264
   size: 17, 17
   orig: 17, 17
   offset: 0, 0
   index: -1
 girl-spring-dress/eye-iris-front
   rotate: false
-  xy: 484, 119
+  xy: 814, 492
   size: 18, 18
   orig: 18, 18
   offset: 0, 0
   index: -1
 girl-spring-dress/front-eyebrow
-  rotate: false
-  xy: 203, 95
+  rotate: true
+  xy: 834, 492
   size: 18, 12
   orig: 18, 12
   offset: 0, 0
   index: -1
 girl-spring-dress/hair-back
-  rotate: false
-  xy: 370, 417
+  rotate: true
+  xy: 196, 363
   size: 147, 93
   orig: 147, 93
   offset: 0, 0
   index: -1
 girl-spring-dress/hair-bangs
-  rotate: false
-  xy: 247, 83
+  rotate: true
+  xy: 696, 326
   size: 91, 40
   orig: 91, 40
   offset: 0, 0
   index: -1
 girl-spring-dress/hair-head-side-back
   rotate: false
-  xy: 991, 359
+  xy: 529, 76
   size: 30, 52
   orig: 30, 52
   offset: 0, 0
   index: -1
 girl-spring-dress/hair-head-side-front
   rotate: false
-  xy: 354, 87
+  xy: 781, 323
   size: 41, 42
   orig: 41, 42
   offset: 0, 0
   index: -1
 girl-spring-dress/hair-side
-  rotate: true
-  xy: 555, 218
+  rotate: false
+  xy: 511, 3
   size: 36, 71
   orig: 36, 71
   offset: 0, 0
   index: -1
 girl-spring-dress/leg-front
-  rotate: true
-  xy: 629, 281
+  rotate: false
+  xy: 171, 104
   size: 30, 158
   orig: 30, 158
   offset: 0, 0
   index: -1
 girl-spring-dress/neck
-  rotate: true
-  xy: 979, 413
+  rotate: false
+  xy: 138, 70
   size: 20, 32
   orig: 20, 32
   offset: 0, 0
   index: -1
 girl-spring-dress/shoulder-ribbon
   rotate: true
-  xy: 351, 185
+  xy: 622, 131
   size: 36, 24
   orig: 36, 24
   offset: 0, 0
   index: -1
 girl-spring-dress/skirt
   rotate: true
-  xy: 2, 80
+  xy: 113, 328
   size: 182, 81
   orig: 182, 81
   offset: 0, 0
   index: -1
 girl-spring-dress/underskirt
   rotate: false
-  xy: 668, 445
+  xy: 2, 2
   size: 175, 65
   orig: 175, 65
   offset: 0, 0
   index: -1
 girl/arm-front
-  rotate: true
-  xy: 234, 185
+  rotate: false
+  xy: 577, 395
   size: 36, 115
   orig: 36, 115
   offset: 0, 0
   index: -1
 girl/back-eyebrow
-  rotate: true
-  xy: 112, 84
+  rotate: false
+  xy: 801, 420
   size: 18, 12
   orig: 18, 12
   offset: 0, 0
   index: -1
 girl/bag-base
-  rotate: false
-  xy: 960, 206
+  rotate: true
+  xy: 191, 264
   size: 62, 58
   orig: 62, 58
   offset: 0, 0
   index: -1
 girl/bag-strap-front
   rotate: false
-  xy: 340, 87
+  xy: 385, 265
   size: 12, 96
   orig: 12, 96
   offset: 0, 0
   index: -1
 girl/bag-top
-  rotate: true
-  xy: 815, 231
+  rotate: false
+  xy: 738, 367
   size: 49, 50
   orig: 49, 50
   offset: 0, 0
   index: -1
 girl/body
-  rotate: true
-  xy: 370, 318
+  rotate: false
+  xy: 356, 130
   size: 97, 132
   orig: 97, 132
   offset: 0, 0
   index: -1
 girl/boot-ribbon-front
   rotate: false
-  xy: 112, 69
+  xy: 539, 130
   size: 13, 13
   orig: 13, 13
   offset: 0, 0
   index: -1
 girl/eye-iris-back
   rotate: false
-  xy: 164, 90
+  xy: 821, 424
   size: 17, 17
   orig: 17, 17
   offset: 0, 0
   index: -1
 girl/eye-iris-front
   rotate: false
-  xy: 504, 126
+  xy: 812, 443
   size: 18, 18
   orig: 18, 18
   offset: 0, 0
   index: -1
 girl/eye-white-back
   rotate: true
-  xy: 422, 81
+  xy: 796, 5
   size: 20, 16
   orig: 20, 16
   offset: 0, 0
   index: -1
 girl/front-eyebrow
-  rotate: false
-  xy: 223, 95
+  rotate: true
+  xy: 816, 400
   size: 18, 12
   orig: 18, 12
   offset: 0, 0
   index: -1
 girl/hair-back
-  rotate: false
-  xy: 519, 417
+  rotate: true
+  xy: 291, 363
   size: 147, 93
   orig: 147, 93
   offset: 0, 0
   index: -1
 girl/hair-bangs
-  rotate: false
-  xy: 867, 234
+  rotate: true
+  xy: 715, 419
   size: 91, 40
   orig: 91, 40
   offset: 0, 0
   index: -1
 girl/hair-flap-down-front
   rotate: false
-  xy: 483, 242
+  xy: 288, 5
   size: 70, 65
   orig: 70, 65
   offset: 0, 0
   index: -1
 girl/hair-head-side-back
   rotate: false
-  xy: 354, 131
+  xy: 561, 77
   size: 30, 52
   orig: 30, 52
   offset: 0, 0
   index: -1
 girl/hair-head-side-front
-  rotate: false
-  xy: 397, 103
+  rotate: true
+  xy: 757, 419
   size: 41, 42
   orig: 41, 42
   offset: 0, 0
   index: -1
 girl/hair-patch
-  rotate: false
-  xy: 947, 163
+  rotate: true
+  xy: 245, 4
   size: 66, 41
   orig: 66, 41
   offset: 0, 0
   index: -1
 girl/hair-side
-  rotate: true
-  xy: 555, 180
+  rotate: false
+  xy: 549, 3
   size: 36, 71
   orig: 36, 71
   offset: 0, 0
   index: -1
 girl/hair-strand-back-1
   rotate: false
-  xy: 328, 223
+  xy: 684, 3
   size: 58, 74
   orig: 58, 74
   offset: 0, 0
   index: -1
 girl/hair-strand-back-2
-  rotate: false
-  xy: 247, 125
+  rotate: true
+  xy: 692, 171
   size: 91, 58
   orig: 91, 58
   offset: 0, 0
   index: -1
 girl/hair-strand-back-3
-  rotate: false
-  xy: 234, 223
+  rotate: true
+  xy: 615, 323
   size: 92, 79
   orig: 92, 79
   offset: 0, 0
   index: -1
 girl/hair-strand-front-1
-  rotate: true
-  xy: 629, 241
+  rotate: false
+  xy: 518, 269
   size: 38, 94
   orig: 38, 94
   offset: 0, 0
   index: -1
 girl/hair-strand-front-2
   rotate: false
-  xy: 711, 189
+  xy: 593, 79
   size: 70, 50
   orig: 70, 50
   offset: 0, 0
   index: -1
 girl/hair-strand-front-3
-  rotate: true
-  xy: 628, 195
+  rotate: false
+  xy: 705, 88
   size: 44, 81
   orig: 44, 81
   offset: 0, 0
   index: -1
 girl/hand-front-fingers
   rotate: false
-  xy: 440, 82
+  xy: 530, 365
   size: 19, 21
   orig: 19, 21
   offset: 0, 0
   index: -1
 girl/hat
   rotate: true
-  xy: 150, 184
+  xy: 608, 169
   size: 93, 82
   orig: 93, 82
   offset: 0, 0
   index: -1
 girl/leg-front
   rotate: false
-  xy: 118, 119
+  xy: 203, 104
   size: 30, 158
   orig: 30, 158
   offset: 0, 0
   index: -1
 girl/pompom
   rotate: true
-  xy: 438, 149
+  xy: 757, 462
   size: 48, 43
   orig: 48, 43
   offset: 0, 0
   index: -1
 girl/scarf
-  rotate: false
-  xy: 249, 304
+  rotate: true
+  xy: 455, 143
   size: 119, 51
   orig: 119, 51
   offset: 0, 0
   index: -1
 girl/scarf-back
-  rotate: false
-  xy: 555, 256
+  rotate: true
+  xy: 420, 2
   size: 72, 51
   orig: 72, 51
   offset: 0, 0
   index: -1
 girl/zip
   rotate: true
-  xy: 85, 83
+  xy: 356, 109
   size: 19, 25
   orig: 19, 25
   offset: 0, 0

BIN
spine-ts/webgl/example/assets/mix-and-match-pma.png


BIN
spine-ts/webgl/example/assets/mix-and-match-pro.skel


+ 42 - 42
spine-ts/webgl/example/assets/owl-pma.atlas

@@ -5,190 +5,190 @@ format: RGBA8888
 filter: Linear,Linear
 repeat: none
 L_eye-closed
-  rotate: false
-  xy: 508, 115
+  rotate: true
+  xy: 512, 5
   size: 90, 86
   orig: 90, 86
   offset: 0, 0
   index: -1
 L_eye-iris
-  rotate: false
-  xy: 826, 183
+  rotate: true
+  xy: 600, 10
   size: 90, 86
   orig: 90, 86
   offset: 0, 0
   index: -1
 L_eye-light
-  rotate: false
-  xy: 1001, 488
+  rotate: true
+  xy: 688, 4
   size: 21, 20
   orig: 21, 20
   offset: 0, 0
   index: -1
 L_eye-pupil
-  rotate: false
-  xy: 752, 154
+  rotate: true
+  xy: 856, 13
   size: 63, 60
   orig: 63, 60
   offset: 0, 0
   index: -1
 L_foot
-  rotate: false
-  xy: 817, 133
+  rotate: true
+  xy: 834, 78
   size: 64, 48
   orig: 64, 48
   offset: 0, 0
   index: -1
 L_wing
-  rotate: false
-  xy: 342, 91
+  rotate: true
+  xy: 349, 4
   size: 81, 110
   orig: 81, 110
   offset: 0, 0
   index: -1
 R_eye-closed
-  rotate: false
-  xy: 508, 27
+  rotate: true
+  xy: 637, 119
   size: 90, 86
   orig: 90, 86
   offset: 0, 0
   index: -1
 R_eye-iris
   rotate: true
-  xy: 600, 111
+  xy: 688, 27
   size: 90, 86
   orig: 90, 86
   offset: 0, 0
   index: -1
 R_eye-light
-  rotate: false
-  xy: 1001, 466
+  rotate: true
+  xy: 710, 4
   size: 21, 20
   orig: 21, 20
   offset: 0, 0
   index: -1
 R_eye-pupil
   rotate: true
-  xy: 691, 72
+  xy: 884, 80
   size: 63, 60
   orig: 63, 60
   offset: 0, 0
   index: -1
 R_foot
-  rotate: false
-  xy: 814, 83
+  rotate: true
+  xy: 845, 145
   size: 64, 48
   orig: 64, 48
   offset: 0, 0
   index: -1
 R_wing
   rotate: false
-  xy: 425, 91
+  xy: 421, 93
   size: 81, 110
   orig: 81, 110
   offset: 0, 0
   index: -1
 beak
   rotate: false
-  xy: 883, 140
+  xy: 776, 2
   size: 39, 41
   orig: 39, 41
   offset: 0, 0
   index: -1
 beak-down
-  rotate: true
-  xy: 753, 53
+  rotate: false
+  xy: 817, 3
   size: 37, 40
   orig: 37, 40
   offset: 0, 0
   index: -1
 body
   rotate: false
-  xy: 2, 5
+  xy: 2, 7
   size: 248, 196
   orig: 248, 196
   offset: 0, 0
   index: -1
 feather-1
   rotate: false
-  xy: 753, 92
+  xy: 918, 18
   size: 59, 60
   orig: 59, 60
   offset: 0, 0
   index: -1
 feather-2
   rotate: false
-  xy: 688, 137
+  xy: 781, 144
   size: 62, 65
   orig: 62, 65
   offset: 0, 0
   index: -1
 feather-3
-  rotate: true
-  xy: 600, 2
+  rotate: false
+  xy: 776, 45
   size: 56, 76
   orig: 56, 76
   offset: 0, 0
   index: -1
 head-base
-  rotate: false
-  xy: 621, 271
+  rotate: true
+  xy: 621, 211
   size: 299, 237
   orig: 299, 237
   offset: 0, 0
   index: -1
 leaf-1
   rotate: false
-  xy: 922, 273
+  xy: 559, 102
   size: 76, 101
   orig: 76, 101
   offset: 0, 0
   index: -1
 leaf-2
   rotate: true
-  xy: 621, 204
+  xy: 252, 4
   size: 65, 95
   orig: 65, 95
   offset: 0, 0
   index: -1
 leaf-3
   rotate: true
-  xy: 922, 376
+  xy: 252, 71
   size: 132, 77
   orig: 132, 77
   offset: 0, 0
   index: -1
 leaf-4
-  rotate: false
-  xy: 600, 60
+  rotate: true
+  xy: 461, 2
   size: 89, 49
   orig: 89, 49
   offset: 0, 0
   index: -1
 leaf-5
-  rotate: true
-  xy: 718, 216
+  rotate: false
+  xy: 504, 97
   size: 53, 106
   orig: 53, 106
   offset: 0, 0
   index: -1
 leaf-6
   rotate: false
-  xy: 252, 85
+  xy: 331, 87
   size: 88, 116
   orig: 88, 116
   offset: 0, 0
   index: -1
 leaf-7
-  rotate: true
-  xy: 252, 29
+  rotate: false
+  xy: 725, 123
   size: 54, 86
   orig: 54, 86
   offset: 0, 0
   index: -1
 wood
   rotate: false
-  xy: 2, 203
+  xy: 2, 205
   size: 617, 305
   orig: 617, 305
   offset: 0, 0

BIN
spine-ts/webgl/example/assets/owl-pma.png


BIN
spine-ts/webgl/example/assets/owl-pro.skel


+ 55 - 55
spine-ts/webgl/example/assets/raptor-pma.atlas

@@ -5,267 +5,267 @@ format: RGBA8888
 filter: Linear,Linear
 repeat: none
 back-arm
-  rotate: false
-  xy: 895, 295
+  rotate: true
+  xy: 829, 88
   size: 46, 25
   orig: 46, 25
   offset: 0, 0
   index: -1
 back-bracer
   rotate: true
-  xy: 992, 216
+  xy: 195, 238
   size: 39, 28
   orig: 39, 28
   offset: 0, 0
   index: -1
 back-hand
-  rotate: false
-  xy: 594, 58
+  rotate: true
+  xy: 724, 140
   size: 36, 34
   orig: 36, 34
   offset: 0, 0
   index: -1
 back-knee
   rotate: true
-  xy: 729, 86
+  xy: 760, 131
   size: 49, 67
   orig: 49, 67
   offset: 0, 0
   index: -1
 back-thigh
-  rotate: false
-  xy: 379, 2
+  rotate: true
+  xy: 225, 238
   size: 39, 24
   orig: 39, 24
   offset: 0, 0
   index: -1
 eyes-open
-  rotate: true
-  xy: 902, 194
+  rotate: false
+  xy: 975, 204
   size: 47, 45
   orig: 47, 45
   offset: 0, 0
   index: -1
 front-arm
   rotate: false
-  xy: 945, 306
+  xy: 969, 112
   size: 48, 26
   orig: 48, 26
   offset: 0, 0
   index: -1
 front-bracer
-  rotate: false
-  xy: 949, 197
+  rotate: true
+  xy: 724, 97
   size: 41, 29
   orig: 41, 29
   offset: 0, 0
   index: -1
 front-hand
   rotate: false
-  xy: 949, 266
+  xy: 251, 239
   size: 41, 38
   orig: 41, 38
   offset: 0, 0
   index: -1
 front-open-hand
-  rotate: false
-  xy: 875, 148
+  rotate: true
+  xy: 856, 76
   size: 43, 44
   orig: 43, 44
   offset: 0, 0
   index: -1
 front-thigh
   rotate: true
-  xy: 793, 171
+  xy: 729, 178
   size: 57, 29
   orig: 57, 29
   offset: 0, 0
   index: -1
 gun
-  rotate: true
-  xy: 379, 28
+  rotate: false
+  xy: 894, 251
   size: 107, 103
   orig: 107, 103
   offset: 0, 0
   index: -1
 gun-nohand
   rotate: false
-  xy: 487, 87
+  xy: 764, 241
   size: 105, 102
   orig: 105, 102
   offset: 0, 0
   index: -1
 head
   rotate: false
-  xy: 807, 361
+  xy: 756, 345
   size: 136, 149
   orig: 136, 149
   offset: 0, 0
   index: -1
 lower-leg
-  rotate: false
-  xy: 827, 195
+  rotate: true
+  xy: 475, 237
   size: 73, 98
   orig: 73, 98
   offset: 0, 0
   index: -1
 mouth-grind
-  rotate: true
-  xy: 920, 145
+  rotate: false
+  xy: 975, 172
   size: 47, 30
   orig: 47, 30
   offset: 0, 0
   index: -1
 mouth-smile
-  rotate: true
-  xy: 992, 257
+  rotate: false
+  xy: 975, 140
   size: 47, 30
   orig: 47, 30
   offset: 0, 0
   index: -1
 neck
   rotate: false
-  xy: 359, 114
+  xy: 366, 282
   size: 18, 21
   orig: 18, 21
   offset: 0, 0
   index: -1
 raptor-back-arm
-  rotate: false
-  xy: 653, 142
+  rotate: true
+  xy: 636, 97
   size: 82, 86
   orig: 82, 86
   offset: 0, 0
   index: -1
 raptor-body
   rotate: false
-  xy: 2, 277
+  xy: 2, 2
   size: 632, 233
   orig: 632, 233
   offset: 0, 0
   index: -1
 raptor-front-arm
   rotate: true
-  xy: 484, 4
+  xy: 871, 168
   size: 81, 102
   orig: 81, 102
   offset: 0, 0
   index: -1
 raptor-front-leg
   rotate: false
-  xy: 2, 18
+  xy: 2, 237
   size: 191, 257
   orig: 191, 257
   offset: 0, 0
   index: -1
 raptor-hindleg-back
   rotate: false
-  xy: 636, 295
+  xy: 195, 279
   size: 169, 215
   orig: 169, 215
   offset: 0, 0
   index: -1
 raptor-horn
-  rotate: false
-  xy: 195, 22
+  rotate: true
+  xy: 431, 312
   size: 182, 80
   orig: 182, 80
   offset: 0, 0
   index: -1
 raptor-horn-back
   rotate: true
-  xy: 945, 334
+  xy: 513, 318
   size: 176, 77
   orig: 176, 77
   offset: 0, 0
   index: -1
 raptor-jaw
   rotate: false
-  xy: 359, 137
+  xy: 894, 356
   size: 126, 138
   orig: 126, 138
   offset: 0, 0
   index: -1
 raptor-jaw-tooth
   rotate: true
-  xy: 895, 322
+  xy: 294, 240
   size: 37, 48
   orig: 37, 48
   offset: 0, 0
   index: -1
 raptor-mouth-inside
   rotate: true
-  xy: 949, 228
+  xy: 344, 241
   size: 36, 41
   orig: 36, 41
   offset: 0, 0
   index: -1
 raptor-saddle-strap-back
-  rotate: true
-  xy: 653, 86
+  rotate: false
+  xy: 575, 242
   size: 54, 74
   orig: 54, 74
   offset: 0, 0
   index: -1
 raptor-saddle-strap-front
-  rotate: false
-  xy: 594, 94
+  rotate: true
+  xy: 764, 182
   size: 57, 95
   orig: 57, 95
   offset: 0, 0
   index: -1
 raptor-saddle-w-shadow
   rotate: false
-  xy: 195, 104
+  xy: 592, 323
   size: 162, 171
   orig: 162, 171
   offset: 0, 0
   index: -1
 raptor-tail-shadow
-  rotate: false
-  xy: 636, 230
+  rotate: true
+  xy: 366, 305
   size: 189, 63
   orig: 189, 63
   offset: 0, 0
   index: -1
 raptor-tongue
   rotate: false
-  xy: 807, 295
+  xy: 387, 239
   size: 86, 64
   orig: 86, 64
   offset: 0, 0
   index: -1
 stirrup-back
   rotate: true
-  xy: 952, 151
+  xy: 829, 136
   size: 44, 35
   orig: 44, 35
   offset: 0, 0
   index: -1
 stirrup-front
-  rotate: false
-  xy: 902, 243
+  rotate: true
+  xy: 866, 121
   size: 45, 50
   orig: 45, 50
   offset: 0, 0
   index: -1
 stirrup-strap
   rotate: false
-  xy: 824, 147
+  xy: 918, 120
   size: 49, 46
   orig: 49, 46
   offset: 0, 0
   index: -1
 torso
-  rotate: false
-  xy: 737, 137
+  rotate: true
+  xy: 636, 181
   size: 54, 91
   orig: 54, 91
   offset: 0, 0
   index: -1
 visor
   rotate: false
-  xy: 487, 191
+  xy: 631, 237
   size: 131, 84
   orig: 131, 84
   offset: 0, 0

BIN
spine-ts/webgl/example/assets/raptor-pma.png


BIN
spine-ts/webgl/example/assets/raptor-pro.skel


+ 61 - 61
spine-ts/webgl/example/assets/spineboy-pma.atlas

@@ -6,280 +6,280 @@ filter: Linear,Linear
 repeat: none
 crosshair
   rotate: false
-  xy: 352, 7
+  xy: 813, 160
   size: 45, 45
   orig: 45, 45
   offset: 0, 0
   index: -1
 eye-indifferent
   rotate: false
-  xy: 862, 105
+  xy: 569, 2
   size: 47, 45
   orig: 47, 45
   offset: 0, 0
   index: -1
 eye-surprised
-  rotate: false
-  xy: 505, 79
+  rotate: true
+  xy: 643, 7
   size: 47, 45
   orig: 47, 45
   offset: 0, 0
   index: -1
 front-bracer
   rotate: false
-  xy: 826, 66
+  xy: 811, 51
   size: 29, 40
   orig: 29, 40
   offset: 0, 0
   index: -1
 front-fist-closed
   rotate: false
-  xy: 786, 65
+  xy: 807, 93
   size: 38, 41
   orig: 38, 41
   offset: 0, 0
   index: -1
 front-fist-open
-  rotate: true
-  xy: 710, 51
+  rotate: false
+  xy: 815, 210
   size: 43, 44
   orig: 43, 44
   offset: 0, 0
   index: -1
 front-foot
-  rotate: false
-  xy: 210, 6
+  rotate: true
+  xy: 706, 64
   size: 63, 35
   orig: 63, 35
   offset: 0, 0
   index: -1
 front-shin
-  rotate: true
-  xy: 665, 128
+  rotate: false
+  xy: 80, 11
   size: 41, 92
   orig: 41, 92
   offset: 0, 0
   index: -1
 front-thigh
-  rotate: true
-  xy: 2, 2
+  rotate: false
+  xy: 754, 12
   size: 23, 56
   orig: 23, 56
   offset: 0, 0
   index: -1
 front-upper-arm
   rotate: false
-  xy: 250, 205
+  xy: 618, 5
   size: 23, 49
   orig: 23, 49
   offset: 0, 0
   index: -1
 goggles
   rotate: false
-  xy: 665, 171
+  xy: 214, 20
   size: 131, 83
   orig: 131, 83
   offset: 0, 0
   index: -1
 gun
-  rotate: false
-  xy: 798, 152
+  rotate: true
+  xy: 347, 14
   size: 105, 102
   orig: 105, 102
   offset: 0, 0
   index: -1
 head
   rotate: false
-  xy: 2, 27
+  xy: 80, 105
   size: 136, 149
   orig: 136, 149
   offset: 0, 0
   index: -1
 hoverboard-board
-  rotate: false
-  xy: 2, 178
+  rotate: true
+  xy: 2, 8
   size: 246, 76
   orig: 246, 76
   offset: 0, 0
   index: -1
 hoverboard-thruster
-  rotate: true
-  xy: 722, 96
+  rotate: false
+  xy: 478, 2
   size: 30, 32
   orig: 30, 32
   offset: 0, 0
   index: -1
 hoverglow-small
-  rotate: false
-  xy: 275, 81
+  rotate: true
+  xy: 218, 117
   size: 137, 38
   orig: 137, 38
   offset: 0, 0
   index: -1
 mouth-grind
-  rotate: false
-  xy: 614, 97
+  rotate: true
+  xy: 775, 80
   size: 47, 30
   orig: 47, 30
   offset: 0, 0
   index: -1
 mouth-oooo
-  rotate: false
-  xy: 612, 65
+  rotate: true
+  xy: 779, 31
   size: 47, 30
   orig: 47, 30
   offset: 0, 0
   index: -1
 mouth-smile
-  rotate: false
-  xy: 661, 64
+  rotate: true
+  xy: 783, 207
   size: 47, 30
   orig: 47, 30
   offset: 0, 0
   index: -1
 muzzle-glow
   rotate: false
-  xy: 382, 54
+  xy: 779, 4
   size: 25, 25
   orig: 25, 25
   offset: 0, 0
   index: -1
 muzzle-ring
-  rotate: true
-  xy: 275, 54
+  rotate: false
+  xy: 451, 14
   size: 25, 105
   orig: 25, 105
   offset: 0, 0
   index: -1
 muzzle01
   rotate: true
-  xy: 911, 95
+  xy: 664, 60
   size: 67, 40
   orig: 67, 40
   offset: 0, 0
   index: -1
 muzzle02
-  rotate: false
-  xy: 792, 108
+  rotate: true
+  xy: 580, 56
   size: 68, 42
   orig: 68, 42
   offset: 0, 0
   index: -1
 muzzle03
   rotate: true
-  xy: 956, 171
+  xy: 478, 36
   size: 83, 53
   orig: 83, 53
   offset: 0, 0
   index: -1
 muzzle04
-  rotate: false
-  xy: 275, 7
+  rotate: true
+  xy: 533, 49
   size: 75, 45
   orig: 75, 45
   offset: 0, 0
   index: -1
 muzzle05
-  rotate: false
-  xy: 140, 3
+  rotate: true
+  xy: 624, 56
   size: 68, 38
   orig: 68, 38
   offset: 0, 0
   index: -1
 neck
   rotate: false
-  xy: 250, 182
+  xy: 806, 8
   size: 18, 21
   orig: 18, 21
   offset: 0, 0
   index: -1
 portal-bg
   rotate: false
-  xy: 140, 43
+  xy: 258, 121
   size: 133, 133
   orig: 133, 133
   offset: 0, 0
   index: -1
 portal-flare1
-  rotate: false
-  xy: 554, 65
+  rotate: true
+  xy: 690, 2
   size: 56, 30
   orig: 56, 30
   offset: 0, 0
   index: -1
 portal-flare2
-  rotate: true
-  xy: 759, 112
+  rotate: false
+  xy: 510, 3
   size: 57, 31
   orig: 57, 31
   offset: 0, 0
   index: -1
 portal-flare3
-  rotate: false
-  xy: 554, 97
+  rotate: true
+  xy: 722, 4
   size: 58, 30
   orig: 58, 30
   offset: 0, 0
   index: -1
 portal-shade
   rotate: false
-  xy: 275, 121
+  xy: 393, 121
   size: 133, 133
   orig: 133, 133
   offset: 0, 0
   index: -1
 portal-streaks1
   rotate: false
-  xy: 410, 126
+  xy: 528, 126
   size: 126, 128
   orig: 126, 128
   offset: 0, 0
   index: -1
 portal-streaks2
   rotate: false
-  xy: 538, 129
+  xy: 656, 129
   size: 125, 125
   orig: 125, 125
   offset: 0, 0
   index: -1
 rear-bracer
   rotate: false
-  xy: 857, 67
+  xy: 826, 13
   size: 28, 36
   orig: 28, 36
   offset: 0, 0
   index: -1
 rear-foot
-  rotate: false
-  xy: 663, 96
+  rotate: true
+  xy: 743, 70
   size: 57, 30
   orig: 57, 30
   offset: 0, 0
   index: -1
 rear-shin
-  rotate: true
-  xy: 414, 86
+  rotate: false
+  xy: 174, 14
   size: 38, 89
   orig: 38, 89
   offset: 0, 0
   index: -1
 rear-thigh
   rotate: false
-  xy: 756, 63
+  xy: 783, 158
   size: 28, 47
   orig: 28, 47
   offset: 0, 0
   index: -1
 rear-upper-arm
   rotate: true
-  xy: 60, 5
+  xy: 783, 136
   size: 20, 44
   orig: 20, 44
   offset: 0, 0
   index: -1
 torso
   rotate: false
-  xy: 905, 164
+  xy: 123, 13
   size: 49, 90
   orig: 49, 90
   offset: 0, 0

BIN
spine-ts/webgl/example/assets/spineboy-pma.png


BIN
spine-ts/webgl/example/assets/spineboy-pro.skel


BIN
spine-ts/webgl/example/assets/spineboy.png


+ 8 - 8
spine-ts/webgl/example/assets/stretchyman-pma.atlas

@@ -5,36 +5,36 @@ format: RGBA8888
 filter: Linear,Linear
 repeat: none
 back-arm
-  rotate: true
-  xy: 679, 173
+  rotate: false
+  xy: 149, 45
   size: 72, 202
   orig: 72, 202
   offset: 0, 0
   index: -1
 back-leg
   rotate: true
-  xy: 2, 2
+  xy: 312, 4
   size: 100, 318
   orig: 100, 318
   offset: 0, 0
   index: -1
 body
   rotate: true
-  xy: 2, 104
+  xy: 223, 106
   size: 141, 452
   orig: 141, 452
   offset: 0, 0
   index: -1
 front-arm
-  rotate: true
-  xy: 456, 100
+  rotate: false
+  xy: 2, 26
   size: 145, 221
   orig: 145, 221
   offset: 0, 0
   index: -1
 head
-  rotate: true
-  xy: 322, 15
+  rotate: false
+  xy: 223, 2
   size: 87, 102
   orig: 87, 102
   offset: 0, 0

BIN
spine-ts/webgl/example/assets/stretchyman-pma.png


BIN
spine-ts/webgl/example/assets/stretchyman-pro.skel


+ 33 - 33
spine-ts/webgl/example/assets/tank-pma.atlas

@@ -6,168 +6,168 @@ filter: Linear,Linear
 repeat: none
 antenna
   rotate: true
-  xy: 650, 857
+  xy: 2, 712
   size: 11, 152
   orig: 11, 152
   offset: 0, 0
   index: -1
 cannon
-  rotate: true
-  xy: 434, 376
+  rotate: false
+  xy: 222, 694
   size: 466, 29
   orig: 466, 29
   offset: 0, 0
   index: -1
 cannon-connector
   rotate: true
-  xy: 349, 241
+  xy: 82, 654
   size: 56, 68
   orig: 56, 68
   offset: 0, 0
   index: -1
 ground
-  rotate: true
-  xy: 255, 330
+  rotate: false
+  xy: 2, 175
   size: 512, 177
   orig: 512, 177
   offset: 0, 0
   index: -1
 guntower
   rotate: false
-  xy: 650, 870
+  xy: 647, 347
   size: 365, 145
   orig: 365, 145
   offset: 0, 0
   index: -1
 machinegun
   rotate: false
-  xy: 255, 299
+  xy: 690, 694
   size: 166, 29
   orig: 166, 29
   offset: 0, 0
   index: -1
 machinegun-mount
   rotate: true
-  xy: 2, 2
+  xy: 858, 687
   size: 36, 48
   orig: 36, 48
   offset: 0, 0
   index: -1
 rock
-  rotate: true
-  xy: 465, 552
+  rotate: false
+  xy: 664, 607
   size: 290, 64
   orig: 290, 64
   offset: 0, 0
   index: -1
 smoke-glow
   rotate: false
-  xy: 531, 563
+  xy: 946, 673
   size: 50, 50
   orig: 50, 50
   offset: 0, 0
   index: -1
 smoke-puff01-bg
-  rotate: true
-  xy: 465, 458
+  rotate: false
+  xy: 312, 630
   size: 92, 62
   orig: 92, 62
   offset: 0, 0
   index: -1
 smoke-puff01-fg
   rotate: false
-  xy: 115, 138
+  xy: 222, 633
   size: 88, 59
   orig: 88, 59
   offset: 0, 0
   index: -1
 smoke-puff02-fg
   rotate: false
-  xy: 255, 235
+  xy: 406, 630
   size: 92, 62
   orig: 92, 62
   offset: 0, 0
   index: -1
 smoke-puff03-fg
   rotate: false
-  xy: 531, 685
+  xy: 500, 630
   size: 92, 62
   orig: 92, 62
   offset: 0, 0
   index: -1
 smoke-puff04-fg
-  rotate: true
-  xy: 465, 378
+  rotate: false
+  xy: 2, 662
   size: 78, 48
   orig: 78, 48
   offset: 0, 0
   index: -1
 tank-bottom
-  rotate: true
-  xy: 115, 199
+  rotate: false
+  xy: 2, 354
   size: 643, 138
   orig: 643, 138
   offset: 0, 0
   index: -1
 tank-bottom-shadow
   rotate: false
-  xy: 2, 844
+  xy: 2, 2
   size: 646, 171
   orig: 646, 171
   offset: 0, 0
   index: -1
 tank-top
-  rotate: true
-  xy: 2, 138
+  rotate: false
+  xy: 195, 494
   size: 704, 111
   orig: 704, 111
   offset: 0, 0
   index: -1
 tread
-  rotate: true
-  xy: 626, 794
+  rotate: false
+  xy: 172, 708
   size: 48, 15
   orig: 48, 15
   offset: 0, 0
   index: -1
 tread-inside
-  rotate: false
-  xy: 434, 360
+  rotate: true
+  xy: 156, 710
   size: 13, 14
   orig: 13, 14
   offset: 0, 0
   index: -1
 wheel-big
   rotate: false
-  xy: 2, 40
+  xy: 97, 540
   size: 96, 96
   orig: 96, 96
   offset: 0, 0
   index: -1
 wheel-big-overlay
   rotate: false
-  xy: 531, 749
+  xy: 2, 559
   size: 93, 93
   orig: 93, 93
   offset: 0, 0
   index: -1
 wheel-mid
   rotate: false
-  xy: 100, 68
+  xy: 152, 638
   size: 68, 68
   orig: 68, 68
   offset: 0, 0
   index: -1
 wheel-mid-overlay
   rotate: false
-  xy: 531, 615
+  xy: 594, 624
   size: 68, 68
   orig: 68, 68
   offset: 0, 0
   index: -1
 wheel-small
   rotate: false
-  xy: 205, 161
+  xy: 908, 687
   size: 36, 36
   orig: 36, 36
   offset: 0, 0

BIN
spine-ts/webgl/example/assets/tank-pma.png


BIN
spine-ts/webgl/example/assets/tank-pro.skel


BIN
spine-ts/webgl/example/assets/vine-pro.skel


+ 20 - 17
spine-ts/webgl/src/WebGL.ts

@@ -33,29 +33,32 @@ module spine.webgl {
 		public gl: WebGLRenderingContext;
 		private restorables = new Array<Restorable>();
 
-		constructor(canvasOrContext: HTMLCanvasElement | WebGLRenderingContext | OffscreenCanvas | WebGL2RenderingContext, contextConfig: any = { alpha: "true" }) {
-			if (!((canvasOrContext instanceof WebGLRenderingContext) || (canvasOrContext instanceof WebGL2RenderingContext))) {
-				let canvas = canvasOrContext;
-				this.gl = <WebGLRenderingContext> (canvas.getContext("webgl2", contextConfig) || canvas.getContext("webgl", contextConfig));
-				this.canvas = canvas;
-				canvas.addEventListener("webglcontextlost", (e: any) => {
-					let event = <WebGLContextEvent>e;
-					if (e) {
-						e.preventDefault();
-					}
-				});
-
-				canvas.addEventListener("webglcontextrestored", (e: any) => {
-					for (let i = 0, n = this.restorables.length; i < n; i++) {
-						this.restorables[i].restore();
-					}
-				});
+		constructor(canvasOrContext: HTMLCanvasElement | WebGLRenderingContext | EventTarget | WebGL2RenderingContext, contextConfig: any = { alpha: "true" }) {
+			if (canvasOrContext instanceof HTMLCanvasElement || canvasOrContext instanceof EventTarget) {
+				this.setupCanvas(canvasOrContext, contextConfig);
 			} else {
 				this.gl = canvasOrContext;
 				this.canvas = this.gl.canvas;
 			}
 		}
 
+		private setupCanvas(canvas: any, contextConfig: any) {
+			this.gl = <WebGLRenderingContext> (canvas.getContext("webgl2", contextConfig) || canvas.getContext("webgl", contextConfig));
+			this.canvas = canvas;
+			canvas.addEventListener("webglcontextlost", (e: any) => {
+				let event = <WebGLContextEvent>e;
+				if (e) {
+					e.preventDefault();
+				}
+			});
+
+			canvas.addEventListener("webglcontextrestored", (e: any) => {
+				for (let i = 0, n = this.restorables.length; i < n; i++) {
+					this.restorables[i].restore();
+				}
+			});
+		}
+
 		addRestorable(restorable: Restorable) {
 			this.restorables.push(restorable);
 		}

Some files were not shown because too many files changed in this diff