UNPKG

phaser4-rex-plugins

Version:
7 lines (6 loc) 13.8 kB
var e,t;e=void 0,t=function(){var e=function(e){return new Promise((function(t,r){!function(e,t){for(var r=document.getElementsByTagName("script"),s=0,i=r.length;s<i;s++)if(-1!=r[s].src.indexOf(e))return void(t&&t());var n=document.createElement("script");n.setAttribute("src",e),t&&(n.onload=t),document.head.appendChild(n)}(e,t)}))};const t=Phaser.Loader.FILE_POPULATED,r=Phaser.Utils.String.UUID;class s extends Phaser.Loader.File{constructor(e,t){t.hasOwnProperty("type")||(t.type="await"),t.hasOwnProperty("url")||(t.url=""),t.hasOwnProperty("key")||(t.key=r()),super(e,t)}load(){if(this.state===t)this.loader.nextFile(this,!0);else{var e=this.config,r=e.callback,s=e.scope;if(r){var i=this,n=!1,a=function(){n||(setTimeout((function(){i.onLoad()}),0),n=!0)},o=function(){n||(setTimeout((function(){i.onError()}),0),n=!0)};s?r.call(s,a,o):r(a,o)}else this.onLoad()}}onLoad(){this.loader.nextFile(this,!0)}onError(){this.loader.nextFile(this,!1)}}const i=function(t){return this.addFile(new s(this,{config:{callback:function(r,s){return function(t){return void 0===t&&(t="https://npmcdn.com/parse@2.11.0/dist/parse.min.js"),e(t)}(t).then((function(){setTimeout(r,0)})).catch(s)}}})),this};class n{constructor(){}initializeApp(e){return firebase.initializeApp(e),this}static register(e,t){n.prototype[e]=t}}var a=function(e,t,r){if(!e||"number"==typeof e)return r;if("string"==typeof t){if(e.hasOwnProperty(t))return e[t];if(-1===t.indexOf("."))return r;t=t.split(".")}for(var s=t,i=e,n=r,a=0;a<s.length;a++){if(t=s[a],!i.hasOwnProperty(t)){n=r;break}i=n=i[t]}return n},o=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,u(e)},u=function(e){var t=e.query,r=Math.min(e.remainderLines,e.linesPerPage);return e.remainderLines-=r,t.skip(e.startIndex).limit(r).find().then((function(t){var s,i=0===e.remainderLines||t.length<r;return e.forEachPageCallback&&(i|=!!e.forEachPageCallback(t)),i?(e.resolveCallback&&(s=e.resolveCallback()),Promise.resolve(s)):(e.startIndex+=t.length,u(e))}))},h=function(e,t,r){var s=[];return o({query:e,startIndex:t,totalLines:r,forEachPageCallback:function(e){s.push(...e)},resolveCallback:function(){return s}})},l={loadItems(e,t){void 0===e&&(e=0),void 0===t&&(t=1/0),this.items.length=0;var r=this;return h(this.query,e,t).then((function(s){return r.items=s,r.startIndex=e,r.pageIndex=Math.floor(e/r.itemCount),r.isFullPage=t===1/0||t===s.length,Promise.resolve(s)})).catch((function(e){return r.isFullPage=!1,Promise.reject(e)}))},loadPage(e){var t=e*this.itemCount;return this.loadItems(t,this.itemCount)},loadFirstPage(){return this.loadItems(0,this.itemCount)},loadCurrentPage(){return this.loadItems(this.startIndex,this.itemCount)},loadNextPage(){var e=this.startIndex+this.itemCount;return this.loadItems(e,this.itemCount)},loadPreviousPage(){var e=this.startIndex-this.itemCount;return this.loadItems(e,this.itemCount)}};class d{constructor(e){this.items=[],this.startIndex=0,this.pageIndex=0,this.isFullPage=!1,this.setItemCount(a(e,"itemCount",100)),this.setQuery(a(e,"query",void 0))}setItemCount(e){return this.itemCount=e,this.pageIndex=Math.floor(this.startIndex/e),this}setQuery(e){return this.query=e,this}getItem(e){return this.items[e-this.startIndex]}findFirst(e,t){for(var r,s=this.items.length;r<s;r++)if(this.items[r].get(e)===t)return r+this.startIndex;return-1}}Object.assign(d.prototype,l);var c=function(e){return null==e||""===e||0===e.length},g=function(e,t,r,s){if(void 0===s&&(s="."),"object"==typeof e){if(c(t)){if(null==r)return;"object"==typeof r&&(e=r)}else{"string"==typeof t&&(t=t.split(s));var i=t.pop(),n=function(e,t,r){var s=e;if(c(t));else{var i;"string"==typeof t&&(t=t.split("."));for(var n=0,a=t.length;n<a;n++){var o;null!=s[i=t[n]]&&"object"==typeof s[i]||(o=n===a-1?void 0===r?{}:r:{},s[i]=o),s=s[i]}}return s}(e,t);n[i]=r}return e}};n.register("pageLoader",(function(e){return new d(e)})),g(window,"RexPlugins.Parse.PageLoader",d);var m={loadItem(e,t){if("string"==typeof e){var r=this.baseQuery;return t&&(r=r.select(t)),r.get(e)}return r=this.getQuery(e).limit(1),t&&(r=r.select(t)),r.find().then((function(e){return Promise.resolve(e[0])}))},loadPage(e){return this.pageLoader.loadPage(e)},loadCurrentPage(){return this.pageLoader.loadCurrentPage()},loadNextPage(){return this.pageLoader.loadNextPage()},loadPreviousPage(){return this.pageLoader.loadPreviousPage()},loadItems(e,t){return this.pageLoader.loadItems(e,t)},load(e){return void 0===e&&(e=this.baseQuery),h(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 h(e).then((function(s){!function(e){for(var t=e.length-1;t>0;t--){var r=Math.floor(Math.random()*(t+1)),s=e[t];e[t]=e[r],e[r]=s}}(s),t=Math.min(t,s.length);for(var i=[],n=0;n<t;n++)i.push(s[n].id);return e=r.baseQuery.containedIn("objectId",i),h(e)}))}},f=function(e){return e.select("id"),h(e).then((function(e){return 0===e.length?Promise.resolve():Parse.Object.destroyAll(e)}))},v={deleteItem(e){return this.createItem().set("id",e).destroy()},delete(e){return void 0===e&&(e=this.baseQuery),f(e)}},y=function(e,t,r){return r||(r=new t),r.set(e),r},p=function(e,t,r){if(!t&&!r)return e;var s=Parse.User.current();if(!s)return e;var i=new Parse.ACL(s);return r||i.setPublicWriteAccess(!0),t||i.setPublicReadAccess(!0),e.setACL(i),e}; /** * @author Richard Davey <rich@photonstorm.com> * @copyright 2018 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */class P{constructor(e){this.pageLoader=new d,this.setClassName(a(e,"className","Item")),this.setItemCount(a(e,"itemCount",100)),this.setQuery(),this.primaryKeys=[];var t=a(e,"primaryKeys",void 0);t&&this.setPrimaryKey(t),this.setOwnerReadMode(a(e,"ownerRead",void 0)),this.setOwnerWriteMode(a(e,"ownerWrite",void 0))}setClassName(e){return this.customClass=Parse.Object.extend(e),this}setPrimaryKey(e){return e?"string"==typeof e?(this.primaryKeys.length=1,this.primaryKeys[0]=e):function(e,t,r,s){void 0===r&&(r=0),void 0===s&&(s=t.length),e.length=s-r;for(var i=0,n=e.length;i<n;i++)e[i]=t[i+r]}(this.primaryKeys,e):this.primaryKeys.length=0,this}setOwnerReadMode(e){return this.ownerRead=e,this}setOwnerWriteMode(e){return this.ownerWrite=e,this}createItem(){return new this.customClass}setItemCount(e){return this.pageLoader.setItemCount(e),this}setQuery(e){return void 0===e&&(e=this.baseQuery),this.pageLoader.setQuery(e),this}get baseQuery(){return new Parse.Query(this.customClass)}get startIndex(){return this.pageLoader.startIndex}get pageIndex(){return this.pageLoader.pageIndex}get isLastPage(){return this.pageLoader.isLastPage}}var I={getQuery:function(e){for(var t,r,s=this.baseQuery,i=e instanceof this.customClass,n=0,a=this.primaryKeys.length;n<a;n++)t=this.primaryKeys[n],r=i?e.get(t):e[t],s.equalTo(t,r);return s},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,s){if(!(r.primaryKeys.length>0))return t();r.loadItem(e,"id").then(t,s)})).then((function(t){return t=y(e,r.customClass,t),p(t,r.ownerRead,r.ownerWrite),t.save()}))},saveItems:function(e){var t=this;return new Promise((function(r,s){var i=[];if(!(t.primaryKeys.length>0)){for(u=0,h=e.length;u<h;u++){var n=y(e[u],t.customClass);p(n,t.ownerRead,t.ownerWrite),i.push(n)}return r(i)}for(var a,o=[],u=0,h=e.length;u<h;u++){let r=e[u];a=t.loadItem(r,"id").then((function(e){e=y(r,t.customClass,e),p(e,t.ownerRead,t.ownerWrite),i.push(e)})),o.push(a)}Promise.all(o).then((function(){return r(i)})).catch(s)})).then((function(e){return Parse.Object.saveAll(e)}))},getItemCount:function(e){return void 0===e&&(e=this.baseQuery),e.count()}};Object.assign(P.prototype,m,v,I),n.register("itemTable",(function(e){return new P(e)})),g(window,"RexPlugins.Parse.ItemTable",P);var b=function(e){var t=e?new Date(e):new Date,r=t.getFullYear(),s=t.getMonth()+1,i=t.getDate(),n=new Date(t.getFullYear(),0,1);return{d:`${r}-${s}-${i}`,w:`${r}-${Math.ceil(((t-n)/864e5+n.getDay()+1)/7)}`,m:`${r}-${s}`,y:`${r}`}},w={d:"tagD",w:"tagW",m:"tagM",y:"tagY"},C={d:"scoreD",w:"scoreW",m:"scoreM",y:"scoreY"},x={loadFirstPage(){this.resetPageQuery();var e=this;return this.page.loadFirstPage().then((function(t){return Promise.resolve(Q.call(e,t))}))},loadNextPage(){this.resetPageQuery();var e=this;return this.page.loadNextPage().then((function(t){return Promise.resolve(Q.call(e,t))}))},loadPreviousPage(){this.resetPageQuery();var e=this;return this.page.loadPreviousPage().then((function(t){return Promise.resolve(Q.call(e,t))}))},loadCurrentPage(){this.resetPageQuery();var e=this;return this.page.loadCurrentPage().then((function(t){return Promise.resolve(Q.call(e,t))}))},load(e,t){this.resetPageQuery();var r=this;return this.page.load(e,t).then((function(e){return Promise.resolve(Q.call(r,e))}))},resetPageQuery(){return this.resetQueryFlag?(this.resetQueryFlag=!1,this.page.setQuery(this.getPageQuery()),this):this}},Q=function(e){for(var t,r=[],s=C[this.timeFilterType[0]],i=0,n=e.length;i<n;i++){if(t=e[i].toJSON(),!1!==this.timeFilters)for(var a in t.score=t[s],this.timeFilters)delete t[w[a]],delete t[C[a]];r.push(t)}return r},F={deleteUser(e){void 0===e&&(e=this.userID);var t=this.getRecordQuery(void 0,void 0,e,void 0);return f(t)},deleteBoard(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)}},D={getRecordQuery(e,t,r,s){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!==s&&(i=i.equalTo(s[0],s[1])),i},getMyRecordQuery(e){return void 0===e&&(e=this.userID),this.getRecordQuery(this.boardID,this.tag,e,void 0).limit(1)},getPageQuery(){var e,t;if(!1!==this.timeFilters){var r=this.timeFilterType[0];e=[w[r],b()[r]],t=C[r]}else e=void 0,t="score";var s=this.getRecordQuery(this.boardID,this.tag,void 0,e);return s=s.descending(t)}};class L{constructor(e){this.setClassName(a(e,"className","Item")),this.userInfo={userID:void 0,userName:void 0},this.setUser(a(e,"userID",""),a(e,"userName",void 0)),this.setBoardID(a(e,"boardID",void 0)),this.setTag(a(e,"tag",void 0)),this.setTimeFilters(a(e,"timeFilters",!1)),this.setTimeFilterType(a(e,"timeFilterType","year")),this.page=new d({itemCount:a(e,"pageItemCount",100)}),this.resetQueryFlag=!0}shutdown(){}destroy(){this.shutdown()}get userID(){return this.userInfo.userID}set userID(e){this.userInfo.userID=e}get userName(){return this.userInfo.userName}set userName(e){this.userInfo.userName=e}setClassName(e){return this.resetQueryFlag=!0,this.customClass=Parse.Object.extend(e),this}setUser(e,t){return function(e){if("object"!=typeof e||e.nodeType||e===e.window)return!1;try{if(e.constructor&&!{}.hasOwnProperty.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(e){return!1}return!0}(e)?this.userInfo=e:(this.userID=e,this.userName=t),this}setBoardID(e){return this.resetQueryFlag|=this.boardID!==e,this.boardID=e,this}setTag(e){return this.resetQueryFlag|=this.tag!==e,this.tag=e,this}setTimeFilters(e){return this.timeFilters=!1!==e&&{d:a(e,"day",!0),w:a(e,"week",!0),m:a(e,"month",!0),y:a(e,"year",!0)},this}setTimeFilterType(e){return this.resetQueryFlag|=this.timeFilterType!==e,this.timeFilterType=e,this}setPageItemCount(e){return this.page.setItemCount(e),this}get baseQuery(){return new Parse.Query(this.customClass)}get pageIndex(){return this.page.pageIndex}get isFirstPage(){return 0===this.page.pageIndex}get isLastPage(){return!1===this.page.isFullPage}}var T={post:function(e,t,r){var s={userID:this.userID};void 0!==this.boardID&&(s.boardID=this.boardID),this.userName&&(s.userName=this.userName);var i=b(r);if(!1!==this.timeFilters)for(var n in this.timeFilters)this.timeFilters[n]&&(s[w[n]]=i[n],s[C[n]]=e);else s.score=e;this.tag&&(s.tag=this.tag),t&&Object.assign(s,t),i=b();var a=this;return this.getMyRecordQuery().find().then((function(e){var t=e[0];if(t)if(!1!==a.timeFilters){for(var r in a.timeFilters)if(a.timeFilters[r]){var i=w[r];if(t.get(i)===s[i]){var n=C[r];s[n]=Math.max(t.get(n),s[n])}}}else s.score=Math.max(t.get("score"),s.score);return y(s,a.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){return void 0===e&&(e=this.userID),function(e,t){var r={item:void 0,index:void 0},s=0;return o({query:e,forEachPageCallback:function(e){for(var i,n=0,a=e.length;n<a;n++)if(i=e[n],t(i))return r.item=i,r.index=s+n,!0;s+=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(L.prototype,T,D,x,F),n.register("leaderBoard",(function(e){return new L(e)})),g(window,"RexPlugins.Parse.Leaderboard",L);var O=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)}))};class N extends Phaser.Plugins.BasePlugin{constructor(e){super(e),this.add=new n}start(){this.game.events.on("destroy",this.destroy,this)}preload(e,t){return i.call(e.sys.load,t),this}}var R={quickLogin:function(e,t){return Parse.User.logOut().then((function(){return Parse.User.logIn(e,t)})).catch((function(){return O(e,t)}))}};return Object.assign(N.prototype,R),N},"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();