@eva/plugin-renderer-mask 1.2.7-editor.0 → 1.2.7-editor.11

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.
@@ -14,7 +14,7 @@ var _EVA_IIFE_mask = function (exports, eva_js, pluginRenderer, rendererAdapter)
14
14
  d.__proto__ = b;
15
15
  } || function (d, b) {
16
16
  for (var p in b) {
17
- if (b.hasOwnProperty(p)) d[p] = b[p];
17
+ if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
18
18
  }
19
19
  };
20
20
 
@@ -22,6 +22,8 @@ var _EVA_IIFE_mask = function (exports, eva_js, pluginRenderer, rendererAdapter)
22
22
  };
23
23
 
24
24
  function __extends(d, b) {
25
+ if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
26
+
25
27
  _extendStatics(d, b);
26
28
 
27
29
  function __() {
@@ -236,27 +238,6 @@ var _EVA_IIFE_mask = function (exports, eva_js, pluginRenderer, rendererAdapter)
236
238
  return ar;
237
239
  }
238
240
 
239
- function getIDEPropsPropertyObj(target, propertyKey) {
240
- if (!target.constructor.IDEProps) {
241
- target.constructor.IDEProps = {};
242
- }
243
-
244
- if (!target.constructor.IDEProps[propertyKey]) {
245
- target.constructor.IDEProps[propertyKey] = {};
246
- }
247
-
248
- var propertyObj = target.constructor.IDEProps[propertyKey];
249
- return propertyObj;
250
- }
251
-
252
- function type(type) {
253
- return function (target, propertyKey) {
254
- var prop = getIDEPropsPropertyObj(target, propertyKey);
255
- prop.key = propertyKey;
256
- prop.type = type;
257
- };
258
- }
259
-
260
241
  exports.MASK_TYPE = void 0;
261
242
 
262
243
  (function (MASK_TYPE) {
@@ -286,11 +267,6 @@ var _EVA_IIFE_mask = function (exports, eva_js, pluginRenderer, rendererAdapter)
286
267
  };
287
268
 
288
269
  Mask.componentName = 'Mask';
289
-
290
- __decorate([type('string')], Mask.prototype, "resource", void 0);
291
-
292
- __decorate([type('string')], Mask.prototype, "spriteName", void 0);
293
-
294
270
  return Mask;
295
271
  }(eva_js.Component);
296
272
 
@@ -430,9 +406,10 @@ var _EVA_IIFE_mask = function (exports, eva_js, pluginRenderer, rendererAdapter)
430
406
  if (changed.prop.prop[0] === 'type') {
431
407
  this.changedCache[changed.gameObject.id] = true;
432
408
 
433
- if ([MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1) {
409
+ if ([MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1 || component._lastType !== component.type) {
434
410
  this.remove(changed);
435
411
  this.add(changed);
412
+ component._lastType = component.type;
436
413
  } else {
437
414
  this.redrawGraphics(changed);
438
415
  }
@@ -1 +1 @@
1
- function _extends(){return(_extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}window.EVA=window.EVA||{},window.EVA.plugin=window.EVA.plugin||{},window.EVA.plugin.renderer=window.EVA.plugin.renderer||{};var _EVA_IIFE_mask=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)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)};function i(e,t){function r(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}function a(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a}function c(e,t,r,n){return new(r||(r=Promise))((function(o,i){function a(e){try{s(n.next(e))}catch(e){i(e)}}function c(e){try{s(n.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,c)}s((n=n.apply(e,t||[])).next())}))}function s(e,t){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(i){return function(c){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a;)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 a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}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,c])}}}function p(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a}function l(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}}e.MASK_TYPE=void 0,function(e){e.Circle="Circle",e.Ellipse="Ellipse",e.Rect="Rect",e.RoundedRect="RoundedRect",e.Polygon="Polygon",e.Img="Img",e.Sprite="Sprite"}(e.MASK_TYPE||(e.MASK_TYPE={}));var u,h=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.style={},t.resource="",t.spriteName="",t}return i(t,e),t.prototype.init=function(e){_extends(this,e)},t.componentName="Mask",a([l("string")],t.prototype,"resource",void 0),a([l("string")],t.prototype,"spriteName",void 0),t}(t.Component),d={Circle:["x","y","radius"],Ellipse:["x","y","width","height"],Rect:["x","y","width","height"],RoundedRect:["x","y","width","height","radius"],Polygon:["paths"]},y={Circle:"drawCircle",Ellipse:"drawEllipse",Rect:"drawRect",RoundedRect:"drawRoundedRect",Polygon:"drawPolygon"};!function(e){e.Circle="Circle",e.Ellipse="Ellipse",e.Rect="Rect",e.RoundedRect="RoundedRect",e.Polygon="Polygon",e.Img="Img",e.Sprite="Sprite"}(u||(u={}));var f=function(e){function o(){var t=null!==e&&e.apply(this,arguments)||this;return t.name="Mask",t.changedCache={},t.maskSpriteCache={},t}return i(o,e),o.prototype.init=function(){this.renderSystem=this.game.getSystem(r.RendererSystem),this.renderSystem.rendererManager.register(this)},o.prototype.rendererUpdate=function(){this.changedCache={}},o.prototype.componentChanged=function(e){if("Mask"===e.component.name)switch(e.type){case t.OBSERVER_TYPE.ADD:this.add(e);break;case t.OBSERVER_TYPE.REMOVE:this.remove(e);break;case t.OBSERVER_TYPE.CHANGE:this.change(e)}},o.prototype.add=function(e){var t,r=e.component;if(!(r.type in u))throw new Error("no have Mask type: "+r.type);if(!r.style)throw new Error("no have Mask style: "+r.type);switch(r.type){case u.Circle:case u.Ellipse:case u.Rect:case u.RoundedRect:case u.Polygon:t=this.createGraphics(r);break;case u.Img:case u.Sprite:t=this.createSprite(r)}if(!t)throw new Error("no have mask instance, check your mask params: "+r.type);var n=this.containerManager.getContainer(e.gameObject.id);n.mask=t,n.addChild(t)},o.prototype.remove=function(e){var t=this.containerManager.getContainer(e.gameObject.id);t.removeChild(t.mask),t.mask.destroy({children:!0}),t.mask=null,delete this.maskSpriteCache[e.gameObject.id]},o.prototype.change=function(e){if(!this.changedCache[e.gameObject.id]){var t=e.component;"type"===e.prop.prop[0]?(this.changedCache[e.gameObject.id]=!0,[u.Sprite,u.Img].indexOf(t.type)>-1?(this.remove(e),this.add(e)):this.redrawGraphics(e)):"style"===e.prop.prop[0]?[u.Sprite,u.Img].indexOf(t.type)>-1?this.changeSpriteStyle(t):this.redrawGraphics(e):("resource"===e.prop.prop[0]||"spriteName"===e.prop.prop[0])&&(this.changedCache[e.gameObject.id]=!0,this.changeSprite(t))}},o.prototype.createGraphics=function(e){var t=new n.Graphics;return this.draw(t,e),t},o.prototype.redrawGraphics=function(e){var t=this.containerManager.getContainer(e.gameObject.id).mask;t.clear(),this.draw(t,e.component)},o.prototype.draw=function(e,t){var r,n,o=[];try{for(var i=function(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.")}(d[t.type]),a=i.next();!a.done;a=i.next()){var c=a.value;o.push(t.style[c])}}catch(e){r={error:e}}finally{try{a&&!a.done&&(n=i.return)&&n.call(i)}finally{if(r)throw r.error}}e.beginFill(0,1),e[y[t.type]].apply(e,function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(p(arguments[t]));return e}(o)),e.endFill()},o.prototype.createSprite=function(e){var t=new n.Sprite(null);return this.maskSpriteCache[e.gameObject.id]=t,this.setSprite(e,t),t.sprite},o.prototype.changeSpriteStyle=function(e){var t=this.maskSpriteCache[e.gameObject.id];t.sprite.width=e.style.width,t.sprite.height=e.style.height,t.sprite.position.x=e.style.x,t.sprite.position.y=e.style.y},o.prototype.changeSprite=function(e){var t=this.maskSpriteCache[e.gameObject.id];this.setSprite(e,t)},o.prototype.setSprite=function(e,r){return c(this,void 0,void 0,(function(){var n,o,i,a;return s(this,(function(c){switch(c.label){case 0:return c.trys.push([0,2,,3]),o=this.increaseAsyncId(e.gameObject.id),[4,t.resource.getResource(e.resource)];case 1:return n=c.sent(),this.validateAsyncId(e.gameObject.id,o)?[3,3]:[2];case 2:throw c.sent(),new Error("mask resource load error");case 3:return e.type===u.Sprite?(i=e.resource+"_s|r|c_"+e.spriteName,a=n.instance[i],r.image=a):r.image=n.data.image,r.sprite.width=e.style.width,r.sprite.height=e.style.height,r.sprite.position.x=e.style.x,r.sprite.position.y=e.style.y,[2]}}))}))},o.systemName="Mask",o=a([t.decorators.componentObserver({Mask:["type",{prop:["style"],deep:!0},"resource","spriteName"]})],o)}(r.Renderer);return e.Mask=h,e.MaskSystem=f,Object.defineProperty(e,"__esModule",{value:!0}),e}({},EVA,EVA.plugin.renderer,EVA.rendererAdapter);window.EVA.plugin.renderer.mask=window.EVA.plugin.renderer.mask||_EVA_IIFE_mask;
1
+ function _extends(){return _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},_extends.apply(this,arguments)}window.EVA=window.EVA||{},window.EVA.plugin=window.EVA.plugin||{},window.EVA.plugin.renderer=window.EVA.plugin.renderer||{};var _EVA_IIFE_mask=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)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},i(e,t)};function o(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}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}function a(e,t,r,n){return new(r||(r=Promise))((function(i,o){function a(e){try{s(n.next(e))}catch(e){o(e)}}function c(e){try{s(n.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,c)}s((n=n.apply(e,t||[])).next())}))}function c(e,t){var r,n,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(r)throw new TypeError("Generator is already executing.");for(;a;)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 a.label++,{value:o[1],done:!1};case 5:a.label++,n=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){a.label=o[1];break}if(6===o[0]&&a.label<i[1]){a.label=i[1],i=o;break}if(i&&a.label<i[2]){a.label=i[2],a.ops.push(o);break}i[2]&&a.ops.pop(),a.trys.pop();continue}o=t.call(e,a)}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,c])}}}function s(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,o=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)a.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return a}e.MASK_TYPE=void 0,function(e){e.Circle="Circle",e.Ellipse="Ellipse",e.Rect="Rect",e.RoundedRect="RoundedRect",e.Polygon="Polygon",e.Img="Img",e.Sprite="Sprite"}(e.MASK_TYPE||(e.MASK_TYPE={}));var p,l=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.style={},t.resource="",t.spriteName="",t}return o(t,e),t.prototype.init=function(e){_extends(this,e)},t.componentName="Mask",t}(t.Component),u=l,h={Circle:["x","y","radius"],Ellipse:["x","y","width","height"],Rect:["x","y","width","height"],RoundedRect:["x","y","width","height","radius"],Polygon:["paths"]},d={Circle:"drawCircle",Ellipse:"drawEllipse",Rect:"drawRect",RoundedRect:"drawRoundedRect",Polygon:"drawPolygon"};!function(e){e.Circle="Circle",e.Ellipse="Ellipse",e.Rect="Rect",e.RoundedRect="RoundedRect",e.Polygon="Polygon",e.Img="Img",e.Sprite="Sprite"}(p||(p={}));var y=function(e){function i(){var t=null!==e&&e.apply(this,arguments)||this;return t.name="Mask",t.changedCache={},t.maskSpriteCache={},t}return o(i,e),i.prototype.init=function(){this.renderSystem=this.game.getSystem(r.RendererSystem),this.renderSystem.rendererManager.register(this)},i.prototype.rendererUpdate=function(){this.changedCache={}},i.prototype.componentChanged=function(e){if("Mask"===e.component.name)switch(e.type){case t.OBSERVER_TYPE.ADD:this.add(e);break;case t.OBSERVER_TYPE.REMOVE:this.remove(e);break;case t.OBSERVER_TYPE.CHANGE:this.change(e)}},i.prototype.add=function(e){var t,r=e.component;if(!(r.type in p))throw new Error("no have Mask type: "+r.type);if(!r.style)throw new Error("no have Mask style: "+r.type);switch(r.type){case p.Circle:case p.Ellipse:case p.Rect:case p.RoundedRect:case p.Polygon:t=this.createGraphics(r);break;case p.Img:case p.Sprite:t=this.createSprite(r)}if(!t)throw new Error("no have mask instance, check your mask params: "+r.type);var n=this.containerManager.getContainer(e.gameObject.id);n.mask=t,n.addChild(t)},i.prototype.remove=function(e){var t=this.containerManager.getContainer(e.gameObject.id);t.removeChild(t.mask),t.mask.destroy({children:!0}),t.mask=null,delete this.maskSpriteCache[e.gameObject.id]},i.prototype.change=function(e){if(!this.changedCache[e.gameObject.id]){var t=e.component;"type"===e.prop.prop[0]?(this.changedCache[e.gameObject.id]=!0,[p.Sprite,p.Img].indexOf(t.type)>-1||t._lastType!==t.type?(this.remove(e),this.add(e),t._lastType=t.type):this.redrawGraphics(e)):"style"===e.prop.prop[0]?[p.Sprite,p.Img].indexOf(t.type)>-1?this.changeSpriteStyle(t):this.redrawGraphics(e):("resource"===e.prop.prop[0]||"spriteName"===e.prop.prop[0])&&(this.changedCache[e.gameObject.id]=!0,this.changeSprite(t))}},i.prototype.createGraphics=function(e){var t=new n.Graphics;return this.draw(t,e),t},i.prototype.redrawGraphics=function(e){var t=this.containerManager.getContainer(e.gameObject.id).mask;t.clear(),this.draw(t,e.component)},i.prototype.draw=function(e,t){var r,n,i=[];try{for(var o=function(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.")}(h[t.type]),a=o.next();!a.done;a=o.next()){var c=a.value;i.push(t.style[c])}}catch(e){r={error:e}}finally{try{a&&!a.done&&(n=o.return)&&n.call(o)}finally{if(r)throw r.error}}e.beginFill(0,1),e[d[t.type]].apply(e,function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(s(arguments[t]));return e}(i)),e.endFill()},i.prototype.createSprite=function(e){var t=new n.Sprite(null);return this.maskSpriteCache[e.gameObject.id]=t,this.setSprite(e,t),t.sprite},i.prototype.changeSpriteStyle=function(e){var t=this.maskSpriteCache[e.gameObject.id];t.sprite.width=e.style.width,t.sprite.height=e.style.height,t.sprite.position.x=e.style.x,t.sprite.position.y=e.style.y},i.prototype.changeSprite=function(e){var t=this.maskSpriteCache[e.gameObject.id];this.setSprite(e,t)},i.prototype.setSprite=function(e,r){return a(this,void 0,void 0,(function(){var n,i,o,a;return c(this,(function(c){switch(c.label){case 0:return c.trys.push([0,2,,3]),i=this.increaseAsyncId(e.gameObject.id),[4,t.resource.getResource(e.resource)];case 1:return n=c.sent(),this.validateAsyncId(e.gameObject.id,i)?[3,3]:[2];case 2:throw c.sent(),new Error("mask resource load error");case 3:return e.type===p.Sprite?(o=e.resource+"_s|r|c_"+e.spriteName,a=n.instance[o],r.image=a):r.image=n.data.image,r.sprite.width=e.style.width,r.sprite.height=e.style.height,r.sprite.position.x=e.style.x,r.sprite.position.y=e.style.y,[2]}}))}))},i.systemName="Mask",i=function(e,t,r,n){var i,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var c=e.length-1;c>=0;c--)(i=e[c])&&(a=(o<3?i(a):o>3?i(t,r,a):i(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a}([t.decorators.componentObserver({Mask:["type",{prop:["style"],deep:!0},"resource","spriteName"]})],i),i}(r.Renderer),f=y;return e.Mask=u,e.MaskSystem=f,Object.defineProperty(e,"__esModule",{value:!0}),e}({},EVA,EVA.plugin.renderer,EVA.rendererAdapter);window.EVA.plugin.renderer.mask=window.EVA.plugin.renderer.mask||_EVA_IIFE_mask;
@@ -3,7 +3,6 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var eva_js = require('@eva/eva.js');
6
- var inspectorDecorator = require('@eva/inspector-decorator');
7
6
  var pluginRenderer = require('@eva/plugin-renderer');
8
7
  var rendererAdapter = require('@eva/renderer-adapter');
9
8
 
@@ -137,12 +136,6 @@ var Mask$2 = (function (_super) {
137
136
  Object.assign(this, obj);
138
137
  };
139
138
  Mask.componentName = 'Mask';
140
- __decorate([
141
- inspectorDecorator.type('string')
142
- ], Mask.prototype, "resource", void 0);
143
- __decorate([
144
- inspectorDecorator.type('string')
145
- ], Mask.prototype, "spriteName", void 0);
146
139
  return Mask;
147
140
  }(eva_js.Component));
148
141
  var Mask$3 = Mask$2;
@@ -255,9 +248,11 @@ var Mask = (function (_super) {
255
248
  var component = changed.component;
256
249
  if (changed.prop.prop[0] === 'type') {
257
250
  this.changedCache[changed.gameObject.id] = true;
258
- if ([MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1) {
251
+ if ([MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1 ||
252
+ component._lastType !== component.type) {
259
253
  this.remove(changed);
260
254
  this.add(changed);
255
+ component._lastType = component.type;
261
256
  }
262
257
  else {
263
258
  this.redrawGraphics(changed);
@@ -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("@eva/renderer-adapter"),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)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)};function i(e,t){function r(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}function a(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a}function c(e,t){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(i){return function(c){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a;)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 a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}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,c])}}}function s(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a}exports.MASK_TYPE=void 0,function(e){e.Circle="Circle",e.Ellipse="Ellipse",e.Rect="Rect",e.RoundedRect="RoundedRect",e.Polygon="Polygon",e.Img="Img",e.Sprite="Sprite"}(exports.MASK_TYPE||(exports.MASK_TYPE={}));var p,l=function(e){function r(){var t=null!==e&&e.apply(this,arguments)||this;return t.style={},t.resource="",t.spriteName="",t}return i(r,e),r.prototype.init=function(e){Object.assign(this,e)},r.componentName="Mask",a([t.type("string")],r.prototype,"resource",void 0),a([t.type("string")],r.prototype,"spriteName",void 0),r}(e.Component),h={Circle:["x","y","radius"],Ellipse:["x","y","width","height"],Rect:["x","y","width","height"],RoundedRect:["x","y","width","height","radius"],Polygon:["paths"]},u={Circle:"drawCircle",Ellipse:"drawEllipse",Rect:"drawRect",RoundedRect:"drawRoundedRect",Polygon:"drawPolygon"};!function(e){e.Circle="Circle",e.Ellipse="Ellipse",e.Rect="Rect",e.RoundedRect="RoundedRect",e.Polygon="Polygon",e.Img="Img",e.Sprite="Sprite"}(p||(p={}));var y=function(t){function o(){var e=null!==t&&t.apply(this,arguments)||this;return e.name="Mask",e.changedCache={},e.maskSpriteCache={},e}return i(o,t),o.prototype.init=function(){this.renderSystem=this.game.getSystem(r.RendererSystem),this.renderSystem.rendererManager.register(this)},o.prototype.rendererUpdate=function(){this.changedCache={}},o.prototype.componentChanged=function(t){if("Mask"===t.component.name)switch(t.type){case e.OBSERVER_TYPE.ADD:this.add(t);break;case e.OBSERVER_TYPE.REMOVE:this.remove(t);break;case e.OBSERVER_TYPE.CHANGE:this.change(t)}},o.prototype.add=function(e){var t,r=e.component;if(!(r.type in p))throw new Error("no have Mask type: "+r.type);if(!r.style)throw new Error("no have Mask style: "+r.type);switch(r.type){case p.Circle:case p.Ellipse:case p.Rect:case p.RoundedRect:case p.Polygon:t=this.createGraphics(r);break;case p.Img:case p.Sprite:t=this.createSprite(r)}if(!t)throw new Error("no have mask instance, check your mask params: "+r.type);var n=this.containerManager.getContainer(e.gameObject.id);n.mask=t,n.addChild(t)},o.prototype.remove=function(e){var t=this.containerManager.getContainer(e.gameObject.id);t.removeChild(t.mask),t.mask.destroy({children:!0}),t.mask=null,delete this.maskSpriteCache[e.gameObject.id]},o.prototype.change=function(e){if(!this.changedCache[e.gameObject.id]){var t=e.component;"type"===e.prop.prop[0]?(this.changedCache[e.gameObject.id]=!0,[p.Sprite,p.Img].indexOf(t.type)>-1?(this.remove(e),this.add(e)):this.redrawGraphics(e)):"style"===e.prop.prop[0]?[p.Sprite,p.Img].indexOf(t.type)>-1?this.changeSpriteStyle(t):this.redrawGraphics(e):("resource"===e.prop.prop[0]||"spriteName"===e.prop.prop[0])&&(this.changedCache[e.gameObject.id]=!0,this.changeSprite(t))}},o.prototype.createGraphics=function(e){var t=new n.Graphics;return this.draw(t,e),t},o.prototype.redrawGraphics=function(e){var t=this.containerManager.getContainer(e.gameObject.id).mask;t.clear(),this.draw(t,e.component)},o.prototype.draw=function(e,t){var r,n,o=[];try{for(var i=function(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}}}}(h[t.type]),a=i.next();!a.done;a=i.next()){var c=a.value;o.push(t.style[c])}}catch(e){r={error:e}}finally{try{a&&!a.done&&(n=i.return)&&n.call(i)}finally{if(r)throw r.error}}e.beginFill(0,1),e[u[t.type]].apply(e,function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(s(arguments[t]));return e}(o)),e.endFill()},o.prototype.createSprite=function(e){var t=new n.Sprite(null);return this.maskSpriteCache[e.gameObject.id]=t,this.setSprite(e,t),t.sprite},o.prototype.changeSpriteStyle=function(e){var t=this.maskSpriteCache[e.gameObject.id];t.sprite.width=e.style.width,t.sprite.height=e.style.height,t.sprite.position.x=e.style.x,t.sprite.position.y=e.style.y},o.prototype.changeSprite=function(e){var t=this.maskSpriteCache[e.gameObject.id];this.setSprite(e,t)},o.prototype.setSprite=function(t,r){return n=this,o=void 0,a=function(){var n,o,i,a;return c(this,(function(c){switch(c.label){case 0:return c.trys.push([0,2,,3]),o=this.increaseAsyncId(t.gameObject.id),[4,e.resource.getResource(t.resource)];case 1:return n=c.sent(),this.validateAsyncId(t.gameObject.id,o)?[3,3]:[2];case 2:throw c.sent(),new Error("mask resource load error");case 3:return t.type===p.Sprite?(i=t.resource+"_s|r|c_"+t.spriteName,a=n.instance[i],r.image=a):r.image=n.data.image,r.sprite.width=t.style.width,r.sprite.height=t.style.height,r.sprite.position.x=t.style.x,r.sprite.position.y=t.style.y,[2]}}))},new((i=void 0)||(i=Promise))((function(e,t){function r(e){try{s(a.next(e))}catch(e){t(e)}}function c(e){try{s(a.throw(e))}catch(e){t(e)}}function s(t){t.done?e(t.value):new i((function(e){e(t.value)})).then(r,c)}s((a=a.apply(n,o||[])).next())}));var n,o,i,a},o.systemName="Mask",o=a([e.decorators.componentObserver({Mask:["type",{prop:["style"],deep:!0},"resource","spriteName"]})],o)}(r.Renderer);exports.Mask=l,exports.MaskSystem=y;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@eva/eva.js"),t=require("@eva/plugin-renderer"),r=require("@eva/renderer-adapter"),n=function(e,t){return n=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])},n(e,t)};function i(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}function o(e,t){var r,n,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(r)throw new TypeError("Generator is already executing.");for(;a;)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 a.label++,{value:o[1],done:!1};case 5:a.label++,n=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){a.label=o[1];break}if(6===o[0]&&a.label<i[1]){a.label=i[1],i=o;break}if(i&&a.label<i[2]){a.label=i[2],a.ops.push(o);break}i[2]&&a.ops.pop(),a.trys.pop();continue}o=t.call(e,a)}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,c])}}}function a(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,o=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)a.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return a}exports.MASK_TYPE=void 0,function(e){e.Circle="Circle",e.Ellipse="Ellipse",e.Rect="Rect",e.RoundedRect="RoundedRect",e.Polygon="Polygon",e.Img="Img",e.Sprite="Sprite"}(exports.MASK_TYPE||(exports.MASK_TYPE={}));var c,s=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.style={},t.resource="",t.spriteName="",t}return i(t,e),t.prototype.init=function(e){Object.assign(this,e)},t.componentName="Mask",t}(e.Component),p=s,l={Circle:["x","y","radius"],Ellipse:["x","y","width","height"],Rect:["x","y","width","height"],RoundedRect:["x","y","width","height","radius"],Polygon:["paths"]},h={Circle:"drawCircle",Ellipse:"drawEllipse",Rect:"drawRect",RoundedRect:"drawRoundedRect",Polygon:"drawPolygon"};!function(e){e.Circle="Circle",e.Ellipse="Ellipse",e.Rect="Rect",e.RoundedRect="RoundedRect",e.Polygon="Polygon",e.Img="Img",e.Sprite="Sprite"}(c||(c={}));var u=function(n){function s(){var e=null!==n&&n.apply(this,arguments)||this;return e.name="Mask",e.changedCache={},e.maskSpriteCache={},e}return i(s,n),s.prototype.init=function(){this.renderSystem=this.game.getSystem(t.RendererSystem),this.renderSystem.rendererManager.register(this)},s.prototype.rendererUpdate=function(){this.changedCache={}},s.prototype.componentChanged=function(t){if("Mask"===t.component.name)switch(t.type){case e.OBSERVER_TYPE.ADD:this.add(t);break;case e.OBSERVER_TYPE.REMOVE:this.remove(t);break;case e.OBSERVER_TYPE.CHANGE:this.change(t)}},s.prototype.add=function(e){var t,r=e.component;if(!(r.type in c))throw new Error("no have Mask type: "+r.type);if(!r.style)throw new Error("no have Mask style: "+r.type);switch(r.type){case c.Circle:case c.Ellipse:case c.Rect:case c.RoundedRect:case c.Polygon:t=this.createGraphics(r);break;case c.Img:case c.Sprite:t=this.createSprite(r)}if(!t)throw new Error("no have mask instance, check your mask params: "+r.type);var n=this.containerManager.getContainer(e.gameObject.id);n.mask=t,n.addChild(t)},s.prototype.remove=function(e){var t=this.containerManager.getContainer(e.gameObject.id);t.removeChild(t.mask),t.mask.destroy({children:!0}),t.mask=null,delete this.maskSpriteCache[e.gameObject.id]},s.prototype.change=function(e){if(!this.changedCache[e.gameObject.id]){var t=e.component;"type"===e.prop.prop[0]?(this.changedCache[e.gameObject.id]=!0,[c.Sprite,c.Img].indexOf(t.type)>-1||t._lastType!==t.type?(this.remove(e),this.add(e),t._lastType=t.type):this.redrawGraphics(e)):"style"===e.prop.prop[0]?[c.Sprite,c.Img].indexOf(t.type)>-1?this.changeSpriteStyle(t):this.redrawGraphics(e):("resource"===e.prop.prop[0]||"spriteName"===e.prop.prop[0])&&(this.changedCache[e.gameObject.id]=!0,this.changeSprite(t))}},s.prototype.createGraphics=function(e){var t=new r.Graphics;return this.draw(t,e),t},s.prototype.redrawGraphics=function(e){var t=this.containerManager.getContainer(e.gameObject.id).mask;t.clear(),this.draw(t,e.component)},s.prototype.draw=function(e,t){var r,n,i=[];try{for(var o=function(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}}}}(l[t.type]),c=o.next();!c.done;c=o.next()){var s=c.value;i.push(t.style[s])}}catch(e){r={error:e}}finally{try{c&&!c.done&&(n=o.return)&&n.call(o)}finally{if(r)throw r.error}}e.beginFill(0,1),e[h[t.type]].apply(e,function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(a(arguments[t]));return e}(i)),e.endFill()},s.prototype.createSprite=function(e){var t=new r.Sprite(null);return this.maskSpriteCache[e.gameObject.id]=t,this.setSprite(e,t),t.sprite},s.prototype.changeSpriteStyle=function(e){var t=this.maskSpriteCache[e.gameObject.id];t.sprite.width=e.style.width,t.sprite.height=e.style.height,t.sprite.position.x=e.style.x,t.sprite.position.y=e.style.y},s.prototype.changeSprite=function(e){var t=this.maskSpriteCache[e.gameObject.id];this.setSprite(e,t)},s.prototype.setSprite=function(t,r){return n=this,i=void 0,s=function(){var n,i,a,s;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,2,,3]),i=this.increaseAsyncId(t.gameObject.id),[4,e.resource.getResource(t.resource)];case 1:return n=o.sent(),this.validateAsyncId(t.gameObject.id,i)?[3,3]:[2];case 2:throw o.sent(),new Error("mask resource load error");case 3:return t.type===c.Sprite?(a=t.resource+"_s|r|c_"+t.spriteName,s=n.instance[a],r.image=s):r.image=n.data.image,r.sprite.width=t.style.width,r.sprite.height=t.style.height,r.sprite.position.x=t.style.x,r.sprite.position.y=t.style.y,[2]}}))},new((a=void 0)||(a=Promise))((function(e,t){function r(e){try{c(s.next(e))}catch(e){t(e)}}function o(e){try{c(s.throw(e))}catch(e){t(e)}}function c(t){t.done?e(t.value):new a((function(e){e(t.value)})).then(r,o)}c((s=s.apply(n,i||[])).next())}));var n,i,a,s},s.systemName="Mask",s=function(e,t,r,n){var i,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var c=e.length-1;c>=0;c--)(i=e[c])&&(a=(o<3?i(a):o>3?i(t,r,a):i(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a}([e.decorators.componentObserver({Mask:["type",{prop:["style"],deep:!0},"resource","spriteName"]})],s),s}(t.Renderer);exports.Mask=p,exports.MaskSystem=u;
@@ -11,6 +11,8 @@ import { Sprite } from '@eva/renderer-adapter';
11
11
 
12
12
  export declare class Mask extends Component<MaskParams> {
13
13
  static componentName: string;
14
+ _lastType: MaskParams['type'];
15
+ mask_type: string;
14
16
  type: MaskParams['type'];
15
17
  style?: MaskParams['style'];
16
18
  resource?: string;
@@ -1,5 +1,4 @@
1
1
  import { Component, OBSERVER_TYPE, decorators, resource } from '@eva/eva.js';
2
- import { type } from '@eva/inspector-decorator';
3
2
  import { RendererSystem, Renderer } from '@eva/plugin-renderer';
4
3
  import { Graphics, Sprite } from '@eva/renderer-adapter';
5
4
 
@@ -133,12 +132,6 @@ var Mask$2 = (function (_super) {
133
132
  Object.assign(this, obj);
134
133
  };
135
134
  Mask.componentName = 'Mask';
136
- __decorate([
137
- type('string')
138
- ], Mask.prototype, "resource", void 0);
139
- __decorate([
140
- type('string')
141
- ], Mask.prototype, "spriteName", void 0);
142
135
  return Mask;
143
136
  }(Component));
144
137
  var Mask$3 = Mask$2;
@@ -251,9 +244,11 @@ var Mask = (function (_super) {
251
244
  var component = changed.component;
252
245
  if (changed.prop.prop[0] === 'type') {
253
246
  this.changedCache[changed.gameObject.id] = true;
254
- if ([MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1) {
247
+ if ([MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1 ||
248
+ component._lastType !== component.type) {
255
249
  this.remove(changed);
256
250
  this.add(changed);
251
+ component._lastType = component.type;
257
252
  }
258
253
  else {
259
254
  this.redrawGraphics(changed);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eva/plugin-renderer-mask",
3
- "version": "1.2.7-editor.0",
3
+ "version": "1.2.7-editor.11",
4
4
  "description": "@eva/plugin-renderer-mask",
5
5
  "main": "index.js",
6
6
  "module": "dist/plugin-renderer-mask.esm.js",
@@ -18,10 +18,10 @@
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.7-editor.0",
23
- "@eva/renderer-adapter": "1.2.7-editor.0",
24
- "@eva/eva.js": "1.2.7-editor.0",
21
+ "@eva/inspector-decorator": "0.1.0-alpha.3",
22
+ "@eva/plugin-renderer": "1.2.7-editor.11",
23
+ "@eva/renderer-adapter": "1.2.7-editor.11",
24
+ "@eva/eva.js": "1.2.7-editor.11",
25
25
  "pixi.js": "^4.8.7"
26
26
  }
27
27
  }
@@ -1,313 +0,0 @@
1
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
-
3
- import { __extends, __decorate, __values, __spread, __awaiter, __generator } from 'tslib';
4
- import { Component, OBSERVER_TYPE, resource, decorators } from '@eva/eva.js/dist/miniprogram';
5
- import { type } from '@eva/inspector-decorator';
6
- import { RendererSystem, Renderer } from '@eva/plugin-renderer/dist/miniprogram';
7
- import { Graphics, Sprite } from '@eva/renderer-adapter/dist/miniprogram';
8
- var MASK_TYPE$1;
9
-
10
- (function (MASK_TYPE) {
11
- MASK_TYPE["Circle"] = "Circle";
12
- MASK_TYPE["Ellipse"] = "Ellipse";
13
- MASK_TYPE["Rect"] = "Rect";
14
- MASK_TYPE["RoundedRect"] = "RoundedRect";
15
- MASK_TYPE["Polygon"] = "Polygon";
16
- MASK_TYPE["Img"] = "Img";
17
- MASK_TYPE["Sprite"] = "Sprite";
18
- })(MASK_TYPE$1 || (MASK_TYPE$1 = {}));
19
-
20
- var Mask$2 = function (_super) {
21
- __extends(Mask, _super);
22
-
23
- function Mask() {
24
- var _this = _super !== null && _super.apply(this, arguments) || this;
25
-
26
- _this.style = {};
27
- _this.resource = '';
28
- _this.spriteName = '';
29
- return _this;
30
- }
31
-
32
- Mask.prototype.init = function (obj) {
33
- _extends(this, obj);
34
- };
35
-
36
- Mask.componentName = 'Mask';
37
-
38
- __decorate([type('string')], Mask.prototype, "resource", void 0);
39
-
40
- __decorate([type('string')], Mask.prototype, "spriteName", void 0);
41
-
42
- return Mask;
43
- }(Component);
44
-
45
- var Mask$3 = Mask$2;
46
- var resourceKeySplit = '_s|r|c_';
47
- var propertyForGraphics = {
48
- Circle: ['x', 'y', 'radius'],
49
- Ellipse: ['x', 'y', 'width', 'height'],
50
- Rect: ['x', 'y', 'width', 'height'],
51
- RoundedRect: ['x', 'y', 'width', 'height', 'radius'],
52
- Polygon: ['paths']
53
- };
54
- var functionForGraphics = {
55
- Circle: 'drawCircle',
56
- Ellipse: 'drawEllipse',
57
- Rect: 'drawRect',
58
- RoundedRect: 'drawRoundedRect',
59
- Polygon: 'drawPolygon'
60
- };
61
- var MASK_TYPE;
62
-
63
- (function (MASK_TYPE) {
64
- MASK_TYPE["Circle"] = "Circle";
65
- MASK_TYPE["Ellipse"] = "Ellipse";
66
- MASK_TYPE["Rect"] = "Rect";
67
- MASK_TYPE["RoundedRect"] = "RoundedRect";
68
- MASK_TYPE["Polygon"] = "Polygon";
69
- MASK_TYPE["Img"] = "Img";
70
- MASK_TYPE["Sprite"] = "Sprite";
71
- })(MASK_TYPE || (MASK_TYPE = {}));
72
-
73
- var Mask = function (_super) {
74
- __extends(Mask, _super);
75
-
76
- function Mask() {
77
- var _this = _super !== null && _super.apply(this, arguments) || this;
78
-
79
- _this.name = 'Mask';
80
- _this.changedCache = {};
81
- _this.maskSpriteCache = {};
82
- return _this;
83
- }
84
-
85
- Mask.prototype.init = function () {
86
- this.renderSystem = this.game.getSystem(RendererSystem);
87
- this.renderSystem.rendererManager.register(this);
88
- };
89
-
90
- Mask.prototype.rendererUpdate = function () {
91
- this.changedCache = {};
92
- };
93
-
94
- Mask.prototype.componentChanged = function (changed) {
95
- if (changed.component.name !== 'Mask') return;
96
-
97
- switch (changed.type) {
98
- case OBSERVER_TYPE.ADD:
99
- this.add(changed);
100
- break;
101
-
102
- case OBSERVER_TYPE.REMOVE:
103
- this.remove(changed);
104
- break;
105
-
106
- case OBSERVER_TYPE.CHANGE:
107
- this.change(changed);
108
- break;
109
- }
110
- };
111
-
112
- Mask.prototype.add = function (changed) {
113
- var component = changed.component;
114
-
115
- if (!(component.type in MASK_TYPE)) {
116
- throw new Error('no have Mask type: ' + component.type);
117
- }
118
-
119
- if (!component.style) {
120
- throw new Error('no have Mask style: ' + component.type);
121
- }
122
-
123
- var mask;
124
-
125
- switch (component.type) {
126
- case MASK_TYPE.Circle:
127
- mask = this.createGraphics(component);
128
- break;
129
-
130
- case MASK_TYPE.Ellipse:
131
- mask = this.createGraphics(component);
132
- break;
133
-
134
- case MASK_TYPE.Rect:
135
- mask = this.createGraphics(component);
136
- break;
137
-
138
- case MASK_TYPE.RoundedRect:
139
- mask = this.createGraphics(component);
140
- break;
141
-
142
- case MASK_TYPE.Polygon:
143
- mask = this.createGraphics(component);
144
- break;
145
-
146
- case MASK_TYPE.Img:
147
- mask = this.createSprite(component);
148
- break;
149
-
150
- case MASK_TYPE.Sprite:
151
- mask = this.createSprite(component);
152
- break;
153
- }
154
-
155
- if (!mask) {
156
- throw new Error('no have mask instance, check your mask params: ' + component.type);
157
- }
158
-
159
- var container = this.containerManager.getContainer(changed.gameObject.id);
160
- container.mask = mask;
161
- container.addChild(mask);
162
- };
163
-
164
- Mask.prototype.remove = function (changed) {
165
- var container = this.containerManager.getContainer(changed.gameObject.id);
166
- container.removeChild(container.mask);
167
- container.mask.destroy({
168
- children: true
169
- });
170
- container.mask = null;
171
- delete this.maskSpriteCache[changed.gameObject.id];
172
- };
173
-
174
- Mask.prototype.change = function (changed) {
175
- if (this.changedCache[changed.gameObject.id]) return;
176
- var component = changed.component;
177
-
178
- if (changed.prop.prop[0] === 'type') {
179
- this.changedCache[changed.gameObject.id] = true;
180
-
181
- if ([MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1) {
182
- this.remove(changed);
183
- this.add(changed);
184
- } else {
185
- this.redrawGraphics(changed);
186
- }
187
- } else if (changed.prop.prop[0] === 'style') {
188
- if ([MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1) {
189
- this.changeSpriteStyle(component);
190
- } else {
191
- this.redrawGraphics(changed);
192
- }
193
- } else if (changed.prop.prop[0] === 'resource') {
194
- this.changedCache[changed.gameObject.id] = true;
195
- this.changeSprite(component);
196
- } else if (changed.prop.prop[0] === 'spriteName') {
197
- this.changedCache[changed.gameObject.id] = true;
198
- this.changeSprite(component);
199
- }
200
- };
201
-
202
- Mask.prototype.createGraphics = function (component) {
203
- var graphics = new Graphics();
204
- this.draw(graphics, component);
205
- return graphics;
206
- };
207
-
208
- Mask.prototype.redrawGraphics = function (changed) {
209
- var container = this.containerManager.getContainer(changed.gameObject.id);
210
- var graphics = container.mask;
211
- graphics.clear();
212
- this.draw(graphics, changed.component);
213
- };
214
-
215
- Mask.prototype.draw = function (graphics, component) {
216
- var e_1, _a;
217
-
218
- var params = [];
219
-
220
- try {
221
- for (var _b = __values(propertyForGraphics[component.type]), _c = _b.next(); !_c.done; _c = _b.next()) {
222
- var key = _c.value;
223
- params.push(component.style[key]);
224
- }
225
- } catch (e_1_1) {
226
- e_1 = {
227
- error: e_1_1
228
- };
229
- } finally {
230
- try {
231
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
232
- } finally {
233
- if (e_1) throw e_1.error;
234
- }
235
- }
236
-
237
- graphics.beginFill(0x000000, 1);
238
- graphics[functionForGraphics[component.type]].apply(graphics, __spread(params));
239
- graphics.endFill();
240
- };
241
-
242
- Mask.prototype.createSprite = function (component) {
243
- var sprite = new Sprite(null);
244
- this.maskSpriteCache[component.gameObject.id] = sprite;
245
- this.setSprite(component, sprite);
246
- return sprite.sprite;
247
- };
248
-
249
- Mask.prototype.changeSpriteStyle = function (component) {
250
- var sprite = this.maskSpriteCache[component.gameObject.id];
251
- sprite.sprite.width = component.style.width;
252
- sprite.sprite.height = component.style.height;
253
- sprite.sprite.position.x = component.style.x;
254
- sprite.sprite.position.y = component.style.y;
255
- };
256
-
257
- Mask.prototype.changeSprite = function (component) {
258
- var sprite = this.maskSpriteCache[component.gameObject.id];
259
- this.setSprite(component, sprite);
260
- };
261
-
262
- Mask.prototype.setSprite = function (component, sprite) {
263
- return __awaiter(this, void 0, void 0, function () {
264
- var res, asyncId, img, texture;
265
- return __generator(this, function (_a) {
266
- switch (_a.label) {
267
- case 0:
268
- _a.trys.push([0, 2,, 3]);
269
-
270
- asyncId = this.increaseAsyncId(component.gameObject.id);
271
- return [4, resource.getResource(component.resource)];
272
-
273
- case 1:
274
- res = _a.sent();
275
- if (!this.validateAsyncId(component.gameObject.id, asyncId)) return [2];
276
- return [3, 3];
277
-
278
- case 2:
279
- _a.sent();
280
-
281
- throw new Error('mask resource load error');
282
-
283
- case 3:
284
- if (component.type === MASK_TYPE.Sprite) {
285
- img = component.resource + resourceKeySplit + component.spriteName;
286
- texture = res.instance[img];
287
- sprite.image = texture;
288
- } else {
289
- sprite.image = res.data.image;
290
- }
291
-
292
- sprite.sprite.width = component.style.width;
293
- sprite.sprite.height = component.style.height;
294
- sprite.sprite.position.x = component.style.x;
295
- sprite.sprite.position.y = component.style.y;
296
- return [2];
297
- }
298
- });
299
- });
300
- };
301
-
302
- Mask.systemName = 'Mask';
303
- Mask = __decorate([decorators.componentObserver({
304
- Mask: ['type', {
305
- prop: ['style'],
306
- deep: true
307
- }, 'resource', 'spriteName']
308
- })], Mask);
309
- return Mask;
310
- }(Renderer);
311
-
312
- var Mask$1 = Mask;
313
- export { MASK_TYPE$1 as MASK_TYPE, Mask$3 as Mask, Mask$1 as MaskSystem };