@eva/plugin-renderer 2.0.0-beta.9 → 2.0.1-beta.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,6 +1,6 @@
|
|
|
1
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
|
-
|
|
3
|
-
|
|
2
|
+
globalThis.EVA = globalThis.EVA || {};
|
|
3
|
+
globalThis.EVA.plugin = globalThis.EVA.plugin || {};
|
|
4
4
|
var _EVA_IIFE_renderer = function (exports, eva_js, rendererAdapter, pixi_js) {
|
|
5
5
|
'use strict';
|
|
6
6
|
function __decorate(decorators, target, key, desc) {
|
|
@@ -912,23 +912,33 @@ var _EVA_IIFE_renderer = function (exports, eva_js, rendererAdapter, pixi_js) {
|
|
|
912
912
|
class ContainerManager {
|
|
913
913
|
constructor() {
|
|
914
914
|
this.containerMap = {};
|
|
915
|
+
this.gameObjectMap = {};
|
|
915
916
|
}
|
|
916
917
|
addContainer({
|
|
917
918
|
name,
|
|
918
|
-
container
|
|
919
|
+
container,
|
|
920
|
+
gameObject
|
|
919
921
|
}) {
|
|
920
922
|
this.containerMap[name] = container;
|
|
923
|
+
container.gName = gameObject.name || name;
|
|
924
|
+
this.gameObjectMap[gameObject.name || name] = gameObject;
|
|
921
925
|
}
|
|
922
926
|
getContainer(name) {
|
|
923
927
|
return this.containerMap[name];
|
|
924
928
|
}
|
|
925
929
|
removeContainer(name) {
|
|
926
|
-
|
|
927
|
-
(
|
|
928
|
-
|
|
929
|
-
|
|
930
|
+
const container = this.containerMap[name];
|
|
931
|
+
if (container) {
|
|
932
|
+
delete this.gameObjectMap[container.gName];
|
|
933
|
+
container.destroy({
|
|
934
|
+
children: true
|
|
935
|
+
});
|
|
936
|
+
}
|
|
930
937
|
delete this.containerMap[name];
|
|
931
938
|
}
|
|
939
|
+
getGameObjectByName(name) {
|
|
940
|
+
return this.gameObjectMap[name];
|
|
941
|
+
}
|
|
932
942
|
updateTransform({
|
|
933
943
|
name,
|
|
934
944
|
transform
|
|
@@ -1184,12 +1194,13 @@ var _EVA_IIFE_renderer = function (exports, eva_js, rendererAdapter, pixi_js) {
|
|
|
1184
1194
|
container.label = changed.gameObject.name;
|
|
1185
1195
|
this.containerManager.addContainer({
|
|
1186
1196
|
name: changed.gameObject.id,
|
|
1187
|
-
container
|
|
1197
|
+
container,
|
|
1198
|
+
gameObject: changed.gameObject
|
|
1188
1199
|
});
|
|
1189
1200
|
const transform = changed.component;
|
|
1190
1201
|
Object.defineProperty(transform, 'worldTransform', {
|
|
1191
1202
|
get() {
|
|
1192
|
-
return container.worldTransform;
|
|
1203
|
+
return container.renderGroup || container.parentRenderGroup ? container.worldTransform : void 0;
|
|
1193
1204
|
}
|
|
1194
1205
|
});
|
|
1195
1206
|
}
|
|
@@ -1301,16 +1312,19 @@ var _EVA_IIFE_renderer = function (exports, eva_js, rendererAdapter, pixi_js) {
|
|
|
1301
1312
|
if (params.debugMode) {
|
|
1302
1313
|
globalThis.__PIXI_APP__ = app;
|
|
1303
1314
|
}
|
|
1315
|
+
const ticker = new pixi_js.Ticker();
|
|
1316
|
+
pixi_js.Ticker._system = pixi_js.Ticker._shared = ticker;
|
|
1317
|
+
ticker._protected = true;
|
|
1304
1318
|
yield app.init(_extends(_extends({
|
|
1305
1319
|
sharedTicker: true
|
|
1306
1320
|
}, params), {
|
|
1307
1321
|
hello: true
|
|
1308
1322
|
}));
|
|
1309
|
-
pixi_js.Ticker.shared.stop();
|
|
1310
|
-
pixi_js.Ticker.shared.autoStart = false;
|
|
1311
1323
|
if (params.enableScroll !== undefined) {
|
|
1312
1324
|
params.enableScroll ? enableScroll(app.renderer) : disableScroll(app.renderer);
|
|
1313
1325
|
}
|
|
1326
|
+
pixi_js.Ticker.shared.stop();
|
|
1327
|
+
pixi_js.Ticker.shared.autoStart = false;
|
|
1314
1328
|
return app;
|
|
1315
1329
|
});
|
|
1316
1330
|
}
|
|
@@ -1328,6 +1342,13 @@ var _EVA_IIFE_renderer = function (exports, eva_js, rendererAdapter, pixi_js) {
|
|
|
1328
1342
|
}
|
|
1329
1343
|
}
|
|
1330
1344
|
lateUpdate(e) {
|
|
1345
|
+
for (const gameObject of this.game.gameObjects) {
|
|
1346
|
+
this.containerManager.updateTransform({
|
|
1347
|
+
name: gameObject.id,
|
|
1348
|
+
transform: gameObject.transform
|
|
1349
|
+
});
|
|
1350
|
+
this.rendererManager.update(gameObject);
|
|
1351
|
+
}
|
|
1331
1352
|
this.transform.update();
|
|
1332
1353
|
this.application.ticker.update(e.time);
|
|
1333
1354
|
}
|
|
@@ -1360,7 +1381,7 @@ var _EVA_IIFE_renderer = function (exports, eva_js, rendererAdapter, pixi_js) {
|
|
|
1360
1381
|
function getSuportCompressedTextureFormats() {
|
|
1361
1382
|
if (result) return result;
|
|
1362
1383
|
const canvas = document.createElement('canvas');
|
|
1363
|
-
const gl = canvas.getContext('webgl2')
|
|
1384
|
+
const gl = canvas.getContext('webgl2');
|
|
1364
1385
|
if (!gl) {
|
|
1365
1386
|
console.warn('WebGL not available for compressed textures. Silently failing.');
|
|
1366
1387
|
return {
|
|
@@ -1441,4 +1462,4 @@ var _EVA_IIFE_renderer = function (exports, eva_js, rendererAdapter, pixi_js) {
|
|
|
1441
1462
|
});
|
|
1442
1463
|
return exports;
|
|
1443
1464
|
}({}, EVA, EVA.rendererAdapter, PIXI);
|
|
1444
|
-
|
|
1465
|
+
globalThis.EVA.plugin.renderer = globalThis.EVA.plugin.renderer || _EVA_IIFE_renderer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},_extends.apply(null,arguments)}window.EVA=window.EVA||{},window.EVA.plugin=window.EVA.plugin||{};var _EVA_IIFE_renderer=function(e,t,n,r){"use strict";function o(e,t,n,r){var o,a=arguments.length,i=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(i=(a<3?o(i):a>3?o(t,n,i):o(t,n))||i);return a>3&&i&&Object.defineProperty(t,n,i),i}function a(e,t,n,r){return new(n||(n=Promise))((function(o,a){function i(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,s)}c((r=r.apply(e,t||[])).next())}))}function i(e,t){return e===t||e!=e&&t!=t}function s(e,t){for(var n=e.length;n--;)if(i(e[n][0],t))return n;return-1}var c=Array.prototype.splice;function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}u.prototype.clear=function(){this.__data__=[],this.size=0},u.prototype.delete=function(e){var t=this.__data__,n=s(t,e);return!(n<0)&&(n==t.length-1?t.pop():c.call(t,n,1),--this.size,!0)},u.prototype.get=function(e){var t=this.__data__,n=s(t,e);return n<0?void 0:t[n][1]},u.prototype.has=function(e){return s(this.__data__,e)>-1},u.prototype.set=function(e,t){var n=this.__data__,r=s(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};var p="object"==typeof global&&global&&global.Object===Object&&global,l="object"==typeof self&&self&&self.Object===Object&&self,f=p||l||Function("return this")(),h=f.Symbol,d=Object.prototype,v=d.hasOwnProperty,_=d.toString,y=h?h.toStringTag:void 0;var g=Object.prototype.toString;var m=h?h.toStringTag:void 0;function b(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":m&&m in Object(e)?function(e){var t=v.call(e,y),n=e[y];try{e[y]=void 0;var r=!0}catch(e){}var o=_.call(e);return r&&(t?e[y]=n:delete e[y]),o}(e):function(e){return g.call(e)}(e)}function j(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function O(e){if(!j(e))return!1;var t=b(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}var w,E=f["__core-js_shared__"],x=(w=/[^.]+$/.exec(E&&E.keys&&E.keys.IE_PROTO||""))?"Symbol(src)_1."+w:"";var A=Function.prototype.toString;function C(e){if(null!=e){try{return A.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var M=/^\[object .+?Constructor\]$/,S=Function.prototype,P=Object.prototype,R=S.toString,T=P.hasOwnProperty,I=RegExp("^"+R.call(T).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function z(e){return!(!j(e)||(t=e,x&&x in t))&&(O(e)?I:M).test(C(e));var t}function L(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return z(n)?n:void 0}var N=L(f,"Map"),V=L(Object,"create");var k=Object.prototype.hasOwnProperty;var B=Object.prototype.hasOwnProperty;function D(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function W(e,t){var n,r,o=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?o["string"==typeof t?"string":"hash"]:o.map}function U(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}D.prototype.clear=function(){this.__data__=V?V(null):{},this.size=0},D.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},D.prototype.get=function(e){var t=this.__data__;if(V){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return k.call(t,e)?t[e]:void 0},D.prototype.has=function(e){var t=this.__data__;return V?void 0!==t[e]:B.call(t,e)},D.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=V&&void 0===t?"__lodash_hash_undefined__":t,this},U.prototype.clear=function(){this.size=0,this.__data__={hash:new D,map:new(N||u),string:new D}},U.prototype.delete=function(e){var t=W(this,e).delete(e);return this.size-=t?1:0,t},U.prototype.get=function(e){return W(this,e).get(e)},U.prototype.has=function(e){return W(this,e).has(e)},U.prototype.set=function(e,t){var n=W(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this};function G(e){var t=this.__data__=new u(e);this.size=t.size}G.prototype.clear=function(){this.__data__=new u,this.size=0},G.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},G.prototype.get=function(e){return this.__data__.get(e)},G.prototype.has=function(e){return this.__data__.has(e)},G.prototype.set=function(e,t){var n=this.__data__;if(n instanceof u){var r=n.__data__;if(!N||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new U(r)}return n.set(e,t),this.size=n.size,this};function $(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new U;++t<n;)this.add(e[t])}function F(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}$.prototype.add=$.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},$.prototype.has=function(e){return this.__data__.has(e)};function Y(e,t,n,r,o,a){var i=1&n,s=e.length,c=t.length;if(s!=c&&!(i&&c>s))return!1;var u=a.get(e),p=a.get(t);if(u&&p)return u==t&&p==e;var l=-1,f=!0,h=2&n?new $:void 0;for(a.set(e,t),a.set(t,e);++l<s;){var d=e[l],v=t[l];if(r)var _=i?r(v,d,l,t,e,a):r(d,v,l,e,t,a);if(void 0!==_){if(_)continue;f=!1;break}if(h){if(!F(t,(function(e,t){if(i=t,!h.has(i)&&(d===e||o(d,e,n,r,a)))return h.push(t);var i}))){f=!1;break}}else if(d!==v&&!o(d,v,n,r,a)){f=!1;break}}return a.delete(e),a.delete(t),f}var K=f.Uint8Array;function X(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function q(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}var H=h?h.prototype:void 0,J=H?H.valueOf:void 0;var Q=Array.isArray;var Z=Object.prototype.propertyIsEnumerable,ee=Object.getOwnPropertySymbols,te=ee?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var n=-1,r=null==e?0:e.length,o=0,a=[];++n<r;){var i=e[n];t(i,n,e)&&(a[o++]=i)}return a}(ee(e),(function(t){return Z.call(e,t)})))}:function(){return[]},ne=te;function re(e){return null!=e&&"object"==typeof e}function oe(e){return re(e)&&"[object Arguments]"==b(e)}var ae=Object.prototype,ie=ae.hasOwnProperty,se=ae.propertyIsEnumerable,ce=oe(function(){return arguments}())?oe:function(e){return re(e)&&ie.call(e,"callee")&&!se.call(e,"callee")},ue=ce;var pe="object"==typeof e&&e&&!e.nodeType&&e,le=pe&&"object"==typeof module&&module&&!module.nodeType&&module,fe=le&&le.exports===pe?f.Buffer:void 0,he=(fe?fe.isBuffer:void 0)||function(){return!1},de=/^(?:0|[1-9]\d*)$/;function ve(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&de.test(e))&&e>-1&&e%1==0&&e<t}function _e(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}var ye={};ye["[object Float32Array]"]=ye["[object Float64Array]"]=ye["[object Int8Array]"]=ye["[object Int16Array]"]=ye["[object Int32Array]"]=ye["[object Uint8Array]"]=ye["[object Uint8ClampedArray]"]=ye["[object Uint16Array]"]=ye["[object Uint32Array]"]=!0,ye["[object Arguments]"]=ye["[object Array]"]=ye["[object ArrayBuffer]"]=ye["[object Boolean]"]=ye["[object DataView]"]=ye["[object Date]"]=ye["[object Error]"]=ye["[object Function]"]=ye["[object Map]"]=ye["[object Number]"]=ye["[object Object]"]=ye["[object RegExp]"]=ye["[object Set]"]=ye["[object String]"]=ye["[object WeakMap]"]=!1;var ge,me="object"==typeof e&&e&&!e.nodeType&&e,be=me&&"object"==typeof module&&module&&!module.nodeType&&module,je=be&&be.exports===me&&p.process,Oe=function(){try{var e=be&&be.require&&be.require("util").types;return e||je&&je.binding&&je.binding("util")}catch(e){}}(),we=Oe&&Oe.isTypedArray,Ee=we?(ge=we,function(e){return ge(e)}):function(e){return re(e)&&_e(e.length)&&!!ye[b(e)]},xe=Object.prototype.hasOwnProperty;function Ae(e,t){var n=Q(e),r=!n&&ue(e),o=!n&&!r&&he(e),a=!n&&!r&&!o&&Ee(e),i=n||r||o||a,s=i?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],c=s.length;for(var u in e)!t&&!xe.call(e,u)||i&&("length"==u||o&&("offset"==u||"parent"==u)||a&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||ve(u,c))||s.push(u);return s}var Ce=Object.prototype;var Me=function(e,t){return function(n){return e(t(n))}}(Object.keys,Object),Se=Me,Pe=Object.prototype.hasOwnProperty;function Re(e){if(n=(t=e)&&t.constructor,t!==("function"==typeof n&&n.prototype||Ce))return Se(e);var t,n,r=[];for(var o in Object(e))Pe.call(e,o)&&"constructor"!=o&&r.push(o);return r}function Te(e){return null!=(t=e)&&_e(t.length)&&!O(t)?Ae(e):Re(e);var t}function Ie(e){return function(e,t,n){var r=t(e);return Q(e)?r:function(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}(r,n(e))}(e,Te,ne)}var ze=Object.prototype.hasOwnProperty;var Le=L(f,"DataView"),Ne=L(f,"Promise"),Ve=L(f,"Set"),ke=L(f,"WeakMap"),Be="[object Map]",De="[object Promise]",We="[object Set]",Ue="[object WeakMap]",Ge="[object DataView]",$e=C(Le),Fe=C(N),Ye=C(Ne),Ke=C(Ve),Xe=C(ke),qe=b;(Le&&qe(new Le(new ArrayBuffer(1)))!=Ge||N&&qe(new N)!=Be||Ne&&qe(Ne.resolve())!=De||Ve&&qe(new Ve)!=We||ke&&qe(new ke)!=Ue)&&(qe=function(e){var t=b(e),n="[object Object]"==t?e.constructor:void 0,r=n?C(n):"";if(r)switch(r){case $e:return Ge;case Fe:return Be;case Ye:return De;case Ke:return We;case Xe:return Ue}return t});var He=qe,Je="[object Arguments]",Qe="[object Array]",Ze="[object Object]",et=Object.prototype.hasOwnProperty;function tt(e,t,n,r,o,a){var s=Q(e),c=Q(t),u=s?Qe:He(e),p=c?Qe:He(t),l=(u=u==Je?Ze:u)==Ze,f=(p=p==Je?Ze:p)==Ze,h=u==p;if(h&&he(e)){if(!he(t))return!1;s=!0,l=!1}if(h&&!l)return a||(a=new G),s||Ee(e)?Y(e,t,n,r,o,a):function(e,t,n,r,o,a,s){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!a(new K(e),new K(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return i(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var c=X;case"[object Set]":var u=1&r;if(c||(c=q),e.size!=t.size&&!u)return!1;var p=s.get(e);if(p)return p==t;r|=2,s.set(e,t);var l=Y(c(e),c(t),r,o,a,s);return s.delete(e),l;case"[object Symbol]":if(J)return J.call(e)==J.call(t)}return!1}(e,t,u,n,r,o,a);if(!(1&n)){var d=l&&et.call(e,"__wrapped__"),v=f&&et.call(t,"__wrapped__");if(d||v){var _=d?e.value():e,y=v?t.value():t;return a||(a=new G),o(_,y,n,r,a)}}return!!h&&(a||(a=new G),function(e,t,n,r,o,a){var i=1&n,s=Ie(e),c=s.length;if(c!=Ie(t).length&&!i)return!1;for(var u=c;u--;){var p=s[u];if(!(i?p in t:ze.call(t,p)))return!1}var l=a.get(e),f=a.get(t);if(l&&f)return l==t&&f==e;var h=!0;a.set(e,t),a.set(t,e);for(var d=i;++u<c;){var v=e[p=s[u]],_=t[p];if(r)var y=i?r(_,v,p,t,e,a):r(v,_,p,e,t,a);if(!(void 0===y?v===_||o(v,_,n,r,a):y)){h=!1;break}d||(d="constructor"==p)}if(h&&!d){var g=e.constructor,m=t.constructor;g==m||!("constructor"in e)||!("constructor"in t)||"function"==typeof g&&g instanceof g&&"function"==typeof m&&m instanceof m||(h=!1)}return a.delete(e),a.delete(t),h}(e,t,n,r,o,a))}function nt(e,t,n,r,o){return e===t||(null==e||null==t||!re(e)&&!re(t)?e!=e&&t!=t:tt(e,t,n,r,nt,o))}var rt=class{constructor({game:e,rendererSystem:t}){this.renderers=[],this.game=e,this.rendererSystem=t}register(...e){for(const t of e)t.game=this.game,t.rendererManager=this.rendererSystem.rendererManager,t.containerManager=this.rendererSystem.containerManager,this.renderers.push(t)}componentChanged(e){for(const n of e)for(const e of this.renderers){const r=e.observerInfo[n.componentName];if(r){if([t.OBSERVER_TYPE.ADD,t.OBSERVER_TYPE.REMOVE].indexOf(n.type)>-1){try{e.componentChanged&&e.componentChanged(n)}catch(e){console.error(`gameObject: ${n.gameObject.name}, ${n.componentName} is error.`,n,e)}continue}if(r.findIndex((e=>{return t=e,r=n.prop,nt(t,r);var t,r}))>-1)try{e.componentChanged&&e.componentChanged(n)}catch(e){console.error(`gameObject: ${n.gameObject&&n.gameObject.name}, ${n.componentName} is componentChanged error.`,n,e)}}}}update(e){for(const t of e.components)for(const n of this.renderers){const r=[];if(n.observerInfo[t.name]&&-1===r.indexOf(e)){r.push(e);try{n.rendererUpdate&&n.rendererUpdate(e)}catch(n){console.info(`gameObject: ${e.name}, ${t.name} is update error`,n)}}}}};class ot{constructor(){this.containerMap={}}addContainer({name:e,container:t}){this.containerMap[e]=t}getContainer(e){return this.containerMap[e]}removeContainer(e){var t;null===(t=this.containerMap[e])||void 0===t||t.destroy({children:!0}),delete this.containerMap[e]}updateTransform({name:e,transform:t}){const n=this.containerMap[e];if(!n||!t)return;const{anchor:r,origin:o,position:a,rotation:i,scale:s,size:c,skew:u}=t;n.rotation=i,n.scale=s,n.pivot.x=c.width*o.x,n.pivot.y=c.height*o.y,n.skew=u;let p=a.x,l=a.y;if(t.parent){const e=t.parent;p+=e.size.width*r.x,l+=e.size.height*r.y}n.position={x:p,y:l}}}var at=function(e){var t={exports:{}};return e(t,t.exports),t.exports}((function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}function o(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function a(e,t,r,a,i){if("function"!=typeof r)throw new TypeError("The listener must be a function");var s=new o(r,a||e,i),c=n?n+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],s]:e._events[c].push(s):(e._events[c]=s,e._eventsCount++),e}function i(e,t){0==--e._eventsCount?e._events=new r:delete e._events[t]}function s(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),s.prototype.eventNames=function(){var e,r,o=[];if(0===this._eventsCount)return o;for(r in e=this._events)t.call(e,r)&&o.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?o.concat(Object.getOwnPropertySymbols(e)):o},s.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var o=0,a=r.length,i=new Array(a);o<a;o++)i[o]=r[o].fn;return i},s.prototype.listenerCount=function(e){var t=n?n+e:e,r=this._events[t];return r?r.fn?1:r.length:0},s.prototype.emit=function(e,t,r,o,a,i){var s=n?n+e:e;if(!this._events[s])return!1;var c,u,p=this._events[s],l=arguments.length;if(p.fn){switch(p.once&&this.removeListener(e,p.fn,void 0,!0),l){case 1:return p.fn.call(p.context),!0;case 2:return p.fn.call(p.context,t),!0;case 3:return p.fn.call(p.context,t,r),!0;case 4:return p.fn.call(p.context,t,r,o),!0;case 5:return p.fn.call(p.context,t,r,o,a),!0;case 6:return p.fn.call(p.context,t,r,o,a,i),!0}for(u=1,c=new Array(l-1);u<l;u++)c[u-1]=arguments[u];p.fn.apply(p.context,c)}else{var f,h=p.length;for(u=0;u<h;u++)switch(p[u].once&&this.removeListener(e,p[u].fn,void 0,!0),l){case 1:p[u].fn.call(p[u].context);break;case 2:p[u].fn.call(p[u].context,t);break;case 3:p[u].fn.call(p[u].context,t,r);break;case 4:p[u].fn.call(p[u].context,t,r,o);break;default:if(!c)for(f=1,c=new Array(l-1);f<l;f++)c[f-1]=arguments[f];p[u].fn.apply(p[u].context,c)}}return!0},s.prototype.on=function(e,t,n){return a(this,e,t,n,!1)},s.prototype.once=function(e,t,n){return a(this,e,t,n,!0)},s.prototype.removeListener=function(e,t,r,o){var a=n?n+e:e;if(!this._events[a])return this;if(!t)return i(this,a),this;var s=this._events[a];if(s.fn)s.fn!==t||o&&!s.once||r&&s.context!==r||i(this,a);else{for(var c=0,u=[],p=s.length;c<p;c++)(s[c].fn!==t||o&&!s[c].once||r&&s[c].context!==r)&&u.push(s[c]);u.length?this._events[a]=1===u.length?u[0]:u:i(this,a)}return this},s.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&i(this,t)):(this._events=new r,this._eventsCount=0),this},s.prototype.off=s.prototype.removeListener,s.prototype.addListener=s.prototype.on,s.prefixed=n,s.EventEmitter=s,e.exports=s})),it=at;let st=class extends it{constructor({system:e,containerManager:t}){super(),this.name="Transform",this.waitRemoveIds=[],this.waitChangeScenes=[],this.containerManager=t,this.init(e)}init(e){this.system=e,this.on("changeScene",(({scene:e,mode:t,application:n})=>{this.waitChangeScenes.push({scene:e,mode:t,application:n})}))}update(){for(const e of this.waitRemoveIds)this.containerManager.removeContainer(e);this.waitRemoveIds=[];for(const e of this.waitChangeScenes){const t=this.containerManager.getContainer(e.scene.id);t&&(e.application.stage.removeChildren(),e.application.stage.addChild(t))}this.waitChangeScenes=[]}componentChanged(e){e.type===t.OBSERVER_TYPE.ADD?this.addContainer(e):e.type===t.OBSERVER_TYPE.CHANGE?this.change(e):e.type===t.OBSERVER_TYPE.REMOVE&&this.waitRemoveIds.push(e.gameObject.id)}addContainer(e){const t=new n.Container;t.label=e.gameObject.name,this.containerManager.addContainer({name:e.gameObject.id,container:t});const r=e.component;Object.defineProperty(r,"worldTransform",{get:()=>t.worldTransform})}change(e){const t=e.component;if(t.parent){this.containerManager.getContainer(t.parent.gameObject.id).addChild(this.containerManager.getContainer(e.gameObject.id));const n=e.gameObject.transform.parent&&e.gameObject.transform.parent.gameObject.getComponent("Render");n&&(n.sortDirty=!0)}else{const t=this.containerManager.getContainer(e.gameObject.id);t.parent&&t.parent.removeChild(t)}}destroy(){this.removeAllListeners(),this.waitRemoveIds=null,this.waitChangeScenes=null,this.system=null,this.containerManager=null}};st=o([t.decorators.componentObserver({Transform:["_parent"]})],st);var ct,ut=st;e.RENDERER_TYPE=void 0,(ct=e.RENDERER_TYPE||(e.RENDERER_TYPE={}))[ct.UNKNOWN=0]="UNKNOWN",ct[ct.WEBGL=1]="WEBGL",ct[ct.CANVAS=2]="CANVAS";let pt=class extends t.System{constructor(){super(...arguments),this.multiApps=[]}init(e){return a(this,void 0,void 0,(function*(){this.params=e,this.application=yield this.createApplication(e),this.containerManager=new ot,this.rendererManager=new rt({game:this.game,rendererSystem:this}),this.game.canvas=this.application.canvas,this.transform=new ut({system:this,containerManager:this.containerManager}),this.game.on("sceneChanged",(({scene:e,mode:n,params:r})=>{let o;switch(n){case t.LOAD_SCENE_MODE.SINGLE:o=this.application;break;case t.LOAD_SCENE_MODE.MULTI_CANVAS:o=this.createMultiApplication({params:r})}e.canvas=o.canvas,this.transform.emit("changeScene",{scene:e,mode:n,application:o})}))}))}registerObserver(e){const t=this.constructor.observerInfo;for(const n in e)t[n]||(t[n]=[]),t[n].push(...e[n])}createMultiApplication({params:e}){return a(this,void 0,void 0,(function*(){const t=yield this.createApplication(e);return this.multiApps.push(t),t}))}createApplication(e){return a(this,void 0,void 0,(function*(){const t=new n.Application;var o;return e.debugMode&&(globalThis.__PIXI_APP__=t),yield t.init(_extends(_extends({sharedTicker:!0},e),{hello:!0})),r.Ticker.shared.stop(),r.Ticker.shared.autoStart=!1,void 0!==e.enableScroll&&(e.enableScroll?((o=t.renderer).events.autoPreventDefault=!1,o.canvas.style.touchAction="auto"):(e=>{e.events.autoPreventDefault=!0,e.canvas.style.touchAction="none"})(t.renderer)),t}))}update(){const e=this.componentObserver.clear();for(const t of e)this.transform.componentChanged(t);for(const e of this.game.gameObjects)this.containerManager.updateTransform({name:e.id,transform:e.transform}),this.rendererManager.update(e)}lateUpdate(e){this.transform.update(),this.application.ticker.update(e.time)}onDestroy(){this.application.destroy();for(const e of this.multiApps)e&&e.destroy();this.transform.destroy(),this.transform=null,this.params=null,this.rendererManager=null,this.containerManager=null,this.application=null,this.game=null,this.multiApps=null}resize(e,t){this.params.width=e,this.params.height=t,this.application.renderer.resize(e,t)}};pt.systemName="Renderer",pt=o([t.decorators.componentObserver({Transform:["_parent"]})],pt);var lt=pt;let ft;function ht(e){e.addPreProcessResourceHandler((function(e){var t,n,r;let o=null===(n=null===(t=e.src)||void 0===t?void 0:t.image)||void 0===n?void 0:n.texture;if(!o)return;Array.isArray(o)||(o=[o]);const a=null!==(r=function(){if(ft)return ft;const e=document.createElement("canvas"),t=e.getContext("webgl2")||e.getContext("webgl");if(!t)return console.warn("WebGL not available for compressed textures. Silently failing."),{s3tc:!1,etc:!1,etc1:!1,pvrtc:!1,atc:!1,astc:!1};ft={s3tc:!!t.getExtension("WEBGL_compressed_texture_s3tc"),etc:!!t.getExtension("WEBGL_compressed_texture_etc"),etc1:!!t.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:!!t.getExtension("WEBGL_compressed_texture_pvrtc")||!!t.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:!!t.getExtension("WEBGL_compressed_texture_atc"),astc:!!t.getExtension("WEBGL_compressed_texture_astc")};try{console.log("Eva.js Supported Compressed Texture Format List: "+Object.keys(ft).filter((e=>ft[e])).join(", "))}catch(e){}return ft}())&&void 0!==r?r:{};let i=o.find((e=>a[e.type]));i&&_extends(e.src.image,i)}))}class dt extends t.System{constructor(e){super(e),this.asyncIdMap={},this.observerInfo=this.constructor.observerInfo}componentChanged(e){}rendererUpdate(e){}update(e){const t=this.componentObserver.clear();for(const e of t)this.componentChanged(e)}increaseAsyncId(e){return this.asyncIdMap[e]=(this.asyncIdMap[e]||0)+1,this.asyncIdMap[e]}validateAsyncId(e,t){return this.asyncIdMap[e]===t}}return e.ContainerManager=ot,e.Renderer=dt,e.RendererManager=rt,e.RendererSystem=lt,e.registerKtx2CompressedTexture=function(e){r.setKTXTranscoderPath(e),r.extensions.add(r.loadKTX2),r.extensions.add(r.resolveCompressedTextureUrl),r.extensions.add(r.detectCompressed),ht(t.resource)},Object.defineProperty(e,"__esModule",{value:!0}),e}({},EVA,EVA.rendererAdapter,PIXI);window.EVA.plugin.renderer=window.EVA.plugin.renderer||_EVA_IIFE_renderer;
|
|
1
|
+
function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},_extends.apply(null,arguments)}globalThis.EVA=globalThis.EVA||{},globalThis.EVA.plugin=globalThis.EVA.plugin||{};var _EVA_IIFE_renderer=function(e,t,n,r){"use strict";function o(e,t,n,r){var o,a=arguments.length,i=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(i=(a<3?o(i):a>3?o(t,n,i):o(t,n))||i);return a>3&&i&&Object.defineProperty(t,n,i),i}function a(e,t,n,r){return new(n||(n=Promise))((function(o,a){function i(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,s)}c((r=r.apply(e,t||[])).next())}))}function i(e,t){return e===t||e!=e&&t!=t}function s(e,t){for(var n=e.length;n--;)if(i(e[n][0],t))return n;return-1}var c=Array.prototype.splice;function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}u.prototype.clear=function(){this.__data__=[],this.size=0},u.prototype.delete=function(e){var t=this.__data__,n=s(t,e);return!(n<0)&&(n==t.length-1?t.pop():c.call(t,n,1),--this.size,!0)},u.prototype.get=function(e){var t=this.__data__,n=s(t,e);return n<0?void 0:t[n][1]},u.prototype.has=function(e){return s(this.__data__,e)>-1},u.prototype.set=function(e,t){var n=this.__data__,r=s(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};var p="object"==typeof global&&global&&global.Object===Object&&global,l="object"==typeof self&&self&&self.Object===Object&&self,f=p||l||Function("return this")(),h=f.Symbol,d=Object.prototype,v=d.hasOwnProperty,_=d.toString,y=h?h.toStringTag:void 0;var g=Object.prototype.toString;var m=h?h.toStringTag:void 0;function b(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":m&&m in Object(e)?function(e){var t=v.call(e,y),n=e[y];try{e[y]=void 0;var r=!0}catch(e){}var o=_.call(e);return r&&(t?e[y]=n:delete e[y]),o}(e):function(e){return g.call(e)}(e)}function j(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function O(e){if(!j(e))return!1;var t=b(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}var w,E=f["__core-js_shared__"],x=(w=/[^.]+$/.exec(E&&E.keys&&E.keys.IE_PROTO||""))?"Symbol(src)_1."+w:"";var A=Function.prototype.toString;function M(e){if(null!=e){try{return A.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var C=/^\[object .+?Constructor\]$/,S=Function.prototype,T=Object.prototype,P=S.toString,R=T.hasOwnProperty,I=RegExp("^"+P.call(R).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function z(e){return!(!j(e)||(t=e,x&&x in t))&&(O(e)?I:C).test(M(e));var t}function L(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return z(n)?n:void 0}var N=L(f,"Map"),k=L(Object,"create");var V=Object.prototype.hasOwnProperty;var B=Object.prototype.hasOwnProperty;function D(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function G(e,t){var n,r,o=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?o["string"==typeof t?"string":"hash"]:o.map}function W(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}D.prototype.clear=function(){this.__data__=k?k(null):{},this.size=0},D.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},D.prototype.get=function(e){var t=this.__data__;if(k){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return V.call(t,e)?t[e]:void 0},D.prototype.has=function(e){var t=this.__data__;return k?void 0!==t[e]:B.call(t,e)},D.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=k&&void 0===t?"__lodash_hash_undefined__":t,this},W.prototype.clear=function(){this.size=0,this.__data__={hash:new D,map:new(N||u),string:new D}},W.prototype.delete=function(e){var t=G(this,e).delete(e);return this.size-=t?1:0,t},W.prototype.get=function(e){return G(this,e).get(e)},W.prototype.has=function(e){return G(this,e).has(e)},W.prototype.set=function(e,t){var n=G(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this};function U(e){var t=this.__data__=new u(e);this.size=t.size}U.prototype.clear=function(){this.__data__=new u,this.size=0},U.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},U.prototype.get=function(e){return this.__data__.get(e)},U.prototype.has=function(e){return this.__data__.has(e)},U.prototype.set=function(e,t){var n=this.__data__;if(n instanceof u){var r=n.__data__;if(!N||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new W(r)}return n.set(e,t),this.size=n.size,this};function $(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new W;++t<n;)this.add(e[t])}function F(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}$.prototype.add=$.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},$.prototype.has=function(e){return this.__data__.has(e)};function Y(e,t,n,r,o,a){var i=1&n,s=e.length,c=t.length;if(s!=c&&!(i&&c>s))return!1;var u=a.get(e),p=a.get(t);if(u&&p)return u==t&&p==e;var l=-1,f=!0,h=2&n?new $:void 0;for(a.set(e,t),a.set(t,e);++l<s;){var d=e[l],v=t[l];if(r)var _=i?r(v,d,l,t,e,a):r(d,v,l,e,t,a);if(void 0!==_){if(_)continue;f=!1;break}if(h){if(!F(t,(function(e,t){if(i=t,!h.has(i)&&(d===e||o(d,e,n,r,a)))return h.push(t);var i}))){f=!1;break}}else if(d!==v&&!o(d,v,n,r,a)){f=!1;break}}return a.delete(e),a.delete(t),f}var K=f.Uint8Array;function X(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function q(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}var H=h?h.prototype:void 0,J=H?H.valueOf:void 0;var Q=Array.isArray;var Z=Object.prototype.propertyIsEnumerable,ee=Object.getOwnPropertySymbols,te=ee?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var n=-1,r=null==e?0:e.length,o=0,a=[];++n<r;){var i=e[n];t(i,n,e)&&(a[o++]=i)}return a}(ee(e),(function(t){return Z.call(e,t)})))}:function(){return[]},ne=te;function re(e){return null!=e&&"object"==typeof e}function oe(e){return re(e)&&"[object Arguments]"==b(e)}var ae=Object.prototype,ie=ae.hasOwnProperty,se=ae.propertyIsEnumerable,ce=oe(function(){return arguments}())?oe:function(e){return re(e)&&ie.call(e,"callee")&&!se.call(e,"callee")},ue=ce;var pe="object"==typeof e&&e&&!e.nodeType&&e,le=pe&&"object"==typeof module&&module&&!module.nodeType&&module,fe=le&&le.exports===pe?f.Buffer:void 0,he=(fe?fe.isBuffer:void 0)||function(){return!1},de=/^(?:0|[1-9]\d*)$/;function ve(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&de.test(e))&&e>-1&&e%1==0&&e<t}function _e(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}var ye={};ye["[object Float32Array]"]=ye["[object Float64Array]"]=ye["[object Int8Array]"]=ye["[object Int16Array]"]=ye["[object Int32Array]"]=ye["[object Uint8Array]"]=ye["[object Uint8ClampedArray]"]=ye["[object Uint16Array]"]=ye["[object Uint32Array]"]=!0,ye["[object Arguments]"]=ye["[object Array]"]=ye["[object ArrayBuffer]"]=ye["[object Boolean]"]=ye["[object DataView]"]=ye["[object Date]"]=ye["[object Error]"]=ye["[object Function]"]=ye["[object Map]"]=ye["[object Number]"]=ye["[object Object]"]=ye["[object RegExp]"]=ye["[object Set]"]=ye["[object String]"]=ye["[object WeakMap]"]=!1;var ge,me="object"==typeof e&&e&&!e.nodeType&&e,be=me&&"object"==typeof module&&module&&!module.nodeType&&module,je=be&&be.exports===me&&p.process,Oe=function(){try{var e=be&&be.require&&be.require("util").types;return e||je&&je.binding&&je.binding("util")}catch(e){}}(),we=Oe&&Oe.isTypedArray,Ee=we?(ge=we,function(e){return ge(e)}):function(e){return re(e)&&_e(e.length)&&!!ye[b(e)]},xe=Object.prototype.hasOwnProperty;function Ae(e,t){var n=Q(e),r=!n&&ue(e),o=!n&&!r&&he(e),a=!n&&!r&&!o&&Ee(e),i=n||r||o||a,s=i?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],c=s.length;for(var u in e)!t&&!xe.call(e,u)||i&&("length"==u||o&&("offset"==u||"parent"==u)||a&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||ve(u,c))||s.push(u);return s}var Me=Object.prototype;var Ce=function(e,t){return function(n){return e(t(n))}}(Object.keys,Object),Se=Ce,Te=Object.prototype.hasOwnProperty;function Pe(e){if(n=(t=e)&&t.constructor,t!==("function"==typeof n&&n.prototype||Me))return Se(e);var t,n,r=[];for(var o in Object(e))Te.call(e,o)&&"constructor"!=o&&r.push(o);return r}function Re(e){return null!=(t=e)&&_e(t.length)&&!O(t)?Ae(e):Pe(e);var t}function Ie(e){return function(e,t,n){var r=t(e);return Q(e)?r:function(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}(r,n(e))}(e,Re,ne)}var ze=Object.prototype.hasOwnProperty;var Le=L(f,"DataView"),Ne=L(f,"Promise"),ke=L(f,"Set"),Ve=L(f,"WeakMap"),Be="[object Map]",De="[object Promise]",Ge="[object Set]",We="[object WeakMap]",Ue="[object DataView]",$e=M(Le),Fe=M(N),Ye=M(Ne),Ke=M(ke),Xe=M(Ve),qe=b;(Le&&qe(new Le(new ArrayBuffer(1)))!=Ue||N&&qe(new N)!=Be||Ne&&qe(Ne.resolve())!=De||ke&&qe(new ke)!=Ge||Ve&&qe(new Ve)!=We)&&(qe=function(e){var t=b(e),n="[object Object]"==t?e.constructor:void 0,r=n?M(n):"";if(r)switch(r){case $e:return Ue;case Fe:return Be;case Ye:return De;case Ke:return Ge;case Xe:return We}return t});var He=qe,Je="[object Arguments]",Qe="[object Array]",Ze="[object Object]",et=Object.prototype.hasOwnProperty;function tt(e,t,n,r,o,a){var s=Q(e),c=Q(t),u=s?Qe:He(e),p=c?Qe:He(t),l=(u=u==Je?Ze:u)==Ze,f=(p=p==Je?Ze:p)==Ze,h=u==p;if(h&&he(e)){if(!he(t))return!1;s=!0,l=!1}if(h&&!l)return a||(a=new U),s||Ee(e)?Y(e,t,n,r,o,a):function(e,t,n,r,o,a,s){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!a(new K(e),new K(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return i(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var c=X;case"[object Set]":var u=1&r;if(c||(c=q),e.size!=t.size&&!u)return!1;var p=s.get(e);if(p)return p==t;r|=2,s.set(e,t);var l=Y(c(e),c(t),r,o,a,s);return s.delete(e),l;case"[object Symbol]":if(J)return J.call(e)==J.call(t)}return!1}(e,t,u,n,r,o,a);if(!(1&n)){var d=l&&et.call(e,"__wrapped__"),v=f&&et.call(t,"__wrapped__");if(d||v){var _=d?e.value():e,y=v?t.value():t;return a||(a=new U),o(_,y,n,r,a)}}return!!h&&(a||(a=new U),function(e,t,n,r,o,a){var i=1&n,s=Ie(e),c=s.length;if(c!=Ie(t).length&&!i)return!1;for(var u=c;u--;){var p=s[u];if(!(i?p in t:ze.call(t,p)))return!1}var l=a.get(e),f=a.get(t);if(l&&f)return l==t&&f==e;var h=!0;a.set(e,t),a.set(t,e);for(var d=i;++u<c;){var v=e[p=s[u]],_=t[p];if(r)var y=i?r(_,v,p,t,e,a):r(v,_,p,e,t,a);if(!(void 0===y?v===_||o(v,_,n,r,a):y)){h=!1;break}d||(d="constructor"==p)}if(h&&!d){var g=e.constructor,m=t.constructor;g==m||!("constructor"in e)||!("constructor"in t)||"function"==typeof g&&g instanceof g&&"function"==typeof m&&m instanceof m||(h=!1)}return a.delete(e),a.delete(t),h}(e,t,n,r,o,a))}function nt(e,t,n,r,o){return e===t||(null==e||null==t||!re(e)&&!re(t)?e!=e&&t!=t:tt(e,t,n,r,nt,o))}var rt=class{constructor({game:e,rendererSystem:t}){this.renderers=[],this.game=e,this.rendererSystem=t}register(...e){for(const t of e)t.game=this.game,t.rendererManager=this.rendererSystem.rendererManager,t.containerManager=this.rendererSystem.containerManager,this.renderers.push(t)}componentChanged(e){for(const n of e)for(const e of this.renderers){const r=e.observerInfo[n.componentName];if(r){if([t.OBSERVER_TYPE.ADD,t.OBSERVER_TYPE.REMOVE].indexOf(n.type)>-1){try{e.componentChanged&&e.componentChanged(n)}catch(e){console.error(`gameObject: ${n.gameObject.name}, ${n.componentName} is error.`,n,e)}continue}if(r.findIndex((e=>{return t=e,r=n.prop,nt(t,r);var t,r}))>-1)try{e.componentChanged&&e.componentChanged(n)}catch(e){console.error(`gameObject: ${n.gameObject&&n.gameObject.name}, ${n.componentName} is componentChanged error.`,n,e)}}}}update(e){for(const t of e.components)for(const n of this.renderers){const r=[];if(n.observerInfo[t.name]&&-1===r.indexOf(e)){r.push(e);try{n.rendererUpdate&&n.rendererUpdate(e)}catch(n){console.info(`gameObject: ${e.name}, ${t.name} is update error`,n)}}}}};class ot{constructor(){this.containerMap={},this.gameObjectMap={}}addContainer({name:e,container:t,gameObject:n}){this.containerMap[e]=t,t.gName=n.name||e,this.gameObjectMap[n.name||e]=n}getContainer(e){return this.containerMap[e]}removeContainer(e){const t=this.containerMap[e];t&&(delete this.gameObjectMap[t.gName],t.destroy({children:!0})),delete this.containerMap[e]}getGameObjectByName(e){return this.gameObjectMap[e]}updateTransform({name:e,transform:t}){const n=this.containerMap[e];if(!n||!t)return;const{anchor:r,origin:o,position:a,rotation:i,scale:s,size:c,skew:u}=t;n.rotation=i,n.scale=s,n.pivot.x=c.width*o.x,n.pivot.y=c.height*o.y,n.skew=u;let p=a.x,l=a.y;if(t.parent){const e=t.parent;p+=e.size.width*r.x,l+=e.size.height*r.y}n.position={x:p,y:l}}}var at=function(e){var t={exports:{}};return e(t,t.exports),t.exports}((function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}function o(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function a(e,t,r,a,i){if("function"!=typeof r)throw new TypeError("The listener must be a function");var s=new o(r,a||e,i),c=n?n+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],s]:e._events[c].push(s):(e._events[c]=s,e._eventsCount++),e}function i(e,t){0==--e._eventsCount?e._events=new r:delete e._events[t]}function s(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),s.prototype.eventNames=function(){var e,r,o=[];if(0===this._eventsCount)return o;for(r in e=this._events)t.call(e,r)&&o.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?o.concat(Object.getOwnPropertySymbols(e)):o},s.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var o=0,a=r.length,i=new Array(a);o<a;o++)i[o]=r[o].fn;return i},s.prototype.listenerCount=function(e){var t=n?n+e:e,r=this._events[t];return r?r.fn?1:r.length:0},s.prototype.emit=function(e,t,r,o,a,i){var s=n?n+e:e;if(!this._events[s])return!1;var c,u,p=this._events[s],l=arguments.length;if(p.fn){switch(p.once&&this.removeListener(e,p.fn,void 0,!0),l){case 1:return p.fn.call(p.context),!0;case 2:return p.fn.call(p.context,t),!0;case 3:return p.fn.call(p.context,t,r),!0;case 4:return p.fn.call(p.context,t,r,o),!0;case 5:return p.fn.call(p.context,t,r,o,a),!0;case 6:return p.fn.call(p.context,t,r,o,a,i),!0}for(u=1,c=new Array(l-1);u<l;u++)c[u-1]=arguments[u];p.fn.apply(p.context,c)}else{var f,h=p.length;for(u=0;u<h;u++)switch(p[u].once&&this.removeListener(e,p[u].fn,void 0,!0),l){case 1:p[u].fn.call(p[u].context);break;case 2:p[u].fn.call(p[u].context,t);break;case 3:p[u].fn.call(p[u].context,t,r);break;case 4:p[u].fn.call(p[u].context,t,r,o);break;default:if(!c)for(f=1,c=new Array(l-1);f<l;f++)c[f-1]=arguments[f];p[u].fn.apply(p[u].context,c)}}return!0},s.prototype.on=function(e,t,n){return a(this,e,t,n,!1)},s.prototype.once=function(e,t,n){return a(this,e,t,n,!0)},s.prototype.removeListener=function(e,t,r,o){var a=n?n+e:e;if(!this._events[a])return this;if(!t)return i(this,a),this;var s=this._events[a];if(s.fn)s.fn!==t||o&&!s.once||r&&s.context!==r||i(this,a);else{for(var c=0,u=[],p=s.length;c<p;c++)(s[c].fn!==t||o&&!s[c].once||r&&s[c].context!==r)&&u.push(s[c]);u.length?this._events[a]=1===u.length?u[0]:u:i(this,a)}return this},s.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&i(this,t)):(this._events=new r,this._eventsCount=0),this},s.prototype.off=s.prototype.removeListener,s.prototype.addListener=s.prototype.on,s.prefixed=n,s.EventEmitter=s,e.exports=s})),it=at;let st=class extends it{constructor({system:e,containerManager:t}){super(),this.name="Transform",this.waitRemoveIds=[],this.waitChangeScenes=[],this.containerManager=t,this.init(e)}init(e){this.system=e,this.on("changeScene",(({scene:e,mode:t,application:n})=>{this.waitChangeScenes.push({scene:e,mode:t,application:n})}))}update(){for(const e of this.waitRemoveIds)this.containerManager.removeContainer(e);this.waitRemoveIds=[];for(const e of this.waitChangeScenes){const t=this.containerManager.getContainer(e.scene.id);t&&(e.application.stage.removeChildren(),e.application.stage.addChild(t))}this.waitChangeScenes=[]}componentChanged(e){e.type===t.OBSERVER_TYPE.ADD?this.addContainer(e):e.type===t.OBSERVER_TYPE.CHANGE?this.change(e):e.type===t.OBSERVER_TYPE.REMOVE&&this.waitRemoveIds.push(e.gameObject.id)}addContainer(e){const t=new n.Container;t.label=e.gameObject.name,this.containerManager.addContainer({name:e.gameObject.id,container:t,gameObject:e.gameObject});const r=e.component;Object.defineProperty(r,"worldTransform",{get:()=>t.renderGroup||t.parentRenderGroup?t.worldTransform:void 0})}change(e){const t=e.component;if(t.parent){this.containerManager.getContainer(t.parent.gameObject.id).addChild(this.containerManager.getContainer(e.gameObject.id));const n=e.gameObject.transform.parent&&e.gameObject.transform.parent.gameObject.getComponent("Render");n&&(n.sortDirty=!0)}else{const t=this.containerManager.getContainer(e.gameObject.id);t.parent&&t.parent.removeChild(t)}}destroy(){this.removeAllListeners(),this.waitRemoveIds=null,this.waitChangeScenes=null,this.system=null,this.containerManager=null}};st=o([t.decorators.componentObserver({Transform:["_parent"]})],st);var ct,ut=st;e.RENDERER_TYPE=void 0,(ct=e.RENDERER_TYPE||(e.RENDERER_TYPE={}))[ct.UNKNOWN=0]="UNKNOWN",ct[ct.WEBGL=1]="WEBGL",ct[ct.CANVAS=2]="CANVAS";let pt=class extends t.System{constructor(){super(...arguments),this.multiApps=[]}init(e){return a(this,void 0,void 0,(function*(){this.params=e,this.application=yield this.createApplication(e),this.containerManager=new ot,this.rendererManager=new rt({game:this.game,rendererSystem:this}),this.game.canvas=this.application.canvas,this.transform=new ut({system:this,containerManager:this.containerManager}),this.game.on("sceneChanged",(({scene:e,mode:n,params:r})=>{let o;switch(n){case t.LOAD_SCENE_MODE.SINGLE:o=this.application;break;case t.LOAD_SCENE_MODE.MULTI_CANVAS:o=this.createMultiApplication({params:r})}e.canvas=o.canvas,this.transform.emit("changeScene",{scene:e,mode:n,application:o})}))}))}registerObserver(e){const t=this.constructor.observerInfo;for(const n in e)t[n]||(t[n]=[]),t[n].push(...e[n])}createMultiApplication({params:e}){return a(this,void 0,void 0,(function*(){const t=yield this.createApplication(e);return this.multiApps.push(t),t}))}createApplication(e){return a(this,void 0,void 0,(function*(){const t=new n.Application;e.debugMode&&(globalThis.__PIXI_APP__=t);const o=new r.Ticker;var a;return r.Ticker._system=r.Ticker._shared=o,o._protected=!0,yield t.init(_extends(_extends({sharedTicker:!0},e),{hello:!0})),void 0!==e.enableScroll&&(e.enableScroll?((a=t.renderer).events.autoPreventDefault=!1,a.canvas.style.touchAction="auto"):(e=>{e.events.autoPreventDefault=!0,e.canvas.style.touchAction="none"})(t.renderer)),r.Ticker.shared.stop(),r.Ticker.shared.autoStart=!1,t}))}update(){const e=this.componentObserver.clear();for(const t of e)this.transform.componentChanged(t);for(const e of this.game.gameObjects)this.containerManager.updateTransform({name:e.id,transform:e.transform}),this.rendererManager.update(e)}lateUpdate(e){for(const e of this.game.gameObjects)this.containerManager.updateTransform({name:e.id,transform:e.transform}),this.rendererManager.update(e);this.transform.update(),this.application.ticker.update(e.time)}onDestroy(){this.application.destroy();for(const e of this.multiApps)e&&e.destroy();this.transform.destroy(),this.transform=null,this.params=null,this.rendererManager=null,this.containerManager=null,this.application=null,this.game=null,this.multiApps=null}resize(e,t){this.params.width=e,this.params.height=t,this.application.renderer.resize(e,t)}};pt.systemName="Renderer",pt=o([t.decorators.componentObserver({Transform:["_parent"]})],pt);var lt=pt;let ft;function ht(e){e.addPreProcessResourceHandler((function(e){var t,n,r;let o=null===(n=null===(t=e.src)||void 0===t?void 0:t.image)||void 0===n?void 0:n.texture;if(!o)return;Array.isArray(o)||(o=[o]);const a=null!==(r=function(){if(ft)return ft;const e=document.createElement("canvas").getContext("webgl2");if(!e)return console.warn("WebGL not available for compressed textures. Silently failing."),{s3tc:!1,etc:!1,etc1:!1,pvrtc:!1,atc:!1,astc:!1};ft={s3tc:!!e.getExtension("WEBGL_compressed_texture_s3tc"),etc:!!e.getExtension("WEBGL_compressed_texture_etc"),etc1:!!e.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:!!e.getExtension("WEBGL_compressed_texture_pvrtc")||!!e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:!!e.getExtension("WEBGL_compressed_texture_atc"),astc:!!e.getExtension("WEBGL_compressed_texture_astc")};try{console.log("Eva.js Supported Compressed Texture Format List: "+Object.keys(ft).filter((e=>ft[e])).join(", "))}catch(e){}return ft}())&&void 0!==r?r:{};let i=o.find((e=>a[e.type]));i&&_extends(e.src.image,i)}))}class dt extends t.System{constructor(e){super(e),this.asyncIdMap={},this.observerInfo=this.constructor.observerInfo}componentChanged(e){}rendererUpdate(e){}update(e){const t=this.componentObserver.clear();for(const e of t)this.componentChanged(e)}increaseAsyncId(e){return this.asyncIdMap[e]=(this.asyncIdMap[e]||0)+1,this.asyncIdMap[e]}validateAsyncId(e,t){return this.asyncIdMap[e]===t}}return e.ContainerManager=ot,e.Renderer=dt,e.RendererManager=rt,e.RendererSystem=lt,e.registerKtx2CompressedTexture=function(e){r.setKTXTranscoderPath(e),r.extensions.add(r.loadKTX2),r.extensions.add(r.resolveCompressedTextureUrl),r.extensions.add(r.detectCompressed),ht(t.resource)},Object.defineProperty(e,"__esModule",{value:!0}),e}({},EVA,EVA.rendererAdapter,PIXI);globalThis.EVA.plugin.renderer=globalThis.EVA.plugin.renderer||_EVA_IIFE_renderer;
|
|
@@ -110,18 +110,27 @@ var RendererManager$1 = RendererManager;
|
|
|
110
110
|
class ContainerManager {
|
|
111
111
|
constructor() {
|
|
112
112
|
this.containerMap = {};
|
|
113
|
+
this.gameObjectMap = {};
|
|
113
114
|
}
|
|
114
|
-
addContainer({ name, container }) {
|
|
115
|
+
addContainer({ name, container, gameObject }) {
|
|
115
116
|
this.containerMap[name] = container;
|
|
117
|
+
container.gName = gameObject.name || name;
|
|
118
|
+
this.gameObjectMap[gameObject.name || name] = gameObject;
|
|
116
119
|
}
|
|
117
120
|
getContainer(name) {
|
|
118
121
|
return this.containerMap[name];
|
|
119
122
|
}
|
|
120
123
|
removeContainer(name) {
|
|
121
|
-
|
|
122
|
-
(
|
|
124
|
+
const container = this.containerMap[name];
|
|
125
|
+
if (container) {
|
|
126
|
+
delete this.gameObjectMap[container.gName];
|
|
127
|
+
container.destroy({ children: true });
|
|
128
|
+
}
|
|
123
129
|
delete this.containerMap[name];
|
|
124
130
|
}
|
|
131
|
+
getGameObjectByName(name) {
|
|
132
|
+
return this.gameObjectMap[name];
|
|
133
|
+
}
|
|
125
134
|
updateTransform({ name, transform }) {
|
|
126
135
|
const container = this.containerMap[name];
|
|
127
136
|
if (!container || !transform)
|
|
@@ -189,11 +198,12 @@ let Transform = class Transform extends EventEmitter__default {
|
|
|
189
198
|
this.containerManager.addContainer({
|
|
190
199
|
name: changed.gameObject.id,
|
|
191
200
|
container,
|
|
201
|
+
gameObject: changed.gameObject,
|
|
192
202
|
});
|
|
193
203
|
const transform = changed.component;
|
|
194
204
|
Object.defineProperty(transform, 'worldTransform', {
|
|
195
205
|
get() {
|
|
196
|
-
return container.worldTransform;
|
|
206
|
+
return container.renderGroup || container.parentRenderGroup ? container.worldTransform : void 0;
|
|
197
207
|
},
|
|
198
208
|
});
|
|
199
209
|
}
|
|
@@ -302,12 +312,15 @@ let Renderer$1 = class Renderer extends eva_js.System {
|
|
|
302
312
|
if (params.debugMode) {
|
|
303
313
|
globalThis.__PIXI_APP__ = app;
|
|
304
314
|
}
|
|
315
|
+
const ticker = new pixi_js.Ticker();
|
|
316
|
+
pixi_js.Ticker._system = pixi_js.Ticker._shared = ticker;
|
|
317
|
+
ticker._protected = true;
|
|
305
318
|
yield app.init(Object.assign(Object.assign({ sharedTicker: true }, params), { hello: true }));
|
|
306
|
-
pixi_js.Ticker.shared.stop();
|
|
307
|
-
pixi_js.Ticker.shared.autoStart = false;
|
|
308
319
|
if (params.enableScroll !== undefined) {
|
|
309
320
|
params.enableScroll ? enableScroll(app.renderer) : disableScroll(app.renderer);
|
|
310
321
|
}
|
|
322
|
+
pixi_js.Ticker.shared.stop();
|
|
323
|
+
pixi_js.Ticker.shared.autoStart = false;
|
|
311
324
|
return app;
|
|
312
325
|
});
|
|
313
326
|
}
|
|
@@ -325,6 +338,13 @@ let Renderer$1 = class Renderer extends eva_js.System {
|
|
|
325
338
|
}
|
|
326
339
|
}
|
|
327
340
|
lateUpdate(e) {
|
|
341
|
+
for (const gameObject of this.game.gameObjects) {
|
|
342
|
+
this.containerManager.updateTransform({
|
|
343
|
+
name: gameObject.id,
|
|
344
|
+
transform: gameObject.transform,
|
|
345
|
+
});
|
|
346
|
+
this.rendererManager.update(gameObject);
|
|
347
|
+
}
|
|
328
348
|
this.transform.update();
|
|
329
349
|
this.application.ticker.update(e.time);
|
|
330
350
|
}
|
|
@@ -361,7 +381,7 @@ function getSuportCompressedTextureFormats() {
|
|
|
361
381
|
if (result)
|
|
362
382
|
return result;
|
|
363
383
|
const canvas = document.createElement('canvas');
|
|
364
|
-
const gl = canvas.getContext('webgl2')
|
|
384
|
+
const gl = canvas.getContext('webgl2');
|
|
365
385
|
if (!gl) {
|
|
366
386
|
console.warn('WebGL not available for compressed textures. Silently failing.');
|
|
367
387
|
return {
|
|
@@ -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 c(e,t,n,r){var a,s=arguments.length,o=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var i=e.length-1;i>=0;i--)(a=e[i])&&(o=(s<3?a(o):s>3?a(t,n,o):a(t,n))||o);return s>3&&o&&Object.defineProperty(t,n,o),o}function d(e,t,n,r){return new(n||(n=Promise))((function(a,s){function o(e){try{c(r.next(e))}catch(e){s(e)}}function i(e){try{c(r.throw(e))}catch(e){s(e)}}function c(e){e.done?a(e.value):new n((function(t){t(e.value)})).then(o,i)}c((r=r.apply(e,t||[])).next())}))}var p=class{constructor({game:e,rendererSystem:t}){this.renderers=[],this.game=e,this.rendererSystem=t}register(...e){for(const t of e)t.game=this.game,t.rendererManager=this.rendererSystem.rendererManager,t.containerManager=this.rendererSystem.containerManager,this.renderers.push(t)}componentChanged(t){for(const n of t)for(const t of this.renderers){const r=t.observerInfo[n.componentName];if(r){if([e.OBSERVER_TYPE.ADD,e.OBSERVER_TYPE.REMOVE].indexOf(n.type)>-1){try{t.componentChanged&&t.componentChanged(n)}catch(e){console.error(`gameObject: ${n.gameObject.name}, ${n.componentName} is error.`,n,e)}continue}if(r.findIndex((e=>o(e,n.prop)))>-1)try{t.componentChanged&&t.componentChanged(n)}catch(e){console.error(`gameObject: ${n.gameObject&&n.gameObject.name}, ${n.componentName} is componentChanged error.`,n,e)}}}}update(e){for(const t of e.components)for(const n of this.renderers){const r=[];if(n.observerInfo[t.name]&&-1===r.indexOf(e)){r.push(e);try{n.rendererUpdate&&n.rendererUpdate(e)}catch(n){console.info(`gameObject: ${e.name}, ${t.name} is update error`,n)}}}}};class h{constructor(){this.containerMap={}}addContainer({name:e,container:t}){this.containerMap[e]=t}getContainer(e){return this.containerMap[e]}removeContainer(e){
|
|
16
|
+
function c(e,t,n,r){var a,s=arguments.length,o=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var i=e.length-1;i>=0;i--)(a=e[i])&&(o=(s<3?a(o):s>3?a(t,n,o):a(t,n))||o);return s>3&&o&&Object.defineProperty(t,n,o),o}function d(e,t,n,r){return new(n||(n=Promise))((function(a,s){function o(e){try{c(r.next(e))}catch(e){s(e)}}function i(e){try{c(r.throw(e))}catch(e){s(e)}}function c(e){e.done?a(e.value):new n((function(t){t(e.value)})).then(o,i)}c((r=r.apply(e,t||[])).next())}))}var p=class{constructor({game:e,rendererSystem:t}){this.renderers=[],this.game=e,this.rendererSystem=t}register(...e){for(const t of e)t.game=this.game,t.rendererManager=this.rendererSystem.rendererManager,t.containerManager=this.rendererSystem.containerManager,this.renderers.push(t)}componentChanged(t){for(const n of t)for(const t of this.renderers){const r=t.observerInfo[n.componentName];if(r){if([e.OBSERVER_TYPE.ADD,e.OBSERVER_TYPE.REMOVE].indexOf(n.type)>-1){try{t.componentChanged&&t.componentChanged(n)}catch(e){console.error(`gameObject: ${n.gameObject.name}, ${n.componentName} is error.`,n,e)}continue}if(r.findIndex((e=>o(e,n.prop)))>-1)try{t.componentChanged&&t.componentChanged(n)}catch(e){console.error(`gameObject: ${n.gameObject&&n.gameObject.name}, ${n.componentName} is componentChanged error.`,n,e)}}}}update(e){for(const t of e.components)for(const n of this.renderers){const r=[];if(n.observerInfo[t.name]&&-1===r.indexOf(e)){r.push(e);try{n.rendererUpdate&&n.rendererUpdate(e)}catch(n){console.info(`gameObject: ${e.name}, ${t.name} is update error`,n)}}}}};class h{constructor(){this.containerMap={},this.gameObjectMap={}}addContainer({name:e,container:t,gameObject:n}){this.containerMap[e]=t,t.gName=n.name||e,this.gameObjectMap[n.name||e]=n}getContainer(e){return this.containerMap[e]}removeContainer(e){const t=this.containerMap[e];t&&(delete this.gameObjectMap[t.gName],t.destroy({children:!0})),delete this.containerMap[e]}getGameObjectByName(e){return this.gameObjectMap[e]}updateTransform({name:e,transform:t}){const n=this.containerMap[e];if(!n||!t)return;const{anchor:r,origin:a,position:s,rotation:o,scale:i,size:c,skew:d}=t;n.rotation=o,n.scale=i,n.pivot.x=c.width*a.x,n.pivot.y=c.height*a.y,n.skew=d;let p=s.x,h=s.y;if(t.parent){const e=t.parent;p+=e.size.width*r.x,h+=e.size.height*r.y}n.position={x:p,y:h}}}let m=class extends i{constructor({system:e,containerManager:t}){super(),this.name="Transform",this.waitRemoveIds=[],this.waitChangeScenes=[],this.containerManager=t,this.init(e)}init(e){this.system=e,this.on("changeScene",(({scene:e,mode:t,application:n})=>{this.waitChangeScenes.push({scene:e,mode:t,application:n})}))}update(){for(const e of this.waitRemoveIds)this.containerManager.removeContainer(e);this.waitRemoveIds=[];for(const e of this.waitChangeScenes){const t=this.containerManager.getContainer(e.scene.id);t&&(e.application.stage.removeChildren(),e.application.stage.addChild(t))}this.waitChangeScenes=[]}componentChanged(t){t.type===e.OBSERVER_TYPE.ADD?this.addContainer(t):t.type===e.OBSERVER_TYPE.CHANGE?this.change(t):t.type===e.OBSERVER_TYPE.REMOVE&&this.waitRemoveIds.push(t.gameObject.id)}addContainer(e){const n=new t.Container;n.label=e.gameObject.name,this.containerManager.addContainer({name:e.gameObject.id,container:n,gameObject:e.gameObject});const r=e.component;Object.defineProperty(r,"worldTransform",{get:()=>n.renderGroup||n.parentRenderGroup?n.worldTransform:void 0})}change(e){const t=e.component;if(t.parent){this.containerManager.getContainer(t.parent.gameObject.id).addChild(this.containerManager.getContainer(e.gameObject.id));const n=e.gameObject.transform.parent&&e.gameObject.transform.parent.gameObject.getComponent("Render");n&&(n.sortDirty=!0)}else{const t=this.containerManager.getContainer(e.gameObject.id);t.parent&&t.parent.removeChild(t)}}destroy(){this.removeAllListeners(),this.waitRemoveIds=null,this.waitChangeScenes=null,this.system=null,this.containerManager=null}};m=c([e.decorators.componentObserver({Transform:["_parent"]})],m);var l,u=m;exports.RENDERER_TYPE=void 0,(l=exports.RENDERER_TYPE||(exports.RENDERER_TYPE={}))[l.UNKNOWN=0]="UNKNOWN",l[l.WEBGL=1]="WEBGL",l[l.CANVAS=2]="CANVAS";let g=class extends e.System{constructor(){super(...arguments),this.multiApps=[]}init(t){return d(this,void 0,void 0,(function*(){this.params=t,this.application=yield this.createApplication(t),this.containerManager=new h,this.rendererManager=new p({game:this.game,rendererSystem:this}),this.game.canvas=this.application.canvas,this.transform=new u({system:this,containerManager:this.containerManager}),this.game.on("sceneChanged",(({scene:t,mode:n,params:r})=>{let a;switch(n){case e.LOAD_SCENE_MODE.SINGLE:a=this.application;break;case e.LOAD_SCENE_MODE.MULTI_CANVAS:a=this.createMultiApplication({params:r})}t.canvas=a.canvas,this.transform.emit("changeScene",{scene:t,mode:n,application:a})}))}))}registerObserver(e){const t=this.constructor.observerInfo;for(const n in e)t[n]||(t[n]=[]),t[n].push(...e[n])}createMultiApplication({params:e}){return d(this,void 0,void 0,(function*(){const t=yield this.createApplication(e);return this.multiApps.push(t),t}))}createApplication(e){return d(this,void 0,void 0,(function*(){const n=new t.Application;e.debugMode&&(globalThis.__PIXI_APP__=n);const r=new a.Ticker;var s;return a.Ticker._system=a.Ticker._shared=r,r._protected=!0,yield n.init(Object.assign(Object.assign({sharedTicker:!0},e),{hello:!0})),void 0!==e.enableScroll&&(e.enableScroll?((s=n.renderer).events.autoPreventDefault=!1,s.canvas.style.touchAction="auto"):(e=>{e.events.autoPreventDefault=!0,e.canvas.style.touchAction="none"})(n.renderer)),a.Ticker.shared.stop(),a.Ticker.shared.autoStart=!1,n}))}update(){const e=this.componentObserver.clear();for(const t of e)this.transform.componentChanged(t);for(const e of this.game.gameObjects)this.containerManager.updateTransform({name:e.id,transform:e.transform}),this.rendererManager.update(e)}lateUpdate(e){for(const e of this.game.gameObjects)this.containerManager.updateTransform({name:e.id,transform:e.transform}),this.rendererManager.update(e);this.transform.update(),this.application.ticker.update(e.time)}onDestroy(){this.application.destroy();for(const e of this.multiApps)e&&e.destroy();this.transform.destroy(),this.transform=null,this.params=null,this.rendererManager=null,this.containerManager=null,this.application=null,this.game=null,this.multiApps=null}resize(e,t){this.params.width=e,this.params.height=t,this.application.renderer.resize(e,t)}};g.systemName="Renderer",g=c([e.decorators.componentObserver({Transform:["_parent"]})],g);var f=g;let v;function y(e){e.addPreProcessResourceHandler((function(e){var t,n,r;let a=null===(n=null===(t=e.src)||void 0===t?void 0:t.image)||void 0===n?void 0:n.texture;if(!a)return;Array.isArray(a)||(a=[a]);const s=null!==(r=function(){if(v)return v;const e=document.createElement("canvas").getContext("webgl2");if(!e)return console.warn("WebGL not available for compressed textures. Silently failing."),{s3tc:!1,etc:!1,etc1:!1,pvrtc:!1,atc:!1,astc:!1};v={s3tc:!!e.getExtension("WEBGL_compressed_texture_s3tc"),etc:!!e.getExtension("WEBGL_compressed_texture_etc"),etc1:!!e.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:!!e.getExtension("WEBGL_compressed_texture_pvrtc")||!!e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:!!e.getExtension("WEBGL_compressed_texture_atc"),astc:!!e.getExtension("WEBGL_compressed_texture_astc")};try{console.log("Eva.js Supported Compressed Texture Format List: "+Object.keys(v).filter((e=>v[e])).join(", "))}catch(e){}return v}())&&void 0!==r?r:{};let o=a.find((e=>s[e.type]));o&&Object.assign(e.src.image,o)}))}class E extends e.System{constructor(e){super(e),this.asyncIdMap={},this.observerInfo=this.constructor.observerInfo}componentChanged(e){}rendererUpdate(e){}update(e){const t=this.componentObserver.clear();for(const e of t)this.componentChanged(e)}increaseAsyncId(e){return this.asyncIdMap[e]=(this.asyncIdMap[e]||0)+1,this.asyncIdMap[e]}validateAsyncId(e,t){return this.asyncIdMap[e]===t}}exports.ContainerManager=h,exports.Renderer=E,exports.RendererManager=p,exports.RendererSystem=f,exports.registerKtx2CompressedTexture=function(t){a.setKTXTranscoderPath(t),a.extensions.add(a.loadKTX2),a.extensions.add(a.resolveCompressedTextureUrl),a.extensions.add(a.detectCompressed),y(e.resource)};
|
|
@@ -16,12 +16,17 @@ export declare class ContainerManager {
|
|
|
16
16
|
containerMap: {
|
|
17
17
|
[propName: number]: Container;
|
|
18
18
|
};
|
|
19
|
-
|
|
19
|
+
gameObjectMap: {
|
|
20
|
+
[propName: string]: GameObject;
|
|
21
|
+
};
|
|
22
|
+
addContainer({ name, container, gameObject }: {
|
|
20
23
|
name: number;
|
|
21
24
|
container: Container;
|
|
25
|
+
gameObject: GameObject;
|
|
22
26
|
}): void;
|
|
23
27
|
getContainer(name: number): Container;
|
|
24
28
|
removeContainer(name: number): void;
|
|
29
|
+
getGameObjectByName(name: string): GameObject | undefined;
|
|
25
30
|
updateTransform({ name, transform }: {
|
|
26
31
|
name: number;
|
|
27
32
|
transform: Transform;
|
|
@@ -101,18 +101,27 @@ var RendererManager$1 = RendererManager;
|
|
|
101
101
|
class ContainerManager {
|
|
102
102
|
constructor() {
|
|
103
103
|
this.containerMap = {};
|
|
104
|
+
this.gameObjectMap = {};
|
|
104
105
|
}
|
|
105
|
-
addContainer({ name, container }) {
|
|
106
|
+
addContainer({ name, container, gameObject }) {
|
|
106
107
|
this.containerMap[name] = container;
|
|
108
|
+
container.gName = gameObject.name || name;
|
|
109
|
+
this.gameObjectMap[gameObject.name || name] = gameObject;
|
|
107
110
|
}
|
|
108
111
|
getContainer(name) {
|
|
109
112
|
return this.containerMap[name];
|
|
110
113
|
}
|
|
111
114
|
removeContainer(name) {
|
|
112
|
-
|
|
113
|
-
(
|
|
115
|
+
const container = this.containerMap[name];
|
|
116
|
+
if (container) {
|
|
117
|
+
delete this.gameObjectMap[container.gName];
|
|
118
|
+
container.destroy({ children: true });
|
|
119
|
+
}
|
|
114
120
|
delete this.containerMap[name];
|
|
115
121
|
}
|
|
122
|
+
getGameObjectByName(name) {
|
|
123
|
+
return this.gameObjectMap[name];
|
|
124
|
+
}
|
|
116
125
|
updateTransform({ name, transform }) {
|
|
117
126
|
const container = this.containerMap[name];
|
|
118
127
|
if (!container || !transform)
|
|
@@ -180,11 +189,12 @@ let Transform = class Transform extends EventEmitter {
|
|
|
180
189
|
this.containerManager.addContainer({
|
|
181
190
|
name: changed.gameObject.id,
|
|
182
191
|
container,
|
|
192
|
+
gameObject: changed.gameObject,
|
|
183
193
|
});
|
|
184
194
|
const transform = changed.component;
|
|
185
195
|
Object.defineProperty(transform, 'worldTransform', {
|
|
186
196
|
get() {
|
|
187
|
-
return container.worldTransform;
|
|
197
|
+
return container.renderGroup || container.parentRenderGroup ? container.worldTransform : void 0;
|
|
188
198
|
},
|
|
189
199
|
});
|
|
190
200
|
}
|
|
@@ -293,12 +303,15 @@ let Renderer$1 = class Renderer extends System {
|
|
|
293
303
|
if (params.debugMode) {
|
|
294
304
|
globalThis.__PIXI_APP__ = app;
|
|
295
305
|
}
|
|
306
|
+
const ticker = new Ticker();
|
|
307
|
+
Ticker._system = Ticker._shared = ticker;
|
|
308
|
+
ticker._protected = true;
|
|
296
309
|
yield app.init(Object.assign(Object.assign({ sharedTicker: true }, params), { hello: true }));
|
|
297
|
-
Ticker.shared.stop();
|
|
298
|
-
Ticker.shared.autoStart = false;
|
|
299
310
|
if (params.enableScroll !== undefined) {
|
|
300
311
|
params.enableScroll ? enableScroll(app.renderer) : disableScroll(app.renderer);
|
|
301
312
|
}
|
|
313
|
+
Ticker.shared.stop();
|
|
314
|
+
Ticker.shared.autoStart = false;
|
|
302
315
|
return app;
|
|
303
316
|
});
|
|
304
317
|
}
|
|
@@ -316,6 +329,13 @@ let Renderer$1 = class Renderer extends System {
|
|
|
316
329
|
}
|
|
317
330
|
}
|
|
318
331
|
lateUpdate(e) {
|
|
332
|
+
for (const gameObject of this.game.gameObjects) {
|
|
333
|
+
this.containerManager.updateTransform({
|
|
334
|
+
name: gameObject.id,
|
|
335
|
+
transform: gameObject.transform,
|
|
336
|
+
});
|
|
337
|
+
this.rendererManager.update(gameObject);
|
|
338
|
+
}
|
|
319
339
|
this.transform.update();
|
|
320
340
|
this.application.ticker.update(e.time);
|
|
321
341
|
}
|
|
@@ -352,7 +372,7 @@ function getSuportCompressedTextureFormats() {
|
|
|
352
372
|
if (result)
|
|
353
373
|
return result;
|
|
354
374
|
const canvas = document.createElement('canvas');
|
|
355
|
-
const gl = canvas.getContext('webgl2')
|
|
375
|
+
const gl = canvas.getContext('webgl2');
|
|
356
376
|
if (!gl) {
|
|
357
377
|
console.warn('WebGL not available for compressed textures. Silently failing.');
|
|
358
378
|
return {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eva/plugin-renderer",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.1-beta.0",
|
|
4
4
|
"description": "@eva/plugin-renderer",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"module": "dist/plugin-renderer.esm.js",
|
|
@@ -18,11 +18,11 @@
|
|
|
18
18
|
"license": "MIT",
|
|
19
19
|
"homepage": "https://eva.js.org",
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@eva/eva.js": "2.0.
|
|
22
|
-
"@eva/renderer-adapter": "2.0.
|
|
21
|
+
"@eva/eva.js": "2.0.1-beta.0",
|
|
22
|
+
"@eva/renderer-adapter": "2.0.1-beta.0",
|
|
23
23
|
"eventemitter3": "^3.1.2",
|
|
24
24
|
"lodash-es": "^4.17.21",
|
|
25
|
-
"pixi.js": "^8.
|
|
25
|
+
"pixi.js": "^8.8.1"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"resource-loader": "^4.0.0-rc4"
|