@eva/plugin-renderer-mesh 2.0.0-beta.8 → 2.0.0

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.
@@ -1,18 +1,26 @@
1
- window.EVA = window.EVA || {};
2
- window.EVA.plugin = window.EVA.plugin || {};
3
- window.EVA.plugin.renderer = window.EVA.plugin.renderer || {};
1
+ globalThis.EVA = globalThis.EVA || {};
2
+ globalThis.EVA.plugin = globalThis.EVA.plugin || {};
3
+ globalThis.EVA.plugin.renderer = globalThis.EVA.plugin.renderer || {};
4
4
  var _EVA_IIFE_mesh = function (exports, eva_js, pluginRenderer, pixi_js) {
5
5
  'use strict';
6
6
 
7
7
  class PerspectiveMesh extends eva_js.Component {
8
8
  constructor() {
9
9
  super(...arguments);
10
+ this.verticesX = 10;
11
+ this.verticesY = 10;
10
12
  this._forceUpdate = 0;
11
13
  }
12
14
  init(obj) {
13
15
  if (obj && obj.resource) {
14
16
  this.resource = obj.resource;
15
17
  }
18
+ if (obj && obj.verticesX) {
19
+ this.verticesX = obj.verticesX;
20
+ }
21
+ if (obj && obj.verticesY) {
22
+ this.verticesY = obj.verticesY;
23
+ }
16
24
  }
17
25
  setCorners(x0, y0, x1, y1, x2, y2, x3, y3) {
18
26
  const corners = this.corners || {};
@@ -63,10 +71,10 @@ var _EVA_IIFE_mesh = function (exports, eva_js, pluginRenderer, pixi_js) {
63
71
  step((generator = generator.apply(thisArg, _arguments || [])).next());
64
72
  });
65
73
  }
66
- exports.MeshSystem = class MeshSystem extends pluginRenderer.Renderer {
74
+ let MeshSystem = class MeshSystem extends pluginRenderer.Renderer {
67
75
  constructor() {
68
76
  super(...arguments);
69
- this.name = 'PerspectiveMesh';
77
+ this.name = 'MeshSystem';
70
78
  this.meshes = {};
71
79
  }
72
80
  init() {
@@ -81,7 +89,9 @@ var _EVA_IIFE_mesh = function (exports, eva_js, pluginRenderer, pixi_js) {
81
89
  const component = changed.component;
82
90
  if (changed.type === eva_js.OBSERVER_TYPE.ADD) {
83
91
  const mesh = new pixi_js.PerspectiveMesh({
84
- texture: new pixi_js.Texture()
92
+ texture: new pixi_js.Texture(),
93
+ verticesX: component.verticesX,
94
+ verticesY: component.verticesY
85
95
  });
86
96
  this.meshes[changed.gameObject.id] = mesh;
87
97
  this.containerManager.getContainer(changed.gameObject.id).addChildAt(mesh, 0);
@@ -93,6 +103,7 @@ var _EVA_IIFE_mesh = function (exports, eva_js, pluginRenderer, pixi_js) {
93
103
  console.error(`GameObject:${changed.gameObject.name}'s Mesh resource load error`);
94
104
  return;
95
105
  }
106
+ mesh.texture = texture;
96
107
  if (component.corners) {
97
108
  this.meshes[changed.gameObject.id].setCorners(component.corners.x0, component.corners.y0, component.corners.x1, component.corners.y1, component.corners.x2, component.corners.y2, component.corners.x3, component.corners.y3);
98
109
  } else {
@@ -121,15 +132,26 @@ var _EVA_IIFE_mesh = function (exports, eva_js, pluginRenderer, pixi_js) {
121
132
  }
122
133
  });
123
134
  }
135
+ destroy() {
136
+ var _a, _b;
137
+ for (const key in this.meshes) {
138
+ const mesh = this.meshes[key];
139
+ (_b = (_a = this.containerManager) === null || _a === void 0 ? void 0 : _a.getContainer(parseInt(key))) === null || _b === void 0 ? void 0 : _b.removeChild(mesh);
140
+ mesh.destroy();
141
+ delete this.meshes[key];
142
+ }
143
+ }
124
144
  };
125
- exports.MeshSystem.systemName = 'PerspectiveMesh';
126
- exports.MeshSystem = __decorate([eva_js.decorators.componentObserver({
145
+ MeshSystem.systemName = 'MeshSystem';
146
+ MeshSystem = __decorate([eva_js.decorators.componentObserver({
127
147
  PerspectiveMesh: ['resource', '_forceUpdate']
128
- })], exports.MeshSystem);
148
+ })], MeshSystem);
149
+ var MeshSystem$1 = MeshSystem;
150
+ exports.MeshSystem = MeshSystem$1;
129
151
  exports.PerspectiveMesh = PerspectiveMesh;
130
152
  Object.defineProperty(exports, '__esModule', {
131
153
  value: true
132
154
  });
133
155
  return exports;
134
156
  }({}, EVA, EVA.plugin.renderer, PIXI);
135
- window.EVA.plugin.renderer.mesh = window.EVA.plugin.renderer.mesh || _EVA_IIFE_mesh;
157
+ globalThis.EVA.plugin.renderer.mesh = globalThis.EVA.plugin.renderer.mesh || _EVA_IIFE_mesh;
@@ -1,136 +1 @@
1
- (window.EVA = window.EVA || {}),
2
- (window.EVA.plugin = window.EVA.plugin || {}),
3
- (window.EVA.plugin.renderer = window.EVA.plugin.renderer || {});
4
- var _EVA_IIFE_mesh = (function (e, r, t, s) {
5
- 'use strict';
6
- class n extends r.Component {
7
- constructor() {
8
- super(...arguments), (this._forceUpdate = 0);
9
- }
10
- init(e) {
11
- e && e.resource && (this.resource = e.resource);
12
- }
13
- setCorners(e, r, t, s, n, o, i, c) {
14
- const d = this.corners || {};
15
- (d.x0 = e),
16
- (d.y0 = r),
17
- (d.x1 = t),
18
- (d.y1 = s),
19
- (d.x2 = n),
20
- (d.y2 = o),
21
- (d.x3 = i),
22
- (d.y3 = c),
23
- (this.corners = d),
24
- (this._forceUpdate += 1);
25
- }
26
- }
27
- function o(e, r, t, s) {
28
- return new (t || (t = Promise))(function (n, o) {
29
- function i(e) {
30
- try {
31
- d(s.next(e));
32
- } catch (e) {
33
- o(e);
34
- }
35
- }
36
- function c(e) {
37
- try {
38
- d(s.throw(e));
39
- } catch (e) {
40
- o(e);
41
- }
42
- }
43
- function d(e) {
44
- var r;
45
- e.done
46
- ? n(e.value)
47
- : ((r = e.value),
48
- r instanceof t
49
- ? r
50
- : new t(function (e) {
51
- e(r);
52
- })).then(i, c);
53
- }
54
- d((s = s.apply(e, r || [])).next());
55
- });
56
- }
57
- return (
58
- (n.componentName = 'PerspectiveMesh'),
59
- (e.MeshSystem = class extends t.Renderer {
60
- constructor() {
61
- super(...arguments), (this.name = 'PerspectiveMesh'), (this.meshes = {});
62
- }
63
- init() {
64
- (this.renderSystem = this.game.getSystem(t.RendererSystem)), this.renderSystem.rendererManager.register(this);
65
- }
66
- componentChanged(e) {
67
- var t, n;
68
- return o(this, void 0, void 0, function* () {
69
- if ('PerspectiveMesh' === e.componentName) {
70
- const o = e.gameObject.id,
71
- i = e.component;
72
- if (e.type === r.OBSERVER_TYPE.ADD) {
73
- const n = new s.PerspectiveMesh({ texture: new s.Texture() });
74
- (this.meshes[e.gameObject.id] = n), this.containerManager.getContainer(e.gameObject.id).addChildAt(n, 0);
75
- const c = this.increaseAsyncId(o),
76
- d = yield r.resource.getResource(i.resource),
77
- a = null === (t = d.data) || void 0 === t ? void 0 : t.image;
78
- if (!this.validateAsyncId(o, c)) return;
79
- if (!a) return void console.error(`GameObject:${e.gameObject.name}'s Mesh resource load error`);
80
- i.corners
81
- ? this.meshes[e.gameObject.id].setCorners(
82
- i.corners.x0,
83
- i.corners.y0,
84
- i.corners.x1,
85
- i.corners.y1,
86
- i.corners.x2,
87
- i.corners.y2,
88
- i.corners.x3,
89
- i.corners.y3,
90
- )
91
- : n.setCorners(0, 0, a.width, 0, a.width, a.height, 0, a.height);
92
- } else if (e.type === r.OBSERVER_TYPE.CHANGE) {
93
- const t = this.increaseAsyncId(o),
94
- s = yield r.resource.getResource(i.resource),
95
- c = null === (n = s.data) || void 0 === n ? void 0 : n.image;
96
- if (!this.validateAsyncId(o, t)) return;
97
- if (!c) return void console.error(`GameObject:${e.gameObject.name}'s Mesh resource load error`);
98
- (this.meshes[e.gameObject.id].texture = c),
99
- i.corners &&
100
- this.meshes[e.gameObject.id].setCorners(
101
- i.corners.x0,
102
- i.corners.y0,
103
- i.corners.x1,
104
- i.corners.y1,
105
- i.corners.x2,
106
- i.corners.y2,
107
- i.corners.x3,
108
- i.corners.y3,
109
- );
110
- } else if (e.type === r.OBSERVER_TYPE.REMOVE) {
111
- this.increaseAsyncId(o);
112
- const r = this.meshes[e.gameObject.id];
113
- this.containerManager.getContainer(e.gameObject.id).removeChild(r),
114
- r.destroy(),
115
- delete this.meshes[e.gameObject.id];
116
- }
117
- }
118
- });
119
- }
120
- }),
121
- (e.MeshSystem.systemName = 'PerspectiveMesh'),
122
- (e.MeshSystem = (function (e, r, t, s) {
123
- var n,
124
- o = arguments.length,
125
- i = o < 3 ? r : null === s ? (s = Object.getOwnPropertyDescriptor(r, t)) : s;
126
- if ('object' == typeof Reflect && 'function' == typeof Reflect.decorate) i = Reflect.decorate(e, r, t, s);
127
- else
128
- for (var c = e.length - 1; c >= 0; c--) (n = e[c]) && (i = (o < 3 ? n(i) : o > 3 ? n(r, t, i) : n(r, t)) || i);
129
- return o > 3 && i && Object.defineProperty(r, t, i), i;
130
- })([r.decorators.componentObserver({ PerspectiveMesh: ['resource', '_forceUpdate'] })], e.MeshSystem)),
131
- (e.PerspectiveMesh = n),
132
- Object.defineProperty(e, '__esModule', { value: !0 }),
133
- e
134
- );
135
- })(EVA.plugin.renderer.mesh || {}, EVA, EVA.plugin.renderer, PIXI);
136
- window.EVA.plugin.renderer.mesh = window.EVA.plugin.renderer.mesh || _EVA_IIFE_mesh;
1
+ globalThis.EVA=globalThis.EVA||{},globalThis.EVA.plugin=globalThis.EVA.plugin||{},globalThis.EVA.plugin.renderer=globalThis.EVA.plugin.renderer||{};var _EVA_IIFE_mesh=function(e,r,s,t){"use strict";class n extends r.Component{constructor(){super(...arguments),this.verticesX=10,this.verticesY=10,this._forceUpdate=0}init(e){e&&e.resource&&(this.resource=e.resource),e&&e.verticesX&&(this.verticesX=e.verticesX),e&&e.verticesY&&(this.verticesY=e.verticesY)}setCorners(e,r,s,t,n,i,o,c){const a=this.corners||{};a.x0=e,a.y0=r,a.x1=s,a.y1=t,a.x2=n,a.y2=i,a.x3=o,a.y3=c,this.corners=a,this._forceUpdate+=1}}function i(e,r,s,t){return new(s||(s=Promise))((function(n,i){function o(e){try{a(t.next(e))}catch(e){i(e)}}function c(e){try{a(t.throw(e))}catch(e){i(e)}}function a(e){var r;e.done?n(e.value):(r=e.value,r instanceof s?r:new s((function(e){e(r)}))).then(o,c)}a((t=t.apply(e,r||[])).next())}))}n.componentName="PerspectiveMesh";let o=class extends s.Renderer{constructor(){super(...arguments),this.name="MeshSystem",this.meshes={}}init(){this.renderSystem=this.game.getSystem(s.RendererSystem),this.renderSystem.rendererManager.register(this)}componentChanged(e){var s,n;return i(this,void 0,void 0,(function*(){if("PerspectiveMesh"===e.componentName){const i=e.gameObject.id,o=e.component;if(e.type===r.OBSERVER_TYPE.ADD){const n=new t.PerspectiveMesh({texture:new t.Texture,verticesX:o.verticesX,verticesY:o.verticesY});this.meshes[e.gameObject.id]=n,this.containerManager.getContainer(e.gameObject.id).addChildAt(n,0);const c=this.increaseAsyncId(i),a=yield r.resource.getResource(o.resource),h=null===(s=a.data)||void 0===s?void 0:s.image;if(!this.validateAsyncId(i,c))return;if(!h)return void console.error(`GameObject:${e.gameObject.name}'s Mesh resource load error`);n.texture=h,o.corners?this.meshes[e.gameObject.id].setCorners(o.corners.x0,o.corners.y0,o.corners.x1,o.corners.y1,o.corners.x2,o.corners.y2,o.corners.x3,o.corners.y3):n.setCorners(0,0,h.width,0,h.width,h.height,0,h.height)}else if(e.type===r.OBSERVER_TYPE.CHANGE){const s=this.increaseAsyncId(i),t=yield r.resource.getResource(o.resource),c=null===(n=t.data)||void 0===n?void 0:n.image;if(!this.validateAsyncId(i,s))return;if(!c)return void console.error(`GameObject:${e.gameObject.name}'s Mesh resource load error`);this.meshes[e.gameObject.id].texture=c,o.corners&&this.meshes[e.gameObject.id].setCorners(o.corners.x0,o.corners.y0,o.corners.x1,o.corners.y1,o.corners.x2,o.corners.y2,o.corners.x3,o.corners.y3)}else if(e.type===r.OBSERVER_TYPE.REMOVE){this.increaseAsyncId(i);const r=this.meshes[e.gameObject.id];this.containerManager.getContainer(e.gameObject.id).removeChild(r),r.destroy(),delete this.meshes[e.gameObject.id]}}}))}destroy(){var e,r;for(const s in this.meshes){const t=this.meshes[s];null===(r=null===(e=this.containerManager)||void 0===e?void 0:e.getContainer(parseInt(s)))||void 0===r||r.removeChild(t),t.destroy(),delete this.meshes[s]}}};o.systemName="MeshSystem",o=function(e,r,s,t){var n,i=arguments.length,o=i<3?r:null===t?t=Object.getOwnPropertyDescriptor(r,s):t;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,r,s,t);else for(var c=e.length-1;c>=0;c--)(n=e[c])&&(o=(i<3?n(o):i>3?n(r,s,o):n(r,s))||o);return i>3&&o&&Object.defineProperty(r,s,o),o}([r.decorators.componentObserver({PerspectiveMesh:["resource","_forceUpdate"]})],o);var c=o;return e.MeshSystem=c,e.PerspectiveMesh=n,Object.defineProperty(e,"__esModule",{value:!0}),e}({},EVA,EVA.plugin.renderer,PIXI);globalThis.EVA.plugin.renderer.mesh=globalThis.EVA.plugin.renderer.mesh||_EVA_IIFE_mesh;
@@ -9,12 +9,20 @@ var pixi_js = require('pixi.js');
9
9
  class PerspectiveMesh extends eva_js.Component {
10
10
  constructor() {
11
11
  super(...arguments);
12
+ this.verticesX = 10;
13
+ this.verticesY = 10;
12
14
  this._forceUpdate = 0;
13
15
  }
14
16
  init(obj) {
15
17
  if (obj && obj.resource) {
16
18
  this.resource = obj.resource;
17
19
  }
20
+ if (obj && obj.verticesX) {
21
+ this.verticesX = obj.verticesX;
22
+ }
23
+ if (obj && obj.verticesY) {
24
+ this.verticesY = obj.verticesY;
25
+ }
18
26
  }
19
27
  setCorners(x0, y0, x1, y1, x2, y2, x3, y3) {
20
28
  const corners = this.corners || {};
@@ -63,10 +71,10 @@ function __awaiter(thisArg, _arguments, P, generator) {
63
71
  });
64
72
  }
65
73
 
66
- exports.MeshSystem = class MeshSystem extends pluginRenderer.Renderer {
74
+ let MeshSystem = class MeshSystem extends pluginRenderer.Renderer {
67
75
  constructor() {
68
76
  super(...arguments);
69
- this.name = 'PerspectiveMesh';
77
+ this.name = 'MeshSystem';
70
78
  this.meshes = {};
71
79
  }
72
80
  init() {
@@ -80,7 +88,11 @@ exports.MeshSystem = class MeshSystem extends pluginRenderer.Renderer {
80
88
  const gameObjectId = changed.gameObject.id;
81
89
  const component = changed.component;
82
90
  if (changed.type === eva_js.OBSERVER_TYPE.ADD) {
83
- const mesh = new pixi_js.PerspectiveMesh({ texture: new pixi_js.Texture() });
91
+ const mesh = new pixi_js.PerspectiveMesh({
92
+ texture: new pixi_js.Texture(),
93
+ verticesX: component.verticesX,
94
+ verticesY: component.verticesY,
95
+ });
84
96
  this.meshes[changed.gameObject.id] = mesh;
85
97
  this.containerManager.getContainer(changed.gameObject.id).addChildAt(mesh, 0);
86
98
  const asyncId = this.increaseAsyncId(gameObjectId);
@@ -92,6 +104,7 @@ exports.MeshSystem = class MeshSystem extends pluginRenderer.Renderer {
92
104
  console.error(`GameObject:${changed.gameObject.name}'s Mesh resource load error`);
93
105
  return;
94
106
  }
107
+ mesh.texture = texture;
95
108
  if (component.corners) {
96
109
  this.meshes[changed.gameObject.id].setCorners(component.corners.x0, component.corners.y0, component.corners.x1, component.corners.y1, component.corners.x2, component.corners.y2, component.corners.x3, component.corners.y3);
97
110
  }
@@ -124,12 +137,23 @@ exports.MeshSystem = class MeshSystem extends pluginRenderer.Renderer {
124
137
  }
125
138
  });
126
139
  }
140
+ destroy() {
141
+ var _a, _b;
142
+ for (const key in this.meshes) {
143
+ const mesh = this.meshes[key];
144
+ (_b = (_a = this.containerManager) === null || _a === void 0 ? void 0 : _a.getContainer(parseInt(key))) === null || _b === void 0 ? void 0 : _b.removeChild(mesh);
145
+ mesh.destroy();
146
+ delete this.meshes[key];
147
+ }
148
+ }
127
149
  };
128
- exports.MeshSystem.systemName = 'PerspectiveMesh';
129
- exports.MeshSystem = __decorate([
150
+ MeshSystem.systemName = 'MeshSystem';
151
+ MeshSystem = __decorate([
130
152
  eva_js.decorators.componentObserver({
131
153
  PerspectiveMesh: ['resource', '_forceUpdate'],
132
154
  })
133
- ], exports.MeshSystem);
155
+ ], MeshSystem);
156
+ var MeshSystem$1 = MeshSystem;
134
157
 
158
+ exports.MeshSystem = MeshSystem$1;
135
159
  exports.PerspectiveMesh = PerspectiveMesh;
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@eva/eva.js"),r=require("@eva/plugin-renderer"),t=require("pixi.js");class s extends e.Component{constructor(){super(...arguments),this._forceUpdate=0}init(e){e&&e.resource&&(this.resource=e.resource)}setCorners(e,r,t,s,n,o,c,i){const a=this.corners||{};a.x0=e,a.y0=r,a.x1=t,a.y1=s,a.x2=n,a.y2=o,a.x3=c,a.y3=i,this.corners=a,this._forceUpdate+=1}}s.componentName="PerspectiveMesh",exports.MeshSystem=class extends r.Renderer{constructor(){super(...arguments),this.name="PerspectiveMesh",this.meshes={}}init(){this.renderSystem=this.game.getSystem(r.RendererSystem),this.renderSystem.rendererManager.register(this)}componentChanged(r){var s,n,o,c,i,a;return o=this,c=void 0,a=function*(){if("PerspectiveMesh"===r.componentName){const o=r.gameObject.id,c=r.component;if(r.type===e.OBSERVER_TYPE.ADD){const n=new t.PerspectiveMesh({texture:new t.Texture});this.meshes[r.gameObject.id]=n,this.containerManager.getContainer(r.gameObject.id).addChildAt(n,0);const i=this.increaseAsyncId(o),a=yield e.resource.getResource(c.resource),h=null===(s=a.data)||void 0===s?void 0:s.image;if(!this.validateAsyncId(o,i))return;if(!h)return void console.error(`GameObject:${r.gameObject.name}'s Mesh resource load error`);c.corners?this.meshes[r.gameObject.id].setCorners(c.corners.x0,c.corners.y0,c.corners.x1,c.corners.y1,c.corners.x2,c.corners.y2,c.corners.x3,c.corners.y3):n.setCorners(0,0,h.width,0,h.width,h.height,0,h.height)}else if(r.type===e.OBSERVER_TYPE.CHANGE){const t=this.increaseAsyncId(o),s=yield e.resource.getResource(c.resource),i=null===(n=s.data)||void 0===n?void 0:n.image;if(!this.validateAsyncId(o,t))return;if(!i)return void console.error(`GameObject:${r.gameObject.name}'s Mesh resource load error`);this.meshes[r.gameObject.id].texture=i,c.corners&&this.meshes[r.gameObject.id].setCorners(c.corners.x0,c.corners.y0,c.corners.x1,c.corners.y1,c.corners.x2,c.corners.y2,c.corners.x3,c.corners.y3)}else if(r.type===e.OBSERVER_TYPE.REMOVE){this.increaseAsyncId(o);const e=this.meshes[r.gameObject.id];this.containerManager.getContainer(r.gameObject.id).removeChild(e),e.destroy(),delete this.meshes[r.gameObject.id]}}},new((i=void 0)||(i=Promise))((function(e,r){function t(e){try{n(a.next(e))}catch(e){r(e)}}function s(e){try{n(a.throw(e))}catch(e){r(e)}}function n(r){r.done?e(r.value):new i((function(e){e(r.value)})).then(t,s)}n((a=a.apply(o,c||[])).next())}))}},exports.MeshSystem.systemName="PerspectiveMesh",exports.MeshSystem=
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@eva/eva.js"),r=require("@eva/plugin-renderer"),t=require("pixi.js");class s extends e.Component{constructor(){super(...arguments),this.verticesX=10,this.verticesY=10,this._forceUpdate=0}init(e){e&&e.resource&&(this.resource=e.resource),e&&e.verticesX&&(this.verticesX=e.verticesX),e&&e.verticesY&&(this.verticesY=e.verticesY)}setCorners(e,r,t,s,n,i,o,c){const a=this.corners||{};a.x0=e,a.y0=r,a.x1=t,a.y1=s,a.x2=n,a.y2=i,a.x3=o,a.y3=c,this.corners=a,this._forceUpdate+=1}}s.componentName="PerspectiveMesh";let n=class extends r.Renderer{constructor(){super(...arguments),this.name="MeshSystem",this.meshes={}}init(){this.renderSystem=this.game.getSystem(r.RendererSystem),this.renderSystem.rendererManager.register(this)}componentChanged(r){var s,n,i,o,c,a;return i=this,o=void 0,a=function*(){if("PerspectiveMesh"===r.componentName){const i=r.gameObject.id,o=r.component;if(r.type===e.OBSERVER_TYPE.ADD){const n=new t.PerspectiveMesh({texture:new t.Texture,verticesX:o.verticesX,verticesY:o.verticesY});this.meshes[r.gameObject.id]=n,this.containerManager.getContainer(r.gameObject.id).addChildAt(n,0);const c=this.increaseAsyncId(i),a=yield e.resource.getResource(o.resource),h=null===(s=a.data)||void 0===s?void 0:s.image;if(!this.validateAsyncId(i,c))return;if(!h)return void console.error(`GameObject:${r.gameObject.name}'s Mesh resource load error`);n.texture=h,o.corners?this.meshes[r.gameObject.id].setCorners(o.corners.x0,o.corners.y0,o.corners.x1,o.corners.y1,o.corners.x2,o.corners.y2,o.corners.x3,o.corners.y3):n.setCorners(0,0,h.width,0,h.width,h.height,0,h.height)}else if(r.type===e.OBSERVER_TYPE.CHANGE){const t=this.increaseAsyncId(i),s=yield e.resource.getResource(o.resource),c=null===(n=s.data)||void 0===n?void 0:n.image;if(!this.validateAsyncId(i,t))return;if(!c)return void console.error(`GameObject:${r.gameObject.name}'s Mesh resource load error`);this.meshes[r.gameObject.id].texture=c,o.corners&&this.meshes[r.gameObject.id].setCorners(o.corners.x0,o.corners.y0,o.corners.x1,o.corners.y1,o.corners.x2,o.corners.y2,o.corners.x3,o.corners.y3)}else if(r.type===e.OBSERVER_TYPE.REMOVE){this.increaseAsyncId(i);const e=this.meshes[r.gameObject.id];this.containerManager.getContainer(r.gameObject.id).removeChild(e),e.destroy(),delete this.meshes[r.gameObject.id]}}},new((c=void 0)||(c=Promise))((function(e,r){function t(e){try{n(a.next(e))}catch(e){r(e)}}function s(e){try{n(a.throw(e))}catch(e){r(e)}}function n(r){r.done?e(r.value):new c((function(e){e(r.value)})).then(t,s)}n((a=a.apply(i,o||[])).next())}))}destroy(){var e,r;for(const t in this.meshes){const s=this.meshes[t];null===(r=null===(e=this.containerManager)||void 0===e?void 0:e.getContainer(parseInt(t)))||void 0===r||r.removeChild(s),s.destroy(),delete this.meshes[t]}}};n.systemName="MeshSystem",n=
2
2
  /*! *****************************************************************************
3
3
  Copyright (c) Microsoft Corporation. All rights reserved.
4
4
  Licensed under the Apache License, Version 2.0 (the "License"); you may not use
@@ -13,4 +13,4 @@ MERCHANTABLITY OR NON-INFRINGEMENT.
13
13
  See the Apache Version 2.0 License for specific language governing permissions
14
14
  and limitations under the License.
15
15
  ***************************************************************************** */
16
- function(e,r,t,s){var n,o=arguments.length,c=o<3?r:null===s?s=Object.getOwnPropertyDescriptor(r,t):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,r,t,s);else for(var i=e.length-1;i>=0;i--)(n=e[i])&&(c=(o<3?n(c):o>3?n(r,t,c):n(r,t))||c);return o>3&&c&&Object.defineProperty(r,t,c),c}([e.decorators.componentObserver({PerspectiveMesh:["resource","_forceUpdate"]})],exports.MeshSystem),exports.PerspectiveMesh=s;
16
+ function(e,r,t,s){var n,i=arguments.length,o=i<3?r:null===s?s=Object.getOwnPropertyDescriptor(r,t):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,r,t,s);else for(var c=e.length-1;c>=0;c--)(n=e[c])&&(o=(i<3?n(o):i>3?n(r,t,o):n(r,t))||o);return i>3&&o&&Object.defineProperty(r,t,o),o}([e.decorators.componentObserver({PerspectiveMesh:["resource","_forceUpdate"]})],n);var i=n;exports.MeshSystem=i,exports.PerspectiveMesh=s;
@@ -21,19 +21,24 @@ export declare class MeshSystem extends Renderer {
21
21
  meshes: {};
22
22
  init(): void;
23
23
  componentChanged(changed: ComponentChanged): Promise<void>;
24
+ destroy(): void;
24
25
  }
