@eva/plugin-renderer-mask 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.
- package/dist/EVA.plugin.renderer.mask.js +183 -17
- package/dist/EVA.plugin.renderer.mask.min.js +1 -1
- package/dist/plugin-renderer-mask.cjs.js +61 -6
- package/dist/plugin-renderer-mask.cjs.prod.js +1 -1
- package/dist/plugin-renderer-mask.d.ts +2 -0
- package/dist/plugin-renderer-mask.esm.js +62 -7
- package/package.json +5 -5
- package/dist/miniprogram.js +0 -311
|
@@ -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 (
|
|
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 __() {
|
|
@@ -31,6 +33,22 @@ var _EVA_IIFE_mask = function (exports, eva_js, pluginRenderer, rendererAdapter)
|
|
|
31
33
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
32
34
|
}
|
|
33
35
|
|
|
36
|
+
var _assign = function __assign() {
|
|
37
|
+
_assign = Object.assign || function __assign(t) {
|
|
38
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
39
|
+
s = arguments[i];
|
|
40
|
+
|
|
41
|
+
for (var p in s) {
|
|
42
|
+
if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return t;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
return _assign.apply(this, arguments);
|
|
50
|
+
};
|
|
51
|
+
|
|
34
52
|
function __decorate(decorators, target, key, desc) {
|
|
35
53
|
var c = arguments.length,
|
|
36
54
|
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
@@ -41,6 +59,10 @@ var _EVA_IIFE_mask = function (exports, eva_js, pluginRenderer, rendererAdapter)
|
|
|
41
59
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
42
60
|
}
|
|
43
61
|
|
|
62
|
+
function __metadata(metadataKey, metadataValue) {
|
|
63
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
|
|
64
|
+
}
|
|
65
|
+
|
|
44
66
|
function __awaiter(thisArg, _arguments, P, generator) {
|
|
45
67
|
function adopt(value) {
|
|
46
68
|
return value instanceof P ? value : new P(function (resolve) {
|
|
@@ -236,27 +258,119 @@ var _EVA_IIFE_mask = function (exports, eva_js, pluginRenderer, rendererAdapter)
|
|
|
236
258
|
return ar;
|
|
237
259
|
}
|
|
238
260
|
|
|
239
|
-
function
|
|
240
|
-
|
|
241
|
-
|
|
261
|
+
var SymbolKeysNotSupportedError = function (_super) {
|
|
262
|
+
__extends(SymbolKeysNotSupportedError, _super);
|
|
263
|
+
|
|
264
|
+
function SymbolKeysNotSupportedError() {
|
|
265
|
+
var _newTarget = this.constructor;
|
|
266
|
+
|
|
267
|
+
var _this = _super.call(this, 'Symbol keys are not supported yet!') || this;
|
|
268
|
+
|
|
269
|
+
Object.setPrototypeOf(_this, _newTarget.prototype);
|
|
270
|
+
return _this;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
return SymbolKeysNotSupportedError;
|
|
274
|
+
}(Error);
|
|
275
|
+
|
|
276
|
+
(function (_super) {
|
|
277
|
+
__extends(StaticGetPropertiesIsNotAFunctionError, _super);
|
|
278
|
+
|
|
279
|
+
function StaticGetPropertiesIsNotAFunctionError() {
|
|
280
|
+
var _newTarget = this.constructor;
|
|
281
|
+
|
|
282
|
+
var _this = _super.call(this, 'getProperties is not a function!') || this;
|
|
283
|
+
|
|
284
|
+
Object.setPrototypeOf(_this, _newTarget.prototype);
|
|
285
|
+
return _this;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
return StaticGetPropertiesIsNotAFunctionError;
|
|
289
|
+
})(Error);
|
|
290
|
+
|
|
291
|
+
var IDE_PROPERTY_METADATA = 'IDE_PROPERTY_METADATA';
|
|
292
|
+
|
|
293
|
+
function transformBasicType(type) {
|
|
294
|
+
if (type === String) {
|
|
295
|
+
return 'string';
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
if (type === Number) {
|
|
299
|
+
return 'number';
|
|
242
300
|
}
|
|
243
301
|
|
|
244
|
-
if (
|
|
245
|
-
|
|
302
|
+
if (type === Boolean) {
|
|
303
|
+
return 'boolean';
|
|
246
304
|
}
|
|
247
305
|
|
|
248
|
-
|
|
249
|
-
return propertyObj;
|
|
306
|
+
return 'unknown';
|
|
250
307
|
}
|
|
251
308
|
|
|
252
|
-
function
|
|
309
|
+
function defineTypes(target, key, options, returnTypeFunction) {
|
|
310
|
+
var type = Reflect.getMetadata('design:type', target, key);
|
|
311
|
+
var isArray = type === Array;
|
|
312
|
+
var str = transformBasicType(type);
|
|
313
|
+
|
|
314
|
+
if (str !== 'unknown') {
|
|
315
|
+
type = str;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
if (returnTypeFunction) {
|
|
319
|
+
var returnType = returnTypeFunction();
|
|
320
|
+
|
|
321
|
+
if (Array.isArray(returnType)) {
|
|
322
|
+
isArray = true;
|
|
323
|
+
type = returnType[0];
|
|
324
|
+
} else {
|
|
325
|
+
type = returnType;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
var properties = Reflect.getMetadata(IDE_PROPERTY_METADATA, target.constructor) || {};
|
|
330
|
+
properties[key] = _assign({
|
|
331
|
+
type: type,
|
|
332
|
+
isArray: isArray
|
|
333
|
+
}, options);
|
|
334
|
+
Reflect.defineMetadata(IDE_PROPERTY_METADATA, properties, target.constructor);
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
function getTypeDecoratorParams(returnTypeFuncOrOptions, maybeOptions) {
|
|
338
|
+
if (typeof returnTypeFuncOrOptions === 'function') {
|
|
339
|
+
return {
|
|
340
|
+
returnTypeFunc: returnTypeFuncOrOptions,
|
|
341
|
+
options: maybeOptions || {}
|
|
342
|
+
};
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
return {
|
|
346
|
+
options: returnTypeFuncOrOptions || {}
|
|
347
|
+
};
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
function Field(returnTypeFunction, maybeOptions) {
|
|
253
351
|
return function (target, propertyKey) {
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
352
|
+
if (typeof propertyKey === 'symbol') {
|
|
353
|
+
throw new SymbolKeysNotSupportedError();
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
var _a = getTypeDecoratorParams(returnTypeFunction, maybeOptions),
|
|
357
|
+
options = _a.options,
|
|
358
|
+
returnTypeFunc = _a.returnTypeFunc;
|
|
359
|
+
|
|
360
|
+
defineTypes(target, propertyKey, options, returnTypeFunc);
|
|
257
361
|
};
|
|
258
362
|
}
|
|
259
363
|
|
|
364
|
+
var ExecuteMode;
|
|
365
|
+
|
|
366
|
+
(function (ExecuteMode) {
|
|
367
|
+
ExecuteMode[ExecuteMode["Edit"] = 2] = "Edit";
|
|
368
|
+
ExecuteMode[ExecuteMode["Game"] = 4] = "Game";
|
|
369
|
+
ExecuteMode[ExecuteMode["All"] = 6] = "All";
|
|
370
|
+
})(ExecuteMode || (ExecuteMode = {}));
|
|
371
|
+
|
|
372
|
+
var _a;
|
|
373
|
+
|
|
260
374
|
exports.MASK_TYPE = void 0;
|
|
261
375
|
|
|
262
376
|
(function (MASK_TYPE) {
|
|
@@ -269,6 +383,41 @@ var _EVA_IIFE_mask = function (exports, eva_js, pluginRenderer, rendererAdapter)
|
|
|
269
383
|
MASK_TYPE["Sprite"] = "Sprite";
|
|
270
384
|
})(exports.MASK_TYPE || (exports.MASK_TYPE = {}));
|
|
271
385
|
|
|
386
|
+
var MaskStyle = function () {
|
|
387
|
+
function MaskStyle() {}
|
|
388
|
+
|
|
389
|
+
__decorate([Field({
|
|
390
|
+
step: 1
|
|
391
|
+
}), __metadata("design:type", Number)], MaskStyle.prototype, "x", void 0);
|
|
392
|
+
|
|
393
|
+
__decorate([Field({
|
|
394
|
+
step: 1
|
|
395
|
+
}), __metadata("design:type", Number)], MaskStyle.prototype, "y", void 0);
|
|
396
|
+
|
|
397
|
+
__decorate([Field({
|
|
398
|
+
step: 0.1,
|
|
399
|
+
if: function _if(mask) {
|
|
400
|
+
return mask.type === exports.MASK_TYPE.Circle || mask.type === exports.MASK_TYPE.RoundedRect;
|
|
401
|
+
}
|
|
402
|
+
}), __metadata("design:type", Number)], MaskStyle.prototype, "radius", void 0);
|
|
403
|
+
|
|
404
|
+
__decorate([Field({
|
|
405
|
+
step: 1,
|
|
406
|
+
if: function _if(mask) {
|
|
407
|
+
return mask.type !== exports.MASK_TYPE.Circle;
|
|
408
|
+
}
|
|
409
|
+
}), __metadata("design:type", Number)], MaskStyle.prototype, "width", void 0);
|
|
410
|
+
|
|
411
|
+
__decorate([Field({
|
|
412
|
+
step: 1,
|
|
413
|
+
if: function _if(mask) {
|
|
414
|
+
return mask.type !== exports.MASK_TYPE.Circle;
|
|
415
|
+
}
|
|
416
|
+
}), __metadata("design:type", Number)], MaskStyle.prototype, "height", void 0);
|
|
417
|
+
|
|
418
|
+
return MaskStyle;
|
|
419
|
+
}();
|
|
420
|
+
|
|
272
421
|
var Mask$2 = function (_super) {
|
|
273
422
|
__extends(Mask, _super);
|
|
274
423
|
|
|
@@ -287,9 +436,23 @@ var _EVA_IIFE_mask = function (exports, eva_js, pluginRenderer, rendererAdapter)
|
|
|
287
436
|
|
|
288
437
|
Mask.componentName = 'Mask';
|
|
289
438
|
|
|
290
|
-
__decorate([
|
|
291
|
-
|
|
292
|
-
|
|
439
|
+
__decorate([Field({
|
|
440
|
+
type: 'selector',
|
|
441
|
+
options: (_a = {}, _a[exports.MASK_TYPE.Circle] = exports.MASK_TYPE.Circle, _a[exports.MASK_TYPE.Ellipse] = exports.MASK_TYPE.Ellipse, _a[exports.MASK_TYPE.Img] = exports.MASK_TYPE.Img, _a[exports.MASK_TYPE.Rect] = exports.MASK_TYPE.Rect, _a[exports.MASK_TYPE.RoundedRect] = exports.MASK_TYPE.RoundedRect, _a),
|
|
442
|
+
alias: 'type',
|
|
443
|
+
default: exports.MASK_TYPE.Circle
|
|
444
|
+
}), __metadata("design:type", String)], Mask.prototype, "mask_type", void 0);
|
|
445
|
+
|
|
446
|
+
__decorate([Field(function () {
|
|
447
|
+
return MaskStyle;
|
|
448
|
+
}), __metadata("design:type", Object)], Mask.prototype, "style", void 0);
|
|
449
|
+
|
|
450
|
+
__decorate([Field({
|
|
451
|
+
type: 'resource',
|
|
452
|
+
if: function _if(mask) {
|
|
453
|
+
return mask.type === exports.MASK_TYPE.Img || exports.MASK_TYPE.Sprite;
|
|
454
|
+
}
|
|
455
|
+
}), __metadata("design:type", String)], Mask.prototype, "resource", void 0);
|
|
293
456
|
|
|
294
457
|
return Mask;
|
|
295
458
|
}(eva_js.Component);
|
|
@@ -430,9 +593,10 @@ var _EVA_IIFE_mask = function (exports, eva_js, pluginRenderer, rendererAdapter)
|
|
|
430
593
|
if (changed.prop.prop[0] === 'type') {
|
|
431
594
|
this.changedCache[changed.gameObject.id] = true;
|
|
432
595
|
|
|
433
|
-
if ([MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1) {
|
|
596
|
+
if ([MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1 || component._lastType !== component.type) {
|
|
434
597
|
this.remove(changed);
|
|
435
598
|
this.add(changed);
|
|
599
|
+
component._lastType = component.type;
|
|
436
600
|
} else {
|
|
437
601
|
this.redrawGraphics(changed);
|
|
438
602
|
}
|
|
@@ -513,16 +677,18 @@ var _EVA_IIFE_mask = function (exports, eva_js, pluginRenderer, rendererAdapter)
|
|
|
513
677
|
|
|
514
678
|
Mask.prototype.setSprite = function (component, sprite) {
|
|
515
679
|
return __awaiter(this, void 0, void 0, function () {
|
|
516
|
-
var res, img, texture;
|
|
680
|
+
var res, asyncId, img, texture;
|
|
517
681
|
return __generator(this, function (_a) {
|
|
518
682
|
switch (_a.label) {
|
|
519
683
|
case 0:
|
|
520
684
|
_a.trys.push([0, 2,, 3]);
|
|
521
685
|
|
|
686
|
+
asyncId = this.increaseAsyncId(component.gameObject.id);
|
|
522
687
|
return [4, eva_js.resource.getResource(component.resource)];
|
|
523
688
|
|
|
524
689
|
case 1:
|
|
525
690
|
res = _a.sent();
|
|
691
|
+
if (!this.validateAsyncId(component.gameObject.id, asyncId)) return [2];
|
|
526
692
|
return [3, 3];
|
|
527
693
|
|
|
528
694
|
case 2:
|
|
@@ -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;return s(this,(function(a){switch(a.label){case 0:return a.trys.push([0,2,,3]),[4,t.resource.getResource(e.resource)];case 1:return n=a.sent(),[3,3];case 2:throw a.sent(),new Error("mask resource load error");case 3:return e.type===u.Sprite?(o=e.resource+"_s|r|c_"+e.spriteName,i=n.instance[o],r.image=i):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 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 a=function(){return a=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},a.apply(this,arguments)};function c(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 s(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function p(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 u(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 l(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}var y=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,f,h="IDE_PROPERTY_METADATA";function g(e,t,r,n){var o=Reflect.getMetadata("design:type",e,t),i=o===Array,c=function(e){return e===String?"string":e===Number?"number":e===Boolean?"boolean":"unknown"}(o);if("unknown"!==c&&(o=c),n){var s=n();Array.isArray(s)?(i=!0,o=s[0]):o=s}var p=Reflect.getMetadata(h,e.constructor)||{};p[t]=a({type:o,isArray:i},r),Reflect.defineMetadata(h,p,e.constructor)}function m(e,t){return function(r,n){if("symbol"==typeof n)throw new y;var o=function(e,t){return"function"==typeof e?{returnTypeFunc:e,options:t||{}}:{options:e||{}}}(e,t);g(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={})),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 v,w=function(){function t(){}return c([m({step:1}),s("design:type",Number)],t.prototype,"x",void 0),c([m({step:1}),s("design:type",Number)],t.prototype,"y",void 0),c([m({step:.1,if:function(t){return t.type===e.MASK_TYPE.Circle||t.type===e.MASK_TYPE.RoundedRect}}),s("design:type",Number)],t.prototype,"radius",void 0),c([m({step:1,if:function(t){return t.type!==e.MASK_TYPE.Circle}}),s("design:type",Number)],t.prototype,"width",void 0),c([m({step:1,if:function(t){return t.type!==e.MASK_TYPE.Circle}}),s("design:type",Number)],t.prototype,"height",void 0),t}(),E=function(t){function r(){var e=null!==t&&t.apply(this,arguments)||this;return e.style={},e.resource="",e.spriteName="",e}return i(r,t),r.prototype.init=function(e){_extends(this,e)},r.componentName="Mask",c([m({type:"selector",options:(f={},f[e.MASK_TYPE.Circle]=e.MASK_TYPE.Circle,f[e.MASK_TYPE.Ellipse]=e.MASK_TYPE.Ellipse,f[e.MASK_TYPE.Img]=e.MASK_TYPE.Img,f[e.MASK_TYPE.Rect]=e.MASK_TYPE.Rect,f[e.MASK_TYPE.RoundedRect]=e.MASK_TYPE.RoundedRect,f),alias:"type",default:e.MASK_TYPE.Circle}),s("design:type",String)],r.prototype,"mask_type",void 0),c([m((function(){return w})),s("design:type",Object)],r.prototype,"style",void 0),c([m({type:"resource",if:function(t){return t.type===e.MASK_TYPE.Img||e.MASK_TYPE.Sprite}}),s("design:type",String)],r.prototype,"resource",void 0),r}(t.Component),S=E,b={Circle:["x","y","radius"],Ellipse:["x","y","width","height"],Rect:["x","y","width","height"],RoundedRect:["x","y","width","height","radius"],Polygon:["paths"]},R={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"}(v||(v={}));var _=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 v))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 v.Circle:case v.Ellipse:case v.Rect:case v.RoundedRect:case v.Polygon:t=this.createGraphics(r);break;case v.Img:case v.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,[v.Sprite,v.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]?[v.Sprite,v.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.")}(b[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[R[t.type]].apply(e,function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(l(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 p(this,void 0,void 0,(function(){var n,o,i,a;return u(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===v.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=c([t.decorators.componentObserver({Mask:["type",{prop:["style"],deep:!0},"resource","spriteName"]})],o)}(r.Renderer),A=_;return e.Mask=S,e.MaskSystem=A,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;
|
|
@@ -43,6 +43,10 @@ function __decorate(decorators, target, key, desc) {
|
|
|
43
43
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
+
function __metadata(metadataKey, metadataValue) {
|
|
47
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
|
|
48
|
+
}
|
|
49
|
+
|
|
46
50
|
function __awaiter(thisArg, _arguments, P, generator) {
|
|
47
51
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
48
52
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
@@ -114,6 +118,7 @@ function __spread() {
|
|
|
114
118
|
return ar;
|
|
115
119
|
}
|
|
116
120
|
|
|
121
|
+
var _a;
|
|
117
122
|
exports.MASK_TYPE = void 0;
|
|
118
123
|
(function (MASK_TYPE) {
|
|
119
124
|
MASK_TYPE["Circle"] = "Circle";
|
|
@@ -124,6 +129,31 @@ exports.MASK_TYPE = void 0;
|
|
|
124
129
|
MASK_TYPE["Img"] = "Img";
|
|
125
130
|
MASK_TYPE["Sprite"] = "Sprite";
|
|
126
131
|
})(exports.MASK_TYPE || (exports.MASK_TYPE = {}));
|
|
132
|
+
var MaskStyle = (function () {
|
|
133
|
+
function MaskStyle() {
|
|
134
|
+
}
|
|
135
|
+
__decorate([
|
|
136
|
+
inspectorDecorator.Field({ step: 1 }),
|
|
137
|
+
__metadata("design:type", Number)
|
|
138
|
+
], MaskStyle.prototype, "x", void 0);
|
|
139
|
+
__decorate([
|
|
140
|
+
inspectorDecorator.Field({ step: 1 }),
|
|
141
|
+
__metadata("design:type", Number)
|
|
142
|
+
], MaskStyle.prototype, "y", void 0);
|
|
143
|
+
__decorate([
|
|
144
|
+
inspectorDecorator.Field({ step: 0.1, if: function (mask) { return mask.type === exports.MASK_TYPE.Circle || mask.type === exports.MASK_TYPE.RoundedRect; } }),
|
|
145
|
+
__metadata("design:type", Number)
|
|
146
|
+
], MaskStyle.prototype, "radius", void 0);
|
|
147
|
+
__decorate([
|
|
148
|
+
inspectorDecorator.Field({ step: 1, if: function (mask) { return mask.type !== exports.MASK_TYPE.Circle; } }),
|
|
149
|
+
__metadata("design:type", Number)
|
|
150
|
+
], MaskStyle.prototype, "width", void 0);
|
|
151
|
+
__decorate([
|
|
152
|
+
inspectorDecorator.Field({ step: 1, if: function (mask) { return mask.type !== exports.MASK_TYPE.Circle; } }),
|
|
153
|
+
__metadata("design:type", Number)
|
|
154
|
+
], MaskStyle.prototype, "height", void 0);
|
|
155
|
+
return MaskStyle;
|
|
156
|
+
}());
|
|
127
157
|
var Mask$2 = (function (_super) {
|
|
128
158
|
__extends(Mask, _super);
|
|
129
159
|
function Mask() {
|
|
@@ -138,11 +168,31 @@ var Mask$2 = (function (_super) {
|
|
|
138
168
|
};
|
|
139
169
|
Mask.componentName = 'Mask';
|
|
140
170
|
__decorate([
|
|
141
|
-
inspectorDecorator.
|
|
142
|
-
|
|
171
|
+
inspectorDecorator.Field({
|
|
172
|
+
type: 'selector',
|
|
173
|
+
options: (_a = {},
|
|
174
|
+
_a[exports.MASK_TYPE.Circle] = exports.MASK_TYPE.Circle,
|
|
175
|
+
_a[exports.MASK_TYPE.Ellipse] = exports.MASK_TYPE.Ellipse,
|
|
176
|
+
_a[exports.MASK_TYPE.Img] = exports.MASK_TYPE.Img,
|
|
177
|
+
_a[exports.MASK_TYPE.Rect] = exports.MASK_TYPE.Rect,
|
|
178
|
+
_a[exports.MASK_TYPE.RoundedRect] = exports.MASK_TYPE.RoundedRect,
|
|
179
|
+
_a),
|
|
180
|
+
alias: 'type',
|
|
181
|
+
default: exports.MASK_TYPE.Circle,
|
|
182
|
+
}),
|
|
183
|
+
__metadata("design:type", String)
|
|
184
|
+
], Mask.prototype, "mask_type", void 0);
|
|
143
185
|
__decorate([
|
|
144
|
-
inspectorDecorator.
|
|
145
|
-
|
|
186
|
+
inspectorDecorator.Field(function () { return MaskStyle; }),
|
|
187
|
+
__metadata("design:type", Object)
|
|
188
|
+
], Mask.prototype, "style", void 0);
|
|
189
|
+
__decorate([
|
|
190
|
+
inspectorDecorator.Field({
|
|
191
|
+
type: 'resource',
|
|
192
|
+
if: function (mask) { return mask.type === exports.MASK_TYPE.Img || exports.MASK_TYPE.Sprite; },
|
|
193
|
+
}),
|
|
194
|
+
__metadata("design:type", String)
|
|
195
|
+
], Mask.prototype, "resource", void 0);
|
|
146
196
|
return Mask;
|
|
147
197
|
}(eva_js.Component));
|
|
148
198
|
var Mask$3 = Mask$2;
|
|
@@ -255,9 +305,11 @@ var Mask = (function (_super) {
|
|
|
255
305
|
var component = changed.component;
|
|
256
306
|
if (changed.prop.prop[0] === 'type') {
|
|
257
307
|
this.changedCache[changed.gameObject.id] = true;
|
|
258
|
-
if ([MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1
|
|
308
|
+
if ([MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1 ||
|
|
309
|
+
component._lastType !== component.type) {
|
|
259
310
|
this.remove(changed);
|
|
260
311
|
this.add(changed);
|
|
312
|
+
component._lastType = component.type;
|
|
261
313
|
}
|
|
262
314
|
else {
|
|
263
315
|
this.redrawGraphics(changed);
|
|
@@ -330,14 +382,17 @@ var Mask = (function (_super) {
|
|
|
330
382
|
};
|
|
331
383
|
Mask.prototype.setSprite = function (component, sprite) {
|
|
332
384
|
return __awaiter(this, void 0, void 0, function () {
|
|
333
|
-
var res, img, texture;
|
|
385
|
+
var res, asyncId, img, texture;
|
|
334
386
|
return __generator(this, function (_a) {
|
|
335
387
|
switch (_a.label) {
|
|
336
388
|
case 0:
|
|
337
389
|
_a.trys.push([0, 2, , 3]);
|
|
390
|
+
asyncId = this.increaseAsyncId(component.gameObject.id);
|
|
338
391
|
return [4, eva_js.resource.getResource(component.resource)];
|
|
339
392
|
case 1:
|
|
340
393
|
res = _a.sent();
|
|
394
|
+
if (!this.validateAsyncId(component.gameObject.id, asyncId))
|
|
395
|
+
return [2];
|
|
341
396
|
return [3, 3];
|
|
342
397
|
case 2:
|
|
343
398
|
_a.sent();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@eva/eva.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("@eva/eva.js"),r=require("@eva/inspector-decorator"),n=require("@eva/plugin-renderer"),o=require("@eva/renderer-adapter"),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 a(e,t){function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}function p(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 p=e.length-1;p>=0;p--)(o=e[p])&&(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 s(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}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:p(0),throw:p(1),return:p(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function p(i){return function(p){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,p])}}}function l(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 u,y=function(){function e(){}return p([r.Field({step:1}),s("design:type",Number)],e.prototype,"x",void 0),p([r.Field({step:1}),s("design:type",Number)],e.prototype,"y",void 0),p([r.Field({step:.1,if:function(e){return e.type===exports.MASK_TYPE.Circle||e.type===exports.MASK_TYPE.RoundedRect}}),s("design:type",Number)],e.prototype,"radius",void 0),p([r.Field({step:1,if:function(e){return e.type!==exports.MASK_TYPE.Circle}}),s("design:type",Number)],e.prototype,"width",void 0),p([r.Field({step:1,if:function(e){return e.type!==exports.MASK_TYPE.Circle}}),s("design:type",Number)],e.prototype,"height",void 0),e}(),d=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.style={},e.resource="",e.spriteName="",e}return a(n,t),n.prototype.init=function(e){Object.assign(this,e)},n.componentName="Mask",p([r.Field({type:"selector",options:(e={},e[exports.MASK_TYPE.Circle]=exports.MASK_TYPE.Circle,e[exports.MASK_TYPE.Ellipse]=exports.MASK_TYPE.Ellipse,e[exports.MASK_TYPE.Img]=exports.MASK_TYPE.Img,e[exports.MASK_TYPE.Rect]=exports.MASK_TYPE.Rect,e[exports.MASK_TYPE.RoundedRect]=exports.MASK_TYPE.RoundedRect,e),alias:"type",default:exports.MASK_TYPE.Circle}),s("design:type",String)],n.prototype,"mask_type",void 0),p([r.Field((function(){return y})),s("design:type",Object)],n.prototype,"style",void 0),p([r.Field({type:"resource",if:function(e){return e.type===exports.MASK_TYPE.Img||exports.MASK_TYPE.Sprite}}),s("design:type",String)],n.prototype,"resource",void 0),n}(t.Component),h=d,f={Circle:["x","y","radius"],Ellipse:["x","y","width","height"],Rect:["x","y","width","height"],RoundedRect:["x","y","width","height","radius"],Polygon:["paths"]},g={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 m=function(e){function r(){var t=null!==e&&e.apply(this,arguments)||this;return t.name="Mask",t.changedCache={},t.maskSpriteCache={},t}return a(r,e),r.prototype.init=function(){this.renderSystem=this.game.getSystem(n.RendererSystem),this.renderSystem.rendererManager.register(this)},r.prototype.rendererUpdate=function(){this.changedCache={}},r.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)}},r.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)},r.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]},r.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||t._lastType!==t.type?(this.remove(e),this.add(e),t._lastType=t.type):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))}},r.prototype.createGraphics=function(e){var t=new o.Graphics;return this.draw(t,e),t},r.prototype.redrawGraphics=function(e){var t=this.containerManager.getContainer(e.gameObject.id).mask;t.clear(),this.draw(t,e.component)},r.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}}}}(f[t.type]),a=i.next();!a.done;a=i.next()){var p=a.value;o.push(t.style[p])}}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[g[t.type]].apply(e,function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(l(arguments[t]));return e}(o)),e.endFill()},r.prototype.createSprite=function(e){var t=new o.Sprite(null);return this.maskSpriteCache[e.gameObject.id]=t,this.setSprite(e,t),t.sprite},r.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},r.prototype.changeSprite=function(e){var t=this.maskSpriteCache[e.gameObject.id];this.setSprite(e,t)},r.prototype.setSprite=function(e,r){return n=this,o=void 0,a=function(){var n,o,i,a;return c(this,(function(p){switch(p.label){case 0:return p.trys.push([0,2,,3]),o=this.increaseAsyncId(e.gameObject.id),[4,t.resource.getResource(e.resource)];case 1:return n=p.sent(),this.validateAsyncId(e.gameObject.id,o)?[3,3]:[2];case 2:throw p.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]}}))},new((i=void 0)||(i=Promise))((function(e,t){function r(e){try{s(a.next(e))}catch(e){t(e)}}function p(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,p)}s((a=a.apply(n,o||[])).next())}));var n,o,i,a},r.systemName="Mask",r=p([t.decorators.componentObserver({Mask:["type",{prop:["style"],deep:!0},"resource","spriteName"]})],r)}(n.Renderer),v=m;exports.Mask=h,exports.MaskSystem=v;
|
|
@@ -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,5 @@
|
|
|
1
1
|
import { Component, OBSERVER_TYPE, decorators, resource } from '@eva/eva.js';
|
|
2
|
-
import {
|
|
2
|
+
import { Field } from '@eva/inspector-decorator';
|
|
3
3
|
import { RendererSystem, Renderer } from '@eva/plugin-renderer';
|
|
4
4
|
import { Graphics, Sprite } from '@eva/renderer-adapter';
|
|
5
5
|
|
|
@@ -39,6 +39,10 @@ function __decorate(decorators, target, key, desc) {
|
|
|
39
39
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
+
function __metadata(metadataKey, metadataValue) {
|
|
43
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
|
|
44
|
+
}
|
|
45
|
+
|
|
42
46
|
function __awaiter(thisArg, _arguments, P, generator) {
|
|
43
47
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
44
48
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
@@ -110,6 +114,7 @@ function __spread() {
|
|
|
110
114
|
return ar;
|
|
111
115
|
}
|
|
112
116
|
|
|
117
|
+
var _a;
|
|
113
118
|
var MASK_TYPE$1;
|
|
114
119
|
(function (MASK_TYPE) {
|
|
115
120
|
MASK_TYPE["Circle"] = "Circle";
|
|
@@ -120,6 +125,31 @@ var MASK_TYPE$1;
|
|
|
120
125
|
MASK_TYPE["Img"] = "Img";
|
|
121
126
|
MASK_TYPE["Sprite"] = "Sprite";
|
|
122
127
|
})(MASK_TYPE$1 || (MASK_TYPE$1 = {}));
|
|
128
|
+
var MaskStyle = (function () {
|
|
129
|
+
function MaskStyle() {
|
|
130
|
+
}
|
|
131
|
+
__decorate([
|
|
132
|
+
Field({ step: 1 }),
|
|
133
|
+
__metadata("design:type", Number)
|
|
134
|
+
], MaskStyle.prototype, "x", void 0);
|
|
135
|
+
__decorate([
|
|
136
|
+
Field({ step: 1 }),
|
|
137
|
+
__metadata("design:type", Number)
|
|
138
|
+
], MaskStyle.prototype, "y", void 0);
|
|
139
|
+
__decorate([
|
|
140
|
+
Field({ step: 0.1, if: function (mask) { return mask.type === MASK_TYPE$1.Circle || mask.type === MASK_TYPE$1.RoundedRect; } }),
|
|
141
|
+
__metadata("design:type", Number)
|
|
142
|
+
], MaskStyle.prototype, "radius", void 0);
|
|
143
|
+
__decorate([
|
|
144
|
+
Field({ step: 1, if: function (mask) { return mask.type !== MASK_TYPE$1.Circle; } }),
|
|
145
|
+
__metadata("design:type", Number)
|
|
146
|
+
], MaskStyle.prototype, "width", void 0);
|
|
147
|
+
__decorate([
|
|
148
|
+
Field({ step: 1, if: function (mask) { return mask.type !== MASK_TYPE$1.Circle; } }),
|
|
149
|
+
__metadata("design:type", Number)
|
|
150
|
+
], MaskStyle.prototype, "height", void 0);
|
|
151
|
+
return MaskStyle;
|
|
152
|
+
}());
|
|
123
153
|
var Mask$2 = (function (_super) {
|
|
124
154
|
__extends(Mask, _super);
|
|
125
155
|
function Mask() {
|
|
@@ -134,11 +164,31 @@ var Mask$2 = (function (_super) {
|
|
|
134
164
|
};
|
|
135
165
|
Mask.componentName = 'Mask';
|
|
136
166
|
__decorate([
|
|
137
|
-
|
|
138
|
-
|
|
167
|
+
Field({
|
|
168
|
+
type: 'selector',
|
|
169
|
+
options: (_a = {},
|
|
170
|
+
_a[MASK_TYPE$1.Circle] = MASK_TYPE$1.Circle,
|
|
171
|
+
_a[MASK_TYPE$1.Ellipse] = MASK_TYPE$1.Ellipse,
|
|
172
|
+
_a[MASK_TYPE$1.Img] = MASK_TYPE$1.Img,
|
|
173
|
+
_a[MASK_TYPE$1.Rect] = MASK_TYPE$1.Rect,
|
|
174
|
+
_a[MASK_TYPE$1.RoundedRect] = MASK_TYPE$1.RoundedRect,
|
|
175
|
+
_a),
|
|
176
|
+
alias: 'type',
|
|
177
|
+
default: MASK_TYPE$1.Circle,
|
|
178
|
+
}),
|
|
179
|
+
__metadata("design:type", String)
|
|
180
|
+
], Mask.prototype, "mask_type", void 0);
|
|
139
181
|
__decorate([
|
|
140
|
-
|
|
141
|
-
|
|
182
|
+
Field(function () { return MaskStyle; }),
|
|
183
|
+
__metadata("design:type", Object)
|
|
184
|
+
], Mask.prototype, "style", void 0);
|
|
185
|
+
__decorate([
|
|
186
|
+
Field({
|
|
187
|
+
type: 'resource',
|
|
188
|
+
if: function (mask) { return mask.type === MASK_TYPE$1.Img || MASK_TYPE$1.Sprite; },
|
|
189
|
+
}),
|
|
190
|
+
__metadata("design:type", String)
|
|
191
|
+
], Mask.prototype, "resource", void 0);
|
|
142
192
|
return Mask;
|
|
143
193
|
}(Component));
|
|
144
194
|
var Mask$3 = Mask$2;
|
|
@@ -251,9 +301,11 @@ var Mask = (function (_super) {
|
|
|
251
301
|
var component = changed.component;
|
|
252
302
|
if (changed.prop.prop[0] === 'type') {
|
|
253
303
|
this.changedCache[changed.gameObject.id] = true;
|
|
254
|
-
if ([MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1
|
|
304
|
+
if ([MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1 ||
|
|
305
|
+
component._lastType !== component.type) {
|
|
255
306
|
this.remove(changed);
|
|
256
307
|
this.add(changed);
|
|
308
|
+
component._lastType = component.type;
|
|
257
309
|
}
|
|
258
310
|
else {
|
|
259
311
|
this.redrawGraphics(changed);
|
|
@@ -326,14 +378,17 @@ var Mask = (function (_super) {
|
|
|
326
378
|
};
|
|
327
379
|
Mask.prototype.setSprite = function (component, sprite) {
|
|
328
380
|
return __awaiter(this, void 0, void 0, function () {
|
|
329
|
-
var res, img, texture;
|
|
381
|
+
var res, asyncId, img, texture;
|
|
330
382
|
return __generator(this, function (_a) {
|
|
331
383
|
switch (_a.label) {
|
|
332
384
|
case 0:
|
|
333
385
|
_a.trys.push([0, 2, , 3]);
|
|
386
|
+
asyncId = this.increaseAsyncId(component.gameObject.id);
|
|
334
387
|
return [4, resource.getResource(component.resource)];
|
|
335
388
|
case 1:
|
|
336
389
|
res = _a.sent();
|
|
390
|
+
if (!this.validateAsyncId(component.gameObject.id, asyncId))
|
|
391
|
+
return [2];
|
|
337
392
|
return [3, 3];
|
|
338
393
|
case 2:
|
|
339
394
|
_a.sent();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eva/plugin-renderer-mask",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.7-editor.10",
|
|
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": "
|
|
22
|
-
"@eva/plugin-renderer": "1.2.
|
|
23
|
-
"@eva/renderer-adapter": "1.2.
|
|
24
|
-
"@eva/eva.js": "1.2.
|
|
21
|
+
"@eva/inspector-decorator": "0.1.0-alpha.2",
|
|
22
|
+
"@eva/plugin-renderer": "1.2.7-editor.10",
|
|
23
|
+
"@eva/renderer-adapter": "1.2.7-editor.10",
|
|
24
|
+
"@eva/eva.js": "1.2.7-editor.10",
|
|
25
25
|
"pixi.js": "^4.8.7"
|
|
26
26
|
}
|
|
27
27
|
}
|
package/dist/miniprogram.js
DELETED
|
@@ -1,311 +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, img, texture;
|
|
265
|
-
return __generator(this, function (_a) {
|
|
266
|
-
switch (_a.label) {
|
|
267
|
-
case 0:
|
|
268
|
-
_a.trys.push([0, 2,, 3]);
|
|
269
|
-
|
|
270
|
-
return [4, resource.getResource(component.resource)];
|
|
271
|
-
|
|
272
|
-
case 1:
|
|
273
|
-
res = _a.sent();
|
|
274
|
-
return [3, 3];
|
|
275
|
-
|
|
276
|
-
case 2:
|
|
277
|
-
_a.sent();
|
|
278
|
-
|
|
279
|
-
throw new Error('mask resource load error');
|
|
280
|
-
|
|
281
|
-
case 3:
|
|
282
|
-
if (component.type === MASK_TYPE.Sprite) {
|
|
283
|
-
img = component.resource + resourceKeySplit + component.spriteName;
|
|
284
|
-
texture = res.instance[img];
|
|
285
|
-
sprite.image = texture;
|
|
286
|
-
} else {
|
|
287
|
-
sprite.image = res.data.image;
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
sprite.sprite.width = component.style.width;
|
|
291
|
-
sprite.sprite.height = component.style.height;
|
|
292
|
-
sprite.sprite.position.x = component.style.x;
|
|
293
|
-
sprite.sprite.position.y = component.style.y;
|
|
294
|
-
return [2];
|
|
295
|
-
}
|
|
296
|
-
});
|
|
297
|
-
});
|
|
298
|
-
};
|
|
299
|
-
|
|
300
|
-
Mask.systemName = 'Mask';
|
|
301
|
-
Mask = __decorate([decorators.componentObserver({
|
|
302
|
-
Mask: ['type', {
|
|
303
|
-
prop: ['style'],
|
|
304
|
-
deep: true
|
|
305
|
-
}, 'resource', 'spriteName']
|
|
306
|
-
})], Mask);
|
|
307
|
-
return Mask;
|
|
308
|
-
}(Renderer);
|
|
309
|
-
|
|
310
|
-
var Mask$1 = Mask;
|
|
311
|
-
export { MASK_TYPE$1 as MASK_TYPE, Mask$3 as Mask, Mask$1 as MaskSystem };
|