@eva/plugin-renderer-mask 1.3.0-alpha.1 → 2.0.0-beta.1
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 +93 -200
- package/dist/EVA.plugin.renderer.mask.min.js +1 -1
- package/dist/plugin-renderer-mask.cjs.js +12 -9
- package/dist/plugin-renderer-mask.cjs.prod.js +1 -1
- package/dist/plugin-renderer-mask.d.ts +3 -3
- package/dist/plugin-renderer-mask.esm.js +12 -9
- package/package.json +5 -5
|
@@ -1,53 +1,39 @@
|
|
|
1
|
-
function _extends() { _extends = Object.assign
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
this.EVA.plugin.renderer.mask = function (exports, eva_js, pluginRenderer, rendererAdapter) {
|
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
+
window.EVA = window.EVA || {};
|
|
3
|
+
window.EVA.plugin = window.EVA.plugin || {};
|
|
4
|
+
window.EVA.plugin.renderer = window.EVA.plugin.renderer || {};
|
|
5
|
+
var _EVA_IIFE_mask = function (exports, eva_js, pluginRenderer, rendererAdapter) {
|
|
8
6
|
'use strict';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
_extendStatics = Object.setPrototypeOf || {
|
|
7
|
+
var extendStatics = function (d, b) {
|
|
8
|
+
extendStatics = Object.setPrototypeOf || {
|
|
12
9
|
__proto__: []
|
|
13
10
|
} instanceof Array && function (d, b) {
|
|
14
11
|
d.__proto__ = b;
|
|
15
12
|
} || function (d, b) {
|
|
16
|
-
for (var p in b)
|
|
17
|
-
if (b.hasOwnProperty(p)) d[p] = b[p];
|
|
18
|
-
}
|
|
13
|
+
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
|
|
19
14
|
};
|
|
20
|
-
|
|
21
|
-
return _extendStatics(d, b);
|
|
15
|
+
return extendStatics(d, b);
|
|
22
16
|
};
|
|
23
|
-
|
|
24
17
|
function __extends(d, b) {
|
|
25
|
-
|
|
26
|
-
|
|
18
|
+
extendStatics(d, b);
|
|
27
19
|
function __() {
|
|
28
20
|
this.constructor = d;
|
|
29
21
|
}
|
|
30
|
-
|
|
31
22
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
32
23
|
}
|
|
33
|
-
|
|
34
24
|
function __decorate(decorators, target, key, desc) {
|
|
35
25
|
var c = arguments.length,
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--)
|
|
39
|
-
if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
40
|
-
}
|
|
26
|
+
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
|
27
|
+
d;
|
|
28
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
41
29
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
42
30
|
}
|
|
43
|
-
|
|
44
31
|
function __awaiter(thisArg, _arguments, P, generator) {
|
|
45
32
|
function adopt(value) {
|
|
46
33
|
return value instanceof P ? value : new P(function (resolve) {
|
|
47
34
|
resolve(value);
|
|
48
35
|
});
|
|
49
36
|
}
|
|
50
|
-
|
|
51
37
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
52
38
|
function fulfilled(value) {
|
|
53
39
|
try {
|
|
@@ -56,7 +42,6 @@ this.EVA.plugin.renderer.mask = function (exports, eva_js, pluginRenderer, rende
|
|
|
56
42
|
reject(e);
|
|
57
43
|
}
|
|
58
44
|
}
|
|
59
|
-
|
|
60
45
|
function rejected(value) {
|
|
61
46
|
try {
|
|
62
47
|
step(generator["throw"](value));
|
|
@@ -64,29 +49,26 @@ this.EVA.plugin.renderer.mask = function (exports, eva_js, pluginRenderer, rende
|
|
|
64
49
|
reject(e);
|
|
65
50
|
}
|
|
66
51
|
}
|
|
67
|
-
|
|
68
52
|
function step(result) {
|
|
69
53
|
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
70
54
|
}
|
|
71
|
-
|
|
72
55
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
73
56
|
});
|
|
74
57
|
}
|
|
75
|
-
|
|
76
58
|
function __generator(thisArg, body) {
|
|
77
59
|
var _ = {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
60
|
+
label: 0,
|
|
61
|
+
sent: function () {
|
|
62
|
+
if (t[0] & 1) throw t[1];
|
|
63
|
+
return t[1];
|
|
64
|
+
},
|
|
65
|
+
trys: [],
|
|
66
|
+
ops: []
|
|
82
67
|
},
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
y,
|
|
88
|
-
t,
|
|
89
|
-
g;
|
|
68
|
+
f,
|
|
69
|
+
y,
|
|
70
|
+
t,
|
|
71
|
+
g;
|
|
90
72
|
return g = {
|
|
91
73
|
next: verb(0),
|
|
92
74
|
"throw": verb(1),
|
|
@@ -94,88 +76,66 @@ this.EVA.plugin.renderer.mask = function (exports, eva_js, pluginRenderer, rende
|
|
|
94
76
|
}, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
|
|
95
77
|
return this;
|
|
96
78
|
}), g;
|
|
97
|
-
|
|
98
79
|
function verb(n) {
|
|
99
80
|
return function (v) {
|
|
100
81
|
return step([n, v]);
|
|
101
82
|
};
|
|
102
83
|
}
|
|
103
|
-
|
|
104
84
|
function step(op) {
|
|
105
85
|
if (f) throw new TypeError("Generator is already executing.");
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
86
|
+
while (_) try {
|
|
87
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
88
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
89
|
+
switch (op[0]) {
|
|
90
|
+
case 0:
|
|
91
|
+
case 1:
|
|
92
|
+
t = op;
|
|
93
|
+
break;
|
|
94
|
+
case 4:
|
|
95
|
+
_.label++;
|
|
96
|
+
return {
|
|
97
|
+
value: op[1],
|
|
98
|
+
done: false
|
|
99
|
+
};
|
|
100
|
+
case 5:
|
|
101
|
+
_.label++;
|
|
102
|
+
y = op[1];
|
|
103
|
+
op = [0];
|
|
104
|
+
continue;
|
|
105
|
+
case 7:
|
|
106
|
+
op = _.ops.pop();
|
|
107
|
+
_.trys.pop();
|
|
108
|
+
continue;
|
|
109
|
+
default:
|
|
110
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
111
|
+
_ = 0;
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
115
|
+
_.label = op[1];
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
118
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
119
|
+
_.label = t[1];
|
|
115
120
|
t = op;
|
|
116
121
|
break;
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
_.label
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
_.label++;
|
|
127
|
-
y = op[1];
|
|
128
|
-
op = [0];
|
|
129
|
-
continue;
|
|
130
|
-
|
|
131
|
-
case 7:
|
|
132
|
-
op = _.ops.pop();
|
|
133
|
-
|
|
134
|
-
_.trys.pop();
|
|
135
|
-
|
|
136
|
-
continue;
|
|
137
|
-
|
|
138
|
-
default:
|
|
139
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
140
|
-
_ = 0;
|
|
141
|
-
continue;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
145
|
-
_.label = op[1];
|
|
146
|
-
break;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
if (op[0] === 6 && _.label < t[1]) {
|
|
150
|
-
_.label = t[1];
|
|
151
|
-
t = op;
|
|
152
|
-
break;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
if (t && _.label < t[2]) {
|
|
156
|
-
_.label = t[2];
|
|
157
|
-
|
|
158
|
-
_.ops.push(op);
|
|
159
|
-
|
|
160
|
-
break;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
if (t[2]) _.ops.pop();
|
|
164
|
-
|
|
165
|
-
_.trys.pop();
|
|
166
|
-
|
|
167
|
-
continue;
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
op = body.call(thisArg, _);
|
|
171
|
-
} catch (e) {
|
|
172
|
-
op = [6, e];
|
|
173
|
-
y = 0;
|
|
174
|
-
} finally {
|
|
175
|
-
f = t = 0;
|
|
122
|
+
}
|
|
123
|
+
if (t && _.label < t[2]) {
|
|
124
|
+
_.label = t[2];
|
|
125
|
+
_.ops.push(op);
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
if (t[2]) _.ops.pop();
|
|
129
|
+
_.trys.pop();
|
|
130
|
+
continue;
|
|
176
131
|
}
|
|
132
|
+
op = body.call(thisArg, _);
|
|
133
|
+
} catch (e) {
|
|
134
|
+
op = [6, e];
|
|
135
|
+
y = 0;
|
|
136
|
+
} finally {
|
|
137
|
+
f = t = 0;
|
|
177
138
|
}
|
|
178
|
-
|
|
179
139
|
if (op[0] & 5) throw op[1];
|
|
180
140
|
return {
|
|
181
141
|
value: op[0] ? op[1] : void 0,
|
|
@@ -183,14 +143,13 @@ this.EVA.plugin.renderer.mask = function (exports, eva_js, pluginRenderer, rende
|
|
|
183
143
|
};
|
|
184
144
|
}
|
|
185
145
|
}
|
|
186
|
-
|
|
187
146
|
function __values(o) {
|
|
188
147
|
var s = typeof Symbol === "function" && Symbol.iterator,
|
|
189
|
-
|
|
190
|
-
|
|
148
|
+
m = s && o[s],
|
|
149
|
+
i = 0;
|
|
191
150
|
if (m) return m.call(o);
|
|
192
151
|
if (o && typeof o.length === "number") return {
|
|
193
|
-
next: function
|
|
152
|
+
next: function () {
|
|
194
153
|
if (o && i >= o.length) o = void 0;
|
|
195
154
|
return {
|
|
196
155
|
value: o && o[i++],
|
|
@@ -200,19 +159,15 @@ this.EVA.plugin.renderer.mask = function (exports, eva_js, pluginRenderer, rende
|
|
|
200
159
|
};
|
|
201
160
|
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
202
161
|
}
|
|
203
|
-
|
|
204
162
|
function __read(o, n) {
|
|
205
163
|
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
206
164
|
if (!m) return o;
|
|
207
165
|
var i = m.call(o),
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
166
|
+
r,
|
|
167
|
+
ar = [],
|
|
168
|
+
e;
|
|
212
169
|
try {
|
|
213
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
|
|
214
|
-
ar.push(r.value);
|
|
215
|
-
}
|
|
170
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
216
171
|
} catch (error) {
|
|
217
172
|
e = {
|
|
218
173
|
error: error
|
|
@@ -224,31 +179,22 @@ this.EVA.plugin.renderer.mask = function (exports, eva_js, pluginRenderer, rende
|
|
|
224
179
|
if (e) throw e.error;
|
|
225
180
|
}
|
|
226
181
|
}
|
|
227
|
-
|
|
228
182
|
return ar;
|
|
229
183
|
}
|
|
230
|
-
|
|
231
184
|
function __spread() {
|
|
232
|
-
for (var ar = [], i = 0; i < arguments.length; i++)
|
|
233
|
-
ar = ar.concat(__read(arguments[i]));
|
|
234
|
-
}
|
|
235
|
-
|
|
185
|
+
for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
|
|
236
186
|
return ar;
|
|
237
187
|
}
|
|
238
|
-
|
|
239
188
|
function getIDEPropsPropertyObj(target, propertyKey) {
|
|
240
189
|
if (!target.constructor.IDEProps) {
|
|
241
190
|
target.constructor.IDEProps = {};
|
|
242
191
|
}
|
|
243
|
-
|
|
244
192
|
if (!target.constructor.IDEProps[propertyKey]) {
|
|
245
193
|
target.constructor.IDEProps[propertyKey] = {};
|
|
246
194
|
}
|
|
247
|
-
|
|
248
195
|
var propertyObj = target.constructor.IDEProps[propertyKey];
|
|
249
196
|
return propertyObj;
|
|
250
197
|
}
|
|
251
|
-
|
|
252
198
|
function type(type) {
|
|
253
199
|
return function (target, propertyKey) {
|
|
254
200
|
var prop = getIDEPropsPropertyObj(target, propertyKey);
|
|
@@ -256,9 +202,7 @@ this.EVA.plugin.renderer.mask = function (exports, eva_js, pluginRenderer, rende
|
|
|
256
202
|
prop.type = type;
|
|
257
203
|
};
|
|
258
204
|
}
|
|
259
|
-
|
|
260
205
|
exports.MASK_TYPE = void 0;
|
|
261
|
-
|
|
262
206
|
(function (MASK_TYPE) {
|
|
263
207
|
MASK_TYPE["Circle"] = "Circle";
|
|
264
208
|
MASK_TYPE["Ellipse"] = "Ellipse";
|
|
@@ -268,32 +212,23 @@ this.EVA.plugin.renderer.mask = function (exports, eva_js, pluginRenderer, rende
|
|
|
268
212
|
MASK_TYPE["Img"] = "Img";
|
|
269
213
|
MASK_TYPE["Sprite"] = "Sprite";
|
|
270
214
|
})(exports.MASK_TYPE || (exports.MASK_TYPE = {}));
|
|
271
|
-
|
|
272
215
|
var Mask$2 = function (_super) {
|
|
273
216
|
__extends(Mask, _super);
|
|
274
|
-
|
|
275
217
|
function Mask() {
|
|
276
218
|
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
277
|
-
|
|
278
219
|
_this.style = {};
|
|
279
220
|
_this.resource = '';
|
|
280
221
|
_this.spriteName = '';
|
|
281
222
|
return _this;
|
|
282
223
|
}
|
|
283
|
-
|
|
284
224
|
Mask.prototype.init = function (obj) {
|
|
285
225
|
_extends(this, obj);
|
|
286
226
|
};
|
|
287
|
-
|
|
288
227
|
Mask.componentName = 'Mask';
|
|
289
|
-
|
|
290
228
|
__decorate([type('string')], Mask.prototype, "resource", void 0);
|
|
291
|
-
|
|
292
229
|
__decorate([type('string')], Mask.prototype, "spriteName", void 0);
|
|
293
|
-
|
|
294
230
|
return Mask;
|
|
295
231
|
}(eva_js.Component);
|
|
296
|
-
|
|
297
232
|
var Mask$3 = Mask$2;
|
|
298
233
|
var resourceKeySplit = '_s|r|c_';
|
|
299
234
|
var propertyForGraphics = {
|
|
@@ -304,14 +239,13 @@ this.EVA.plugin.renderer.mask = function (exports, eva_js, pluginRenderer, rende
|
|
|
304
239
|
Polygon: ['paths']
|
|
305
240
|
};
|
|
306
241
|
var functionForGraphics = {
|
|
307
|
-
Circle: '
|
|
308
|
-
Ellipse: '
|
|
309
|
-
Rect: '
|
|
310
|
-
RoundedRect: '
|
|
311
|
-
Polygon: '
|
|
242
|
+
Circle: 'circle',
|
|
243
|
+
Ellipse: 'ellipse',
|
|
244
|
+
Rect: 'rect',
|
|
245
|
+
RoundedRect: 'roundRect',
|
|
246
|
+
Polygon: 'poly'
|
|
312
247
|
};
|
|
313
248
|
var MASK_TYPE;
|
|
314
|
-
|
|
315
249
|
(function (MASK_TYPE) {
|
|
316
250
|
MASK_TYPE["Circle"] = "Circle";
|
|
317
251
|
MASK_TYPE["Ellipse"] = "Ellipse";
|
|
@@ -321,98 +255,75 @@ this.EVA.plugin.renderer.mask = function (exports, eva_js, pluginRenderer, rende
|
|
|
321
255
|
MASK_TYPE["Img"] = "Img";
|
|
322
256
|
MASK_TYPE["Sprite"] = "Sprite";
|
|
323
257
|
})(MASK_TYPE || (MASK_TYPE = {}));
|
|
324
|
-
|
|
325
258
|
var Mask = function (_super) {
|
|
326
259
|
__extends(Mask, _super);
|
|
327
|
-
|
|
328
260
|
function Mask() {
|
|
329
261
|
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
330
|
-
|
|
331
262
|
_this.name = 'Mask';
|
|
332
263
|
_this.changedCache = {};
|
|
333
264
|
_this.maskSpriteCache = {};
|
|
334
265
|
return _this;
|
|
335
266
|
}
|
|
336
|
-
|
|
337
267
|
Mask.prototype.init = function () {
|
|
338
268
|
this.renderSystem = this.game.getSystem(pluginRenderer.RendererSystem);
|
|
339
269
|
this.renderSystem.rendererManager.register(this);
|
|
340
270
|
};
|
|
341
|
-
|
|
342
271
|
Mask.prototype.rendererUpdate = function () {
|
|
343
272
|
this.changedCache = {};
|
|
344
273
|
};
|
|
345
|
-
|
|
346
274
|
Mask.prototype.componentChanged = function (changed) {
|
|
347
275
|
if (changed.component.name !== 'Mask') return;
|
|
348
|
-
|
|
349
276
|
switch (changed.type) {
|
|
350
277
|
case eva_js.OBSERVER_TYPE.ADD:
|
|
351
278
|
this.add(changed);
|
|
352
279
|
break;
|
|
353
|
-
|
|
354
280
|
case eva_js.OBSERVER_TYPE.REMOVE:
|
|
355
281
|
this.remove(changed);
|
|
356
282
|
break;
|
|
357
|
-
|
|
358
283
|
case eva_js.OBSERVER_TYPE.CHANGE:
|
|
359
284
|
this.change(changed);
|
|
360
285
|
break;
|
|
361
286
|
}
|
|
362
287
|
};
|
|
363
|
-
|
|
364
288
|
Mask.prototype.add = function (changed) {
|
|
365
289
|
var component = changed.component;
|
|
366
|
-
|
|
367
290
|
if (!(component.type in MASK_TYPE)) {
|
|
368
291
|
throw new Error('no have Mask type: ' + component.type);
|
|
369
292
|
}
|
|
370
|
-
|
|
371
293
|
if (!component.style) {
|
|
372
294
|
throw new Error('no have Mask style: ' + component.type);
|
|
373
295
|
}
|
|
374
|
-
|
|
375
296
|
var mask;
|
|
376
|
-
|
|
377
297
|
switch (component.type) {
|
|
378
298
|
case MASK_TYPE.Circle:
|
|
379
299
|
mask = this.createGraphics(component);
|
|
380
300
|
break;
|
|
381
|
-
|
|
382
301
|
case MASK_TYPE.Ellipse:
|
|
383
302
|
mask = this.createGraphics(component);
|
|
384
303
|
break;
|
|
385
|
-
|
|
386
304
|
case MASK_TYPE.Rect:
|
|
387
305
|
mask = this.createGraphics(component);
|
|
388
306
|
break;
|
|
389
|
-
|
|
390
307
|
case MASK_TYPE.RoundedRect:
|
|
391
308
|
mask = this.createGraphics(component);
|
|
392
309
|
break;
|
|
393
|
-
|
|
394
310
|
case MASK_TYPE.Polygon:
|
|
395
311
|
mask = this.createGraphics(component);
|
|
396
312
|
break;
|
|
397
|
-
|
|
398
313
|
case MASK_TYPE.Img:
|
|
399
314
|
mask = this.createSprite(component);
|
|
400
315
|
break;
|
|
401
|
-
|
|
402
316
|
case MASK_TYPE.Sprite:
|
|
403
317
|
mask = this.createSprite(component);
|
|
404
318
|
break;
|
|
405
319
|
}
|
|
406
|
-
|
|
407
320
|
if (!mask) {
|
|
408
321
|
throw new Error('no have mask instance, check your mask params: ' + component.type);
|
|
409
322
|
}
|
|
410
|
-
|
|
411
323
|
var container = this.containerManager.getContainer(changed.gameObject.id);
|
|
412
324
|
container.mask = mask;
|
|
413
325
|
container.addChild(mask);
|
|
414
326
|
};
|
|
415
|
-
|
|
416
327
|
Mask.prototype.remove = function (changed) {
|
|
417
328
|
var container = this.containerManager.getContainer(changed.gameObject.id);
|
|
418
329
|
container.removeChild(container.mask);
|
|
@@ -422,17 +333,15 @@ this.EVA.plugin.renderer.mask = function (exports, eva_js, pluginRenderer, rende
|
|
|
422
333
|
container.mask = null;
|
|
423
334
|
delete this.maskSpriteCache[changed.gameObject.id];
|
|
424
335
|
};
|
|
425
|
-
|
|
426
336
|
Mask.prototype.change = function (changed) {
|
|
427
337
|
if (this.changedCache[changed.gameObject.id]) return;
|
|
428
338
|
var component = changed.component;
|
|
429
|
-
|
|
430
339
|
if (changed.prop.prop[0] === 'type') {
|
|
431
340
|
this.changedCache[changed.gameObject.id] = true;
|
|
432
|
-
|
|
433
|
-
if ([MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1) {
|
|
341
|
+
if ([MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1 || component._lastType !== component.type) {
|
|
434
342
|
this.remove(changed);
|
|
435
343
|
this.add(changed);
|
|
344
|
+
component._lastType = component.type;
|
|
436
345
|
} else {
|
|
437
346
|
this.redrawGraphics(changed);
|
|
438
347
|
}
|
|
@@ -450,25 +359,20 @@ this.EVA.plugin.renderer.mask = function (exports, eva_js, pluginRenderer, rende
|
|
|
450
359
|
this.changeSprite(component);
|
|
451
360
|
}
|
|
452
361
|
};
|
|
453
|
-
|
|
454
362
|
Mask.prototype.createGraphics = function (component) {
|
|
455
363
|
var graphics = new rendererAdapter.Graphics();
|
|
456
364
|
this.draw(graphics, component);
|
|
457
365
|
return graphics;
|
|
458
366
|
};
|
|
459
|
-
|
|
460
367
|
Mask.prototype.redrawGraphics = function (changed) {
|
|
461
368
|
var container = this.containerManager.getContainer(changed.gameObject.id);
|
|
462
369
|
var graphics = container.mask;
|
|
463
370
|
graphics.clear();
|
|
464
371
|
this.draw(graphics, changed.component);
|
|
465
372
|
};
|
|
466
|
-
|
|
467
373
|
Mask.prototype.draw = function (graphics, component) {
|
|
468
374
|
var e_1, _a;
|
|
469
|
-
|
|
470
375
|
var params = [];
|
|
471
|
-
|
|
472
376
|
try {
|
|
473
377
|
for (var _b = __values(propertyForGraphics[component.type]), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
474
378
|
var key = _c.value;
|
|
@@ -485,19 +389,15 @@ this.EVA.plugin.renderer.mask = function (exports, eva_js, pluginRenderer, rende
|
|
|
485
389
|
if (e_1) throw e_1.error;
|
|
486
390
|
}
|
|
487
391
|
}
|
|
488
|
-
|
|
489
|
-
graphics.beginFill(0x000000, 1);
|
|
490
392
|
graphics[functionForGraphics[component.type]].apply(graphics, __spread(params));
|
|
491
|
-
graphics.
|
|
393
|
+
graphics.fill(0x000000);
|
|
492
394
|
};
|
|
493
|
-
|
|
494
395
|
Mask.prototype.createSprite = function (component) {
|
|
495
396
|
var sprite = new rendererAdapter.Sprite(null);
|
|
496
397
|
this.maskSpriteCache[component.gameObject.id] = sprite;
|
|
497
398
|
this.setSprite(component, sprite);
|
|
498
399
|
return sprite.sprite;
|
|
499
400
|
};
|
|
500
|
-
|
|
501
401
|
Mask.prototype.changeSpriteStyle = function (component) {
|
|
502
402
|
var sprite = this.maskSpriteCache[component.gameObject.id];
|
|
503
403
|
sprite.sprite.width = component.style.width;
|
|
@@ -505,31 +405,26 @@ this.EVA.plugin.renderer.mask = function (exports, eva_js, pluginRenderer, rende
|
|
|
505
405
|
sprite.sprite.position.x = component.style.x;
|
|
506
406
|
sprite.sprite.position.y = component.style.y;
|
|
507
407
|
};
|
|
508
|
-
|
|
509
408
|
Mask.prototype.changeSprite = function (component) {
|
|
510
409
|
var sprite = this.maskSpriteCache[component.gameObject.id];
|
|
511
410
|
this.setSprite(component, sprite);
|
|
512
411
|
};
|
|
513
|
-
|
|
514
412
|
Mask.prototype.setSprite = function (component, sprite) {
|
|
515
413
|
return __awaiter(this, void 0, void 0, function () {
|
|
516
|
-
var res, img, texture;
|
|
414
|
+
var res, asyncId, img, texture;
|
|
517
415
|
return __generator(this, function (_a) {
|
|
518
416
|
switch (_a.label) {
|
|
519
417
|
case 0:
|
|
520
418
|
_a.trys.push([0, 2,, 3]);
|
|
521
|
-
|
|
419
|
+
asyncId = this.increaseAsyncId(component.gameObject.id);
|
|
522
420
|
return [4, eva_js.resource.getResource(component.resource)];
|
|
523
|
-
|
|
524
421
|
case 1:
|
|
525
422
|
res = _a.sent();
|
|
423
|
+
if (!this.validateAsyncId(component.gameObject.id, asyncId)) return [2];
|
|
526
424
|
return [3, 3];
|
|
527
|
-
|
|
528
425
|
case 2:
|
|
529
426
|
_a.sent();
|
|
530
|
-
|
|
531
427
|
throw new Error('mask resource load error');
|
|
532
|
-
|
|
533
428
|
case 3:
|
|
534
429
|
if (component.type === MASK_TYPE.Sprite) {
|
|
535
430
|
img = component.resource + resourceKeySplit + component.spriteName;
|
|
@@ -538,7 +433,6 @@ this.EVA.plugin.renderer.mask = function (exports, eva_js, pluginRenderer, rende
|
|
|
538
433
|
} else {
|
|
539
434
|
sprite.image = res.data.image;
|
|
540
435
|
}
|
|
541
|
-
|
|
542
436
|
sprite.sprite.width = component.style.width;
|
|
543
437
|
sprite.sprite.height = component.style.height;
|
|
544
438
|
sprite.sprite.position.x = component.style.x;
|
|
@@ -548,7 +442,6 @@ this.EVA.plugin.renderer.mask = function (exports, eva_js, pluginRenderer, rende
|
|
|
548
442
|
});
|
|
549
443
|
});
|
|
550
444
|
};
|
|
551
|
-
|
|
552
445
|
Mask.systemName = 'Mask';
|
|
553
446
|
Mask = __decorate([eva_js.decorators.componentObserver({
|
|
554
447
|
Mask: ['type', {
|
|
@@ -558,7 +451,6 @@ this.EVA.plugin.renderer.mask = function (exports, eva_js, pluginRenderer, rende
|
|
|
558
451
|
})], Mask);
|
|
559
452
|
return Mask;
|
|
560
453
|
}(pluginRenderer.Renderer);
|
|
561
|
-
|
|
562
454
|
var Mask$1 = Mask;
|
|
563
455
|
exports.Mask = Mask$3;
|
|
564
456
|
exports.MaskSystem = Mask$1;
|
|
@@ -567,3 +459,4 @@ this.EVA.plugin.renderer.mask = function (exports, eva_js, pluginRenderer, rende
|
|
|
567
459
|
});
|
|
568
460
|
return exports;
|
|
569
461
|
}({}, EVA, EVA.plugin.renderer, EVA.rendererAdapter);
|
|
462
|
+
window.EVA.plugin.renderer.mask = window.EVA.plugin.renderer.mask || _EVA_IIFE_mask;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function _extends(){return
|
|
1
|
+
function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},_extends.apply(null,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])},o(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),y=h,d={Circle:["x","y","radius"],Ellipse:["x","y","width","height"],Rect:["x","y","width","height"],RoundedRect:["x","y","width","height","radius"],Polygon:["paths"]},f={Circle:"circle",Ellipse:"ellipse",Rect:"rect",RoundedRect:"roundRect",Polygon:"poly"};!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 g=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||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))}},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[f[t.type]].apply(e,function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(p(arguments[t]));return e}(o)),e.fill(0)},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),m=g;return e.Mask=y,e.MaskSystem=m,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;
|
|
@@ -156,11 +156,11 @@ var propertyForGraphics = {
|
|
|
156
156
|
Polygon: ['paths'],
|
|
157
157
|
};
|
|
158
158
|
var functionForGraphics = {
|
|
159
|
-
Circle: '
|
|
160
|
-
Ellipse: '
|
|
161
|
-
Rect: '
|
|
162
|
-
RoundedRect: '
|
|
163
|
-
Polygon: '
|
|
159
|
+
Circle: 'circle',
|
|
160
|
+
Ellipse: 'ellipse',
|
|
161
|
+
Rect: 'rect',
|
|
162
|
+
RoundedRect: 'roundRect',
|
|
163
|
+
Polygon: 'poly',
|
|
164
164
|
};
|
|
165
165
|
var MASK_TYPE;
|
|
166
166
|
(function (MASK_TYPE) {
|
|
@@ -255,9 +255,10 @@ var Mask = (function (_super) {
|
|
|
255
255
|
var component = changed.component;
|
|
256
256
|
if (changed.prop.prop[0] === 'type') {
|
|
257
257
|
this.changedCache[changed.gameObject.id] = true;
|
|
258
|
-
if ([MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1) {
|
|
258
|
+
if ([MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1 || component._lastType !== component.type) {
|
|
259
259
|
this.remove(changed);
|
|
260
260
|
this.add(changed);
|
|
261
|
+
component._lastType = component.type;
|
|
261
262
|
}
|
|
262
263
|
else {
|
|
263
264
|
this.redrawGraphics(changed);
|
|
@@ -307,9 +308,8 @@ var Mask = (function (_super) {
|
|
|
307
308
|
}
|
|
308
309
|
finally { if (e_1) throw e_1.error; }
|
|
309
310
|
}
|
|
310
|
-
graphics.beginFill(0x000000, 1);
|
|
311
311
|
graphics[functionForGraphics[component.type]].apply(graphics, __spread(params));
|
|
312
|
-
graphics.
|
|
312
|
+
graphics.fill(0x000000);
|
|
313
313
|
};
|
|
314
314
|
Mask.prototype.createSprite = function (component) {
|
|
315
315
|
var sprite = new rendererAdapter.Sprite(null);
|
|
@@ -330,14 +330,17 @@ var Mask = (function (_super) {
|
|
|
330
330
|
};
|
|
331
331
|
Mask.prototype.setSprite = function (component, sprite) {
|
|
332
332
|
return __awaiter(this, void 0, void 0, function () {
|
|
333
|
-
var res, img, texture;
|
|
333
|
+
var res, asyncId, img, texture;
|
|
334
334
|
return __generator(this, function (_a) {
|
|
335
335
|
switch (_a.label) {
|
|
336
336
|
case 0:
|
|
337
337
|
_a.trys.push([0, 2, , 3]);
|
|
338
|
+
asyncId = this.increaseAsyncId(component.gameObject.id);
|
|
338
339
|
return [4, eva_js.resource.getResource(component.resource)];
|
|
339
340
|
case 1:
|
|
340
341
|
res = _a.sent();
|
|
342
|
+
if (!this.validateAsyncId(component.gameObject.id, asyncId))
|
|
343
|
+
return [2];
|
|
341
344
|
return [3, 3];
|
|
342
345
|
case 2:
|
|
343
346
|
_a.sent();
|
|
@@ -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
|
|
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])},o(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=l,u={Circle:["x","y","radius"],Ellipse:["x","y","width","height"],Rect:["x","y","width","height"],RoundedRect:["x","y","width","height","radius"],Polygon:["paths"]},y={Circle:"circle",Ellipse:"ellipse",Rect:"rect",RoundedRect:"roundRect",Polygon:"poly"};!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 d=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||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))}},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}}}}(u[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[y[t.type]].apply(e,function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(s(arguments[t]));return e}(o)),e.fill(0)},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=h,exports.MaskSystem=d;
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
/// <reference types="pixi.js" />
|
|
2
|
-
|
|
3
1
|
import { Component } from '@eva/eva.js';
|
|
4
2
|
import { ComponentChanged } from '@eva/eva.js';
|
|
5
3
|
import { ContainerManager } from '@eva/plugin-renderer';
|
|
@@ -8,9 +6,11 @@ import { Renderer } from '@eva/plugin-renderer';
|
|
|
8
6
|
import { RendererManager } from '@eva/plugin-renderer';
|
|
9
7
|
import { RendererSystem } from '@eva/plugin-renderer';
|
|
10
8
|
import { Sprite } from '@eva/renderer-adapter';
|
|
9
|
+
import type { Sprite as Sprite_2 } from 'pixi.js';
|
|
11
10
|
|
|
12
11
|
export declare class Mask extends Component<MaskParams> {
|
|
13
12
|
static componentName: string;
|
|
13
|
+
_lastType: MaskParams['type'];
|
|
14
14
|
type: MaskParams['type'];
|
|
15
15
|
style?: MaskParams['style'];
|
|
16
16
|
resource?: string;
|
|
@@ -63,7 +63,7 @@ export declare class MaskSystem extends Renderer {
|
|
|
63
63
|
createGraphics(component: Mask): Graphics;
|
|
64
64
|
redrawGraphics(changed: any): void;
|
|
65
65
|
draw(graphics: any, component: any): void;
|
|
66
|
-
createSprite(component: Mask):
|
|
66
|
+
createSprite(component: Mask): Sprite_2;
|
|
67
67
|
changeSpriteStyle(component: Mask): void;
|
|
68
68
|
changeSprite(component: Mask): void;
|
|
69
69
|
setSprite(component: Mask, sprite: any): Promise<void>;
|
|
@@ -152,11 +152,11 @@ var propertyForGraphics = {
|
|
|
152
152
|
Polygon: ['paths'],
|
|
153
153
|
};
|
|
154
154
|
var functionForGraphics = {
|
|
155
|
-
Circle: '
|
|
156
|
-
Ellipse: '
|
|
157
|
-
Rect: '
|
|
158
|
-
RoundedRect: '
|
|
159
|
-
Polygon: '
|
|
155
|
+
Circle: 'circle',
|
|
156
|
+
Ellipse: 'ellipse',
|
|
157
|
+
Rect: 'rect',
|
|
158
|
+
RoundedRect: 'roundRect',
|
|
159
|
+
Polygon: 'poly',
|
|
160
160
|
};
|
|
161
161
|
var MASK_TYPE;
|
|
162
162
|
(function (MASK_TYPE) {
|
|
@@ -251,9 +251,10 @@ var Mask = (function (_super) {
|
|
|
251
251
|
var component = changed.component;
|
|
252
252
|
if (changed.prop.prop[0] === 'type') {
|
|
253
253
|
this.changedCache[changed.gameObject.id] = true;
|
|
254
|
-
if ([MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1) {
|
|
254
|
+
if ([MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1 || component._lastType !== component.type) {
|
|
255
255
|
this.remove(changed);
|
|
256
256
|
this.add(changed);
|
|
257
|
+
component._lastType = component.type;
|
|
257
258
|
}
|
|
258
259
|
else {
|
|
259
260
|
this.redrawGraphics(changed);
|
|
@@ -303,9 +304,8 @@ var Mask = (function (_super) {
|
|
|
303
304
|
}
|
|
304
305
|
finally { if (e_1) throw e_1.error; }
|
|
305
306
|
}
|
|
306
|
-
graphics.beginFill(0x000000, 1);
|
|
307
307
|
graphics[functionForGraphics[component.type]].apply(graphics, __spread(params));
|
|
308
|
-
graphics.
|
|
308
|
+
graphics.fill(0x000000);
|
|
309
309
|
};
|
|
310
310
|
Mask.prototype.createSprite = function (component) {
|
|
311
311
|
var sprite = new Sprite(null);
|
|
@@ -326,14 +326,17 @@ var Mask = (function (_super) {
|
|
|
326
326
|
};
|
|
327
327
|
Mask.prototype.setSprite = function (component, sprite) {
|
|
328
328
|
return __awaiter(this, void 0, void 0, function () {
|
|
329
|
-
var res, img, texture;
|
|
329
|
+
var res, asyncId, img, texture;
|
|
330
330
|
return __generator(this, function (_a) {
|
|
331
331
|
switch (_a.label) {
|
|
332
332
|
case 0:
|
|
333
333
|
_a.trys.push([0, 2, , 3]);
|
|
334
|
+
asyncId = this.increaseAsyncId(component.gameObject.id);
|
|
334
335
|
return [4, resource.getResource(component.resource)];
|
|
335
336
|
case 1:
|
|
336
337
|
res = _a.sent();
|
|
338
|
+
if (!this.validateAsyncId(component.gameObject.id, asyncId))
|
|
339
|
+
return [2];
|
|
337
340
|
return [3, 3];
|
|
338
341
|
case 2:
|
|
339
342
|
_a.sent();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eva/plugin-renderer-mask",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0-beta.1",
|
|
4
4
|
"description": "@eva/plugin-renderer-mask",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"module": "dist/plugin-renderer-mask.esm.js",
|
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
"homepage": "https://eva.js.org",
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@eva/inspector-decorator": "^0.0.5",
|
|
22
|
-
"@eva/plugin-renderer": "
|
|
23
|
-
"@eva/renderer-adapter": "
|
|
24
|
-
"@eva/eva.js": "
|
|
25
|
-
"pixi.js": "^
|
|
22
|
+
"@eva/plugin-renderer": "2.0.0-beta.1",
|
|
23
|
+
"@eva/renderer-adapter": "2.0.0-beta.1",
|
|
24
|
+
"@eva/eva.js": "2.0.0-beta.1",
|
|
25
|
+
"pixi.js": "^8.6.3"
|
|
26
26
|
}
|
|
27
27
|
}
|