25
26
 
26
27
  export declare class PerspectiveMesh extends Component<PerspectiveMeshParams> {
27
28
  static componentName: string;
28
29
  resource: string;
30
+ verticesX: number;
31
+ verticesY: number;
29
32
  corners: Corners;
30
33
  _forceUpdate: number;
31
- init(obj?: PerspectiveMesh): void;
34
+ init(obj?: PerspectiveMeshParams): void;
32
35
  setCorners(x0: number, y0: number, x1: number, y1: number, x2: number, y2: number, x3: number, y3: number): void;
33
36
  }
34
37
 
35
- export declare interface PerspectiveMeshParams {
38
+ declare interface PerspectiveMeshParams {
36
39
  resource: string;
40
+ verticesX?: number;
41
+ verticesY?: number;
37
42
  }
38
43
 
39
44
  export { }
@@ -5,12 +5,20 @@ import { PerspectiveMesh as PerspectiveMesh$1, Texture } from 'pixi.js';
5
5
  class PerspectiveMesh extends Component {
6
6
  constructor() {
7
7
  super(...arguments);
8
+ this.verticesX = 10;
9
+ this.verticesY = 10;
8
10
  this._forceUpdate = 0;
9
11
  }
10
12
  init(obj) {
11
13
  if (obj && obj.resource) {
12
14
  this.resource = obj.resource;
13
15
  }
16
+ if (obj && obj.verticesX) {
17
+ this.verticesX = obj.verticesX;
18
+ }
19
+ if (obj && obj.verticesY) {
20
+ this.verticesY = obj.verticesY;
21
+ }
14
22
  }
15
23
  setCorners(x0, y0, x1, y1, x2, y2, x3, y3) {
16
24
  const corners = this.corners || {};
@@ -62,7 +70,7 @@ function __awaiter(thisArg, _arguments, P, generator) {
62
70
  let MeshSystem = class MeshSystem extends Renderer {
63
71
  constructor() {
64
72
  super(...arguments);
65
- this.name = 'PerspectiveMesh';
73
+ this.name = 'MeshSystem';
66
74
  this.meshes = {};
67
75
  }
68
76
  init() {
@@ -76,7 +84,11 @@ let MeshSystem = class MeshSystem extends Renderer {
76
84
  const gameObjectId = changed.gameObject.id;
77
85
  const component = changed.component;
78
86
  if (changed.type === OBSERVER_TYPE.ADD) {
79
- const mesh = new PerspectiveMesh$1({ texture: new Texture() });
87
+ const mesh = new PerspectiveMesh$1({
88
+ texture: new Texture(),
89
+ verticesX: component.verticesX,
90
+ verticesY: component.verticesY,
91
+ });
80
92
  this.meshes[changed.gameObject.id] = mesh;
81
93
  this.containerManager.getContainer(changed.gameObject.id).addChildAt(mesh, 0);
82
94
  const asyncId = this.increaseAsyncId(gameObjectId);
@@ -88,6 +100,7 @@ let MeshSystem = class MeshSystem extends Renderer {
88
100
  console.error(`GameObject:${changed.gameObject.name}'s Mesh resource load error`);
89
101
  return;
90
102
  }
103
+ mesh.texture = texture;
91
104
  if (component.corners) {
92
105
  this.meshes[changed.gameObject.id].setCorners(component.corners.x0, component.corners.y0, component.corners.x1, component.corners.y1, component.corners.x2, component.corners.y2, component.corners.x3, component.corners.y3);
93
106
  }
@@ -120,12 +133,22 @@ let MeshSystem = class MeshSystem extends Renderer {
120
133
  }
121
134
  });
122
135
  }
136
+ destroy() {
137
+ var _a, _b;
138
+ for (const key in this.meshes) {
139
+ const mesh = this.meshes[key];
140
+ (_b = (_a = this.containerManager) === null || _a === void 0 ? void 0 : _a.getContainer(parseInt(key))) === null || _b === void 0 ? void 0 : _b.removeChild(mesh);
141
+ mesh.destroy();
142
+ delete this.meshes[key];
143
+ }
144
+ }
123
145
  };
124
- MeshSystem.systemName = 'PerspectiveMesh';
146
+ MeshSystem.systemName = 'MeshSystem';
125
147
  MeshSystem = __decorate([
126
148
  decorators.componentObserver({
127
149
  PerspectiveMesh: ['resource', '_forceUpdate'],
128
150
  })
129
- ], MeshSystem);
151
+ ], MeshSystem);
152
+ var MeshSystem$1 = MeshSystem;
130
153
 
131
- export { MeshSystem, PerspectiveMesh };
154
+ export { MeshSystem$1 as MeshSystem, PerspectiveMesh };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eva/plugin-renderer-mesh",
3
- "version": "2.0.0-beta.8",
3
+ "version": "2.0.0",
4
4
  "description": "@eva/plugin-renderer-mesh",
5
5
  "main": "index.js",
6
6
  "module": "dist/plugin-renderer-mesh.esm.js",
@@ -19,8 +19,8 @@
19
19
  "homepage": "https://eva.js.org",
20
20
  "dependencies": {
21
21
  "@eva/inspector-decorator": "^0.0.5",
22
- "@eva/plugin-renderer": "2.0.0-beta.8",
23
- "@eva/eva.js": "2.0.0-beta.8",
24
- "pixi.js": "^8.6.5"
22
+ "@eva/plugin-renderer": "2.0.0",
23
+ "@eva/eva.js": "2.0.0",
24
+ "pixi.js": "^8.8.1"
25
25
  }
26
26
  }