phaser4-rex-plugins
Version:
2 lines (1 loc) • 6.21 kB
JavaScript
var t,e;t=void 0,e=function(){var t=function(t,e,i){if(!t||"number"==typeof t)return i;if("string"==typeof e){if(t.hasOwnProperty(e))return t[e];if(-1===e.indexOf("."))return i;e=e.split(".")}for(var s=e,r=t,n=i,h=0;h<s.length;h++){if(e=s[h],!r.hasOwnProperty(e)){n=i;break}r=n=r[e]}return n},e=function(t){return"[object Array]"===Object.prototype.toString.call(t)},i={setAutoCleanupEnable(t){return void 0===t&&(t=!0),this.autoCleanupEnable=t,this},addDestroyCallback(t){if(!t||!this.autoCleanupEnable)return this;if(e(t)){for(var i=t,s=0,r=i.length;s<r;s++)this.addDestroyCallback(i[s]);return this}return t.on&&t.once("destroy",this.onChildDestroy,this),this},removeDestroyCallback(t){if(!t||!this.autoCleanupEnable)return this;if(e(t)){for(var i=t,s=0,r=i.length;s<r;s++)this.removeDestroyCallback(i[s]);return this}return t.off&&t.off("destroy",this.onChildDestroy,this),this}},s={contains(t){return-1!==this.items.indexOf(t)},any(t){for(var e=this.isList(t)?t.items:t,i=0,s=e;i<s;i++)if(this.contains(e[i]))return!0;return!1},all(t){for(var e=this.isList(t)?t.items:t,i=0,s=e;i<s;i++)if(!this.contains(e[i]))return!1;return!0}},r=function(t,e){return Math.floor(Math.random()*(e-t+1)+t)},n=function(t,e){var i=Array.isArray(t);if(void 0===e?e=i?[]:{}:function(t){if("object"!=typeof t||null===t)return t;if(Array.isArray(t))t.length=0;else for(var e in t)delete t[e]}(e),i){e.length=t.length;for(var s=0,r=t.length;s<r;s++)e[s]=t[s]}else for(var n in t)e[n]=t[n];return e},h={isEmpty(){return 0===this.items.length},get(t){return this.items[t]},getFirst(){return this.items[0]},getLast(){return this.items[this.items.length-1]},getRandom(){var t=r(0,this.items.length-1);return this.items[t]},add(t,e,i){var s=this.items.indexOf(t);return-1!==s?(i&&e!==s&&(this.remove(void 0,s),this.add(t,e)),this):(void 0===e||e>=this.items.length?this.items.push(t):this.items.splice(e,0,t),this.addDestroyCallback(t),this)},addFirst(t,e){return this.add(t,0,e),this},addLast(t,e){return this.add(t,void 0,e),this},addMultiple(t,e,i){if(void 0===e)for(var s=0,r=t.length;s<r;s++)this.add(t[s]);else for(s=0,r=t.length;s<r;s++)this.contains(t[s])||(this.add(t[s],e,i),e++);return this},remove(t,e){if(t){if(-1===(e=this.items.indexOf(t)))return this}else if(!(t=this.items[e]))return this;return e===this.items.length-1?this.items.length-=1:function(t,e){if(!(e>=t.length)){for(var i=t.length-1,s=(t[e],e);s<i;s++)t[s]=t[s+1];t.length=i}}(this.items,e),this.removeDestroyCallback(t),this},onChildDestroy(t,e){this.remove(t)},removeFirst(){return this.remove(void 0,0),this},removeLast(){return this.remove(void 0,this.item.length-1),this},removeMultiple(t){for(var e=t.length;e>0;e--)this.remove(t[e-1]);return this},clear(t){var e;if(t&&(e=this.cloneItems()),this.removeDestroyCallback(this.items),this.items.length=0,t)for(var i=e.length;i>0;i--)e[i].destroy();return this},clone(t){return t===this?this:(void 0===t&&(t=this.newList()),t.clear(),n(this.items,t.items),t.addDestroyCallback(t.items),t)},pop(t){void 0===t&&(t=0);var e=this.items[t];return this.remove(void 0,t),e},popFirst(){return this.pop(0)},popLast(){return this.pop(this.items.length-1)},popRandom(){var t=r(0,this.items.length-1);return this.pop(t)},slice(t,e,i){var s=this.items.slice(t,e+1);return void 0===i&&(i=this.newList()),i.clear(),n(s,i.items),i.addDestroyCallback(i.items),i},reverse(){return this.items.reverse(),this},sort(t){return this.items.sort(t),this},shuffle(){return function(t){for(var e=t.length-1;e>0;e--){var i=Math.floor(Math.random()*(e+1)),s=t[e];t[e]=t[i],t[i]=s}}(this.items),this}},o={union(t,e){return this===t?this!==e&&(e=this.clone(e)):this===e?this.addMultiple(t.items):t===e?t.addMultiple(this.items):this.items.length>=t.items.length?(e=this.clone(e)).addMultiple(t.items):(e=t.clone(e)).addMultiple(this.items),e},intersect(t,e){if(this===t)this!==e&&(e=this.clone(e));else if(this===e){var i=n(this.items);this.clear();for(var s=0,r=i.length;s<r;s++)o=i[s],t.contains(o)&&this.add(o)}else if(t===e){var h=n(t.items);for(t.clear(),s=0,r=i.length;s<r;s++)o=h[s],this.contains(o)&&t.add(o)}else if(e=this.newList(),this.items.length>=t.items.length)for(s=0,r=(h=t.items).length;s<r;s++)o=h[s],this.contains(o)&&e.add(o);else{var o;for(s=0,r=(i=this.items).length;s<r;s++)o=i[s],t.contains(o)&&e.add(o)}return e},difference(t,e){if(this===t)this===e?this.clear():e=this.newList();else if(this===e){var i=n(this.items);this.clear();for(var s=0,r=i.length;s<r;s++)o=i[s],t.contains(o)||this.add(o)}else if(t===e){var h=n(t.items);for(t.clear(),s=0,r=i.length;s<r;s++)o=h[s],this.contains(o)||t.add(o)}else if(e=this.newList(),this.items.length>=t.items.length)for(s=0,r=(h=t.items).length;s<r;s++)o=h[s],this.contains(o)||e.add(o);else{var o;for(s=0,r=(i=this.items).length;s<r;s++)o=i[s],t.contains(o)||e.add(o)}return e}};class a{constructor(e,i){(function(t){if("object"!=typeof t||t.nodeType||t===t.window)return!1;try{if(t.constructor&&!{}.hasOwnProperty.call(t.constructor.prototype,"isPrototypeOf"))return!1}catch(t){return!1}return!0})(e)&&(e=t(i=e,"items",void 0)),this.items=[],this.setAutoCleanupEnable(t(i,"autoCleanup",!0)),e&&this.addMultiple(e)}destroy(t){this.clear(t),this.items=void 0}getItems(){return this.items}cloneItems(t){return n(this.items,t)}isList(t){return t instanceof a}newList(t){var e={autoCleanup:this.autoCleanupEnable};return new a(t,e)}get length(){return this.items.length}call(t,e){if(0===this.items.length)return this;if("string"==typeof t){var i,s=t;!function(t,e,i,s){void 0===i&&(i=0),void 0===s&&(s=e.length),t.length=s-i;for(var r=0,n=t.length;r<n;r++)t[r]=e[r+i]}(l,arguments,1);for(var r=0,n=this.items.length;r<n;r++)(i=this.items[r])[s].apply(i,l);l.length=0}else for(r=0,n=this.items.length;r<n;r++)e?t.call(e,this.items[r],r):t(this.items[r],r);return this}}var l=[];Object.assign(a.prototype,i,s,h,o);class u extends Phaser.Plugins.BasePlugin{constructor(t){super(t)}start(){this.game.events.on("destroy",this.destroy,this)}add(t){return new a(t)}}return u},"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).rexuniqueitemlistplugin=e();