UNPKG

phaser3-rex-plugins

Version:
13 lines (12 loc) 18.3 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).rexparseplugin=t();}(undefined,(function(){function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,(i=n.key,o=void 0,"symbol"==typeof(o=function(e,t){if("object"!=typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return ("string"===t?String:Number)(e)}(i,"string"))?o:String(o)),n);}var i,o;}function n(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&s(e,t);}function o(e){return o=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},o(e)}function s(e,t){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},s(e,t)}function a(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function u(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return !1;if(Reflect.construct.sham)return !1;if("function"==typeof Proxy)return !0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return !1}}();return function(){var r,n=o(e);if(t){var i=o(this).constructor;r=Reflect.construct(n,arguments,i);}else r=n.apply(this,arguments);return a(this,r)}}function c(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return l(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return l(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var h=function(e){return new Promise((function(t,r){!function(e,t){for(var r=document.getElementsByTagName("script"),n=0,i=r.length;n<i;n++)if(-1!=r[n].src.indexOf(e))return void(t&&t());var o=document.createElement("script");o.setAttribute("src",e),t&&(o.onload=t),document.head.appendChild(o);}(e,t);}))},f="https://npmcdn.com/parse@".concat("2.11.0","/dist/parse.min.js"),d=Phaser.Loader.FILE_POPULATED,y=Phaser.Utils.String.UUID,g=function(e){i(o,Phaser.Loader.File);var r=u(o);function o(e,n){return t(this,o),n.hasOwnProperty("type")||(n.type="await"),n.hasOwnProperty("url")||(n.url=""),n.hasOwnProperty("key")||(n.key=y()),r.call(this,e,n)}return n(o,[{key:"load",value:function(){if(this.state===d)this.loader.nextFile(this,!0);else {var e=this.config,t=e.callback,r=e.scope,n=this.onLoad.bind(this),i=this.onError.bind(this);t?r?t.call(r,n,i):t(n,i):this.onLoad();}}},{key:"onLoad",value:function(){this.loader.nextFile(this,!0);}},{key:"onError",value:function(){this.loader.nextFile(this,!1);}}]),o}(),v=function(e){return this.addFile(new g(this,{config:{callback:function(t,r){return function(e){return void 0===e&&(e=f),h(e)}(e).then((function(){setTimeout(t,0);})).catch(r)}}})),this},m=function(){function e(){t(this,e);}return n(e,[{key:"initializeApp",value:function(e){return firebase.initializeApp(e),this}}],[{key:"register",value:function(t,r){e.prototype[t]=r;}}]),e}(),p=function(e,t,r){if(e&&"number"!=typeof e){if(e.hasOwnProperty(t))return e[t];if(-1!==t.indexOf(".")){for(var n=t.split("."),i=e,o=r,s=0;s<n.length;s++){if(!i.hasOwnProperty(n[s])){o=r;break}o=i[n[s]],i=i[n[s]];}return o}return r}return r},P=function(e){return void 0===e.startIndex&&(e.startIndex=0),void 0===e.totalLines&&(e.totalLines=1/0),void 0===e.linesPerPage&&(e.linesPerPage=1e3),e.remainderLines=e.totalLines,b(e)},b=function e(t){var r=t.query,n=Math.min(t.remainderLines,t.linesPerPage);return t.remainderLines-=n,r.skip(t.startIndex).limit(n).find().then((function(r){var i,o=0===t.remainderLines||r.length<n;return t.forEachPageCallback&&(o|=!!t.forEachPageCallback(r)),o?(t.resolveCallback&&(i=t.resolveCallback()),Promise.resolve(i)):(t.startIndex+=r.length,e(t))}))},I=function(e,t,r){var n=[];return P({query:e,startIndex:t,totalLines:r,forEachPageCallback:function(e){n.push.apply(n,c(e));},resolveCallback:function(){return n}})},w={loadItems:function(e,t){void 0===e&&(e=0),void 0===t&&(t=1/0),this.items.length=0;var r=this;return I(this.query,e,t).then((function(n){return r.items=n,r.startIndex=e,r.pageIndex=Math.floor(e/r.itemCount),r.isFullPage=t===1/0||t===n.length,Promise.resolve(n)})).catch((function(e){return r.isFullPage=!1,Promise.reject(e)}))},loadPage:function(e){var t=e*this.itemCount;return this.loadItems(t,this.itemCount)},loadFirstPage:function(){return this.loadItems(0,this.itemCount)},loadCurrentPage:function(){return this.loadItems(this.startIndex,this.itemCount)},loadNextPage:function(){var e=this.startIndex+this.itemCount;return this.loadItems(e,this.itemCount)},loadPreviousPage:function(){var e=this.startIndex-this.itemCount;return this.loadItems(e,this.itemCount)}},k=function(){function e(r){t(this,e),this.items=[],this.startIndex=0,this.pageIndex=0,this.isFullPage=!1,this.setItemCount(p(r,"itemCount",100)),this.setQuery(p(r,"query",void 0));}return n(e,[{key:"setItemCount",value:function(e){return this.itemCount=e,this.pageIndex=Math.floor(this.startIndex/e),this}},{key:"setQuery",value:function(e){return this.query=e,this}},{key:"getItem",value:function(e){return this.items[e-this.startIndex]}},{key:"findFirst",value:function(e,t){for(var r,n=this.items.length;r<n;r++)if(this.items[r].get(e)===t)return r+this.startIndex;return -1}}]),e}();Object.assign(k.prototype,w);var C=function(e){return null==e||""===e||0===e.length},x=function(t,r,n,i){if(void 0===i&&(i="."),"object"===e(t)){if(C(r)){if(null==n)return;"object"===e(n)&&(t=n);}else {"string"==typeof r&&(r=r.split(i));var o=r.pop(),s=function(t,r,n){var i=t;if(C(r));else {var o;"string"==typeof r&&(r=r.split("."));for(var s=0,a=r.length;s<a;s++){var u;null!=i[o=r[s]]&&"object"===e(i[o])||(u=s===a-1?void 0===n?{}:n:{},i[o]=u),i=i[o];}}return i}(t,r);s[o]=n;}return t}};m.register("pageLoader",(function(e){return new k(e)})),x(window,"RexPlugins.Parse.PageLoader",k);var Q={loadItem:function(e,t){if("string"==typeof e){var r=this.baseQuery;return t&&(r=r.select(t)),r.get(e)}r=this.getQuery(e).limit(1);return t&&(r=r.select(t)),r.find().then((function(e){return Promise.resolve(e[0])}))},loadPage:function(e){return this.pageLoader.loadPage(e)},loadCurrentPage:function(){return this.pageLoader.loadCurrentPage()},loadNextPage:function(){return this.pageLoader.loadNextPage()},loadPreviousPage:function(){return this.pageLoader.loadPreviousPage()},loadItems:function(e,t){return this.pageLoader.loadItems(e,t)},load:function(e){return void 0===e&&(e=this.baseQuery),I(e)},loadRandomItems:function(e,t){"number"==typeof e&&(t=e,e=void 0),void 0===e&&(e=this.baseQuery),void 0===t&&(t=1),e.select("id");var r=this;return I(e).then((function(n){!function(e){for(var t=e.length-1;t>0;t--){var r=Math.floor(Math.random()*(t+1)),n=e[t];e[t]=e[r],e[r]=n;}}(n),t=Math.min(t,n.length);for(var i=[],o=0;o<t;o++)i.push(n[o].id);return e=r.baseQuery.containedIn("objectId",i),I(e)}))}},F=function(e){return e.select("id"),I(e).then((function(e){return 0===e.length?Promise.resolve():Parse.Object.destroyAll(e)}))},O={deleteItem:function(e){return this.createItem().set("id",e).destroy()},delete:function(e){return void 0===e&&(e=this.baseQuery),F(e)}},D=function(e,t,r){return r||(r=new t),r.set(e),r},j=function(e,t,r){if(!t&&!r)return e;var n=Parse.User.current();if(!n)return e;var i=new Parse.ACL(n);return r||i.setPublicWriteAccess(!0),t||i.setPublicReadAccess(!0),e.setACL(i),e},L=function(){function e(r){t(this,e),this.pageLoader=new k,this.setClassName(p(r,"className","Item")),this.setItemCount(p(r,"itemCount",100)),this.setQuery(),this.primaryKeys=[];var n=p(r,"primaryKeys",void 0);n&&this.setPrimaryKey(n),this.setOwnerReadMode(p(r,"ownerRead",void 0)),this.setOwnerWriteMode(p(r,"ownerWrite",void 0));}return n(e,[{key:"setClassName",value:function(e){return this.customClass=Parse.Object.extend(e),this}},{key:"setPrimaryKey",value:function(e){return e?"string"==typeof e?(this.primaryKeys.length=1,this.primaryKeys[0]=e):function(e,t,r,n){void 0===r&&(r=0),void 0===n&&(n=t.length),e.length=n-r;for(var i=0,o=e.length;i<o;i++)e[i]=t[i+r];}(this.primaryKeys,e):this.primaryKeys.length=0,this}},{key:"setOwnerReadMode",value:function(e){return this.ownerRead=e,this}},{key:"setOwnerWriteMode",value:function(e){return this.ownerWrite=e,this}},{key:"createItem",value:function(){return new this.customClass}},{key:"setItemCount",value:function(e){return this.pageLoader.setItemCount(e),this}},{key:"setQuery",value:function(e){return void 0===e&&(e=this.baseQuery),this.pageLoader.setQuery(e),this}},{key:"baseQuery",get:function(){return new Parse.Query(this.customClass)}},{key:"startIndex",get:function(){return this.pageLoader.startIndex}},{key:"pageIndex",get:function(){return this.pageLoader.pageIndex}},{key:"isLastPage",get:function(){return this.pageLoader.isLastPage}}]),e}(),T={getQuery:function(e){for(var t,r,n=this.baseQuery,i=e instanceof this.customClass,o=0,s=this.primaryKeys.length;o<s;o++)t=this.primaryKeys[o],r=i?e.get(t):e[t],n.equalTo(t,r);return n},save:function(e){if(t=e,"[object Array]"===Object.prototype.toString.call(t))return this.saveItems(e);var t,r=this;return new Promise((function(t,n){if(!(r.primaryKeys.length>0))return t();r.loadItem(e,"id").then(t,n);})).then((function(t){return t=D(e,r.customClass,t),j(t,r.ownerRead,r.ownerWrite),t.save()}))},saveItems:function(e){var t=this;return new Promise((function(r,n){var i=[];if(!(t.primaryKeys.length>0)){for(c=0,l=e.length;c<l;c++){var o=D(e[c],t.customClass);j(o,t.ownerRead,t.ownerWrite),i.push(o);}return r(i)}for(var s,a=[],u=function(){var r=e[c];s=t.loadItem(r,"id").then((function(e){e=D(r,t.customClass,e),j(e,t.ownerRead,t.ownerWrite),i.push(e);})),a.push(s);},c=0,l=e.length;c<l;c++)u();Promise.all(a).then((function(){return r(i)})).catch(n);})).then((function(e){return Parse.Object.saveAll(e)}))},getItemCount:function(e){return void 0===e&&(e=this.baseQuery),e.count()}}; /** * @author Richard Davey <rich@photonstorm.com> * @copyright 2018 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */Object.assign(L.prototype,Q,O,T),m.register("itemTable",(function(e){return new L(e)})),x(window,"RexPlugins.Parse.ItemTable",L); /** * @author Richard Davey <rich@photonstorm.com> * @copyright 2018 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ var R=function(e){var t=e?new Date(e):new Date,r=t.getFullYear(),n=t.getMonth()+1,i=t.getDate(),o=new Date(t.getFullYear(),0,1),s=Math.ceil(((t-o)/864e5+o.getDay()+1)/7);return {d:"".concat(r,"-").concat(n,"-").concat(i),w:"".concat(r,"-").concat(s),m:"".concat(r,"-").concat(n),y:"".concat(r)}},N={d:"tagD",w:"tagW",m:"tagM",y:"tagY"},M={d:"scoreD",w:"scoreW",m:"scoreM",y:"scoreY"},S={loadFirstPage:function(){this.resetPageQuery();var e=this;return this.page.loadFirstPage().then((function(t){return Promise.resolve(A.call(e,t))}))},loadNextPage:function(){this.resetPageQuery();var e=this;return this.page.loadNextPage().then((function(t){return Promise.resolve(A.call(e,t))}))},loadPreviousPage:function(){this.resetPageQuery();var e=this;return this.page.loadPreviousPage().then((function(t){return Promise.resolve(A.call(e,t))}))},loadCurrentPage:function(){this.resetPageQuery();var e=this;return this.page.loadCurrentPage().then((function(t){return Promise.resolve(A.call(e,t))}))},load:function(e,t){this.resetPageQuery();var r=this;return this.page.load(e,t).then((function(e){return Promise.resolve(A.call(r,e))}))},resetPageQuery:function(){return this.resetQueryFlag?(this.resetQueryFlag=!1,this.page.setQuery(this.getPageQuery()),this):this}},A=function(e){for(var t,r=[],n=M[this.timeFilterType[0]],i=0,o=e.length;i<o;i++){if(t=e[i].toJSON(),!1!==this.timeFilters)for(var s in t.score=t[n],this.timeFilters)delete t[N[s]],delete t[M[s]];r.push(t);}return r},E={deleteUser:function(e){void 0===e&&(e=this.userID);var t=this.getRecordQuery(void 0,void 0,e,void 0);return F(t)},deleteBoard:function(e,t){void 0===e&&(e=this.boardID),void 0===t&&(t=this.tag);var r=this.getRecordQuery(e,t,void 0,void 0);return F(r)}},U={getRecordQuery:function(e,t,r,n){var i=this.baseQuery;return i=void 0!==e?i.equalTo("boardID",e):i,i=void 0!==t?i.equalTo("tag",t):i,i=void 0!==r?i.equalTo("userID",r):i,void 0!==n&&(i=i.equalTo(n[0],n[1])),i},getMyRecordQuery:function(e){return void 0===e&&(e=this.userID),this.getRecordQuery(this.boardID,this.tag,e,void 0).limit(1)},getPageQuery:function(){var e,t;if(!1!==this.timeFilters){var r=this.timeFilterType[0];e=[N[r],R()[r]],t=M[r];}else e=void 0,t="score";var n=this.getRecordQuery(this.boardID,this.tag,void 0,e);return n=n.descending(t)}},q=function(){function r(e){t(this,r),this.setClassName(p(e,"className","Item")),this.userInfo={userID:void 0,userName:void 0},this.setUser(p(e,"userID",""),p(e,"userName",void 0)),this.setBoardID(p(e,"boardID",void 0)),this.setTag(p(e,"tag",void 0)),this.setTimeFilters(p(e,"timeFilters",!1)),this.setTimeFilterType(p(e,"timeFilterType","year")),this.page=new k({itemCount:p(e,"pageItemCount",100)}),this.resetQueryFlag=!0;}return n(r,[{key:"shutdown",value:function(){}},{key:"destroy",value:function(){this.shutdown();}},{key:"userID",get:function(){return this.userInfo.userID},set:function(e){this.userInfo.userID=e;}},{key:"userName",get:function(){return this.userInfo.userName},set:function(e){this.userInfo.userName=e;}},{key:"setClassName",value:function(e){return this.resetQueryFlag=!0,this.customClass=Parse.Object.extend(e),this}},{key:"setUser",value:function(t,r){return !function(t){if("object"!==e(t)||t.nodeType||t===t.window)return !1;try{if(t.constructor&&!{}.hasOwnProperty.call(t.constructor.prototype,"isPrototypeOf"))return !1}catch(e){return !1}return !0}(t)?(this.userID=t,this.userName=r):this.userInfo=t,this}},{key:"setBoardID",value:function(e){return this.resetQueryFlag|=this.boardID!==e,this.boardID=e,this}},{key:"setTag",value:function(e){return this.resetQueryFlag|=this.tag!==e,this.tag=e,this}},{key:"setTimeFilters",value:function(e){return this.timeFilters=!1!==e&&{d:p(e,"day",!0),w:p(e,"week",!0),m:p(e,"month",!0),y:p(e,"year",!0)},this}},{key:"setTimeFilterType",value:function(e){return this.resetQueryFlag|=this.timeFilterType!==e,this.timeFilterType=e,this}},{key:"setPageItemCount",value:function(e){return this.page.setItemCount(e),this}},{key:"baseQuery",get:function(){return new Parse.Query(this.customClass)}},{key:"pageIndex",get:function(){return this.page.pageIndex}},{key:"isFirstPage",get:function(){return 0===this.page.pageIndex}},{key:"isLastPage",get:function(){return !1===this.page.isFullPage}}]),r}(),K={post:function(e,t,r){var n={userID:this.userID};void 0!==this.boardID&&(n.boardID=this.boardID),this.userName&&(n.userName=this.userName);var i=R(r);if(!1!==this.timeFilters)for(var o in this.timeFilters)this.timeFilters[o]&&(n[N[o]]=i[o],n[M[o]]=e);else n.score=e;this.tag&&(n.tag=this.tag),t&&Object.assign(n,t);i=R();var s=this;return this.getMyRecordQuery().find().then((function(e){var t=e[0];if(t)if(!1!==s.timeFilters){for(var r in s.timeFilters)if(s.timeFilters[r]){var i=N[r];if(t.get(i)===n[i]){var o=M[r];n[o]=Math.max(t.get(o),n[o]);}}}else n.score=Math.max(t.get("score"),n.score);return D(n,s.customClass,t).save()}))},getScore:function(e){return this.getMyRecordQuery(e).find().then((function(e){var t=e[0];return t&&(t=t.toJSON()),Promise.resolve(t)}))},getRank:function(e){void 0===e&&(e=this.userID);return function(e,t){var r={item:void 0,index:void 0},n=0;return P({query:e,forEachPageCallback:function(e){for(var i,o=0,s=e.length;o<s;o++)if(i=e[o],t(i))return r.item=i,r.index=n+o,!0;n+=e.length;},resolveCallback:function(){return r}})}(this.getPageQuery(),(function(t){return t.get("userID")===e})).then((function(t){return Promise.resolve({userID:e,rank:t.index})}))}};Object.assign(q.prototype,K,U,S,E),m.register("leaderBoard",(function(e){return new q(e)})),x(window,"RexPlugins.Parse.Leaderboard",q);var W=function(e,t){var r=new Parse.User;return r.set("username",e).set("password",t),r.signUp().then((function(){return Parse.User.logIn(e,t)}))},_=function(e){i(o,Phaser.Plugins.BasePlugin);var r=u(o);function o(e){var n;return t(this,o),(n=r.call(this,e)).add=new m,n}return n(o,[{key:"start",value:function(){this.game.events.on("destroy",this.destroy,this);}},{key:"preload",value:function(e,t){return v.call(e.sys.load,t),this}}]),o}(),B={quickLogin:function(e,t){return Parse.User.logOut().then((function(){return Parse.User.logIn(e,t)})).catch((function(){return W(e,t)}))}};return Object.assign(_.prototype,B),_}));