@eva/plugin-renderer-sprite 1.2.6 → 1.2.7-editor.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12,7 +12,7 @@ var _EVA_IIFE_sprite = function (exports, eva_js, pluginRenderer, pixi_js) {
12
12
  d.__proto__ = b;
13
13
  } || function (d, b) {
14
14
  for (var p in b) {
15
- if (b.hasOwnProperty(p)) d[p] = b[p];
15
+ if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
16
16
  }
17
17
  };
18
18
 
@@ -20,6 +20,8 @@ var _EVA_IIFE_sprite = function (exports, eva_js, pluginRenderer, pixi_js) {
20
20
  };
21
21
 
22
22
  function __extends(d, b) {
23
+ if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
24
+
23
25
  _extendStatics(d, b);
24
26
 
25
27
  function __() {
@@ -29,6 +31,22 @@ var _EVA_IIFE_sprite = function (exports, eva_js, pluginRenderer, pixi_js) {
29
31
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
30
32
  }
31
33
 
34
+ var _assign = function __assign() {
35
+ _assign = Object.assign || function __assign(t) {
36
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
37
+ s = arguments[i];
38
+
39
+ for (var p in s) {
40
+ if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
41
+ }
42
+ }
43
+
44
+ return t;
45
+ };
46
+
47
+ return _assign.apply(this, arguments);
48
+ };
49
+
32
50
  function __decorate(decorators, target, key, desc) {
33
51
  var c = arguments.length,
34
52
  r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
@@ -39,6 +57,10 @@ var _EVA_IIFE_sprite = function (exports, eva_js, pluginRenderer, pixi_js) {
39
57
  return c > 3 && r && Object.defineProperty(target, key, r), r;
40
58
  }
41
59
 
60
+ function __metadata(metadataKey, metadataValue) {
61
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
62
+ }
63
+
42
64
  function __awaiter(thisArg, _arguments, P, generator) {
43
65
  function adopt(value) {
44
66
  return value instanceof P ? value : new P(function (resolve) {
@@ -199,27 +221,123 @@ var _EVA_IIFE_sprite = function (exports, eva_js, pluginRenderer, pixi_js) {
199
221
  throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
200
222
  }
201
223
 
202
- function getIDEPropsPropertyObj(target, propertyKey) {
203
- if (!target.constructor.IDEProps) {
204
- target.constructor.IDEProps = {};
224
+ var SymbolKeysNotSupportedError = function (_super) {
225
+ __extends(SymbolKeysNotSupportedError, _super);
226
+
227
+ function SymbolKeysNotSupportedError() {
228
+ var _newTarget = this.constructor;
229
+
230
+ var _this = _super.call(this, 'Symbol keys are not supported yet!') || this;
231
+
232
+ Object.setPrototypeOf(_this, _newTarget.prototype);
233
+ return _this;
234
+ }
235
+
236
+ return SymbolKeysNotSupportedError;
237
+ }(Error);
238
+
239
+ (function (_super) {
240
+ __extends(StaticGetPropertiesIsNotAFunctionError, _super);
241
+
242
+ function StaticGetPropertiesIsNotAFunctionError() {
243
+ var _newTarget = this.constructor;
244
+
245
+ var _this = _super.call(this, 'getProperties is not a function!') || this;
246
+
247
+ Object.setPrototypeOf(_this, _newTarget.prototype);
248
+ return _this;
249
+ }
250
+
251
+ return StaticGetPropertiesIsNotAFunctionError;
252
+ })(Error);
253
+
254
+ var IDE_PROPERTY_METADATA = 'IDE_PROPERTY_METADATA';
255
+
256
+ function transformBasicType(type) {
257
+ if (type === String) {
258
+ return 'string';
259
+ }
260
+
261
+ if (type === Number) {
262
+ return 'number';
263
+ }
264
+
265
+ if (type === Boolean) {
266
+ return 'boolean';
267
+ }
268
+
269
+ return 'unknown';
270
+ }
271
+
272
+ function defineTypes(target, key, options, returnTypeFunction) {
273
+ var type = Reflect.getMetadata('design:type', target, key);
274
+ var isArray = type === Array;
275
+ var str = transformBasicType(type);
276
+
277
+ if (str !== 'unknown') {
278
+ type = str;
205
279
  }
206
280
 
207
- if (!target.constructor.IDEProps[propertyKey]) {
208
- target.constructor.IDEProps[propertyKey] = {};
281
+ if (returnTypeFunction) {
282
+ var returnType = returnTypeFunction();
283
+
284
+ if (Array.isArray(returnType)) {
285
+ isArray = true;
286
+ type = returnType[0];
287
+ } else {
288
+ type = returnType;
289
+ }
209
290
  }
210
291
 
211
- var propertyObj = target.constructor.IDEProps[propertyKey];
212
- return propertyObj;
292
+ var properties = Reflect.getMetadata(IDE_PROPERTY_METADATA, target.constructor) || {};
293
+ properties[key] = _assign({
294
+ type: type,
295
+ isArray: isArray
296
+ }, options);
297
+ Reflect.defineMetadata(IDE_PROPERTY_METADATA, properties, target.constructor);
213
298
  }
214
299
 
215
- function type(type) {
300
+ function getTypeDecoratorParams(returnTypeFuncOrOptions, maybeOptions) {
301
+ if (typeof returnTypeFuncOrOptions === 'function') {
302
+ return {
303
+ returnTypeFunc: returnTypeFuncOrOptions,
304
+ options: maybeOptions || {}
305
+ };
306
+ }
307
+
308
+ return {
309
+ options: returnTypeFuncOrOptions || {}
310
+ };
311
+ }
312
+
313
+ function Field(returnTypeFunction, maybeOptions) {
216
314
  return function (target, propertyKey) {
217
- var prop = getIDEPropsPropertyObj(target, propertyKey);
218
- prop.key = propertyKey;
219
- prop.type = type;
315
+ if (typeof propertyKey === 'symbol') {
316
+ throw new SymbolKeysNotSupportedError();
317
+ }
318
+
319
+ var _a = getTypeDecoratorParams(returnTypeFunction, maybeOptions),
320
+ options = _a.options,
321
+ returnTypeFunc = _a.returnTypeFunc;
322
+
323
+ defineTypes(target, propertyKey, options, returnTypeFunc);
220
324
  };
221
325
  }
222
326
 
327
+ var ExecuteMode;
328
+
329
+ (function (ExecuteMode) {
330
+ ExecuteMode[ExecuteMode["Edit"] = 2] = "Edit";
331
+ ExecuteMode[ExecuteMode["Game"] = 4] = "Game";
332
+ ExecuteMode[ExecuteMode["All"] = 6] = "All";
333
+ })(ExecuteMode || (ExecuteMode = {}));
334
+
335
+ var sleep = function sleep(time) {
336
+ return new Promise(function (resolve) {
337
+ return setTimeout(resolve, time);
338
+ });
339
+ };
340
+
223
341
  var Sprite$3 = function (_super) {
224
342
  __extends(Sprite, _super);
225
343
 
@@ -240,9 +358,47 @@ var _EVA_IIFE_sprite = function (exports, eva_js, pluginRenderer, pixi_js) {
240
358
 
241
359
  Sprite.componentName = 'Sprite';
242
360
 
243
- __decorate([type('string')], Sprite.prototype, "resource", void 0);
361
+ __decorate([Field({
362
+ type: 'resource'
363
+ }), __metadata("design:type", String)], Sprite.prototype, "resource", void 0);
364
+
365
+ __decorate([Field({
366
+ type: 'selector',
367
+ options: function options(instance) {
368
+ var _a, _b, _c;
369
+
370
+ return __awaiter(this, void 0, void 0, function () {
371
+ var frames;
372
+ return __generator(this, function (_d) {
373
+ switch (_d.label) {
374
+ case 0:
375
+ return [4, sleep(0)];
244
376
 
245
- __decorate([type('string')], Sprite.prototype, "spriteName", void 0);
377
+ case 1:
378
+ _d.sent();
379
+
380
+ if (!instance.resource || !eva_js.resource.promiseMap[instance.resource]) {
381
+ return [2, {}];
382
+ }
383
+
384
+ return [4, eva_js.resource.promiseMap[instance.resource]];
385
+
386
+ case 2:
387
+ _d.sent();
388
+
389
+ frames = (_c = (_b = (_a = eva_js.resource.resourcesMap[instance.resource]) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.json) === null || _c === void 0 ? void 0 : _c.frames;
390
+ return [2, frames ? Object.values(frames).map(function (item) {
391
+ return item.name;
392
+ }).reduce(function (prev, key) {
393
+ var _a;
394
+
395
+ return _assign(_assign({}, prev), (_a = {}, _a[key] = key, _a));
396
+ }, {}) : {}];
397
+ }
398
+ });
399
+ });
400
+ }
401
+ }), __metadata("design:type", String)], Sprite.prototype, "spriteName", void 0);
246
402
 
247
403
  return Sprite;
248
404
  }(eva_js.Component);
@@ -380,52 +536,52 @@ var _EVA_IIFE_sprite = function (exports, eva_js, pluginRenderer, pixi_js) {
380
536
 
381
537
  Sprite.prototype.componentChanged = function (changed) {
382
538
  return __awaiter(this, void 0, void 0, function () {
383
- var component_1, sprite_1, instance, sprite;
384
-
385
- var _this = this;
386
-
539
+ var gameObjectId, component, sprite, asyncId, instance, asyncId, instance, sprite;
387
540
  return __generator(this, function (_a) {
388
541
  switch (_a.label) {
389
542
  case 0:
390
- if (!(changed.componentName === 'Sprite')) return [3, 4];
391
- component_1 = changed.component;
392
- if (!(changed.type === eva_js.OBSERVER_TYPE.ADD)) return [3, 1];
393
- sprite_1 = new SpriteEngine(null);
394
- eva_js.resource.getResource(component_1.resource).then(function (_a) {
395
- var instance = _a.instance;
396
- return __awaiter(_this, void 0, void 0, function () {
397
- return __generator(this, function (_b) {
398
- if (!instance) {
399
- console.error("GameObject:" + changed.gameObject.name + "'s Sprite resource load error");
400
- return [2];
401
- }
402
-
403
- sprite_1.image = instance[component_1.resource + resourceKeySplit + component_1.spriteName];
404
- return [2];
405
- });
406
- });
407
- });
408
- this.sprites[changed.gameObject.id] = sprite_1;
409
- this.containerManager.getContainer(changed.gameObject.id).addChildAt(sprite_1.sprite, 0);
410
- return [3, 4];
543
+ if (!(changed.componentName === 'Sprite')) return [3, 5];
544
+ gameObjectId = changed.gameObject.id;
545
+ component = changed.component;
546
+ if (!(changed.type === eva_js.OBSERVER_TYPE.ADD)) return [3, 2];
547
+ sprite = new SpriteEngine(null);
548
+ this.sprites[changed.gameObject.id] = sprite;
549
+ this.containerManager.getContainer(changed.gameObject.id).addChildAt(sprite.sprite, 0);
550
+ asyncId = this.increaseAsyncId(gameObjectId);
551
+ return [4, eva_js.resource.getResource(component.resource)];
411
552
 
412
553
  case 1:
413
- if (!(changed.type === eva_js.OBSERVER_TYPE.CHANGE)) return [3, 3];
414
- return [4, eva_js.resource.getResource(component_1.resource)];
554
+ instance = _a.sent().instance;
555
+ if (!this.validateAsyncId(gameObjectId, asyncId)) return [2];
556
+
557
+ if (!instance) {
558
+ console.error("GameObject:" + changed.gameObject.name + "'s Sprite resource load error");
559
+ return [2];
560
+ }
561
+
562
+ sprite.image = instance[component.resource + resourceKeySplit + component.spriteName];
563
+ return [3, 5];
415
564
 
416
565
  case 2:
566
+ if (!(changed.type === eva_js.OBSERVER_TYPE.CHANGE)) return [3, 4];
567
+ asyncId = this.increaseAsyncId(gameObjectId);
568
+ return [4, eva_js.resource.getResource(component.resource)];
569
+
570
+ case 3:
417
571
  instance = _a.sent().instance;
572
+ if (!this.validateAsyncId(gameObjectId, asyncId)) return [2];
418
573
 
419
574
  if (!instance) {
420
575
  console.error("GameObject:" + changed.gameObject.name + "'s Sprite resource load error");
421
576
  return [2];
422
577
  }
423
578
 
424
- this.sprites[changed.gameObject.id].image = instance[component_1.resource + resourceKeySplit + component_1.spriteName];
425
- return [3, 4];
579
+ this.sprites[changed.gameObject.id].image = instance[component.resource + resourceKeySplit + component.spriteName];
580
+ return [3, 5];
426
581
 
427
- case 3:
582
+ case 4:
428
583
  if (changed.type === eva_js.OBSERVER_TYPE.REMOVE) {
584
+ this.increaseAsyncId(gameObjectId);
429
585
  sprite = this.sprites[changed.gameObject.id];
430
586
  this.containerManager.getContainer(changed.gameObject.id).removeChild(sprite.sprite);
431
587
  sprite.sprite.destroy({
@@ -434,9 +590,9 @@ var _EVA_IIFE_sprite = function (exports, eva_js, pluginRenderer, pixi_js) {
434
590
  delete this.sprites[changed.gameObject.id];
435
591
  }
436
592
 
437
- _a.label = 4;
593
+ _a.label = 5;
438
594
 
439
- case 4:
595
+ case 5:
440
596
  return [2];
441
597
  }
442
598
  });
@@ -1 +1 @@
1
- window.EVA=window.EVA||{},window.EVA.plugin=window.EVA.plugin||{},window.EVA.plugin.renderer=window.EVA.plugin.renderer||{};var _EVA_IIFE_sprite=function(e,t,r,n){"use strict";var i=function(e,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)};function o(e,t){function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}function s(e,t,r,n){var i,o=arguments.length,s=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,n);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(o<3?i(s):o>3?i(t,r,s):i(t,r))||s);return o>3&&s&&Object.defineProperty(t,r,s),s}function a(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))}function c(e,t){var r,n,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(i=2&o[0]?n.return:o[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;switch(n=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,n=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=s.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){s.label=o[1];break}if(6===o[0]&&s.label<i[1]){s.label=i[1],i=o;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(o);break}i[2]&&s.ops.pop(),s.trys.pop();continue}o=t.call(e,s)}catch(e){o=[6,e],n=0}finally{r=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}}function u(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function p(e){return function(t,r){var n=function(e,t){return e.constructor.IDEProps||(e.constructor.IDEProps={}),e.constructor.IDEProps[t]||(e.constructor.IDEProps[t]={}),e.constructor.IDEProps[t]}(t,r);n.key=r,n.type=e}}var f=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.resource="",t.spriteName="",t}return o(t,e),t.prototype.init=function(e){e&&e.resource&&(this.resource=e.resource,this.spriteName=e.spriteName)},t.componentName="Sprite",s([p("string")],t.prototype,"resource",void 0),s([p("string")],t.prototype,"spriteName",void 0),t}(t.Component),l=function(){function e(e){this._image=null,this._image=e,e?e instanceof HTMLImageElement?this.sprite=n.Sprite.from(e):e instanceof n.Texture&&(this.sprite=new n.Sprite(e)):this.sprite=new n.Sprite}return Object.defineProperty(e.prototype,"image",{get:function(){return this._image},set:function(e){this._image!==e&&(e instanceof HTMLImageElement?(this.sprite.texture&&this.sprite.texture.destroy(!1),this.sprite.texture=n.Texture.from(e)):e instanceof n.Texture&&(this.sprite.texture=e),this._image=e)},enumerable:!1,configurable:!0}),e}(),h="_s|r|c_";t.resource.registerInstance(t.RESOURCE_TYPE.SPRITE,(function(e){var t=e.name,r=e.data;return new Promise((function(e){var i,o,s=r.json,a=n.BaseTexture.from(r.image),c=s.frames||{},p=s.animations||{},f={};for(var l in c){f[t+h+l]=c[l]}for(var l in p){var d=[];if(p[l]&&p[l].length>=0)try{for(var m=(i=void 0,u(p[l])),y=m.next();!y.done;y=m.next()){var g=y.value,v=t+h+g;d.push(v)}}catch(e){i={error:e}}finally{try{y&&!y.done&&(o=m.return)&&o.call(m)}finally{if(i)throw i.error}}p[l]=d}s.frames=f;var E=new n.Spritesheet(a,s);E.parse((function(){var t=E.textures;e(t)}))}))})),t.resource.registerDestroy(t.RESOURCE_TYPE.SPRITE,(function(e){var t=e.instance;if(t)for(var r in t)t[r].destroy(!0)}));var d=function(e){function n(){var t=null!==e&&e.apply(this,arguments)||this;return t.name="Sprite",t.sprites={},t}return o(n,e),n.prototype.init=function(){this.renderSystem=this.game.getSystem(r.RendererSystem),this.renderSystem.rendererManager.register(this)},n.prototype.rendererUpdate=function(e){var t=e.transform.size,r=t.width,n=t.height;this.sprites[e.id]&&(this.sprites[e.id].sprite.width=r,this.sprites[e.id].sprite.height=n)},n.prototype.componentChanged=function(e){return a(this,void 0,void 0,(function(){var r,n,i,o,s=this;return c(this,(function(u){switch(u.label){case 0:return"Sprite"!==e.componentName?[3,4]:(r=e.component,e.type!==t.OBSERVER_TYPE.ADD?[3,1]:(n=new l(null),t.resource.getResource(r.resource).then((function(t){var i=t.instance;return a(s,void 0,void 0,(function(){return c(this,(function(t){return i?(n.image=i[r.resource+h+r.spriteName],[2]):(console.error("GameObject:"+e.gameObject.name+"'s Sprite resource load error"),[2])}))}))})),this.sprites[e.gameObject.id]=n,this.containerManager.getContainer(e.gameObject.id).addChildAt(n.sprite,0),[3,4]));case 1:return e.type!==t.OBSERVER_TYPE.CHANGE?[3,3]:[4,t.resource.getResource(r.resource)];case 2:return(i=u.sent().instance)?(this.sprites[e.gameObject.id].image=i[r.resource+h+r.spriteName],[3,4]):(console.error("GameObject:"+e.gameObject.name+"'s Sprite resource load error"),[2]);case 3:e.type===t.OBSERVER_TYPE.REMOVE&&(o=this.sprites[e.gameObject.id],this.containerManager.getContainer(e.gameObject.id).removeChild(o.sprite),o.sprite.destroy({children:!0}),delete this.sprites[e.gameObject.id]),u.label=4;case 4:return[2]}}))}))},n.systemName="Sprite",n=s([t.decorators.componentObserver({Sprite:["spriteName"]})],n)}(r.Renderer);return e.Sprite=f,e.SpriteSystem=d,Object.defineProperty(e,"__esModule",{value:!0}),e}({},EVA,EVA.plugin.renderer,PIXI);window.EVA.plugin.renderer.sprite=window.EVA.plugin.renderer.sprite||_EVA_IIFE_sprite;
1
+ window.EVA=window.EVA||{},window.EVA.plugin=window.EVA.plugin||{},window.EVA.plugin.renderer=window.EVA.plugin.renderer||{};var _EVA_IIFE_sprite=function(e,t,r,n){"use strict";var o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},o(e,t)};function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var s=function(){return s=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},s.apply(this,arguments)};function a(e,t,r,n){var o,i=arguments.length,s=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,r,s):o(t,r))||s);return i>3&&s&&Object.defineProperty(t,r,s),s}function c(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function u(e,t,r,n){return new(r||(r=Promise))((function(o,i){function s(e){try{c(n.next(e))}catch(e){i(e)}}function a(e){try{c(n.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))}function p(e,t){var r,n,o,i,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return s.label++,{value:i[1],done:!1};case 5:s.label++,n=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!(o=s.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){s=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){s.label=i[1];break}if(6===i[0]&&s.label<o[1]){s.label=o[1],o=i;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(i);break}o[2]&&s.ops.pop(),s.trys.pop();continue}i=t.call(e,s)}catch(e){i=[6,e],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,a])}}}function l(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}var f=function(e){function t(){var t=this.constructor,r=e.call(this,"Symbol keys are not supported yet!")||this;return Object.setPrototypeOf(r,t.prototype),r}return i(t,e),t}(Error);!function(e){function t(){var t=this.constructor,r=e.call(this,"getProperties is not a function!")||this;return Object.setPrototypeOf(r,t.prototype),r}i(t,e)}(Error);var d,y="IDE_PROPERTY_METADATA";function h(e,t,r,n){var o=Reflect.getMetadata("design:type",e,t),i=o===Array,a=function(e){return e===String?"string":e===Number?"number":e===Boolean?"boolean":"unknown"}(o);if("unknown"!==a&&(o=a),n){var c=n();Array.isArray(c)?(i=!0,o=c[0]):o=c}var u=Reflect.getMetadata(y,e.constructor)||{};u[t]=s({type:o,isArray:i},r),Reflect.defineMetadata(y,u,e.constructor)}function m(e,t){return function(r,n){if("symbol"==typeof n)throw new f;var o=function(e,t){return"function"==typeof e?{returnTypeFunc:e,options:t||{}}:{options:e||{}}}(e,t);h(r,n,o.options,o.returnTypeFunc)}}!function(e){e[e.Edit=2]="Edit",e[e.Game=4]="Game",e[e.All=6]="All"}(d||(d={}));var v=function(e){function r(){var t=null!==e&&e.apply(this,arguments)||this;return t.resource="",t.spriteName="",t}return i(r,e),r.prototype.init=function(e){e&&e.resource&&(this.resource=e.resource,this.spriteName=e.spriteName)},r.componentName="Sprite",a([m({type:"resource"}),c("design:type",String)],r.prototype,"resource",void 0),a([m({type:"selector",options:function(e){var r,n,o;return u(this,void 0,void 0,(function(){var i;return p(this,(function(a){switch(a.label){case 0:return[4,(c=0,new Promise((function(e){return setTimeout(e,c)})))];case 1:return a.sent(),e.resource&&t.resource.promiseMap[e.resource]?[4,t.resource.promiseMap[e.resource]]:[2,{}];case 2:return a.sent(),[2,(i=null===(o=null===(n=null===(r=t.resource.resourcesMap[e.resource])||void 0===r?void 0:r.data)||void 0===n?void 0:n.json)||void 0===o?void 0:o.frames)?Object.values(i).map((function(e){return e.name})).reduce((function(e,t){var r;return s(s({},e),((r={})[t]=t,r))}),{}):{}]}var c}))}))}}),c("design:type",String)],r.prototype,"spriteName",void 0),r}(t.Component),g=v,b=function(){function e(e){this._image=null,this._image=e,e?e instanceof HTMLImageElement?this.sprite=n.Sprite.from(e):e instanceof n.Texture&&(this.sprite=new n.Sprite(e)):this.sprite=new n.Sprite}return Object.defineProperty(e.prototype,"image",{get:function(){return this._image},set:function(e){this._image!==e&&(e instanceof HTMLImageElement?(this.sprite.texture&&this.sprite.texture.destroy(!1),this.sprite.texture=n.Texture.from(e)):e instanceof n.Texture&&(this.sprite.texture=e),this._image=e)},enumerable:!1,configurable:!0}),e}(),w=b,E="_s|r|c_";t.resource.registerInstance(t.RESOURCE_TYPE.SPRITE,(function(e){var t=e.name,r=e.data;return new Promise((function(e){var o,i,s=r.json,a=n.BaseTexture.from(r.image),c=s.frames||{},u=s.animations||{},p={};for(var f in c){p[t+E+f]=c[f]}for(var f in u){var d=[];if(u[f]&&u[f].length>=0)try{for(var y=(o=void 0,l(u[f])),h=y.next();!h.done;h=y.next()){var m=h.value,v=t+E+m;d.push(v)}}catch(e){o={error:e}}finally{try{h&&!h.done&&(i=y.return)&&i.call(y)}finally{if(o)throw o.error}}u[f]=d}s.frames=p;var g=new n.Spritesheet(a,s);g.parse((function(){var t=g.textures;e(t)}))}))})),t.resource.registerDestroy(t.RESOURCE_TYPE.SPRITE,(function(e){var t=e.instance;if(t)for(var r in t)t[r].destroy(!0)}));var O=function(e){function n(){var t=null!==e&&e.apply(this,arguments)||this;return t.name="Sprite",t.sprites={},t}return i(n,e),n.prototype.init=function(){this.renderSystem=this.game.getSystem(r.RendererSystem),this.renderSystem.rendererManager.register(this)},n.prototype.rendererUpdate=function(e){var t=e.transform.size,r=t.width,n=t.height;this.sprites[e.id]&&(this.sprites[e.id].sprite.width=r,this.sprites[e.id].sprite.height=n)},n.prototype.componentChanged=function(e){return u(this,void 0,void 0,(function(){var r,n,o,i,s;return p(this,(function(a){switch(a.label){case 0:return"Sprite"!==e.componentName?[3,5]:(r=e.gameObject.id,n=e.component,e.type!==t.OBSERVER_TYPE.ADD?[3,2]:(s=new w(null),this.sprites[e.gameObject.id]=s,this.containerManager.getContainer(e.gameObject.id).addChildAt(s.sprite,0),o=this.increaseAsyncId(r),[4,t.resource.getResource(n.resource)]));case 1:return i=a.sent().instance,this.validateAsyncId(r,o)?i?(s.image=i[n.resource+E+n.spriteName],[3,5]):(console.error("GameObject:"+e.gameObject.name+"'s Sprite resource load error"),[2]):[2];case 2:return e.type!==t.OBSERVER_TYPE.CHANGE?[3,4]:(o=this.increaseAsyncId(r),[4,t.resource.getResource(n.resource)]);case 3:return i=a.sent().instance,this.validateAsyncId(r,o)?i?(this.sprites[e.gameObject.id].image=i[n.resource+E+n.spriteName],[3,5]):(console.error("GameObject:"+e.gameObject.name+"'s Sprite resource load error"),[2]):[2];case 4:e.type===t.OBSERVER_TYPE.REMOVE&&(this.increaseAsyncId(r),s=this.sprites[e.gameObject.id],this.containerManager.getContainer(e.gameObject.id).removeChild(s.sprite),s.sprite.destroy({children:!0}),delete this.sprites[e.gameObject.id]),a.label=5;case 5:return[2]}}))}))},n.systemName="Sprite",n=a([t.decorators.componentObserver({Sprite:["spriteName"]})],n)}(r.Renderer),S=O;return e.Sprite=g,e.SpriteSystem=S,Object.defineProperty(e,"__esModule",{value:!0}),e}({},EVA,EVA.plugin.renderer,PIXI);window.EVA.plugin.renderer.sprite=window.EVA.plugin.renderer.sprite||_EVA_IIFE_sprite;
@@ -36,6 +36,17 @@ function __extends(d, b) {
36
36
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
37
37
  }
38
38
 
39
+ var __assign = function() {
40
+ __assign = Object.assign || function __assign(t) {
41
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
42
+ s = arguments[i];
43
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
44
+ }
45
+ return t;
46
+ };
47
+ return __assign.apply(this, arguments);
48
+ };
49
+
39
50
  function __decorate(decorators, target, key, desc) {
40
51
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
41
52
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -43,6 +54,10 @@ function __decorate(decorators, target, key, desc) {
43
54
  return c > 3 && r && Object.defineProperty(target, key, r), r;
44
55
  }
45
56
 
57
+ function __metadata(metadataKey, metadataValue) {
58
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
59
+ }
60
+
46
61
  function __awaiter(thisArg, _arguments, P, generator) {
47
62
  return new (P || (P = Promise))(function (resolve, reject) {
48
63
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -91,6 +106,7 @@ function __values(o) {
91
106
  };
92
107
  }
93
108
 
109
+ var sleep = function (time) { return new Promise(function (resolve) { return setTimeout(resolve, time); }); };
94
110
  var Sprite$3 = (function (_super) {
95
111
  __extends(Sprite, _super);
96
112
  function Sprite() {
@@ -107,10 +123,42 @@ var Sprite$3 = (function (_super) {
107
123
  };
108
124
  Sprite.componentName = 'Sprite';
109
125
  __decorate([
110
- inspectorDecorator.type('string')
126
+ inspectorDecorator.Field({ type: 'resource' }),
127
+ __metadata("design:type", String)
111
128
  ], Sprite.prototype, "resource", void 0);
112
129
  __decorate([
113
- inspectorDecorator.type('string')
130
+ inspectorDecorator.Field({
131
+ type: 'selector',
132
+ options: function (instance) {
133
+ var _a, _b, _c;
134
+ return __awaiter(this, void 0, void 0, function () {
135
+ var frames;
136
+ return __generator(this, function (_d) {
137
+ switch (_d.label) {
138
+ case 0: return [4, sleep(0)];
139
+ case 1:
140
+ _d.sent();
141
+ if (!instance.resource || !eva_js.resource.promiseMap[instance.resource]) {
142
+ return [2, {}];
143
+ }
144
+ return [4, eva_js.resource.promiseMap[instance.resource]];
145
+ case 2:
146
+ _d.sent();
147
+ frames = (_c = (_b = (_a = eva_js.resource.resourcesMap[instance.resource]) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.json) === null || _c === void 0 ? void 0 : _c.frames;
148
+ return [2, frames
149
+ ? Object.values(frames)
150
+ .map(function (item) { return item.name; })
151
+ .reduce(function (prev, key) {
152
+ var _a;
153
+ return (__assign(__assign({}, prev), (_a = {}, _a[key] = key, _a)));
154
+ }, {})
155
+ : {}];
156
+ }
157
+ });
158
+ });
159
+ },
160
+ }),
161
+ __metadata("design:type", String)
114
162
  ], Sprite.prototype, "spriteName", void 0);
115
163
  return Sprite;
116
164
  }(eva_js.Component));
@@ -227,52 +275,54 @@ var Sprite = (function (_super) {
227
275
  };
228
276
  Sprite.prototype.componentChanged = function (changed) {
229
277
  return __awaiter(this, void 0, void 0, function () {
230
- var component_1, sprite_1, instance, sprite;
231
- var _this = this;
278
+ var gameObjectId, component, sprite, asyncId, instance, asyncId, instance, sprite;
232
279
  return __generator(this, function (_a) {
233
280
  switch (_a.label) {
234
281
  case 0:
235
- if (!(changed.componentName === 'Sprite')) return [3, 4];
236
- component_1 = changed.component;
237
- if (!(changed.type === eva_js.OBSERVER_TYPE.ADD)) return [3, 1];
238
- sprite_1 = new SpriteEngine(null);
239
- eva_js.resource.getResource(component_1.resource).then(function (_a) {
240
- var instance = _a.instance;
241
- return __awaiter(_this, void 0, void 0, function () {
242
- return __generator(this, function (_b) {
243
- if (!instance) {
244
- console.error("GameObject:" + changed.gameObject.name + "'s Sprite resource load error");
245
- return [2];
246
- }
247
- sprite_1.image = instance[component_1.resource + resourceKeySplit + component_1.spriteName];
248
- return [2];
249
- });
250
- });
251
- });
252
- this.sprites[changed.gameObject.id] = sprite_1;
253
- this.containerManager.getContainer(changed.gameObject.id).addChildAt(sprite_1.sprite, 0);
254
- return [3, 4];
282
+ if (!(changed.componentName === 'Sprite')) return [3, 5];
283
+ gameObjectId = changed.gameObject.id;
284
+ component = changed.component;
285
+ if (!(changed.type === eva_js.OBSERVER_TYPE.ADD)) return [3, 2];
286
+ sprite = new SpriteEngine(null);
287
+ this.sprites[changed.gameObject.id] = sprite;
288
+ this.containerManager.getContainer(changed.gameObject.id).addChildAt(sprite.sprite, 0);
289
+ asyncId = this.increaseAsyncId(gameObjectId);
290
+ return [4, eva_js.resource.getResource(component.resource)];
255
291
  case 1:
256
- if (!(changed.type === eva_js.OBSERVER_TYPE.CHANGE)) return [3, 3];
257
- return [4, eva_js.resource.getResource(component_1.resource)];
292
+ instance = (_a.sent()).instance;
293
+ if (!this.validateAsyncId(gameObjectId, asyncId))
294
+ return [2];
295
+ if (!instance) {
296
+ console.error("GameObject:" + changed.gameObject.name + "'s Sprite resource load error");
297
+ return [2];
298
+ }
299
+ sprite.image = instance[component.resource + resourceKeySplit + component.spriteName];
300
+ return [3, 5];
258
301
  case 2:
302
+ if (!(changed.type === eva_js.OBSERVER_TYPE.CHANGE)) return [3, 4];
303
+ asyncId = this.increaseAsyncId(gameObjectId);
304
+ return [4, eva_js.resource.getResource(component.resource)];
305
+ case 3:
259
306
  instance = (_a.sent()).instance;
307
+ if (!this.validateAsyncId(gameObjectId, asyncId))
308
+ return [2];
260
309
  if (!instance) {
261
310
  console.error("GameObject:" + changed.gameObject.name + "'s Sprite resource load error");
262
311
  return [2];
263
312
  }
264
313
  this.sprites[changed.gameObject.id].image =
265
- instance[component_1.resource + resourceKeySplit + component_1.spriteName];
266
- return [3, 4];
267
- case 3:
314
+ instance[component.resource + resourceKeySplit + component.spriteName];
315
+ return [3, 5];
316
+ case 4:
268
317
  if (changed.type === eva_js.OBSERVER_TYPE.REMOVE) {
318
+ this.increaseAsyncId(gameObjectId);
269
319
  sprite = this.sprites[changed.gameObject.id];
270
320
  this.containerManager.getContainer(changed.gameObject.id).removeChild(sprite.sprite);
271
321
  sprite.sprite.destroy({ children: true });
272
322
  delete this.sprites[changed.gameObject.id];
273
323
  }
274
- _a.label = 4;
275
- case 4: return [2];
324
+ _a.label = 5;
325
+ case 5: return [2];
276
326
  }
277
327
  });
278
328
  });
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@eva/eva.js"),t=require("@eva/inspector-decorator"),r=require("@eva/plugin-renderer"),n=require("pixi.js"),i=function(e,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)};function o(e,t){function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}function s(e,t,r,n){var i,o=arguments.length,s=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,n);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(o<3?i(s):o>3?i(t,r,s):i(t,r))||s);return o>3&&s&&Object.defineProperty(t,r,s),s}function a(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){e.done?i(e.value):new r((function(t){t(e.value)})).then(s,a)}c((n=n.apply(e,t||[])).next())}))}function c(e,t){var r,n,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(i=2&o[0]?n.return:o[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;switch(n=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,n=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=s.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){s.label=o[1];break}if(6===o[0]&&s.label<i[1]){s.label=i[1],i=o;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(o);break}i[2]&&s.ops.pop(),s.trys.pop();continue}o=t.call(e,s)}catch(e){o=[6,e],n=0}finally{r=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}}function u(e){var t="function"==typeof Symbol&&e[Symbol.iterator],r=0;return t?t.call(e):{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}}}var p=function(e){function r(){var t=null!==e&&e.apply(this,arguments)||this;return t.resource="",t.spriteName="",t}return o(r,e),r.prototype.init=function(e){e&&e.resource&&(this.resource=e.resource,this.spriteName=e.spriteName)},r.componentName="Sprite",s([t.type("string")],r.prototype,"resource",void 0),s([t.type("string")],r.prototype,"spriteName",void 0),r}(e.Component),f=function(){function e(e){this._image=null,this._image=e,e?e instanceof HTMLImageElement?this.sprite=n.Sprite.from(e):e instanceof n.Texture&&(this.sprite=new n.Sprite(e)):this.sprite=new n.Sprite}return Object.defineProperty(e.prototype,"image",{get:function(){return this._image},set:function(e){this._image!==e&&(e instanceof HTMLImageElement?(this.sprite.texture&&this.sprite.texture.destroy(!1),this.sprite.texture=n.Texture.from(e)):e instanceof n.Texture&&(this.sprite.texture=e),this._image=e)},enumerable:!1,configurable:!0}),e}();e.resource.registerInstance(e.RESOURCE_TYPE.SPRITE,(function(e){var t=e.name,r=e.data;return new Promise((function(e){var i,o,s=r.json,a=n.BaseTexture.from(r.image),c=s.frames||{},p=s.animations||{},f={};for(var l in c){f[t+"_s|r|c_"+l]=c[l]}for(var l in p){var h=[];if(p[l]&&p[l].length>=0)try{for(var m=(i=void 0,u(p[l])),d=m.next();!d.done;d=m.next()){var y=d.value,g=t+"_s|r|c_"+y;h.push(g)}}catch(e){i={error:e}}finally{try{d&&!d.done&&(o=m.return)&&o.call(m)}finally{if(i)throw i.error}}p[l]=h}s.frames=f;var v=new n.Spritesheet(a,s);v.parse((function(){var t=v.textures;e(t)}))}))})),e.resource.registerDestroy(e.RESOURCE_TYPE.SPRITE,(function(e){var t=e.instance;if(t)for(var r in t)t[r].destroy(!0)}));var l=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.name="Sprite",e.sprites={},e}return o(n,t),n.prototype.init=function(){this.renderSystem=this.game.getSystem(r.RendererSystem),this.renderSystem.rendererManager.register(this)},n.prototype.rendererUpdate=function(e){var t=e.transform.size,r=t.width,n=t.height;this.sprites[e.id]&&(this.sprites[e.id].sprite.width=r,this.sprites[e.id].sprite.height=n)},n.prototype.componentChanged=function(t){return a(this,void 0,void 0,(function(){var r,n,i,o,s=this;return c(this,(function(u){switch(u.label){case 0:return"Sprite"!==t.componentName?[3,4]:(r=t.component,t.type!==e.OBSERVER_TYPE.ADD?[3,1]:(n=new f(null),e.resource.getResource(r.resource).then((function(e){var i=e.instance;return a(s,void 0,void 0,(function(){return c(this,(function(e){return i?(n.image=i[r.resource+"_s|r|c_"+r.spriteName],[2]):(console.error("GameObject:"+t.gameObject.name+"'s Sprite resource load error"),[2])}))}))})),this.sprites[t.gameObject.id]=n,this.containerManager.getContainer(t.gameObject.id).addChildAt(n.sprite,0),[3,4]));case 1:return t.type!==e.OBSERVER_TYPE.CHANGE?[3,3]:[4,e.resource.getResource(r.resource)];case 2:return(i=u.sent().instance)?(this.sprites[t.gameObject.id].image=i[r.resource+"_s|r|c_"+r.spriteName],[3,4]):(console.error("GameObject:"+t.gameObject.name+"'s Sprite resource load error"),[2]);case 3:t.type===e.OBSERVER_TYPE.REMOVE&&(o=this.sprites[t.gameObject.id],this.containerManager.getContainer(t.gameObject.id).removeChild(o.sprite),o.sprite.destroy({children:!0}),delete this.sprites[t.gameObject.id]),u.label=4;case 4:return[2]}}))}))},n.systemName="Sprite",n=s([e.decorators.componentObserver({Sprite:["spriteName"]})],n)}(r.Renderer);exports.Sprite=p,exports.SpriteSystem=l;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@eva/eva.js"),t=require("@eva/inspector-decorator"),r=require("@eva/plugin-renderer"),n=require("pixi.js"),i=function(e,t){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])},i(e,t)};function o(e,t){function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var s=function(){return s=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var i in t=arguments[r])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},s.apply(this,arguments)};function a(e,t,r,n){var i,o=arguments.length,s=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,n);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(o<3?i(s):o>3?i(t,r,s):i(t,r))||s);return o>3&&s&&Object.defineProperty(t,r,s),s}function c(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function u(e,t,r,n){return new(r||(r=Promise))((function(i,o){function s(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){e.done?i(e.value):new r((function(t){t(e.value)})).then(s,a)}c((n=n.apply(e,t||[])).next())}))}function p(e,t){var r,n,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(i=2&o[0]?n.return:o[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;switch(n=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,n=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=s.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){s.label=o[1];break}if(6===o[0]&&s.label<i[1]){s.label=i[1],i=o;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(o);break}i[2]&&s.ops.pop(),s.trys.pop();continue}o=t.call(e,s)}catch(e){o=[6,e],n=0}finally{r=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}}function l(e){var t="function"==typeof Symbol&&e[Symbol.iterator],r=0;return t?t.call(e):{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}}}var f=function(r){function n(){var e=null!==r&&r.apply(this,arguments)||this;return e.resource="",e.spriteName="",e}return o(n,r),n.prototype.init=function(e){e&&e.resource&&(this.resource=e.resource,this.spriteName=e.spriteName)},n.componentName="Sprite",a([t.Field({type:"resource"}),c("design:type",String)],n.prototype,"resource",void 0),a([t.Field({type:"selector",options:function(t){var r,n,i;return u(this,void 0,void 0,(function(){var o;return p(this,(function(a){switch(a.label){case 0:return[4,(c=0,new Promise((function(e){return setTimeout(e,c)})))];case 1:return a.sent(),t.resource&&e.resource.promiseMap[t.resource]?[4,e.resource.promiseMap[t.resource]]:[2,{}];case 2:return a.sent(),[2,(o=null===(i=null===(n=null===(r=e.resource.resourcesMap[t.resource])||void 0===r?void 0:r.data)||void 0===n?void 0:n.json)||void 0===i?void 0:i.frames)?Object.values(o).map((function(e){return e.name})).reduce((function(e,t){var r;return s(s({},e),((r={})[t]=t,r))}),{}):{}]}var c}))}))}}),c("design:type",String)],n.prototype,"spriteName",void 0),n}(e.Component),d=f,h=function(){function e(e){this._image=null,this._image=e,e?e instanceof HTMLImageElement?this.sprite=n.Sprite.from(e):e instanceof n.Texture&&(this.sprite=new n.Sprite(e)):this.sprite=new n.Sprite}return Object.defineProperty(e.prototype,"image",{get:function(){return this._image},set:function(e){this._image!==e&&(e instanceof HTMLImageElement?(this.sprite.texture&&this.sprite.texture.destroy(!1),this.sprite.texture=n.Texture.from(e)):e instanceof n.Texture&&(this.sprite.texture=e),this._image=e)},enumerable:!1,configurable:!0}),e}(),m=h;e.resource.registerInstance(e.RESOURCE_TYPE.SPRITE,(function(e){var t=e.name,r=e.data;return new Promise((function(e){var i,o,s=r.json,a=n.BaseTexture.from(r.image),c=s.frames||{},u=s.animations||{},p={};for(var f in c){p[t+"_s|r|c_"+f]=c[f]}for(var f in u){var d=[];if(u[f]&&u[f].length>=0)try{for(var h=(i=void 0,l(u[f])),m=h.next();!m.done;m=h.next()){var y=m.value,v=t+"_s|r|c_"+y;d.push(v)}}catch(e){i={error:e}}finally{try{m&&!m.done&&(o=h.return)&&o.call(h)}finally{if(i)throw i.error}}u[f]=d}s.frames=p;var g=new n.Spritesheet(a,s);g.parse((function(){var t=g.textures;e(t)}))}))})),e.resource.registerDestroy(e.RESOURCE_TYPE.SPRITE,(function(e){var t=e.instance;if(t)for(var r in t)t[r].destroy(!0)}));var y=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.name="Sprite",e.sprites={},e}return o(n,t),n.prototype.init=function(){this.renderSystem=this.game.getSystem(r.RendererSystem),this.renderSystem.rendererManager.register(this)},n.prototype.rendererUpdate=function(e){var t=e.transform.size,r=t.width,n=t.height;this.sprites[e.id]&&(this.sprites[e.id].sprite.width=r,this.sprites[e.id].sprite.height=n)},n.prototype.componentChanged=function(t){return u(this,void 0,void 0,(function(){var r,n,i,o,s;return p(this,(function(a){switch(a.label){case 0:return"Sprite"!==t.componentName?[3,5]:(r=t.gameObject.id,n=t.component,t.type!==e.OBSERVER_TYPE.ADD?[3,2]:(s=new m(null),this.sprites[t.gameObject.id]=s,this.containerManager.getContainer(t.gameObject.id).addChildAt(s.sprite,0),i=this.increaseAsyncId(r),[4,e.resource.getResource(n.resource)]));case 1:return o=a.sent().instance,this.validateAsyncId(r,i)?o?(s.image=o[n.resource+"_s|r|c_"+n.spriteName],[3,5]):(console.error("GameObject:"+t.gameObject.name+"'s Sprite resource load error"),[2]):[2];case 2:return t.type!==e.OBSERVER_TYPE.CHANGE?[3,4]:(i=this.increaseAsyncId(r),[4,e.resource.getResource(n.resource)]);case 3:return o=a.sent().instance,this.validateAsyncId(r,i)?o?(this.sprites[t.gameObject.id].image=o[n.resource+"_s|r|c_"+n.spriteName],[3,5]):(console.error("GameObject:"+t.gameObject.name+"'s Sprite resource load error"),[2]):[2];case 4:t.type===e.OBSERVER_TYPE.REMOVE&&(this.increaseAsyncId(r),s=this.sprites[t.gameObject.id],this.containerManager.getContainer(t.gameObject.id).removeChild(s.sprite),s.sprite.destroy({children:!0}),delete this.sprites[t.gameObject.id]),a.label=5;case 5:return[2]}}))}))},n.systemName="Sprite",n=a([e.decorators.componentObserver({Sprite:["spriteName"]})],n)}(r.Renderer);exports.Sprite=d,exports.SpriteSystem=y;
@@ -1,5 +1,5 @@
1
1
  import { Component, resource, RESOURCE_TYPE, decorators, OBSERVER_TYPE } from '@eva/eva.js';
2
- import { type } from '@eva/inspector-decorator';
2
+ import { Field } from '@eva/inspector-decorator';
3
3
  import { RendererSystem, Renderer } from '@eva/plugin-renderer';
4
4
  import { Texture, Sprite as Sprite$5, BaseTexture, Spritesheet } from 'pixi.js';
5
5
 
@@ -32,6 +32,17 @@ function __extends(d, b) {
32
32
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
33
33
  }
34
34
 
35
+ var __assign = function() {
36
+ __assign = Object.assign || function __assign(t) {
37
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
38
+ s = arguments[i];
39
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
40
+ }
41
+ return t;
42
+ };
43
+ return __assign.apply(this, arguments);
44
+ };
45
+
35
46
  function __decorate(decorators, target, key, desc) {
36
47
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
37
48
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -39,6 +50,10 @@ function __decorate(decorators, target, key, desc) {
39
50
  return c > 3 && r && Object.defineProperty(target, key, r), r;
40
51
  }
41
52
 
53
+ function __metadata(metadataKey, metadataValue) {
54
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
55
+ }
56
+
42
57
  function __awaiter(thisArg, _arguments, P, generator) {
43
58
  return new (P || (P = Promise))(function (resolve, reject) {
44
59
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -87,6 +102,7 @@ function __values(o) {
87
102
  };
88
103
  }
89
104
 
105
+ var sleep = function (time) { return new Promise(function (resolve) { return setTimeout(resolve, time); }); };
90
106
  var Sprite$3 = (function (_super) {
91
107
  __extends(Sprite, _super);
92
108
  function Sprite() {
@@ -103,10 +119,42 @@ var Sprite$3 = (function (_super) {
103
119
  };
104
120
  Sprite.componentName = 'Sprite';
105
121
  __decorate([
106
- type('string')
122
+ Field({ type: 'resource' }),
123
+ __metadata("design:type", String)
107
124
  ], Sprite.prototype, "resource", void 0);
108
125
  __decorate([
109
- type('string')
126
+ Field({
127
+ type: 'selector',
128
+ options: function (instance) {
129
+ var _a, _b, _c;
130
+ return __awaiter(this, void 0, void 0, function () {
131
+ var frames;
132
+ return __generator(this, function (_d) {
133
+ switch (_d.label) {
134
+ case 0: return [4, sleep(0)];
135
+ case 1:
136
+ _d.sent();
137
+ if (!instance.resource || !resource.promiseMap[instance.resource]) {
138
+ return [2, {}];
139
+ }
140
+ return [4, resource.promiseMap[instance.resource]];
141
+ case 2:
142
+ _d.sent();
143
+ frames = (_c = (_b = (_a = resource.resourcesMap[instance.resource]) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.json) === null || _c === void 0 ? void 0 : _c.frames;
144
+ return [2, frames
145
+ ? Object.values(frames)
146
+ .map(function (item) { return item.name; })
147
+ .reduce(function (prev, key) {
148
+ var _a;
149
+ return (__assign(__assign({}, prev), (_a = {}, _a[key] = key, _a)));
150
+ }, {})
151
+ : {}];
152
+ }
153
+ });
154
+ });
155
+ },
156
+ }),
157
+ __metadata("design:type", String)
110
158
  ], Sprite.prototype, "spriteName", void 0);
111
159
  return Sprite;
112
160
  }(Component));
@@ -223,52 +271,54 @@ var Sprite = (function (_super) {
223
271
  };
224
272
  Sprite.prototype.componentChanged = function (changed) {
225
273
  return __awaiter(this, void 0, void 0, function () {
226
- var component_1, sprite_1, instance, sprite;
227
- var _this = this;
274
+ var gameObjectId, component, sprite, asyncId, instance, asyncId, instance, sprite;
228
275
  return __generator(this, function (_a) {
229
276
  switch (_a.label) {
230
277
  case 0:
231
- if (!(changed.componentName === 'Sprite')) return [3, 4];
232
- component_1 = changed.component;
233
- if (!(changed.type === OBSERVER_TYPE.ADD)) return [3, 1];
234
- sprite_1 = new SpriteEngine(null);
235
- resource.getResource(component_1.resource).then(function (_a) {
236
- var instance = _a.instance;
237
- return __awaiter(_this, void 0, void 0, function () {
238
- return __generator(this, function (_b) {
239
- if (!instance) {
240
- console.error("GameObject:" + changed.gameObject.name + "'s Sprite resource load error");
241
- return [2];
242
- }
243
- sprite_1.image = instance[component_1.resource + resourceKeySplit + component_1.spriteName];
244
- return [2];
245
- });
246
- });
247
- });
248
- this.sprites[changed.gameObject.id] = sprite_1;
249
- this.containerManager.getContainer(changed.gameObject.id).addChildAt(sprite_1.sprite, 0);
250
- return [3, 4];
278
+ if (!(changed.componentName === 'Sprite')) return [3, 5];
279
+ gameObjectId = changed.gameObject.id;
280
+ component = changed.component;
281
+ if (!(changed.type === OBSERVER_TYPE.ADD)) return [3, 2];
282
+ sprite = new SpriteEngine(null);
283
+ this.sprites[changed.gameObject.id] = sprite;
284
+ this.containerManager.getContainer(changed.gameObject.id).addChildAt(sprite.sprite, 0);
285
+ asyncId = this.increaseAsyncId(gameObjectId);
286
+ return [4, resource.getResource(component.resource)];
251
287
  case 1:
252
- if (!(changed.type === OBSERVER_TYPE.CHANGE)) return [3, 3];
253
- return [4, resource.getResource(component_1.resource)];
288
+ instance = (_a.sent()).instance;
289
+ if (!this.validateAsyncId(gameObjectId, asyncId))
290
+ return [2];
291
+ if (!instance) {
292
+ console.error("GameObject:" + changed.gameObject.name + "'s Sprite resource load error");
293
+ return [2];
294
+ }
295
+ sprite.image = instance[component.resource + resourceKeySplit + component.spriteName];
296
+ return [3, 5];
254
297
  case 2:
298
+ if (!(changed.type === OBSERVER_TYPE.CHANGE)) return [3, 4];
299
+ asyncId = this.increaseAsyncId(gameObjectId);
300
+ return [4, resource.getResource(component.resource)];
301
+ case 3:
255
302
  instance = (_a.sent()).instance;
303
+ if (!this.validateAsyncId(gameObjectId, asyncId))
304
+ return [2];
256
305
  if (!instance) {
257
306
  console.error("GameObject:" + changed.gameObject.name + "'s Sprite resource load error");
258
307
  return [2];
259
308
  }
260
309
  this.sprites[changed.gameObject.id].image =
261
- instance[component_1.resource + resourceKeySplit + component_1.spriteName];
262
- return [3, 4];
263
- case 3:
310
+ instance[component.resource + resourceKeySplit + component.spriteName];
311
+ return [3, 5];
312
+ case 4:
264
313
  if (changed.type === OBSERVER_TYPE.REMOVE) {
314
+ this.increaseAsyncId(gameObjectId);
265
315
  sprite = this.sprites[changed.gameObject.id];
266
316
  this.containerManager.getContainer(changed.gameObject.id).removeChild(sprite.sprite);
267
317
  sprite.sprite.destroy({ children: true });
268
318
  delete this.sprites[changed.gameObject.id];
269
319
  }
270
- _a.label = 4;
271
- case 4: return [2];
320
+ _a.label = 5;
321
+ case 5: return [2];
272
322
  }
273
323
  });
274
324
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eva/plugin-renderer-sprite",
3
- "version": "1.2.6",
3
+ "version": "1.2.7-editor.10",
4
4
  "description": "@eva/plugin-renderer-sprite",
5
5
  "main": "index.js",
6
6
  "module": "dist/plugin-renderer-sprite.esm.js",
@@ -18,9 +18,9 @@
18
18
  "license": "MIT",
19
19
  "homepage": "https://eva.js.org",
20
20
  "dependencies": {
21
- "@eva/inspector-decorator": "^0.0.5",
22
- "@eva/plugin-renderer": "1.2.6",
23
- "@eva/eva.js": "1.2.6",
21
+ "@eva/inspector-decorator": "0.1.0-alpha.2",
22
+ "@eva/plugin-renderer": "1.2.7-editor.10",
23
+ "@eva/eva.js": "1.2.7-editor.10",
24
24
  "pixi.js": "^4.8.7"
25
25
  }
26
26
  }
@@ -1,197 +0,0 @@
1
- import { __extends, __decorate, __values, __awaiter, __generator } from 'tslib';
2
- import { Component, resource, RESOURCE_TYPE, OBSERVER_TYPE, decorators } from '@eva/eva.js/dist/miniprogram';
3
- import { type } from '@eva/inspector-decorator';
4
- import { RendererSystem, Renderer } from '@eva/plugin-renderer/dist/miniprogram';
5
- import { Sprite as Sprite$4 } from '@eva/renderer-adapter/dist/miniprogram';
6
- import { BaseTexture, Spritesheet } from '@eva/miniprogram-pixi';
7
-
8
- var Sprite$2 = function (_super) {
9
- __extends(Sprite, _super);
10
-
11
- function Sprite() {
12
- var _this = _super !== null && _super.apply(this, arguments) || this;
13
-
14
- _this.resource = '';
15
- _this.spriteName = '';
16
- return _this;
17
- }
18
-
19
- Sprite.prototype.init = function (obj) {
20
- if (obj && obj.resource) {
21
- this.resource = obj.resource;
22
- this.spriteName = obj.spriteName;
23
- }
24
- };
25
-
26
- Sprite.componentName = 'Sprite';
27
-
28
- __decorate([type('string')], Sprite.prototype, "resource", void 0);
29
-
30
- __decorate([type('string')], Sprite.prototype, "spriteName", void 0);
31
-
32
- return Sprite;
33
- }(Component);
34
-
35
- var Sprite$3 = Sprite$2;
36
- var resourceKeySplit = '_s|r|c_';
37
- resource.registerInstance(RESOURCE_TYPE.SPRITE, function (_a) {
38
- var name = _a.name,
39
- data = _a.data;
40
- return new Promise(function (r) {
41
- var e_1, _a;
42
-
43
- var textureObj = data.json;
44
- var texture = BaseTexture.from(data.image);
45
- var frames = textureObj.frames || {};
46
- var animations = textureObj.animations || {};
47
- var newFrames = {};
48
-
49
- for (var key in frames) {
50
- var newKey = name + resourceKeySplit + key;
51
- newFrames[newKey] = frames[key];
52
- }
53
-
54
- for (var key in animations) {
55
- var spriteList = [];
56
-
57
- if (animations[key] && animations[key].length >= 0) {
58
- try {
59
- for (var _b = (e_1 = void 0, __values(animations[key])), _c = _b.next(); !_c.done; _c = _b.next()) {
60
- var spriteName = _c.value;
61
- var newSpriteName = name + resourceKeySplit + spriteName;
62
- spriteList.push(newSpriteName);
63
- }
64
- } catch (e_1_1) {
65
- e_1 = {
66
- error: e_1_1
67
- };
68
- } finally {
69
- try {
70
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
71
- } finally {
72
- if (e_1) throw e_1.error;
73
- }
74
- }
75
- }
76
-
77
- animations[key] = spriteList;
78
- }
79
-
80
- textureObj.frames = newFrames;
81
- var spriteSheet = new Spritesheet(texture, textureObj);
82
- spriteSheet.parse(function () {
83
- var textures = spriteSheet.textures;
84
- r(textures);
85
- });
86
- });
87
- });
88
- resource.registerDestroy(RESOURCE_TYPE.SPRITE, function (_a) {
89
- var instance = _a.instance;
90
- if (!instance) return;
91
-
92
- for (var key in instance) {
93
- instance[key].destroy(true);
94
- }
95
- });
96
-
97
- var Sprite = function (_super) {
98
- __extends(Sprite, _super);
99
-
100
- function Sprite() {
101
- var _this = _super !== null && _super.apply(this, arguments) || this;
102
-
103
- _this.name = 'Sprite';
104
- _this.sprites = {};
105
- return _this;
106
- }
107
-
108
- Sprite.prototype.init = function () {
109
- this.renderSystem = this.game.getSystem(RendererSystem);
110
- this.renderSystem.rendererManager.register(this);
111
- };
112
-
113
- Sprite.prototype.rendererUpdate = function (gameObject) {
114
- var _a = gameObject.transform.size,
115
- width = _a.width,
116
- height = _a.height;
117
-
118
- if (this.sprites[gameObject.id]) {
119
- this.sprites[gameObject.id].sprite.width = width;
120
- this.sprites[gameObject.id].sprite.height = height;
121
- }
122
- };
123
-
124
- Sprite.prototype.componentChanged = function (changed) {
125
- return __awaiter(this, void 0, void 0, function () {
126
- var component_1, sprite_1, instance, sprite;
127
-
128
- var _this = this;
129
-
130
- return __generator(this, function (_a) {
131
- switch (_a.label) {
132
- case 0:
133
- if (!(changed.componentName === 'Sprite')) return [3, 4];
134
- component_1 = changed.component;
135
- if (!(changed.type === OBSERVER_TYPE.ADD)) return [3, 1];
136
- sprite_1 = new Sprite$4(null);
137
- resource.getResource(component_1.resource).then(function (_a) {
138
- var instance = _a.instance;
139
- return __awaiter(_this, void 0, void 0, function () {
140
- return __generator(this, function (_b) {
141
- if (!instance) {
142
- console.error("GameObject:" + changed.gameObject.name + "'s Sprite resource load error");
143
- return [2];
144
- }
145
-
146
- sprite_1.image = instance[component_1.resource + resourceKeySplit + component_1.spriteName];
147
- return [2];
148
- });
149
- });
150
- });
151
- this.sprites[changed.gameObject.id] = sprite_1;
152
- this.containerManager.getContainer(changed.gameObject.id).addChildAt(sprite_1.sprite, 0);
153
- return [3, 4];
154
-
155
- case 1:
156
- if (!(changed.type === OBSERVER_TYPE.CHANGE)) return [3, 3];
157
- return [4, resource.getResource(component_1.resource)];
158
-
159
- case 2:
160
- instance = _a.sent().instance;
161
-
162
- if (!instance) {
163
- console.error("GameObject:" + changed.gameObject.name + "'s Sprite resource load error");
164
- return [2];
165
- }
166
-
167
- this.sprites[changed.gameObject.id].image = instance[component_1.resource + resourceKeySplit + component_1.spriteName];
168
- return [3, 4];
169
-
170
- case 3:
171
- if (changed.type === OBSERVER_TYPE.REMOVE) {
172
- sprite = this.sprites[changed.gameObject.id];
173
- this.containerManager.getContainer(changed.gameObject.id).removeChild(sprite.sprite);
174
- sprite.sprite.destroy({
175
- children: true
176
- });
177
- delete this.sprites[changed.gameObject.id];
178
- }
179
-
180
- _a.label = 4;
181
-
182
- case 4:
183
- return [2];
184
- }
185
- });
186
- });
187
- };
188
-
189
- Sprite.systemName = 'Sprite';
190
- Sprite = __decorate([decorators.componentObserver({
191
- Sprite: ['spriteName']
192
- })], Sprite);
193
- return Sprite;
194
- }(Renderer);
195
-
196
- var Sprite$1 = Sprite;
197
- export { Sprite$3 as Sprite, Sprite$1 as SpriteSystem };