@combos-fun/plugin-renderer-mask 0.0.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/README.md +3 -0
- package/dist/plugin-renderer-mask.cjs.js +243 -0
- package/dist/plugin-renderer-mask.cjs.js.map +1 -0
- package/dist/plugin-renderer-mask.cjs.prod.js +1 -0
- package/dist/plugin-renderer-mask.d.ts +66 -0
- package/dist/plugin-renderer-mask.esm.js +240 -0
- package/dist/plugin-renderer-mask.esm.js.map +1 -0
- package/index.js +7 -0
- package/package.json +29 -0
package/README.md
ADDED
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var tslib = require('tslib');
|
|
4
|
+
var engine = require('@combos-fun/engine');
|
|
5
|
+
var inspectorDecorator = require('@combos-fun/inspector-decorator');
|
|
6
|
+
var pluginRenderer = require('@combos-fun/plugin-renderer');
|
|
7
|
+
var rendererAdapter = require('@combos-fun/renderer-adapter');
|
|
8
|
+
|
|
9
|
+
exports.MASK_TYPE = void 0;
|
|
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
|
+
})(exports.MASK_TYPE || (exports.MASK_TYPE = {}));
|
|
19
|
+
let Mask$1 = class Mask extends engine.Component {
|
|
20
|
+
constructor() {
|
|
21
|
+
super(...arguments);
|
|
22
|
+
// @decorators.IDEProp 复杂编辑后续添加
|
|
23
|
+
this.style = {};
|
|
24
|
+
this.resource = '';
|
|
25
|
+
this.spriteName = '';
|
|
26
|
+
}
|
|
27
|
+
static { this.componentName = 'Mask'; }
|
|
28
|
+
init(obj) {
|
|
29
|
+
Object.assign(this, obj);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
tslib.__decorate([
|
|
33
|
+
inspectorDecorator.type('string')
|
|
34
|
+
], Mask$1.prototype, "resource", void 0);
|
|
35
|
+
tslib.__decorate([
|
|
36
|
+
inspectorDecorator.type('string')
|
|
37
|
+
], Mask$1.prototype, "spriteName", void 0);
|
|
38
|
+
|
|
39
|
+
const resourceKeySplit = '_s|r|c_'; // Notice: This key be created by sprite system.
|
|
40
|
+
const propertyForGraphics = {
|
|
41
|
+
Circle: ['x', 'y', 'radius'],
|
|
42
|
+
Ellipse: ['x', 'y', 'width', 'height'],
|
|
43
|
+
Rect: ['x', 'y', 'width', 'height'],
|
|
44
|
+
RoundedRect: ['x', 'y', 'width', 'height', 'radius'],
|
|
45
|
+
Polygon: ['paths'],
|
|
46
|
+
};
|
|
47
|
+
const functionForGraphics = {
|
|
48
|
+
Circle: 'drawCircle',
|
|
49
|
+
Ellipse: 'drawEllipse',
|
|
50
|
+
Rect: 'drawRect',
|
|
51
|
+
RoundedRect: 'drawRoundedRect',
|
|
52
|
+
Polygon: 'drawPolygon',
|
|
53
|
+
};
|
|
54
|
+
var MASK_TYPE;
|
|
55
|
+
(function (MASK_TYPE) {
|
|
56
|
+
MASK_TYPE["Circle"] = "Circle";
|
|
57
|
+
MASK_TYPE["Ellipse"] = "Ellipse";
|
|
58
|
+
MASK_TYPE["Rect"] = "Rect";
|
|
59
|
+
MASK_TYPE["RoundedRect"] = "RoundedRect";
|
|
60
|
+
MASK_TYPE["Polygon"] = "Polygon";
|
|
61
|
+
MASK_TYPE["Img"] = "Img";
|
|
62
|
+
MASK_TYPE["Sprite"] = "Sprite";
|
|
63
|
+
})(MASK_TYPE || (MASK_TYPE = {}));
|
|
64
|
+
let Mask = class Mask extends pluginRenderer.Renderer {
|
|
65
|
+
constructor() {
|
|
66
|
+
super(...arguments);
|
|
67
|
+
this.name = 'Mask';
|
|
68
|
+
this.changedCache = {};
|
|
69
|
+
this.maskSpriteCache = {};
|
|
70
|
+
}
|
|
71
|
+
static { this.systemName = 'Mask'; }
|
|
72
|
+
init() {
|
|
73
|
+
this.renderSystem = this.game.getSystem(pluginRenderer.RendererSystem);
|
|
74
|
+
this.renderSystem.rendererManager.register(this);
|
|
75
|
+
}
|
|
76
|
+
rendererUpdate() {
|
|
77
|
+
this.changedCache = {};
|
|
78
|
+
}
|
|
79
|
+
componentChanged(changed) {
|
|
80
|
+
if (changed.component.name !== 'Mask')
|
|
81
|
+
return;
|
|
82
|
+
switch (changed.type) {
|
|
83
|
+
case engine.OBSERVER_TYPE.ADD:
|
|
84
|
+
this.add(changed);
|
|
85
|
+
break;
|
|
86
|
+
case engine.OBSERVER_TYPE.REMOVE:
|
|
87
|
+
this.remove(changed);
|
|
88
|
+
break;
|
|
89
|
+
case engine.OBSERVER_TYPE.CHANGE:
|
|
90
|
+
this.change(changed);
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
add(changed) {
|
|
95
|
+
const component = changed.component;
|
|
96
|
+
if (!(component.type in MASK_TYPE)) {
|
|
97
|
+
throw new Error('no have Mask type: ' + component.type);
|
|
98
|
+
}
|
|
99
|
+
if (!component.style) {
|
|
100
|
+
throw new Error('no have Mask style: ' + component.type);
|
|
101
|
+
}
|
|
102
|
+
let mask;
|
|
103
|
+
switch (component.type) {
|
|
104
|
+
case MASK_TYPE.Circle:
|
|
105
|
+
mask = this.createGraphics(component);
|
|
106
|
+
break;
|
|
107
|
+
case MASK_TYPE.Ellipse:
|
|
108
|
+
mask = this.createGraphics(component);
|
|
109
|
+
break;
|
|
110
|
+
case MASK_TYPE.Rect:
|
|
111
|
+
mask = this.createGraphics(component);
|
|
112
|
+
break;
|
|
113
|
+
case MASK_TYPE.RoundedRect:
|
|
114
|
+
mask = this.createGraphics(component);
|
|
115
|
+
break;
|
|
116
|
+
case MASK_TYPE.Polygon:
|
|
117
|
+
mask = this.createGraphics(component);
|
|
118
|
+
break;
|
|
119
|
+
case MASK_TYPE.Img:
|
|
120
|
+
mask = this.createSprite(component);
|
|
121
|
+
break;
|
|
122
|
+
case MASK_TYPE.Sprite:
|
|
123
|
+
mask = this.createSprite(component);
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
if (!mask) {
|
|
127
|
+
throw new Error('no have mask instance, check your mask params: ' + component.type);
|
|
128
|
+
}
|
|
129
|
+
const container = this.containerManager.getContainer(changed.gameObject.id);
|
|
130
|
+
container.mask = mask;
|
|
131
|
+
}
|
|
132
|
+
remove(changed) {
|
|
133
|
+
const container = this.containerManager.getContainer(changed.gameObject.id);
|
|
134
|
+
const maskObj = container.mask;
|
|
135
|
+
container.mask = null;
|
|
136
|
+
maskObj?.destroy({ children: true });
|
|
137
|
+
delete this.maskSpriteCache[changed.gameObject.id];
|
|
138
|
+
}
|
|
139
|
+
change(changed) {
|
|
140
|
+
if (this.changedCache[changed.gameObject.id])
|
|
141
|
+
return;
|
|
142
|
+
const component = changed.component;
|
|
143
|
+
if (changed.prop.prop[0] === 'type') {
|
|
144
|
+
this.changedCache[changed.gameObject.id] = true;
|
|
145
|
+
if ([MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1 ||
|
|
146
|
+
component._lastType !== component.type) {
|
|
147
|
+
this.remove(changed);
|
|
148
|
+
this.add(changed);
|
|
149
|
+
component._lastType = component.type;
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
this.redrawGraphics(changed);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
else if (changed.prop.prop[0] === 'style') {
|
|
156
|
+
if ([MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1) {
|
|
157
|
+
this.changeSpriteStyle(component);
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
this.redrawGraphics(changed);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
else if (changed.prop.prop[0] === 'resource') {
|
|
164
|
+
this.changedCache[changed.gameObject.id] = true;
|
|
165
|
+
this.changeSprite(component);
|
|
166
|
+
}
|
|
167
|
+
else if (changed.prop.prop[0] === 'spriteName') {
|
|
168
|
+
this.changedCache[changed.gameObject.id] = true;
|
|
169
|
+
this.changeSprite(component);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
createGraphics(component) {
|
|
173
|
+
const graphics = new rendererAdapter.Graphics();
|
|
174
|
+
this.draw(graphics, component);
|
|
175
|
+
return graphics;
|
|
176
|
+
}
|
|
177
|
+
redrawGraphics(changed) {
|
|
178
|
+
const container = this.containerManager.getContainer(changed.gameObject.id);
|
|
179
|
+
const graphics = container.mask;
|
|
180
|
+
graphics.clear();
|
|
181
|
+
this.draw(graphics, changed.component);
|
|
182
|
+
}
|
|
183
|
+
draw(graphics, component) {
|
|
184
|
+
const params = [];
|
|
185
|
+
for (const key of propertyForGraphics[component.type]) {
|
|
186
|
+
params.push(component.style[key]);
|
|
187
|
+
}
|
|
188
|
+
graphics.beginFill(0x000000, 1);
|
|
189
|
+
graphics[functionForGraphics[component.type]](...params);
|
|
190
|
+
graphics.endFill();
|
|
191
|
+
}
|
|
192
|
+
createSprite(component) {
|
|
193
|
+
const sprite = new rendererAdapter.Sprite(null);
|
|
194
|
+
this.maskSpriteCache[component.gameObject.id] = sprite;
|
|
195
|
+
this.setSprite(component, sprite);
|
|
196
|
+
return sprite.sprite;
|
|
197
|
+
}
|
|
198
|
+
changeSpriteStyle(component) {
|
|
199
|
+
const sprite = this.maskSpriteCache[component.gameObject.id];
|
|
200
|
+
sprite.sprite.width = component.style.width;
|
|
201
|
+
sprite.sprite.height = component.style.height;
|
|
202
|
+
sprite.sprite.position.x = component.style.x;
|
|
203
|
+
sprite.sprite.position.y = component.style.y;
|
|
204
|
+
}
|
|
205
|
+
changeSprite(component) {
|
|
206
|
+
const sprite = this.maskSpriteCache[component.gameObject.id];
|
|
207
|
+
this.setSprite(component, sprite);
|
|
208
|
+
}
|
|
209
|
+
async setSprite(component, sprite) {
|
|
210
|
+
let res;
|
|
211
|
+
try {
|
|
212
|
+
const asyncId = this.increaseAsyncId(component.gameObject.id);
|
|
213
|
+
res = await engine.resource.getResource(component.resource);
|
|
214
|
+
if (!this.validateAsyncId(component.gameObject.id, asyncId))
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
catch (e) {
|
|
218
|
+
throw new Error('mask resource load error');
|
|
219
|
+
}
|
|
220
|
+
if (component.type === MASK_TYPE.Sprite) {
|
|
221
|
+
const img = component.resource + resourceKeySplit + component.spriteName;
|
|
222
|
+
const texture = res.instance[img];
|
|
223
|
+
sprite.image = texture;
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
sprite.image = res.data.image;
|
|
227
|
+
}
|
|
228
|
+
sprite.sprite.width = component.style.width;
|
|
229
|
+
sprite.sprite.height = component.style.height;
|
|
230
|
+
sprite.sprite.position.x = component.style.x;
|
|
231
|
+
sprite.sprite.position.y = component.style.y;
|
|
232
|
+
}
|
|
233
|
+
};
|
|
234
|
+
Mask = tslib.__decorate([
|
|
235
|
+
engine.decorators.componentObserver({
|
|
236
|
+
Mask: ['type', { prop: ['style'], deep: true }, 'resource', 'spriteName'],
|
|
237
|
+
})
|
|
238
|
+
], Mask);
|
|
239
|
+
var Mask_default = Mask;
|
|
240
|
+
|
|
241
|
+
exports.Mask = Mask$1;
|
|
242
|
+
exports.MaskSystem = Mask_default;
|
|
243
|
+
//# sourceMappingURL=plugin-renderer-mask.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-renderer-mask.cjs.js","sources":["../lib/component.ts","../lib/system.ts"],"sourcesContent":["import { Component } from '@combos-fun/engine';\nimport {type } from '@combos-fun/inspector-decorator'\n\nexport enum MASK_TYPE {\n Circle = 'Circle',\n Ellipse = 'Ellipse',\n Rect = 'Rect',\n RoundedRect = 'RoundedRect',\n Polygon = 'Polygon',\n Img = 'Img',\n Sprite = 'Sprite',\n}\n\nexport interface MaskParams {\n type: MASK_TYPE;\n style?: {\n x?: number;\n y?: number;\n radius?: number;\n width?: number;\n height?: number;\n paths?: number[];\n };\n resource?: string;\n spriteName?: string;\n}\n\nexport default class Mask extends Component<MaskParams> {\n static componentName: string = 'Mask';\n _lastType: MaskParams['type'];\n // @decorators.IDEProp 复杂编辑后续添加\n type: MaskParams['type'];\n // @decorators.IDEProp 复杂编辑后续添加\n style?: MaskParams['style'] = {};\n @type('string') resource?: string = '';\n @type('string') spriteName?: string = '';\n\n init(obj?: MaskParams) {\n Object.assign(this, obj);\n }\n}\n","import { decorators, resource, ComponentChanged, OBSERVER_TYPE } from '@combos-fun/engine';\nimport { Renderer, RendererManager, ContainerManager, RendererSystem } from '@combos-fun/plugin-renderer';\nimport { Sprite as SpriteEngine, Graphics } from '@combos-fun/renderer-adapter';\nimport type { Container as PixiContainer } from 'pixi.js';\nimport MaskComponent from './component';\n\nconst resourceKeySplit = '_s|r|c_'; // Notice: This key be created by sprite system.\n\nconst propertyForGraphics = {\n Circle: ['x', 'y', 'radius'],\n Ellipse: ['x', 'y', 'width', 'height'],\n Rect: ['x', 'y', 'width', 'height'],\n RoundedRect: ['x', 'y', 'width', 'height', 'radius'],\n Polygon: ['paths'],\n};\nconst functionForGraphics = {\n Circle: 'drawCircle',\n Ellipse: 'drawEllipse',\n Rect: 'drawRect',\n RoundedRect: 'drawRoundedRect',\n Polygon: 'drawPolygon',\n};\n\nenum MASK_TYPE {\n Circle = 'Circle',\n Ellipse = 'Ellipse',\n Rect = 'Rect',\n RoundedRect = 'RoundedRect',\n Polygon = 'Polygon',\n Img = 'Img',\n Sprite = 'Sprite',\n}\n\n@decorators.componentObserver({\n Mask: ['type', { prop: ['style'], deep: true }, 'resource', 'spriteName'],\n})\nexport default class Mask extends Renderer {\n static systemName = 'Mask';\n name: string = 'Mask';\n changedCache: { [propName: number]: boolean } = {};\n maskSpriteCache: { [propName: number]: SpriteEngine } = {};\n renderSystem: RendererSystem;\n rendererManager: RendererManager;\n containerManager: ContainerManager;\n init() {\n this.renderSystem = this.game.getSystem(RendererSystem) as RendererSystem;\n this.renderSystem.rendererManager.register(this);\n }\n rendererUpdate() {\n this.changedCache = {};\n }\n componentChanged(changed: ComponentChanged) {\n if (changed.component.name !== 'Mask') return;\n switch (changed.type) {\n case OBSERVER_TYPE.ADD:\n this.add(changed);\n break;\n case OBSERVER_TYPE.REMOVE:\n this.remove(changed);\n break;\n case OBSERVER_TYPE.CHANGE:\n this.change(changed);\n break;\n }\n }\n add(changed: ComponentChanged) {\n const component = changed.component as MaskComponent;\n if (!(component.type in MASK_TYPE)) {\n throw new Error('no have Mask type: ' + component.type);\n }\n\n if (!component.style) {\n throw new Error('no have Mask style: ' + component.type);\n }\n\n let mask;\n switch (component.type) {\n case MASK_TYPE.Circle:\n mask = this.createGraphics(component);\n break;\n case MASK_TYPE.Ellipse:\n mask = this.createGraphics(component);\n break;\n case MASK_TYPE.Rect:\n mask = this.createGraphics(component);\n break;\n case MASK_TYPE.RoundedRect:\n mask = this.createGraphics(component);\n break;\n case MASK_TYPE.Polygon:\n mask = this.createGraphics(component);\n break;\n case MASK_TYPE.Img:\n mask = this.createSprite(component);\n break;\n case MASK_TYPE.Sprite:\n mask = this.createSprite(component);\n break;\n }\n if (!mask) {\n throw new Error('no have mask instance, check your mask params: ' + component.type);\n }\n const container = this.containerManager.getContainer(changed.gameObject.id);\n container.mask = mask;\n }\n remove(changed: ComponentChanged) {\n const container = this.containerManager.getContainer(changed.gameObject.id);\n const maskObj = container.mask as PixiContainer | null;\n container.mask = null;\n maskObj?.destroy({ children: true });\n delete this.maskSpriteCache[changed.gameObject.id];\n }\n change(changed: ComponentChanged) {\n if (this.changedCache[changed.gameObject.id]) return;\n const component = changed.component as MaskComponent;\n if (changed.prop.prop[0] === 'type') {\n this.changedCache[changed.gameObject.id] = true;\n if (\n [MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1 ||\n component._lastType !== component.type\n ) {\n this.remove(changed);\n this.add(changed);\n component._lastType = component.type\n } else {\n this.redrawGraphics(changed);\n }\n } else if (changed.prop.prop[0] === 'style') {\n if ([MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1) {\n this.changeSpriteStyle(component);\n } else {\n this.redrawGraphics(changed);\n }\n } else if (changed.prop.prop[0] === 'resource') {\n this.changedCache[changed.gameObject.id] = true;\n this.changeSprite(component);\n } else if (changed.prop.prop[0] === 'spriteName') {\n this.changedCache[changed.gameObject.id] = true;\n this.changeSprite(component);\n }\n }\n createGraphics(component: MaskComponent) {\n const graphics = new Graphics();\n this.draw(graphics, component);\n return graphics;\n }\n redrawGraphics(changed) {\n const container = this.containerManager.getContainer(changed.gameObject.id);\n const graphics = container.mask as Graphics;\n graphics.clear();\n this.draw(graphics, changed.component);\n }\n draw(graphics, component) {\n const params = [];\n for (const key of propertyForGraphics[component.type]) {\n params.push(component.style[key]);\n }\n graphics.beginFill(0x000000, 1);\n graphics[functionForGraphics[component.type]](...params);\n\n graphics.endFill();\n }\n createSprite(component: MaskComponent) {\n const sprite = new SpriteEngine(null);\n this.maskSpriteCache[component.gameObject.id] = sprite;\n this.setSprite(component, sprite);\n return sprite.sprite;\n }\n changeSpriteStyle(component: MaskComponent) {\n const sprite = this.maskSpriteCache[component.gameObject.id] as SpriteEngine;\n sprite.sprite.width = component.style.width;\n sprite.sprite.height = component.style.height;\n sprite.sprite.position.x = component.style.x;\n sprite.sprite.position.y = component.style.y;\n }\n changeSprite(component: MaskComponent) {\n const sprite = this.maskSpriteCache[component.gameObject.id] as SpriteEngine;\n this.setSprite(component, sprite);\n }\n async setSprite(component: MaskComponent, sprite) {\n let res;\n try {\n const asyncId = this.increaseAsyncId(component.gameObject.id);\n res = await resource.getResource(component.resource);\n if (!this.validateAsyncId(component.gameObject.id, asyncId)) return;\n } catch (e) {\n throw new Error('mask resource load error');\n }\n if (component.type === MASK_TYPE.Sprite) {\n const img = component.resource + resourceKeySplit + component.spriteName;\n const texture = res.instance[img];\n sprite.image = texture;\n } else {\n sprite.image = res.data.image;\n }\n sprite.sprite.width = component.style.width;\n sprite.sprite.height = component.style.height;\n sprite.sprite.position.x = component.style.x;\n sprite.sprite.position.y = component.style.y;\n }\n}\n"],"names":["MASK_TYPE","Component","__decorate","type","Mask","Renderer","RendererSystem","OBSERVER_TYPE","Graphics","SpriteEngine","resource","decorators"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var e=require("tslib"),t=require("@combos-fun/engine"),r=require("@combos-fun/inspector-decorator"),s=require("@combos-fun/plugin-renderer"),i=require("@combos-fun/renderer-adapter");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={}));let a=class extends t.Component{constructor(){super(...arguments),this.style={},this.resource="",this.spriteName=""}static{this.componentName="Mask"}init(e){Object.assign(this,e)}};e.__decorate([r.type("string")],a.prototype,"resource",void 0),e.__decorate([r.type("string")],a.prototype,"spriteName",void 0);const c={Circle:["x","y","radius"],Ellipse:["x","y","width","height"],Rect:["x","y","width","height"],RoundedRect:["x","y","width","height","radius"],Polygon:["paths"]},o={Circle:"drawCircle",Ellipse:"drawEllipse",Rect:"drawRect",RoundedRect:"drawRoundedRect",Polygon:"drawPolygon"};var n;!function(e){e.Circle="Circle",e.Ellipse="Ellipse",e.Rect="Rect",e.RoundedRect="RoundedRect",e.Polygon="Polygon",e.Img="Img",e.Sprite="Sprite"}(n||(n={}));let p=class extends s.Renderer{constructor(){super(...arguments),this.name="Mask",this.changedCache={},this.maskSpriteCache={}}static{this.systemName="Mask"}init(){this.renderSystem=this.game.getSystem(s.RendererSystem),this.renderSystem.rendererManager.register(this)}rendererUpdate(){this.changedCache={}}componentChanged(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)}}add(e){const t=e.component;if(!(t.type in n))throw new Error("no have Mask type: "+t.type);if(!t.style)throw new Error("no have Mask style: "+t.type);let r;switch(t.type){case n.Circle:case n.Ellipse:case n.Rect:case n.RoundedRect:case n.Polygon:r=this.createGraphics(t);break;case n.Img:case n.Sprite:r=this.createSprite(t)}if(!r)throw new Error("no have mask instance, check your mask params: "+t.type);this.containerManager.getContainer(e.gameObject.id).mask=r}remove(e){const t=this.containerManager.getContainer(e.gameObject.id),r=t.mask;t.mask=null,r?.destroy({children:!0}),delete this.maskSpriteCache[e.gameObject.id]}change(e){if(this.changedCache[e.gameObject.id])return;const t=e.component;"type"===e.prop.prop[0]?(this.changedCache[e.gameObject.id]=!0,[n.Sprite,n.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]?[n.Sprite,n.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))}createGraphics(e){const t=new i.Graphics;return this.draw(t,e),t}redrawGraphics(e){const t=this.containerManager.getContainer(e.gameObject.id).mask;t.clear(),this.draw(t,e.component)}draw(e,t){const r=[];for(const e of c[t.type])r.push(t.style[e]);e.beginFill(0,1),e[o[t.type]](...r),e.endFill()}createSprite(e){const t=new i.Sprite(null);return this.maskSpriteCache[e.gameObject.id]=t,this.setSprite(e,t),t.sprite}changeSpriteStyle(e){const 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}changeSprite(e){const t=this.maskSpriteCache[e.gameObject.id];this.setSprite(e,t)}async setSprite(e,r){let s;try{const r=this.increaseAsyncId(e.gameObject.id);if(s=await t.resource.getResource(e.resource),!this.validateAsyncId(e.gameObject.id,r))return}catch(e){throw new Error("mask resource load error")}if(e.type===n.Sprite){const t=e.resource+"_s|r|c_"+e.spriteName,i=s.instance[t];r.image=i}else r.image=s.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}};p=e.__decorate([t.decorators.componentObserver({Mask:["type",{prop:["style"],deep:!0},"resource","spriteName"]})],p);var h=p;exports.Mask=a,exports.MaskSystem=h;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { Component, ComponentChanged } from '@combos-fun/engine';
|
|
2
|
+
import * as pixi_js from 'pixi.js';
|
|
3
|
+
import { Renderer, RendererSystem, RendererManager, ContainerManager } from '@combos-fun/plugin-renderer';
|
|
4
|
+
import { Sprite, Graphics } from '@combos-fun/renderer-adapter';
|
|
5
|
+
|
|
6
|
+
declare enum MASK_TYPE {
|
|
7
|
+
Circle = "Circle",
|
|
8
|
+
Ellipse = "Ellipse",
|
|
9
|
+
Rect = "Rect",
|
|
10
|
+
RoundedRect = "RoundedRect",
|
|
11
|
+
Polygon = "Polygon",
|
|
12
|
+
Img = "Img",
|
|
13
|
+
Sprite = "Sprite"
|
|
14
|
+
}
|
|
15
|
+
interface MaskParams {
|
|
16
|
+
type: MASK_TYPE;
|
|
17
|
+
style?: {
|
|
18
|
+
x?: number;
|
|
19
|
+
y?: number;
|
|
20
|
+
radius?: number;
|
|
21
|
+
width?: number;
|
|
22
|
+
height?: number;
|
|
23
|
+
paths?: number[];
|
|
24
|
+
};
|
|
25
|
+
resource?: string;
|
|
26
|
+
spriteName?: string;
|
|
27
|
+
}
|
|
28
|
+
declare class Mask$1 extends Component<MaskParams> {
|
|
29
|
+
static componentName: string;
|
|
30
|
+
_lastType: MaskParams['type'];
|
|
31
|
+
type: MaskParams['type'];
|
|
32
|
+
style?: MaskParams['style'];
|
|
33
|
+
resource?: string;
|
|
34
|
+
spriteName?: string;
|
|
35
|
+
init(obj?: MaskParams): void;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
declare class Mask extends Renderer {
|
|
39
|
+
static systemName: string;
|
|
40
|
+
name: string;
|
|
41
|
+
changedCache: {
|
|
42
|
+
[propName: number]: boolean;
|
|
43
|
+
};
|
|
44
|
+
maskSpriteCache: {
|
|
45
|
+
[propName: number]: Sprite;
|
|
46
|
+
};
|
|
47
|
+
renderSystem: RendererSystem;
|
|
48
|
+
rendererManager: RendererManager;
|
|
49
|
+
containerManager: ContainerManager;
|
|
50
|
+
init(): void;
|
|
51
|
+
rendererUpdate(): void;
|
|
52
|
+
componentChanged(changed: ComponentChanged): void;
|
|
53
|
+
add(changed: ComponentChanged): void;
|
|
54
|
+
remove(changed: ComponentChanged): void;
|
|
55
|
+
change(changed: ComponentChanged): void;
|
|
56
|
+
createGraphics(component: Mask$1): Graphics;
|
|
57
|
+
redrawGraphics(changed: any): void;
|
|
58
|
+
draw(graphics: any, component: any): void;
|
|
59
|
+
createSprite(component: Mask$1): pixi_js.Sprite;
|
|
60
|
+
changeSpriteStyle(component: Mask$1): void;
|
|
61
|
+
changeSprite(component: Mask$1): void;
|
|
62
|
+
setSprite(component: Mask$1, sprite: any): Promise<void>;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export { MASK_TYPE, Mask$1 as Mask, Mask as MaskSystem };
|
|
66
|
+
export type { MaskParams };
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
import { __decorate } from 'tslib';
|
|
2
|
+
import { Component, OBSERVER_TYPE, resource, decorators } from '@combos-fun/engine';
|
|
3
|
+
import { type } from '@combos-fun/inspector-decorator';
|
|
4
|
+
import { Renderer, RendererSystem } from '@combos-fun/plugin-renderer';
|
|
5
|
+
import { Graphics, Sprite } from '@combos-fun/renderer-adapter';
|
|
6
|
+
|
|
7
|
+
var MASK_TYPE$1;
|
|
8
|
+
(function (MASK_TYPE) {
|
|
9
|
+
MASK_TYPE["Circle"] = "Circle";
|
|
10
|
+
MASK_TYPE["Ellipse"] = "Ellipse";
|
|
11
|
+
MASK_TYPE["Rect"] = "Rect";
|
|
12
|
+
MASK_TYPE["RoundedRect"] = "RoundedRect";
|
|
13
|
+
MASK_TYPE["Polygon"] = "Polygon";
|
|
14
|
+
MASK_TYPE["Img"] = "Img";
|
|
15
|
+
MASK_TYPE["Sprite"] = "Sprite";
|
|
16
|
+
})(MASK_TYPE$1 || (MASK_TYPE$1 = {}));
|
|
17
|
+
let Mask$1 = class Mask extends Component {
|
|
18
|
+
constructor() {
|
|
19
|
+
super(...arguments);
|
|
20
|
+
// @decorators.IDEProp 复杂编辑后续添加
|
|
21
|
+
this.style = {};
|
|
22
|
+
this.resource = '';
|
|
23
|
+
this.spriteName = '';
|
|
24
|
+
}
|
|
25
|
+
static { this.componentName = 'Mask'; }
|
|
26
|
+
init(obj) {
|
|
27
|
+
Object.assign(this, obj);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
__decorate([
|
|
31
|
+
type('string')
|
|
32
|
+
], Mask$1.prototype, "resource", void 0);
|
|
33
|
+
__decorate([
|
|
34
|
+
type('string')
|
|
35
|
+
], Mask$1.prototype, "spriteName", void 0);
|
|
36
|
+
|
|
37
|
+
const resourceKeySplit = '_s|r|c_'; // Notice: This key be created by sprite system.
|
|
38
|
+
const propertyForGraphics = {
|
|
39
|
+
Circle: ['x', 'y', 'radius'],
|
|
40
|
+
Ellipse: ['x', 'y', 'width', 'height'],
|
|
41
|
+
Rect: ['x', 'y', 'width', 'height'],
|
|
42
|
+
RoundedRect: ['x', 'y', 'width', 'height', 'radius'],
|
|
43
|
+
Polygon: ['paths'],
|
|
44
|
+
};
|
|
45
|
+
const functionForGraphics = {
|
|
46
|
+
Circle: 'drawCircle',
|
|
47
|
+
Ellipse: 'drawEllipse',
|
|
48
|
+
Rect: 'drawRect',
|
|
49
|
+
RoundedRect: 'drawRoundedRect',
|
|
50
|
+
Polygon: 'drawPolygon',
|
|
51
|
+
};
|
|
52
|
+
var MASK_TYPE;
|
|
53
|
+
(function (MASK_TYPE) {
|
|
54
|
+
MASK_TYPE["Circle"] = "Circle";
|
|
55
|
+
MASK_TYPE["Ellipse"] = "Ellipse";
|
|
56
|
+
MASK_TYPE["Rect"] = "Rect";
|
|
57
|
+
MASK_TYPE["RoundedRect"] = "RoundedRect";
|
|
58
|
+
MASK_TYPE["Polygon"] = "Polygon";
|
|
59
|
+
MASK_TYPE["Img"] = "Img";
|
|
60
|
+
MASK_TYPE["Sprite"] = "Sprite";
|
|
61
|
+
})(MASK_TYPE || (MASK_TYPE = {}));
|
|
62
|
+
let Mask = class Mask extends Renderer {
|
|
63
|
+
constructor() {
|
|
64
|
+
super(...arguments);
|
|
65
|
+
this.name = 'Mask';
|
|
66
|
+
this.changedCache = {};
|
|
67
|
+
this.maskSpriteCache = {};
|
|
68
|
+
}
|
|
69
|
+
static { this.systemName = 'Mask'; }
|
|
70
|
+
init() {
|
|
71
|
+
this.renderSystem = this.game.getSystem(RendererSystem);
|
|
72
|
+
this.renderSystem.rendererManager.register(this);
|
|
73
|
+
}
|
|
74
|
+
rendererUpdate() {
|
|
75
|
+
this.changedCache = {};
|
|
76
|
+
}
|
|
77
|
+
componentChanged(changed) {
|
|
78
|
+
if (changed.component.name !== 'Mask')
|
|
79
|
+
return;
|
|
80
|
+
switch (changed.type) {
|
|
81
|
+
case OBSERVER_TYPE.ADD:
|
|
82
|
+
this.add(changed);
|
|
83
|
+
break;
|
|
84
|
+
case OBSERVER_TYPE.REMOVE:
|
|
85
|
+
this.remove(changed);
|
|
86
|
+
break;
|
|
87
|
+
case OBSERVER_TYPE.CHANGE:
|
|
88
|
+
this.change(changed);
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
add(changed) {
|
|
93
|
+
const component = changed.component;
|
|
94
|
+
if (!(component.type in MASK_TYPE)) {
|
|
95
|
+
throw new Error('no have Mask type: ' + component.type);
|
|
96
|
+
}
|
|
97
|
+
if (!component.style) {
|
|
98
|
+
throw new Error('no have Mask style: ' + component.type);
|
|
99
|
+
}
|
|
100
|
+
let mask;
|
|
101
|
+
switch (component.type) {
|
|
102
|
+
case MASK_TYPE.Circle:
|
|
103
|
+
mask = this.createGraphics(component);
|
|
104
|
+
break;
|
|
105
|
+
case MASK_TYPE.Ellipse:
|
|
106
|
+
mask = this.createGraphics(component);
|
|
107
|
+
break;
|
|
108
|
+
case MASK_TYPE.Rect:
|
|
109
|
+
mask = this.createGraphics(component);
|
|
110
|
+
break;
|
|
111
|
+
case MASK_TYPE.RoundedRect:
|
|
112
|
+
mask = this.createGraphics(component);
|
|
113
|
+
break;
|
|
114
|
+
case MASK_TYPE.Polygon:
|
|
115
|
+
mask = this.createGraphics(component);
|
|
116
|
+
break;
|
|
117
|
+
case MASK_TYPE.Img:
|
|
118
|
+
mask = this.createSprite(component);
|
|
119
|
+
break;
|
|
120
|
+
case MASK_TYPE.Sprite:
|
|
121
|
+
mask = this.createSprite(component);
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
if (!mask) {
|
|
125
|
+
throw new Error('no have mask instance, check your mask params: ' + component.type);
|
|
126
|
+
}
|
|
127
|
+
const container = this.containerManager.getContainer(changed.gameObject.id);
|
|
128
|
+
container.mask = mask;
|
|
129
|
+
}
|
|
130
|
+
remove(changed) {
|
|
131
|
+
const container = this.containerManager.getContainer(changed.gameObject.id);
|
|
132
|
+
const maskObj = container.mask;
|
|
133
|
+
container.mask = null;
|
|
134
|
+
maskObj?.destroy({ children: true });
|
|
135
|
+
delete this.maskSpriteCache[changed.gameObject.id];
|
|
136
|
+
}
|
|
137
|
+
change(changed) {
|
|
138
|
+
if (this.changedCache[changed.gameObject.id])
|
|
139
|
+
return;
|
|
140
|
+
const component = changed.component;
|
|
141
|
+
if (changed.prop.prop[0] === 'type') {
|
|
142
|
+
this.changedCache[changed.gameObject.id] = true;
|
|
143
|
+
if ([MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1 ||
|
|
144
|
+
component._lastType !== component.type) {
|
|
145
|
+
this.remove(changed);
|
|
146
|
+
this.add(changed);
|
|
147
|
+
component._lastType = component.type;
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
this.redrawGraphics(changed);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
else if (changed.prop.prop[0] === 'style') {
|
|
154
|
+
if ([MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1) {
|
|
155
|
+
this.changeSpriteStyle(component);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
this.redrawGraphics(changed);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
else if (changed.prop.prop[0] === 'resource') {
|
|
162
|
+
this.changedCache[changed.gameObject.id] = true;
|
|
163
|
+
this.changeSprite(component);
|
|
164
|
+
}
|
|
165
|
+
else if (changed.prop.prop[0] === 'spriteName') {
|
|
166
|
+
this.changedCache[changed.gameObject.id] = true;
|
|
167
|
+
this.changeSprite(component);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
createGraphics(component) {
|
|
171
|
+
const graphics = new Graphics();
|
|
172
|
+
this.draw(graphics, component);
|
|
173
|
+
return graphics;
|
|
174
|
+
}
|
|
175
|
+
redrawGraphics(changed) {
|
|
176
|
+
const container = this.containerManager.getContainer(changed.gameObject.id);
|
|
177
|
+
const graphics = container.mask;
|
|
178
|
+
graphics.clear();
|
|
179
|
+
this.draw(graphics, changed.component);
|
|
180
|
+
}
|
|
181
|
+
draw(graphics, component) {
|
|
182
|
+
const params = [];
|
|
183
|
+
for (const key of propertyForGraphics[component.type]) {
|
|
184
|
+
params.push(component.style[key]);
|
|
185
|
+
}
|
|
186
|
+
graphics.beginFill(0x000000, 1);
|
|
187
|
+
graphics[functionForGraphics[component.type]](...params);
|
|
188
|
+
graphics.endFill();
|
|
189
|
+
}
|
|
190
|
+
createSprite(component) {
|
|
191
|
+
const sprite = new Sprite(null);
|
|
192
|
+
this.maskSpriteCache[component.gameObject.id] = sprite;
|
|
193
|
+
this.setSprite(component, sprite);
|
|
194
|
+
return sprite.sprite;
|
|
195
|
+
}
|
|
196
|
+
changeSpriteStyle(component) {
|
|
197
|
+
const sprite = this.maskSpriteCache[component.gameObject.id];
|
|
198
|
+
sprite.sprite.width = component.style.width;
|
|
199
|
+
sprite.sprite.height = component.style.height;
|
|
200
|
+
sprite.sprite.position.x = component.style.x;
|
|
201
|
+
sprite.sprite.position.y = component.style.y;
|
|
202
|
+
}
|
|
203
|
+
changeSprite(component) {
|
|
204
|
+
const sprite = this.maskSpriteCache[component.gameObject.id];
|
|
205
|
+
this.setSprite(component, sprite);
|
|
206
|
+
}
|
|
207
|
+
async setSprite(component, sprite) {
|
|
208
|
+
let res;
|
|
209
|
+
try {
|
|
210
|
+
const asyncId = this.increaseAsyncId(component.gameObject.id);
|
|
211
|
+
res = await resource.getResource(component.resource);
|
|
212
|
+
if (!this.validateAsyncId(component.gameObject.id, asyncId))
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
catch (e) {
|
|
216
|
+
throw new Error('mask resource load error');
|
|
217
|
+
}
|
|
218
|
+
if (component.type === MASK_TYPE.Sprite) {
|
|
219
|
+
const img = component.resource + resourceKeySplit + component.spriteName;
|
|
220
|
+
const texture = res.instance[img];
|
|
221
|
+
sprite.image = texture;
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
sprite.image = res.data.image;
|
|
225
|
+
}
|
|
226
|
+
sprite.sprite.width = component.style.width;
|
|
227
|
+
sprite.sprite.height = component.style.height;
|
|
228
|
+
sprite.sprite.position.x = component.style.x;
|
|
229
|
+
sprite.sprite.position.y = component.style.y;
|
|
230
|
+
}
|
|
231
|
+
};
|
|
232
|
+
Mask = __decorate([
|
|
233
|
+
decorators.componentObserver({
|
|
234
|
+
Mask: ['type', { prop: ['style'], deep: true }, 'resource', 'spriteName'],
|
|
235
|
+
})
|
|
236
|
+
], Mask);
|
|
237
|
+
var Mask_default = Mask;
|
|
238
|
+
|
|
239
|
+
export { MASK_TYPE$1 as MASK_TYPE, Mask$1 as Mask, Mask_default as MaskSystem };
|
|
240
|
+
//# sourceMappingURL=plugin-renderer-mask.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-renderer-mask.esm.js","sources":["../lib/component.ts","../lib/system.ts"],"sourcesContent":["import { Component } from '@combos-fun/engine';\nimport {type } from '@combos-fun/inspector-decorator'\n\nexport enum MASK_TYPE {\n Circle = 'Circle',\n Ellipse = 'Ellipse',\n Rect = 'Rect',\n RoundedRect = 'RoundedRect',\n Polygon = 'Polygon',\n Img = 'Img',\n Sprite = 'Sprite',\n}\n\nexport interface MaskParams {\n type: MASK_TYPE;\n style?: {\n x?: number;\n y?: number;\n radius?: number;\n width?: number;\n height?: number;\n paths?: number[];\n };\n resource?: string;\n spriteName?: string;\n}\n\nexport default class Mask extends Component<MaskParams> {\n static componentName: string = 'Mask';\n _lastType: MaskParams['type'];\n // @decorators.IDEProp 复杂编辑后续添加\n type: MaskParams['type'];\n // @decorators.IDEProp 复杂编辑后续添加\n style?: MaskParams['style'] = {};\n @type('string') resource?: string = '';\n @type('string') spriteName?: string = '';\n\n init(obj?: MaskParams) {\n Object.assign(this, obj);\n }\n}\n","import { decorators, resource, ComponentChanged, OBSERVER_TYPE } from '@combos-fun/engine';\nimport { Renderer, RendererManager, ContainerManager, RendererSystem } from '@combos-fun/plugin-renderer';\nimport { Sprite as SpriteEngine, Graphics } from '@combos-fun/renderer-adapter';\nimport type { Container as PixiContainer } from 'pixi.js';\nimport MaskComponent from './component';\n\nconst resourceKeySplit = '_s|r|c_'; // Notice: This key be created by sprite system.\n\nconst propertyForGraphics = {\n Circle: ['x', 'y', 'radius'],\n Ellipse: ['x', 'y', 'width', 'height'],\n Rect: ['x', 'y', 'width', 'height'],\n RoundedRect: ['x', 'y', 'width', 'height', 'radius'],\n Polygon: ['paths'],\n};\nconst functionForGraphics = {\n Circle: 'drawCircle',\n Ellipse: 'drawEllipse',\n Rect: 'drawRect',\n RoundedRect: 'drawRoundedRect',\n Polygon: 'drawPolygon',\n};\n\nenum MASK_TYPE {\n Circle = 'Circle',\n Ellipse = 'Ellipse',\n Rect = 'Rect',\n RoundedRect = 'RoundedRect',\n Polygon = 'Polygon',\n Img = 'Img',\n Sprite = 'Sprite',\n}\n\n@decorators.componentObserver({\n Mask: ['type', { prop: ['style'], deep: true }, 'resource', 'spriteName'],\n})\nexport default class Mask extends Renderer {\n static systemName = 'Mask';\n name: string = 'Mask';\n changedCache: { [propName: number]: boolean } = {};\n maskSpriteCache: { [propName: number]: SpriteEngine } = {};\n renderSystem: RendererSystem;\n rendererManager: RendererManager;\n containerManager: ContainerManager;\n init() {\n this.renderSystem = this.game.getSystem(RendererSystem) as RendererSystem;\n this.renderSystem.rendererManager.register(this);\n }\n rendererUpdate() {\n this.changedCache = {};\n }\n componentChanged(changed: ComponentChanged) {\n if (changed.component.name !== 'Mask') return;\n switch (changed.type) {\n case OBSERVER_TYPE.ADD:\n this.add(changed);\n break;\n case OBSERVER_TYPE.REMOVE:\n this.remove(changed);\n break;\n case OBSERVER_TYPE.CHANGE:\n this.change(changed);\n break;\n }\n }\n add(changed: ComponentChanged) {\n const component = changed.component as MaskComponent;\n if (!(component.type in MASK_TYPE)) {\n throw new Error('no have Mask type: ' + component.type);\n }\n\n if (!component.style) {\n throw new Error('no have Mask style: ' + component.type);\n }\n\n let mask;\n switch (component.type) {\n case MASK_TYPE.Circle:\n mask = this.createGraphics(component);\n break;\n case MASK_TYPE.Ellipse:\n mask = this.createGraphics(component);\n break;\n case MASK_TYPE.Rect:\n mask = this.createGraphics(component);\n break;\n case MASK_TYPE.RoundedRect:\n mask = this.createGraphics(component);\n break;\n case MASK_TYPE.Polygon:\n mask = this.createGraphics(component);\n break;\n case MASK_TYPE.Img:\n mask = this.createSprite(component);\n break;\n case MASK_TYPE.Sprite:\n mask = this.createSprite(component);\n break;\n }\n if (!mask) {\n throw new Error('no have mask instance, check your mask params: ' + component.type);\n }\n const container = this.containerManager.getContainer(changed.gameObject.id);\n container.mask = mask;\n }\n remove(changed: ComponentChanged) {\n const container = this.containerManager.getContainer(changed.gameObject.id);\n const maskObj = container.mask as PixiContainer | null;\n container.mask = null;\n maskObj?.destroy({ children: true });\n delete this.maskSpriteCache[changed.gameObject.id];\n }\n change(changed: ComponentChanged) {\n if (this.changedCache[changed.gameObject.id]) return;\n const component = changed.component as MaskComponent;\n if (changed.prop.prop[0] === 'type') {\n this.changedCache[changed.gameObject.id] = true;\n if (\n [MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1 ||\n component._lastType !== component.type\n ) {\n this.remove(changed);\n this.add(changed);\n component._lastType = component.type\n } else {\n this.redrawGraphics(changed);\n }\n } else if (changed.prop.prop[0] === 'style') {\n if ([MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1) {\n this.changeSpriteStyle(component);\n } else {\n this.redrawGraphics(changed);\n }\n } else if (changed.prop.prop[0] === 'resource') {\n this.changedCache[changed.gameObject.id] = true;\n this.changeSprite(component);\n } else if (changed.prop.prop[0] === 'spriteName') {\n this.changedCache[changed.gameObject.id] = true;\n this.changeSprite(component);\n }\n }\n createGraphics(component: MaskComponent) {\n const graphics = new Graphics();\n this.draw(graphics, component);\n return graphics;\n }\n redrawGraphics(changed) {\n const container = this.containerManager.getContainer(changed.gameObject.id);\n const graphics = container.mask as Graphics;\n graphics.clear();\n this.draw(graphics, changed.component);\n }\n draw(graphics, component) {\n const params = [];\n for (const key of propertyForGraphics[component.type]) {\n params.push(component.style[key]);\n }\n graphics.beginFill(0x000000, 1);\n graphics[functionForGraphics[component.type]](...params);\n\n graphics.endFill();\n }\n createSprite(component: MaskComponent) {\n const sprite = new SpriteEngine(null);\n this.maskSpriteCache[component.gameObject.id] = sprite;\n this.setSprite(component, sprite);\n return sprite.sprite;\n }\n changeSpriteStyle(component: MaskComponent) {\n const sprite = this.maskSpriteCache[component.gameObject.id] as SpriteEngine;\n sprite.sprite.width = component.style.width;\n sprite.sprite.height = component.style.height;\n sprite.sprite.position.x = component.style.x;\n sprite.sprite.position.y = component.style.y;\n }\n changeSprite(component: MaskComponent) {\n const sprite = this.maskSpriteCache[component.gameObject.id] as SpriteEngine;\n this.setSprite(component, sprite);\n }\n async setSprite(component: MaskComponent, sprite) {\n let res;\n try {\n const asyncId = this.increaseAsyncId(component.gameObject.id);\n res = await resource.getResource(component.resource);\n if (!this.validateAsyncId(component.gameObject.id, asyncId)) return;\n } catch (e) {\n throw new Error('mask resource load error');\n }\n if (component.type === MASK_TYPE.Sprite) {\n const img = component.resource + resourceKeySplit + component.spriteName;\n const texture = res.instance[img];\n sprite.image = texture;\n } else {\n sprite.image = res.data.image;\n }\n sprite.sprite.width = component.style.width;\n sprite.sprite.height = component.style.height;\n sprite.sprite.position.x = component.style.x;\n sprite.sprite.position.y = component.style.y;\n }\n}\n"],"names":["MASK_TYPE","Mask","SpriteEngine"],"mappings":"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"}
|
package/index.js
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@combos-fun/plugin-renderer-mask",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "@combos-fun/plugin-renderer-mask",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"module": "dist/plugin-renderer-mask.esm.js",
|
|
7
|
+
"bundle": "CombosFun.plugin.renderer.mask",
|
|
8
|
+
"unpkg": "dist/CombosFun.plugin.renderer.mask.min.js",
|
|
9
|
+
"files": [
|
|
10
|
+
"index.js",
|
|
11
|
+
"dist"
|
|
12
|
+
],
|
|
13
|
+
"types": "dist/plugin-renderer-mask.d.ts",
|
|
14
|
+
"keywords": [
|
|
15
|
+
"combos-fun",
|
|
16
|
+
"game"
|
|
17
|
+
],
|
|
18
|
+
"author": "sun668 <q947692259@gmail.com>",
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"pixi.js": "^8.18.1",
|
|
21
|
+
"@combos-fun/plugin-renderer": "0.0.1",
|
|
22
|
+
"@combos-fun/renderer-adapter": "0.0.1",
|
|
23
|
+
"@combos-fun/engine": "0.0.1",
|
|
24
|
+
"@combos-fun/inspector-decorator": "0.0.1"
|
|
25
|
+
},
|
|
26
|
+
"scripts": {
|
|
27
|
+
"build": "node ../../scripts/build-package.mjs"
|
|
28
|
+
}
|
|
29
|
+
}
|