@shimotsuki/core 2.0.78 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- import t from"@babel/runtime-corejs3/core-js/global-this";import{AudioSource as e,_decorator as i,AudioClip as s,error as o,Node as n,director as r,log as a,Component as l,Prefab as c,instantiate as h,isValid as p,Layers as u,view as d,Widget as m,v3 as _,tween as f,Enum as g,game as y,Label as v,UIOpacity as b,Tween as E,BlockInputEvents as C,Button as w,Director as S,warn as T,AsyncDelegate as A,Game as I,assetManager as k,Asset as O,resources as N,sys as R,SpriteFrame as D,Sprite as M}from"cc";import F from"@babel/runtime-corejs3/core-js-stable/reflect/get";import x from"@babel/runtime-corejs3/core-js-stable/reflect/set";import U from"@babel/runtime-corejs3/core-js-stable/object/assign";import P from"@babel/runtime-corejs3/core-js-stable/promise";import L from"eventemitter3";import B from"@babel/runtime-corejs3/core-js-stable/instance/includes";import H from"@babel/runtime-corejs3/core-js-stable/json/stringify";import G from"@babel/runtime-corejs3/core-js-stable/map";import j from"@babel/runtime-corejs3/core-js-stable/instance/for-each";import $ from"@babel/runtime-corejs3/core-js-stable/instance/filter";import K from"@babel/runtime-corejs3/core-js-stable/array/is-array";import V from"@babel/runtime-corejs3/core-js-stable/instance/bind";import{makeObservable as W,observable as z,autorun as Q,reaction as q}from"@shimotsuki/mobx";import J from"@babel/runtime-corejs3/core-js-stable/set-timeout";import X from"@babel/runtime-corejs3/core-js-stable/instance/map";import Z from"@babel/runtime-corejs3/core-js-stable/array/from";import Y from"@babel/runtime-corejs3/core-js-stable/instance/every";import{SocketConnectStatus as tt}from"pitayaclient";import{DEBUG as et,WECHAT as it,PREVIEW as st}from"cc/env";import{clone as ot}from"@bufbuild/protobuf";import{SocialGameClient as nt}from"sgc";import rt from"crypto-es";import at from"@babel/runtime-corejs3/core-js-stable/date/now";import lt from"@babel/runtime-corejs3/core-js-stable/set-interval";import ct from"@babel/runtime-corejs3/core-js-stable/instance/values";import ht from"@babel/runtime-corejs3/core-js-stable/instance/entries";class pt extends e{cat;initAudio(t){return this.cat=t,this}}const{ccclass:ut,menu:dt}=i;let mt=class extends pt{effects=(()=>new G)();load(t){return new P(((e,i)=>{this.cat.res.load(t,s,((s,o)=>{if(s)return i(s);this.effects.set(t,o),this.playOneShot(o,this.volume),e(o)}))}))}release(){for(let t in this.effects)this.cat.res.release(t);this.effects.clear()}};const{ccclass:_t,menu:ft}=i;class gt extends pt{onComplete=null;_progress=0;_url=null;_isPlay=!1;get progress(){return this.duration>0&&(this._progress=this.currentTime/this.duration),this._progress}set progress(t){this._progress=t,this.currentTime=t*this.duration}load(t,e){this.cat.res.load(t,s,((i,s)=>{i&&o(i),this.playing&&(this._isPlay=!1,this.stop(),this.cat.res.release(this._url)),this.playOnAwake=!1,this.enabled=!0,this.clip=s,this._url=t,e&&e()}))}update(t){this.currentTime>0&&(this._isPlay=!0),this._isPlay&&0==this.playing&&(this._isPlay=!1,this.enabled=!1,this.onComplete&&this.onComplete())}release(){this._url&&(this.cat.res.release(this._url),this._url=null)}}class yt{cat;constructor(t){this.cat=t}}var vt;!function(t){t.MUSIC_ON="AudioEventConstant/MUSIC_ON",t.MUSIC_OFF="AudioEventConstant/MUSIC_OFF",t.EFFECT_ON="AudioEventConstant/EFFECT_ON",t.EFFECT_OFF="AudioEventConstant/EFFECT_OFF",t.PAUSE_AUDIO="AudioEventConstant/PAUSE_AUDIO",t.RESUME_AUDIO="AudioEventConstant/RESUME_AUDIO"}(vt||(vt={}));class bt extends yt{local_data={};music;effect;_volume_music=1;_volume_effect=1;_switch_music=!0;_switch_effect=!0;local_store_key="game_audio";extra={};constructor(t){super(t),this.local_store_key=this.cat.audio_local_store_key;var e=new n("UIAudioManager");r.addPersistRootNode(e);var i=new n("UIMusic");i.parent=e,this.music=i.addComponent(gt).initAudio(t);var s=new n("UIEffect");s.parent=e,this.effect=s.addComponent(mt).initAudio(t),this.load()}setMusicComplete(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;this.music.onComplete=t}playMusic(t,e){this.music.loop=!0,t&&this.music.load(t,(()=>{this._switch_music&&this.music?.play(),e&&e()}))}stopMusic(){0!=this.music.state&&this.music?.stop()}pauseMusic(){1==this.music.state&&this.music?.pause()}resumeMusic(){var t;B(t=[0,2]).call(t,this.music.state)&&this.music?.play()}get progressMusic(){return this.music.progress}set progressMusic(t){this.music.progress=t}get volumeMusic(){return this._volume_music}set volumeMusic(t){this._volume_music=t,this.music.volume=t}get switchMusic(){return this._switch_music}set switchMusic(t){if(a("设置背景音乐开关值",t,this._switch_music),t==this._switch_music)return;this._switch_music=t,t?this.resumeMusic():this.pauseMusic();const e=t?vt.MUSIC_ON:vt.MUSIC_OFF;this.cat.event.emit(e),this.save()}async playEffect(t){this._switch_effect&&t&&await this.effect.load(t).then((()=>{this.effect.play()}))}stopEffect(){this.effect?.stop()}get volumeEffect(){return this._volume_effect}set volumeEffect(t){this._volume_effect=t,this.effect.volume=t}get switchEffect(){return this._switch_effect}set switchEffect(t){if(t==this._switch_effect)return;this._switch_effect=t,t?this.effect?.play():this.effect?.stop();const e=t?vt.EFFECT_ON:vt.EFFECT_OFF;this.cat.event.emit(e),this.save()}resumeAll(){this.switchMusic&&this.music?.play(),this.switchEffect&&this.effect?.play()}pauseAll(){this.music?.pause(),this.effect?.pause()}stopAll(){this.music?.stop(),this.effect?.stop()}save(){this.local_data.volume_music=this._volume_music,this.local_data.volume_effect=this._volume_effect,this.local_data.switch_music=this._switch_music,this.local_data.switch_effect=this._switch_effect,this.local_data.extra=this.extra;let t=H(this.local_data);return this.cat.storage.set(this.local_store_key,t),this}load(){try{let t=this.cat.storage.get(this.local_store_key);this.local_data=JSON.parse(t),this._volume_music=this.local_data.volume_music,this._volume_effect=this.local_data.volume_effect,this._switch_music=this.local_data.switch_music,this._switch_effect=this.local_data.switch_effect,this.extra=this.local_data.extra}catch(t){this.local_data={},this._volume_music=.6,this._volume_effect=1,this._switch_music=!0,this._switch_effect=!0,this.extra={}}this.music&&(this.music.volume=this._volume_music),this.effect&&(this.effect.volume=this._volume_effect)}}function Et(t,e,i,s){var o,n=arguments.length,r=n<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,i,s);else for(var a=t.length-1;a>=0;a--)(o=t[a])&&(r=(n<3?o(r):n>3?o(e,i,r):o(e,i))||r);return n>3&&r&&Object.defineProperty(e,i,r),r}function Ct(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)}"function"==typeof SuppressedError&&SuppressedError;class wt extends l{props={};data={};cat=(()=>t._cat)();autorunDisposers=[];reactionDisposers=[];eventEmitter=[];hook={destroyed:()=>{},started:()=>{}};initUI(){}__preload(){this.initUI(),this.onAutoObserver()}constructor(){super(),W(this,{props:z,data:z})}onAutoObserver(){}addAutorun(t){const e=K(t)?t:[t];return j(e).call(e,(t=>{const e=Q(t);this.autorunDisposers.push(e)})),this}addReaction(t,e,i){const s=q(t,e,i);return this.reactionDisposers.push(s),this}addAudoListener(t){var e;return B(e=this.eventEmitter).call(e,t)||t===this.cat.event||this.eventEmitter.push(t),t}_onPreDestroy(){var t,e;if(j(t=this.autorunDisposers).call(t,(t=>{t()})),j(e=this.reactionDisposers).call(e,(t=>{t()})),this.autorunDisposers=[],this.reactionDisposers=[],!super._onPreDestroy)throw new Error("_onPreDestroy已弃用");super._onPreDestroy()}onDisable(){var t;this.onHide(),this.deleteAllEventByEmitter(this.cat.event),j(t=this.eventEmitter).call(t,(t=>{this.deleteAllEventByEmitter(t)})),this.eventEmitter=[],this.removeListener()}deleteAllEventByEmitter(t){const e=t._events;for(const i in e){let s=e[i];K(s)||(s=[s]),j(s).call(s,(e=>{e.context===this&&t.off(i,e.fn,this)}))}}onEnable(){this.onShow(),this.addListener(),this.onEventListener()}onEventListener(){}addListener(){}removeListener(){}addToParent(t,e,i){const s=t instanceof c?h(t):t instanceof l?t.node:t;if("number"==typeof e){const t=e,o=i;this.setOptions(o),s.insertChild(this.node,t)}else{const t=e;this.setOptions(t),s.addChild(this.node)}return this}setOptions(t){if(t)for(let e in t)switch(e){case"hook":t.hook&&(this.hook=t.hook);break;case"props":null!==t.props&&"object"==typeof t.props&&(this.props=t.props);break;case"data":null!==t.data&&"object"==typeof t.data&&(this.data=t.data)}}setUpdateData(t){return t&&U(this.data,t),this}setUpdateProps(t){return this.props,t&&U(this.props,t),this}removeAndDestroy(){p(this?.node)&&(this.node.removeFromParent(),this.node.destroy())}setPosition(t){return this.node.setPosition(t),this}setScale(t){return this.node.setScale(t),this}setAngle(t){return this.node.angle=t,this}setRotation(t){return this.node.setRotation(t),this}setRotationFromEuler(t){return this.node.setRotationFromEuler(t),this}onShow(){}onHide(){}setNodeAndChildrenLayer(t){return St(this.node,t),this}}const St=(t,e)=>{var i,s,o;t.layer="string"==typeof e?2**u.nameToLayer(e):e,(null==(i=t)?void 0:V(o=Function.call).call(o,j(s=i.children),s))?.((t=>{St(t,e)}))};class Tt extends wt{lastEnterDirection="center";screen;isClosing=!1;root;constructor(){super(),this._init()}_init(){this.root=this.node,this.screen=d.getVisibleSize()}async showTween(t){let{isMotion:e=!0,direction:i="center",duration:s=.1,isBounce:o=!0,bounceDuration:n=.05}=t;if(this.lastEnterDirection=i,e){const t=this.node.getComponent(m);let e,n;t&&(t.updateAlignment(),t.enabled=!1),_(1.1,1.1,1),"center"==i?(e=_(.01,.01,.01),n=_(1,1,1)):(e="left"==i?_(-this.screen.width,0,0):"right"==i?_(this.screen.width,0,0):_(0,"top"==i?this.screen.height:-this.screen.height,0),n=_(0,0,0)),await this.handle(i,s,e,n,o),t&&(t.enabled=!0)}}async hideTween(t){let{isMotion:e=!0,direction:i,duration:s=.1}=t;if(i=i||this.lastEnterDirection,!this.isClosing){if(this.isClosing=!0,f(this.node).removeSelf(),e){const t=this.node.getComponent(m);let e,o;t&&(t.enabled=!1),"center"==i?(e=this.node.scale,o=_(0,0,0)):(o="left"==i?_(-this.screen.width,0,0):"right"==i?_(this.screen.width,0,0):_(0,"top"==i?this.screen.height:-this.screen.height,0),e=this.node.getPosition()),await this.handle(i,s,e,o,!1)}this.removeAndDestroy()}}async handle(t,e,i,s,o){"center"==t?this.node.setScale(i):this.node.setPosition(i),await this.deftween(e,{["center"==t?"scale":"position"]:s},o)}deftween(t,e,i,s){return new P(((i,s)=>{f(this.node).to(t,e).call((()=>{i()})).start()}))}}const{ccclass:At,property:It}=i;var kt;!function(t){t[t.EFFECT=0]="EFFECT",t[t.BGM=1]="BGM"}(kt||(kt={}));class Ot extends wt{type=(()=>kt.EFFECT)();clip=null;loop=!1;volume=1;playOnAwake=!1;audioSource=(()=>new e)();onEnable(){super.onEnable(),this.clip&&(this.audioSource.clip=this.clip),this.audioSource.loop=this.loop,this.audioSource.volume=this.volume,this.audioSource.playOnAwake=this.playOnAwake,this.cat.event.on(vt.EFFECT_ON,this.onPlayEffectHandler,this).on(vt.EFFECT_OFF,this.onStopEffectHandler,this).on(vt.MUSIC_ON,this.onPlayMusicHandler,this).on(vt.MUSIC_OFF,this.onStopMusicHandler,this)}__preload(){super.__preload();const{volumeEffect:t,volumeMusic:e}=this.cat.audio;this.audioSource.volume=this.type===kt.BGM?e:t}start(){}stopAudio(){this.audioSource.stop()}playAudio(){const{switchEffect:t,switchMusic:e}=this.cat.audio;this.audioSource.playing||!(this.type===kt.BGM?e:t)||y._paused||this.audioSource.play()}onPlayEffectHandler(){}onStopEffectHandler(){this.stopAudio()}onPlayMusicHandler(){}onStopMusicHandler(){this.stopAudio()}_onPreDestroy(){this.onStopMusicHandler(),super._onPreDestroy()}}Et([It({tooltip:"类型:\n EFFECT 音效\n BGM 音乐",type:g(kt)}),Ct("design:type",Number)],Ot.prototype,"type",void 0),Et([It({tooltip:"音源",type:s}),Ct("design:type",s)],Ot.prototype,"clip",void 0),Et([It({tooltip:"循环"}),Ct("design:type",Boolean)],Ot.prototype,"loop",void 0),Et([It({tooltip:"音量"}),Ct("design:type",Number)],Ot.prototype,"volume",void 0),Et([It({tooltip:"是否启用自动播放"}),Ct("design:type",Boolean)],Ot.prototype,"playOnAwake",void 0);const{ccclass:Nt,property:Rt}=i;class Dt extends Tt{type=(()=>kt.EFFECT)();clip=null;loop=!1;volume=1;playOnAwake=!1;audioSource=(()=>new e)();onEnable(){super.onEnable(),this.cat.event.on(vt.EFFECT_ON,this.onPlayEffectHandler,this).on(vt.EFFECT_OFF,this.onStopEffectHandler,this).on(vt.MUSIC_ON,this.onPlayMusicHandler,this).on(vt.MUSIC_OFF,this.onStopMusicHandler,this)}__preload(){this.clip&&(this.audioSource.clip=this.clip),this.audioSource.loop=this.loop,this.audioSource.volume=this.volume,this.audioSource.playOnAwake=this.playOnAwake,super.__preload();const{volumeEffect:t,volumeMusic:e}=this.cat.audio;this.audioSource.volume=this.type===kt.BGM?e:t}stopAudio(){this.audioSource.stop()}playAudio(){const{switchEffect:t,switchMusic:e}=this.cat.audio;this.audioSource.playing||!(this.type===kt.BGM?e:t)||y._paused||this.audioSource.play()}onPlayEffectHandler(){}onStopEffectHandler(){this.stopAudio()}onPlayMusicHandler(){}onStopMusicHandler(){this.stopAudio()}_onPreDestroy(){this.onStopMusicHandler(),super._onPreDestroy()}}Et([Rt({tooltip:"类型:\n EFFECT 音效\n BGM 音乐",type:g(kt)}),Ct("design:type",Number)],Dt.prototype,"type",void 0),Et([Rt({tooltip:"音源",type:s}),Ct("design:type",s)],Dt.prototype,"clip",void 0),Et([Rt({tooltip:"循环"}),Ct("design:type",Boolean)],Dt.prototype,"loop",void 0),Et([Rt({tooltip:"音量"}),Ct("design:type",Number)],Dt.prototype,"volume",void 0),Et([Rt({tooltip:"是否启用自动播放"}),Ct("design:type",Boolean)],Dt.prototype,"playOnAwake",void 0);const{ccclass:Mt,property:Ft,menu:xt}=i;var Ut;!function(t){t[t.FIXED=0]="FIXED",t[t.SLIDE=1]="SLIDE"}(Ut||(Ut={}));let Pt=class extends wt{fixed_node;slide_node;fixed_label;slide_label;onLoad(){this.fixed_node.active=this.slide_node.active=!1}start(){this.show()}async show(){return new P((async(t,e)=>{const{title:i,type:s,fixed_time:o}=this.props;s==Ut.FIXED?(this.fixed_node.active=!0,this.fixed_label.string=`${i}`,this.scheduleOnce((()=>{this.node.destroy(),t()}),o)):(this.slide_node.active=!0,this.slide_label.string=`${i}`,this.playAnim(this.node).then((()=>{t()})))}))}playAnim(t){return new P(((e,i)=>{const s=this.node.getComponent(b),o=f(s).delay(1.2).to(.5,{opacity:0}).call((()=>{E.stopAllByTarget(t),this.node.destroy(),e()}));f(t).by(.5,{position:_(0,400,0)}).call((()=>{o.start()})).start()}))}onDestroy(){E.stopAllByTarget(this.node),this.unscheduleAllCallbacks()}};var Lt;Et([Ft({type:n,tooltip:"固定节点"}),Ct("design:type",n)],Pt.prototype,"fixed_node",void 0),Et([Ft({type:n,tooltip:"滑动节点"}),Ct("design:type",n)],Pt.prototype,"slide_node",void 0),Et([Ft({type:v,tooltip:"固定标签节点"}),Ct("design:type",v)],Pt.prototype,"fixed_label",void 0),Et([Ft({type:v,tooltip:"滑动标签节点"}),Ct("design:type",v)],Pt.prototype,"slide_label",void 0),Pt=Et([Mt("CoreToast"),xt("CATCORE/CoreToast")],Pt),function(t){t.EVENT_SHOW="GlobalEventConstant/EVENT_SHOW",t.EVENT_HIDE="GlobalEventConstant/EVENT_HIDE",t.GAME_RESIZE="GlobalEventConstant/GAME_RESIZE",t.EVENT_CLOSE="GlobalEventConstant/EVENT_CLOSE",t.ONLINE="GlobalEventConstant/ONLINE",t.OFFLINE="GlobalEventConstant/OFFLINE",t.ROOT_MASK_UPDATE="GlobalEventConstant/ROOT_MASK_UPDATE",t.ROOT_MASK_CHANGE="GlobalEventConstant/ROOT_MASK_CHANGE"}(Lt||(Lt={}));const{ccclass:Bt,property:Ht,menu:Gt}=i;let jt=class extends wt{tween};Et([Ht({type:n,tooltip:"动画节点"}),Ct("design:type",n)],jt.prototype,"tween",void 0),jt=Et([Bt("CoreBlackMask"),Gt("CATCORE/CoreBlackMask")],jt);const{ccclass:$t,property:Kt,menu:Vt}=i;let Wt=class extends Tt{scene_mask_node;ui_container;gui=null;onLoad(){this.setSceneMaskActive(!1)}get scene_mask(){return this.scene_mask_node.getComponent(jt)}get brother(){return this.ui_container.children||[]}get tweenChildren(){return this.scene_mask.tween.children}onEventListener(){this.cat.event.on(Lt.ROOT_MASK_CHANGE,this.uiMaskChanged,this)}addMask(){const t=this.brother[this.brother.length-1];t&&this.scene_mask.node.setSiblingIndex(t.getSiblingIndex()),this.blockMaskSiblingIndexChanged()}subMask(){const t=this.brother[this.brother.length-2];t&&this.scene_mask.node.setSiblingIndex(t.getSiblingIndex()),this.blockMaskSiblingIndexChanged()}blockMaskSiblingIndexChanged(){this.tweenChildren.length>1||this.brother.length>1?this.show():this.hide()}addNodeToTween(t){return p(this)&&this.scene_mask&&this.scene_mask.tween.addChild(t),this}show(){this.setSceneMaskActive(!0)}hide(){this.setSceneMaskActive(!1)}setGui(t){return this.gui=t,this}uiMaskChanged(){this.blockMaskSiblingIndexChanged()}setSceneMaskActive(t){this.scene_mask.node.active=t}};Et([Kt({type:n}),Ct("design:type",n)],Wt.prototype,"scene_mask_node",void 0),Et([Kt({type:n}),Ct("design:type",n)],Wt.prototype,"ui_container",void 0),Wt=Et([$t("CoreUIContainer"),Vt("CATCORE/CoreUIContainer")],Wt);class zt extends Tt{onEnable(){super.onEnable(),this.updateMask()}onDisable(){super.onDisable(),this.updateMask()}updateMask(){this.cat.event.emit(Lt.ROOT_MASK_UPDATE)}}const{ccclass:Qt,property:qt,menu:Jt}=i;let Xt=class extends zt{title;loadingTween;loading_rotate=0;onAutoObserver(){this.addAutorun([()=>{this.props?.title&&(this.title.string=`${this.props?.title}`),this.title.node.active=!!this.props?.title?.length},()=>{this.getComponent(C).enabled=!!this.props?.mask}])}update(t){this.loading_rotate+=220*t,this.loadingTween.setRotationFromEuler(0,0,-this.loading_rotate%360),this.loading_rotate>360&&(this.loading_rotate-=360)}};var Zt;Et([qt({type:v,tooltip:"标题"}),Ct("design:type",v)],Xt.prototype,"title",void 0),Et([qt({type:n,tooltip:"动画"}),Ct("design:type",n)],Xt.prototype,"loadingTween",void 0),Xt=Et([Qt("CoreShowLoading"),Jt("CATCORE/CoreShowLoading")],Xt),function(t){t.RECONNECTED="重连成功",t.RECONNECTING="正在重连",t.MAX_RECONNECT="重连次数超出限制,请检查网络",t.RECONNECTED_ERROR="重连失败,请检查网络",t.CONNECT_PARAM_ERROR="游戏参数错误,请重新加载",t.KICK="账号已下线",t.OFFLINE="网络已断开",t.ONLINE="网络已连接",t.GAME_ERROR="连接游戏服错误"}(Zt||(Zt={}));const{ccclass:Yt,property:te,menu:ee}=i;let ie=class extends zt{common_prompt_text;btn_confirm;btn_close;is_close=!1;props={content:null};initUI(){}onLoad(){this.btn_confirm.node.on(w.EventType.CLICK,this.onConfirmHandler,this),this.btn_close.node.on(w.EventType.CLICK,this.onConfirmHandler,this),this.addAutorun([()=>{this.common_prompt_text.string=this.props.content??""}])}onDestroy(){this.unscheduleAllCallbacks()}updateProps(t){this.updatePromptText(t,t==Zt.RECONNECTING)}updatePromptText(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.unscheduleAllCallbacks(),this.props.content=t,a("更新提示文案:",t),e){let e=0;const i=()=>{e=(e+1)%4,this.common_prompt_text.string=t+["","·","··","···"][e]};this.schedule(i,.5)}}onConfirmHandler(){this.is_close=!0,this.cat.gui.hideReconnect()}};Et([te({type:v,tooltip:"通用提示文本"}),Ct("design:type",v)],ie.prototype,"common_prompt_text",void 0),Et([te({type:w,tooltip:"确定按钮"}),Ct("design:type",w)],ie.prototype,"btn_confirm",void 0),Et([te({type:w,tooltip:"关闭按钮"}),Ct("design:type",w)],ie.prototype,"btn_close",void 0),ie=Et([Yt("CoreReconnection"),ee("CATCORE/CoreReconnection")],ie);const{ccclass:se,property:oe,menu:ne}=i;let re=class extends zt{text;btn_confirm;btn_close;onLoad(){this.btn_confirm.node.on(w.EventType.CLICK,this.onConfrimHandler,this)}start(){this.props&&this.updateProps(this.props)}onConfrimHandler(){this.props?.confrim?.(),this.cat.gui.hideNotice()}updateProps(t){this.text.string=`${t.text}`}};Et([oe({type:v,tooltip:"提示文本"}),Ct("design:type",v)],re.prototype,"text",void 0),Et([oe({type:w,tooltip:"确定按钮"}),Ct("design:type",w)],re.prototype,"btn_confirm",void 0),Et([oe({type:w,tooltip:"关闭按钮"}),Ct("design:type",w)],re.prototype,"btn_close",void 0),re=Et([se("CoreNotice"),ne("CATCORE/CoreNotice")],re);class ae extends wt{isReload}const{ccclass:le,property:ce,menu:he}=i;var pe;!function(t){t[t.UI=0]="UI",t[t.LOADING=1]="LOADING",t[t.TOAST=2]="TOAST",t[t.RECONNECTTION=3]="RECONNECTTION",t[t.NOTICE=4]="NOTICE"}(pe||(pe={}));let ue=class extends wt{reconnection_ui_prefab;toast_ui_prefab;loading_ui_prefab;notice_ui_prefab;ui_prefab;root_ui;root_toast;root_mask;ui_container_component;reconnection_ui_component;notice_ui_component;loading_ui_component;toast_ui_component;currentScene;onEventListener(){this.cat.event.on(Lt.ROOT_MASK_UPDATE,this.onRootUpdate,this)}init(t){this.cat=t;const e=r.getScene();return a("init scene"),e&&this.changeScene(e),this}start(){this.onRootUpdate()}toastQueue=[];isScheduling=!1;minInterval=.2;showToast(t){this.toastQueue.push(t),this.isScheduling||this.processQueueWithInterval()}processQueueWithInterval(){if(0===this.toastQueue.length)return void(this.isScheduling=!1);this.isScheduling=!0;const t=this.toastQueue.shift(),e=()=>{h(this.toast_ui_prefab).getComponent(Pt).addToParent(this.root_toast,{props:t}),this.scheduleOnce((()=>{this.processQueueWithInterval()}),this.minInterval)};0===this.root_toast.children.length?e():this.scheduleOnce(e,this.minInterval)}hideToast(){var t;this.root_toast&&j(t=this.root_toast.children).call(t,(t=>{t.getComponent(Pt)?.removeAndDestroy()}));return this.toastQueue=[],this.unschedule(this.processQueueWithInterval),this.isScheduling=!1,this}showLoading(){let{title:t="",mask:e=!0,black:i=!0}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(a("showLoading",t),this.loading_ui_component)this.loading_ui_component.setOptions({props:{title:t,mask:e,black:i}});else{const s=h(this.loading_ui_prefab);this.loading_ui_component=s.getComponent(Xt).addToParent(this.root_ui,{props:{title:t,mask:e,black:i}})}return this}hideLoading(){return this.loading_ui_component?.removeAndDestroy(),this.loading_ui_component=null,this}showReconnect(t){if(this.reconnection_ui_component)this.reconnection_ui_component.setUpdateProps({content:t});else{const e=h(this.reconnection_ui_prefab);this.reconnection_ui_component=e.getComponent(ie).addToParent(this.root_ui,{props:{content:t}})}return this}hideReconnect(){return this.reconnection_ui_component?.removeAndDestroy(),this.reconnection_ui_component=null,this}showNotice(t){const e=h(this.notice_ui_prefab);return this.notice_ui_component=e.getComponent(re).addToParent(this.root_ui,{props:t}),this}hideNotice(){return this.notice_ui_component?.removeAndDestroy(),this}loadScene(t,e,i){a("加载场景",t,e,i);let s={},o=i??!1;return"boolean"==typeof e?o=e:s=e??{},a("当前场景",r.getScene()?.uuid,r.getScene()?.name),r.once(S.EVENT_BEFORE_SCENE_LAUNCH,(t=>{a("Director.EVENT_BEFORE_SCENE_LAUNCH",t),this.changeScene(t,s,o)})),r.loadScene(t),this}resetScene(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return t=t||this.currentScene,this.loadScene(t)}cleanScene(){this.resetScene().hideLoading().hideNotice().hideReconnect().hideToast()}changeScene(t,e,i){this.currentScene=t.name,this.createUILayer(t);const s=t.getComponentInChildren(ae);s&&(s.isReload=i??!1),s?.setOptions(e)}createUILayer(t){this.ui_container_component?.removeAndDestroy(),this.ui_container_component=null;const e=h(this.ui_prefab);this.ui_container_component=e.getComponent(Wt),this.ui_container_component?.setGui(this).addToParent(t,this.node.getSiblingIndex())}reloadScene(){this.loadScene(this.currentScene,!0)}async closeUI(t,e){const{component:i}=this.findUIBaseLayer(t,!1);i&&(i.setOptions({...e?.hook??{},...e?.props??{}}),await i.hideTween(e||{}),this.ui_container_component?.subMask())}async openUI(t,e){const{rootNode:i,component:s}=this.findUIBaseLayer(t,!0);i.getComponent(Tt),s?.setOptions(e),i&&this.ui_container_component?.addNodeToTween(i).addMask(),s&&await s.showTween(e||{}),this.ui_container_component?.ui_container&&s?.addToParent(this.ui_container_component.ui_container)}findUIBaseLayer(t,e){let i,s=null;if(t instanceof n){var r;i=t;const e=$(r=t.components).call(r,(t=>t instanceof Tt));if(!e.length)return o(`${t.name}节点未找到继承自BaseLayer的组件`),{rootNode:i,component:s};1==e.length?s=e[0]:T(`${t.name}节点存在多个继承自BaseLayer的组件`)}else if(i=t.node,s=t,e){for(;i.parent;)i=i.parent;s.root=i}else i=t.root;return{rootNode:i,component:s}}onRootUpdate(){const t=this.root_ui.children.findLastIndex((t=>t.active&&t!=this.root_mask));if(this.root_mask.active=-1!=t,t>-1){const e=this.root_ui.children[t].getSiblingIndex()-1;this.root_mask.setSiblingIndex(e<0?0:e)}this.cat.event.emit(Lt.ROOT_MASK_CHANGE)}};var de;Et([ce({type:c,tooltip:"断线重连UI预制体"}),Ct("design:type",c)],ue.prototype,"reconnection_ui_prefab",void 0),Et([ce({type:c,tooltip:"提示UI预制体"}),Ct("design:type",c)],ue.prototype,"toast_ui_prefab",void 0),Et([ce({type:c,tooltip:"加载UI预制体"}),Ct("design:type",c)],ue.prototype,"loading_ui_prefab",void 0),Et([ce({type:c,tooltip:"公告UI预制体"}),Ct("design:type",c)],ue.prototype,"notice_ui_prefab",void 0),Et([ce({type:c,tooltip:"UI层预制体"}),Ct("design:type",c)],ue.prototype,"ui_prefab",void 0),Et([ce({type:n,tooltip:"root-UI层"}),Ct("design:type",n)],ue.prototype,"root_ui",void 0),Et([ce({type:n,tooltip:"root-组件层"}),Ct("design:type",n)],ue.prototype,"root_toast",void 0),Et([ce({type:n,tooltip:"root-mask"}),Ct("design:type",n)],ue.prototype,"root_mask",void 0),ue=Et([le("Gui"),he("CATCORE/Gui")],ue),function(t){t.Root="prefabs/root",t.Toast="prefabs/toast",t.BlackMask="prefabs/black-mask",t.Loading="prefabs/loading",t.Notice="prefabs/notice",t.Reconnection="prefabs/reconnection"}(de||(de={}));class me extends yt{gui;#t="core";getGuiPrefabByType=(t,e)=>new P(((i,s)=>{a(t,`${e}`),this.cat.res.load(t,e,((t,e)=>{t?s(t):i(e)}))}));async init(){this.cat.gui_bundle_name&&(this.#t=this.cat.gui_bundle_name);const t=await this.getGuiPrefabByType(this.#t,de.Root),e=h(t);return this.gui=e.getComponent(ue).init(this.cat),r.addPersistRootNode(e),this}}class _e extends nt{showRequestErrInfo=!1;logBlackList=[];ignore=t=>{var e;return B(e=this.logBlackList).call(e,t)};constructor(t,e,i,s){super(e,i,s,t),this.showRequestErrInfo=s?.showRequestErrInfo??!1}destroy(){this.disconnect(!0),t._cat.socialGameClient.unregister(this)}async GameRequest(e,i,s,o){return new P(((n,r)=>{super.GameRequest(e,i,s,o).then((t=>{et&&a(`%c ws服务端消息 %c [Response][${new Date}] %c ${e} %c`,"background:#ff00ff ; padding: 1px; border-radius: 3px 0 0 3px; color: #fff","background:#3d7daa ; padding: 1px; color: #fff","background:#ff00ff ; padding: 1px; border-radius: 0 3px 3px 0; color: #fff","background:transparent",ot(s,t)),n(t)}),(e=>{this.showRequestErrInfo&&e?.msg&&t._cat.gui.showToast({title:e.msg}),r(e)}))}))}subscribe(e,i,s){return super.subscribe(e,i,(o=>{et&&!this.ignore(e)&&a(`%c ws服务端消息:[subscribe][${new Date}] %c ${e} %c`,"background:#35495e ; padding: 1px; border-radius: 3px 0 0 3px; color: #fff","background:#410083 ; padding: 1px; border-radius: 0 3px 3px 0; color: #fff","background:transparent",ot(i,o)),t._cat.event.emit(e,ot(i,o)),s?.(o)})),this}}class fe extends yt{managedClients=(()=>new G)();isGlobalOnline=!0;isInBackground=!1;reconnecting=!1;onEventHideDelegate=(()=>new A)();onEventShowDelegate=(()=>new A)();onEventReloadSceneDelegate=(()=>new A)();reconnectTimer=null;scheduleReconnect(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2e3;this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.reconnectTimer=J((()=>{this.reconnectTimer=null,this.triggerReconnectAll()}),t)}get activeClients(){var t,e;return $(t=X(e=Z(this.managedClients)).call(e,(t=>{let[e,i]=t;return i}))).call(t,(t=>t.socket))}constructor(t){super(t),this.initGlobalListeners()}createWebSocket(t,e,i,s){if(this.managedClients.has(t)){this.managedClients.get(t).destroy(),a(`清理旧的 ${t} 客户端`)}const o=new _e(t,i,s,U({reconnectMaxAttempts:1/0},{...e,isAutoConnect:!1,isArrayBuffer:it}));return this.register(o),o}register(t){t.on("reconnected",this.handleSingleReconnect),t.on("close",this.handleSingleClose),t.on("kick",this.handleSingleKick),this.managedClients.set(t.name,t)}unregister(t){t.off("reconnected",this.handleSingleReconnect),t.off("close",this.handleSingleClose),t.off("kick",this.handleSingleKick),this.managedClients.delete(t.name)}initGlobalListeners(){this.cat.event.on(Lt.ONLINE,(()=>this.handleGlobalStateChange("online")),this).on(Lt.OFFLINE,(()=>this.handleGlobalStateChange("offline")),this),y.on(I.EVENT_SHOW,(()=>this.handleGlobalStateChange("show"))),y.on(I.EVENT_HIDE,(()=>this.handleGlobalStateChange("hide")))}async handleGlobalStateChange(t){switch(t){case"online":this.cat.gui.hideLoading().showToast({title:Zt.ONLINE}),this.isGlobalOnline=!0,this.triggerReconnectAll();break;case"offline":this.isGlobalOnline=!1,this.disconnectAll(!0),this.cat.gui.showLoading({title:Zt.OFFLINE});break;case"show":this.isInBackground=!1,await this.triggerReconnectAll(),await this.onEventShowDelegate.dispatch();break;case"hide":await this.onEventHideDelegate.dispatch(),this.isInBackground=!0,this.disconnectAll(!0)}}async triggerReconnectAll(){if(a("触发所有客户端重连",this.reconnecting,!this.isGlobalOnline,this.isInBackground,this.managedClients.size),!this.reconnecting&&this.isGlobalOnline&&!this.isInBackground&&0!==this.managedClients.size){this.reconnecting=!0,this.cat.gui.showLoading({title:"正在重连"});try{var t,e;await P.allSettled(X(t=this.activeClients).call(t,(async t=>{try{await t.reconnectPromise()}catch(e){o(`${t.name}服重连失败`,e)}})));const i=$(e=this.activeClients).call(e,(t=>t.socketConnectStatus!==tt.CONNECTED));i.length>0?(console.error("部分WS重连失败:",X(i).call(i,(t=>t))),a("2s后重连所有客户端"),this.reconnecting=!1,this.scheduleReconnect()):this.reconnecting=!1}catch(t){throw this.reconnecting=!1,t}}}disconnectAll(t){var e;j(e=this.managedClients).call(e,(e=>{a("断开连接",e.name,t,e.socket),e.disconnect(t)}))}handleSingleClose=()=>{this.reconnecting||(a("3s后重连所有客户端"),this.scheduleReconnect(3e3))};handleSingleReconnect=async()=>{var t,e;Y(t=this.activeClients).call(t,(t=>t.socketConnectStatus===tt.CONNECTED))&&(a("单个WS重连成功回调===",this.managedClients),await P.allSettled(X(e=this.activeClients).call(e,(async t=>{try{await t.connectRequest()}catch(e){o(`${t.name}服登录错误`,e),this.cat.gui.showToast({title:`登录${t.name}服错误`})}}))),this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),await this.onEventReloadSceneDelegate.dispatch(),this.cat.gui.hideLoading().reloadScene())};handleSingleKick=()=>{this.cat.gui.showReconnect(Zt.KICK)}}class ge{get=(()=>function(t,e){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"resources";return k.getBundle(i).get(t,e)})();isAssetType=t=>"function"==typeof t&&t.prototype instanceof O;async load(){let t=null,e=null,i=null;for(var s=arguments.length,o=new Array(s),n=0;n<s;n++)o[n]=arguments[n];"string"==typeof o[0]&&"string"==typeof o[1]&&(t=o.shift());let r=o.shift();this.isAssetType(o[0])&&(e=o.shift()),2==o.length&&(i=o.shift());const a=o.shift();let l=N;if(t&&"resources"!=t){k.bundles.has(t)||await this.loadBundle(t);let e=k.bundles.get(t);e&&(l=e)}i&&a?l.load(r,e,i,a):a?l.load(r,e,a):l.load(r,e)}async loadDir(){let t=null,e=null,i=null,s=null;for(var o=arguments.length,n=new Array(o),r=0;r<o;r++)n[r]=arguments[r];"string"==typeof n[0]&&"string"==typeof n[1]&&(t=n.shift());let a=n.shift();this.isAssetType(n[0])&&(e=n.shift()),2==n.length&&(i=n.shift()),s=n.shift();let l=N;if(t&&"resources"!=t){k.bundles.has(t)||await this.loadBundle(t);let e=k.bundles.get(t);e&&(l=e)}i&&s?l.loadDir(a,e,i,s):s?l.loadDir(a,e,s):l.loadDir(a,e)}loadRemote(t){for(var e,i=null,s=arguments.length,o=new Array(s>1?s-1:0),n=1;n<s;n++)o[n-1]=arguments[n];2==o.length&&(i=o.shift()),e=o.shift(),k.loadRemote(t,{ext:".png",...i},e)}loadBundle=(t,e)=>new P(((i,s)=>{const o=(t,e)=>{if(t)return s(t);i(e)};e?k.loadBundle(t,{version:e},o):k.loadBundle(t,o)}));releasePrefabtDepsRecursively=t=>{var e=k.assets.get(t);if(k.releaseAsset(e),e instanceof c){var i=k.dependUtil.getDepsRecursively(t);j(i).call(i,(t=>{k.assets.get(t).decRef()}))}};release=(()=>{var t=this;return function(e){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"resources";var s=k.getBundle(i);if(s){var o=s.get(e);o&&t.releasePrefabtDepsRecursively(o._uuid)}}})();releaseDir=(()=>{var t=this;return function(e){var i,s;let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"resources";var n=k.getBundle(o),r=n?.getDirWithPath(e);(null==(i=r)?void 0:V(s=Function.call).call(s,X(i),i))?.((e=>{t.releasePrefabtDepsRecursively(e.uuid)})),!e&&"resources"!=o&&n&&k.removeBundle(n)}})();dump=()=>{var t;j(t=k.assets).call(t,((t,e)=>{a(k.assets.get(e))})),a(`当前资源总数:${k.assets.count}`)}}class ye{rootStore;constructor(t){this.rootStore=t}}class ve extends yt{}let be=null;const Ee={stringify:t=>{const e={ct:t.ciphertext.toString(rt.enc.Base64)};return t.iv&&(e.iv=t.iv.toString()),t.salt&&(e.s=t.salt.toString()),H(e)},parse:t=>{const e=JSON.parse(t),i=rt.lib.CipherParams.create({ciphertext:rt.enc.Base64.parse(e.ct)});return e.iv&&(i.iv=rt.enc.Hex.parse(e.iv)),e.s&&(i.salt=rt.enc.Hex.parse(e.s)),i}};var Ce=Object.freeze({__proto__:null,JsonFormatter:Ee,aesDecrypt:(t,e,i)=>rt.AES.decrypt(t,e,{iv:be,format:Ee}).toString(rt.enc.Utf8),aesEncrypt:(t,e,i)=>rt.AES.encrypt(t,e,{iv:be,format:Ee}).toString(),initCrypto:(t,e)=>{be=rt.enc.Hex.parse(e)},md5:t=>rt.MD5(t).toString()});class we extends yt{encryptUtil=(()=>Ce)()}class Se extends yt{_key=null;_iv=null;_id="";init(t,e){this.cat.util.encryptUtil.initCrypto(t,e),this._key=this.cat.util.encryptUtil.md5(t),this._iv=this.cat.util.encryptUtil.md5(e)}setUser(t){this._id=t}set(t,e){if(null!=(t=`${t}_${this._id}`)){if(st||(t=this.cat.util.encryptUtil.md5(t)),null==e)return console.warn("存储的值为空,则直接移除该存储"),void this.remove(t);if("function"!=typeof e){if("object"==typeof e)try{e=H(e)}catch(t){return void console.error(`解析失败,str = ${e}`)}else"number"==typeof e&&(e+="");st||null==this._key||null==this._iv||(e=this.cat.util.encryptUtil.aesEncrypt(`${e}`,this._key,this._iv)),R.localStorage.setItem(t,e)}else console.error("储存的值不能为方法")}else console.error("存储的key不能为空")}get(t,e){if(null==t)return console.error("存储的key不能为空"),null;t=`${t}_${this._id}`,st||(t=this.cat.util.encryptUtil.md5(t));let i=R.localStorage.getItem(t);return null==i||""===i||st||null==this._key||null==this._iv||(i=this.cat.util.encryptUtil.aesDecrypt(i,this._key,this._iv)),null===i?e:i}getNumber(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;var i=this.get(t);return Number(i)||e}getBoolean(t){var e=this.get(t);return Boolean(e)||!1}getJson(t,e){var i=this.get(t);return i&&JSON.parse(i)||e}remove(t){null!=t?(t=`${t}_${this._id}`,st||(t=this.cat.util.encryptUtil.md5(t)),R.localStorage.removeItem(t)):console.error("存储的key不能为空")}clear(){R.localStorage.clear()}}class Te{static#e=null;#i=!1;static get instance(){return this.#e??(this.#e=new Te)}onAppInitDelegate=(()=>new A)();onPlugInInitDelegate=(()=>new A)();#s=null;get audio(){return this.#s}#o=null;get event(){return this.#o}#n=null;get gui(){return this.#n}#r=null;get storage(){return this.#r}#a=null;get res(){return this.#a}#l=null;get util(){return this.#l}#c=null;get socialGameClient(){return this.#c}#h=null;get store(){return this.#h}#p="";get gui_bundle_name(){return this.#p}#u="";get audio_local_store_key(){return this.#u}#d="";get default_audio_effect(){return this.#d}setConfig=(()=>{var t=this;return function(){let{default_audio_effect:e="",gui_bundleName:i="resources",audio_local_store_key:s="game_audio"}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(t.#i)throw new Error("[CAT] 已初始化,无法修改配置");return t.#p=i,t.#u=s,t.#d=e,t}})();async boot(){if(this.#i)throw new Error("[CAT] 已初始化");try{this.#h=new ve(this),this.#a=new ge,this.#l=new we(this),this.#r=new Se(this),this.#o=new L,this.#s=new bt(this),this.#c=new fe(this),this.#n=(await new me(this).init()).gui,this.#i=!0}catch(t){throw console.error("[CAT] 初始化失败:",t),t}}merge(t,e){if(!this.#i)throw new Error("[CAT] 未初始化");if("string"!=typeof t)throw new Error("merge方法第一个参数应该为string类型");return F(this,t)||x(this,t,e),U(F(this,t),e),this}appendPlugInInitDelegate(t){return this.#i?P.resolve().then(t).catch((t=>{console.error("[CAT] appendPlugInInitDelegate 回调执行失败:",t)})):this.onPlugInInitDelegate.add(t),this}}const{ccclass:Ae,property:Ie,menu:ke}=i;let Oe=class extends Tt{default_title=null;title;prompt_content_str;prompt_content_spriteFrame;btn_confirm;confirm_spriteFrame;btn_cancel;cancel_spriteFrame;btn_close;isConfirm=!1;props={title:this.default_title,content:null,confirmCB:()=>{},cancelCB:()=>{},style:null};onLoad(){this.btn_cancel.node.on(w.EventType.CLICK,this.onCancelHandler,this),this.btn_confirm.node.on(w.EventType.CLICK,this.onConfirmHandler,this),this.btn_close.node.on(w.EventType.CLICK,this.onCloseHandler,this),this.addAutorun([()=>{this.title.spriteFrame=this.props?.title||this.default_title},()=>{this.props.content&&(this.props.content instanceof D?this.prompt_content_spriteFrame.spriteFrame=this.props.content:"string"==typeof this.props.content?this.prompt_content_str.string=this.props.content:console.error("未知类型的【UIModal】内容"))},()=>{null===this.props?.style?.confirm?this.btn_confirm.node.active=!1:(this.btn_confirm.node.active=!0,this.btn_confirm.getComponent(M).spriteFrame=this.props.style?.confirm||this.confirm_spriteFrame),null===this.props?.style?.cancel?this.btn_cancel.node.active=!1:(this.btn_cancel.node.active=!0,this.btn_cancel.getComponent(M).spriteFrame=this.props.style?.cancel||this.cancel_spriteFrame)}])}close(){this.props.cancelCB?.(),this.cat.gui.closeUI(this)}onCancelHandler(){this.close()}onConfirmHandler(){this.props.confirmCB?.()}onDestroy(){this.isConfirm&&this.props.onDestroy?.()}onCloseHandler(){this.close()}};var Ne;Et([Ie({type:D,tooltip:"默认标题"}),Ct("design:type",D)],Oe.prototype,"default_title",void 0),Et([Ie({type:M,tooltip:"标题节点"}),Ct("design:type",M)],Oe.prototype,"title",void 0),Et([Ie({type:v,tooltip:"字符串内容按钮"}),Ct("design:type",v)],Oe.prototype,"prompt_content_str",void 0),Et([Ie({type:M,tooltip:"图片精灵内容按钮"}),Ct("design:type",M)],Oe.prototype,"prompt_content_spriteFrame",void 0),Et([Ie({type:w,tooltip:"确认按钮"}),Ct("design:type",w)],Oe.prototype,"btn_confirm",void 0),Et([Ie({type:D,tooltip:"确认按钮精灵图"}),Ct("design:type",D)],Oe.prototype,"confirm_spriteFrame",void 0),Et([Ie({type:w,tooltip:"取消按钮"}),Ct("design:type",w)],Oe.prototype,"btn_cancel",void 0),Et([Ie({type:D,tooltip:"取消按钮精灵图"}),Ct("design:type",D)],Oe.prototype,"cancel_spriteFrame",void 0),Et([Ie({type:w,tooltip:"关闭按钮"}),Ct("design:type",w)],Oe.prototype,"btn_close",void 0),Oe=Et([Ae("CoreUIModal"),ke("CATCORE/CoreUIModal")],Oe),function(t){t[t.Delay=0]="Delay",t[t.Interval=1]="Interval"}(Ne||(Ne={}));class Re{tag;type;callback;remainingTime;executionTime=0;initialTime;constructor(t,e,i,s){this.tag=t,this.type=e,this.remainingTime=i,this.initialTime=i,this.callback=s}}class De extends yt{timers=(()=>new G)();lastUpdateTime=(()=>at())();constructor(t){var e;super(t),t.event.on(Lt.EVENT_HIDE,this.onHandleAppBackground,this),t.event.on(Lt.EVENT_SHOW,this.onHandleAppForeground,this),lt(V(e=this.update).call(e,this),1e3)}onHandleAppBackground(){this.lastUpdateTime=at()}onHandleAppForeground(){const t=at(),e=t-this.lastUpdateTime;a("elapsedTime",e);for(const t of ct(i=this.timers).call(i)){var i;t.remainingTime>0&&(t.remainingTime-=e,t.executionTime+=e)}this.lastUpdateTime=t}registerInterval(t,e,i){if(this.has(t))return o(`${t}定时器已存在,请勿重复注册`);const s=new Re(t,Ne.Interval,e,i);this.timers.set(t,s)}registerDelay(t,e,i){if(this.has(t))return o(`${t}延时器已存在,请勿重复注册`);const s=new Re(t,Ne.Delay,e,i);this.timers.set(t,s)}unregister(t){this.has(t)&&this.timers.delete(t)}has(t){return this.timers.has(t)}update(){const t=[];for(const[i,s]of ht(e=this.timers).call(e)){var e;s.remainingTime-=1e3,s.remainingTime<=0&&(s.type===Ne.Interval&&(s.executionTime+=s.initialTime),s.callback(s.executionTime),s.type===Ne.Interval?s.remainingTime=s.initialTime:t.push(i))}for(const e of t)this.timers.delete(e)}}const Me=(e,i)=>(s,o,n)=>{let r=n.value;return n.value=function(){const s=e??t._cat.default_audio_effect;s?t._cat.audio.playEffect(s):console.warn("请添加音效路径参数"),i&&i();for(var o=arguments.length,n=new Array(o),a=0;a<o;a++)n[a]=arguments[a];r.apply(this,n)},n},Fe=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,e=arguments.length>1?arguments[1]:void 0;return function(i,s,o){let n=o.value,r=!1;return o.value=function(){if(r)e&&e();else{r=!0,J((()=>{r=!1}),1e3*t);for(var i=arguments.length,s=new Array(i),o=0;o<i;o++)s[o]=arguments[o];n.apply(this,s)}},o}},xe=t._cat??=Te.instance;y.onPostProjectInitDelegate.add((async()=>{console.time("[Init App]");try{await xe.boot(),await xe.onAppInitDelegate.dispatch(),await xe.onPlugInInitDelegate.dispatch()}catch(t){throw o(`[Init App] 初始化失败: ${t instanceof Error?t.message:String(t)}`),t}finally{console.timeEnd("[Init App]")}}));export{Me as AudioEffect,vt as AudioEventConstant,bt as AudioManager,Ot as AudioSourceBaseComponent,Dt as AudioSourceUILayer,kt as AudioTypeEnum,wt as BaseComponent,yt as BaseManager,de as BasePrefab,ye as BaseStore,Fe as ButtonLock,jt as CoreBlackMask,re as CoreNotice,ie as CoreReconnection,Xt as CoreShowLoading,ve as CoreStore,Pt as CoreToast,Wt as CoreUIContainer,Oe as CoreUIModal,we as CoreUtil,Lt as GlobalEventConstant,ue as Gui,me as GuiManager,pe as LayerType,Te as Manager,Zt as ReconnectPrompt,zt as RootUILayer,ae as SceneLayer,De as TimerManager,Ut as ToastType,Tt as UILayer,_e as WrapperSocialGameClient,xe as cat};
1
+ import t from"@babel/runtime-corejs3/core-js/global-this";import{AudioSource as e,_decorator as i,AudioClip as s,error as o,Node as n,director as r,log as a,Component as l,Prefab as c,instantiate as h,isValid as p,Layers as u,view as d,Widget as m,v3 as _,tween as f,Enum as g,game as y,Label as v,UIOpacity as b,Tween as E,BlockInputEvents as C,Button as w,Director as S,warn as T,AsyncDelegate as A,Game as I,assetManager as k,Asset as O,resources as N,sys as R,SpriteFrame as D,Sprite as M}from"cc";import F from"@babel/runtime-corejs3/core-js-stable/reflect/get";import x from"@babel/runtime-corejs3/core-js-stable/reflect/set";import U from"@babel/runtime-corejs3/core-js-stable/object/assign";import P from"@babel/runtime-corejs3/core-js-stable/promise";import L from"eventemitter3";import B from"@babel/runtime-corejs3/core-js-stable/instance/includes";import H from"@babel/runtime-corejs3/core-js-stable/json/stringify";import G from"@babel/runtime-corejs3/core-js-stable/map";import j from"@babel/runtime-corejs3/core-js-stable/instance/for-each";import $ from"@babel/runtime-corejs3/core-js-stable/instance/filter";import K from"@babel/runtime-corejs3/core-js-stable/array/is-array";import W from"@babel/runtime-corejs3/core-js-stable/instance/bind";import{makeObservable as V,observable as z,autorun as q,reaction as Q}from"@shimotsuki/mobx";import J from"@babel/runtime-corejs3/core-js-stable/set-timeout";import X from"@babel/runtime-corejs3/core-js-stable/instance/map";import Z from"@babel/runtime-corejs3/core-js-stable/array/from";import Y from"@babel/runtime-corejs3/core-js-stable/instance/every";import{SocketConnectStatus as tt}from"pitayaclient";import{DEBUG as et,WECHAT as it,PREVIEW as st}from"cc/env";import{SocialGameClient as ot}from"sgc";import nt from"crypto-es";import rt from"@babel/runtime-corejs3/core-js-stable/date/now";import at from"@babel/runtime-corejs3/core-js-stable/set-interval";import lt from"@babel/runtime-corejs3/core-js-stable/instance/values";import ct from"@babel/runtime-corejs3/core-js-stable/instance/entries";class ht extends e{cat;initAudio(t){return this.cat=t,this}}const{ccclass:pt,menu:ut}=i;let dt=class extends ht{effects=(()=>new G)();load(t,e){return new P((i,o)=>{let n,r=null;void 0!==e?(r=t,n=e):n=t;const a=(t,e)=>{if(t)return o(t);this.effects.set(n,e),this.playOneShot(e,this.volume),i(e)};r?this.cat.res.load(r,n,s,a):this.cat.res.load(n,s,a)})}release(){for(let t in this.effects)this.cat.res.release(t);this.effects.clear()}};const{ccclass:mt,menu:_t}=i;class ft extends ht{onComplete=null;_progress=0;_url=null;_isPlay=!1;get progress(){return this.duration>0&&(this._progress=this.currentTime/this.duration),this._progress}set progress(t){this._progress=t,this.currentTime=t*this.duration}load(t,e){return new P((i,n)=>{let r,a=null;void 0!==e?(a=t,r=e):r=t;const l=(t,e)=>{if(t)return o(t),n(t);this.playing&&(this._isPlay=!1,this.stop(),this.cat.res.release(this._url)),this.playOnAwake=!1,this.enabled=!0,this.clip=e,this._url=r,i(e)};a?this.cat.res.load(a,r,s,l):this.cat.res.load(r,s,l)})}update(t){this.currentTime>0&&(this._isPlay=!0),this._isPlay&&0==this.playing&&(this._isPlay=!1,this.enabled=!1,this.onComplete&&this.onComplete())}release(){this._url&&(this.cat.res.release(this._url),this._url=null)}}class gt{cat;constructor(t){this.cat=t}}var yt;!function(t){t.MUSIC_ON="AudioEventConstant/MUSIC_ON",t.MUSIC_OFF="AudioEventConstant/MUSIC_OFF",t.EFFECT_ON="AudioEventConstant/EFFECT_ON",t.EFFECT_OFF="AudioEventConstant/EFFECT_OFF",t.PAUSE_AUDIO="AudioEventConstant/PAUSE_AUDIO",t.RESUME_AUDIO="AudioEventConstant/RESUME_AUDIO"}(yt||(yt={}));class vt extends gt{local_data={};music;effect;_volume_music=1;_volume_effect=1;_switch_music=!0;_switch_effect=!0;local_store_key="game_audio";extra={};constructor(t){super(t),this.local_store_key=this.cat.audio_local_store_key;var e=new n("UIAudioManager");r.addPersistRootNode(e);var i=new n("UIMusic");i.parent=e,this.music=i.addComponent(ft).initAudio(t);var s=new n("UIEffect");s.parent=e,this.effect=s.addComponent(dt).initAudio(t),this.load()}setMusicComplete(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;this.music.onComplete=t}async playMusic(t,e){if(this.music.loop=!0,!this._switch_music)return;let i,s;void 0!==e?(s=t,i=e):i=t,i.length&&await(s?this.music.load(s,i):this.music.load(i)).then(()=>{this._switch_music&&this.music.play()})}stopMusic(){0!=this.music.state&&this.music?.stop()}pauseMusic(){1==this.music.state&&this.music?.pause()}resumeMusic(){var t;B(t=[0,2]).call(t,this.music.state)&&this.music?.play()}get progressMusic(){return this.music.progress}set progressMusic(t){this.music.progress=t}get volumeMusic(){return this._volume_music}set volumeMusic(t){this._volume_music=t,this.music.volume=t}get switchMusic(){return this._switch_music}set switchMusic(t){if(a("设置背景音乐开关值",t,this._switch_music),t==this._switch_music)return;this._switch_music=t,t?this.resumeMusic():this.pauseMusic();const e=t?yt.MUSIC_ON:yt.MUSIC_OFF;this.cat.event.emit(e),this.save()}async playEffect(t,e){if(!this._switch_effect)return;let i,s;void 0!==e?(s=t,i=e):i=t,i.length&&await(s?this.effect.load(s,i):this.effect.load(i)).then(()=>{this.effect.play()})}stopEffect(){this.effect?.stop()}get volumeEffect(){return this._volume_effect}set volumeEffect(t){this._volume_effect=t,this.effect.volume=t}get switchEffect(){return this._switch_effect}set switchEffect(t){if(t==this._switch_effect)return;this._switch_effect=t,t?this.effect?.play():this.effect?.stop();const e=t?yt.EFFECT_ON:yt.EFFECT_OFF;this.cat.event.emit(e),this.save()}resumeAll(){this.switchMusic&&this.music?.play(),this.switchEffect&&this.effect?.play()}pauseAll(){this.music?.pause(),this.effect?.pause()}stopAll(){this.music?.stop(),this.effect?.stop()}save(){this.local_data.volume_music=this._volume_music,this.local_data.volume_effect=this._volume_effect,this.local_data.switch_music=this._switch_music,this.local_data.switch_effect=this._switch_effect,this.local_data.extra=this.extra;let t=H(this.local_data);return this.cat.storage.set(this.local_store_key,t),this}load(){try{let t=this.cat.storage.get(this.local_store_key);this.local_data=JSON.parse(t),this._volume_music=this.local_data.volume_music,this._volume_effect=this.local_data.volume_effect,this._switch_music=this.local_data.switch_music,this._switch_effect=this.local_data.switch_effect,this.extra=this.local_data.extra}catch(t){this.local_data={},this._volume_music=.6,this._volume_effect=1,this._switch_music=!0,this._switch_effect=!0,this.extra={}}this.music&&(this.music.volume=this._volume_music),this.effect&&(this.effect.volume=this._volume_effect)}}function bt(t,e,i,s){var o,n=arguments.length,r=n<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,i,s);else for(var a=t.length-1;a>=0;a--)(o=t[a])&&(r=(n<3?o(r):n>3?o(e,i,r):o(e,i))||r);return n>3&&r&&Object.defineProperty(e,i,r),r}function Et(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)}"function"==typeof SuppressedError&&SuppressedError;class Ct extends l{props={};data={};cat=(()=>t._cat)();autorunDisposers=[];reactionDisposers=[];eventEmitter=[];hook={destroyed:()=>{},started:()=>{}};initUI(){}__preload(){this.initUI(),this.onAutoObserver()}constructor(){super(),V(this,{props:z,data:z})}onAutoObserver(){}addAutorun(t){const e=K(t)?t:[t];return j(e).call(e,t=>{const e=q(t);this.autorunDisposers.push(e)}),this}addReaction(t,e,i){const s=Q(t,e,i);return this.reactionDisposers.push(s),this}addAudoListener(t){var e;return B(e=this.eventEmitter).call(e,t)||t===this.cat.event||this.eventEmitter.push(t),t}_onPreDestroy(){var t,e;if(j(t=this.autorunDisposers).call(t,t=>{t()}),j(e=this.reactionDisposers).call(e,t=>{t()}),this.autorunDisposers=[],this.reactionDisposers=[],!super._onPreDestroy)throw new Error("_onPreDestroy已弃用");super._onPreDestroy()}onDisable(){var t;this.onHide(),this.deleteAllEventByEmitter(this.cat.event),j(t=this.eventEmitter).call(t,t=>{this.deleteAllEventByEmitter(t)}),this.eventEmitter=[],this.removeListener()}deleteAllEventByEmitter(t){const e=t._events;for(const i in e){let s=e[i];K(s)||(s=[s]),j(s).call(s,e=>{e.context===this&&t.off(i,e.fn,this)})}}onEnable(){this.onShow(),this.addListener(),this.onEventListener()}onEventListener(){}addListener(){}removeListener(){}addToParent(t,e,i){const s=t instanceof c?h(t):t instanceof l?t.node:t;if("number"==typeof e){const t=e,o=i;this.setOptions(o),s.insertChild(this.node,t)}else{const t=e;this.setOptions(t),s.addChild(this.node)}return this}setOptions(t){if(t)for(let e in t)switch(e){case"hook":t.hook&&(this.hook=t.hook);break;case"props":null!==t.props&&"object"==typeof t.props&&(this.props=t.props);break;case"data":null!==t.data&&"object"==typeof t.data&&(this.data=t.data)}}setUpdateData(t){if(this.data)return t&&U(this.data,t),this}setUpdateProps(t){if(this.props)return t&&U(this.props,t),this}removeAndDestroy(){p(this?.node)&&(this.node.removeFromParent(),this.node.destroy())}setPosition(t){return this.node.setPosition(t),this}setScale(t){return this.node.setScale(t),this}setAngle(t){return this.node.angle=t,this}setRotation(t){return this.node.setRotation(t),this}setRotationFromEuler(t){return this.node.setRotationFromEuler(t),this}onShow(){}onHide(){}setNodeAndChildrenLayer(t){return wt(this.node,t),this}}const wt=(t,e)=>{var i,s,o;t.layer="string"==typeof e?2**u.nameToLayer(e):e,(null==(i=t)?void 0:W(o=Function.call).call(o,j(s=i.children),s))?.(t=>{wt(t,e)})};class St extends Ct{lastEnterDirection="center";screen;isClosing=!1;root;constructor(){super(),this._init()}_init(){this.root=this.node,this.screen=d.getVisibleSize()}async showTween(t){let{isMotion:e=!0,direction:i="center",duration:s=.1,isBounce:o=!0,bounceDuration:n=.05}=t;if(this.lastEnterDirection=i,e){const t=this.node.getComponent(m);let e,n;t&&(t.updateAlignment(),t.enabled=!1),_(1.1,1.1,1),"center"==i?(e=_(.01,.01,.01),n=_(1,1,1)):(e="left"==i?_(-this.screen.width,0,0):"right"==i?_(this.screen.width,0,0):_(0,"top"==i?this.screen.height:-this.screen.height,0),n=_(0,0,0)),await this.handle(i,s,e,n,o),t&&(t.enabled=!0)}}async hideTween(t){let{isMotion:e=!0,direction:i,duration:s=.1}=t;if(i=i||this.lastEnterDirection,!this.isClosing){if(this.isClosing=!0,f(this.node).removeSelf(),e){const t=this.node.getComponent(m);let e,o;t&&(t.enabled=!1),"center"==i?(e=this.node.scale,o=_(0,0,0)):(o="left"==i?_(-this.screen.width,0,0):"right"==i?_(this.screen.width,0,0):_(0,"top"==i?this.screen.height:-this.screen.height,0),e=this.node.getPosition()),await this.handle(i,s,e,o,!1)}this.removeAndDestroy()}}async handle(t,e,i,s,o){"center"==t?this.node.setScale(i):this.node.setPosition(i),await this.deftween(e,{["center"==t?"scale":"position"]:s},o)}deftween(t,e,i,s){return new P((i,s)=>{f(this.node).to(t,e).call(()=>{i()}).start()})}}const{ccclass:Tt,property:At}=i;var It;!function(t){t[t.EFFECT=0]="EFFECT",t[t.BGM=1]="BGM"}(It||(It={}));class kt extends Ct{type=(()=>It.EFFECT)();clip=null;loop=!1;volume=1;playOnAwake=!1;audioSource=(()=>new e)();onEnable(){super.onEnable(),this.clip&&(this.audioSource.clip=this.clip),this.audioSource.loop=this.loop,this.audioSource.volume=this.volume,this.audioSource.playOnAwake=this.playOnAwake,this.cat.event.on(yt.EFFECT_ON,this.onPlayEffectHandler,this).on(yt.EFFECT_OFF,this.onStopEffectHandler,this).on(yt.MUSIC_ON,this.onPlayMusicHandler,this).on(yt.MUSIC_OFF,this.onStopMusicHandler,this)}__preload(){super.__preload();const{volumeEffect:t,volumeMusic:e}=this.cat.audio;this.audioSource.volume=this.type===It.BGM?e:t}start(){}stopAudio(){this.audioSource.stop()}playAudio(){const{switchEffect:t,switchMusic:e}=this.cat.audio;this.audioSource.playing||!(this.type===It.BGM?e:t)||y._paused||this.audioSource.play()}onPlayEffectHandler(){}onStopEffectHandler(){this.stopAudio()}onPlayMusicHandler(){}onStopMusicHandler(){this.stopAudio()}_onPreDestroy(){this.onStopMusicHandler(),super._onPreDestroy()}}bt([At({tooltip:"类型:\n EFFECT 音效\n BGM 音乐",type:g(It)}),Et("design:type",Number)],kt.prototype,"type",void 0),bt([At({tooltip:"音源",type:s}),Et("design:type",s)],kt.prototype,"clip",void 0),bt([At({tooltip:"循环"}),Et("design:type",Boolean)],kt.prototype,"loop",void 0),bt([At({tooltip:"音量"}),Et("design:type",Number)],kt.prototype,"volume",void 0),bt([At({tooltip:"是否启用自动播放"}),Et("design:type",Boolean)],kt.prototype,"playOnAwake",void 0);const{ccclass:Ot,property:Nt}=i;class Rt extends St{type=(()=>It.EFFECT)();clip=null;loop=!1;volume=1;playOnAwake=!1;audioSource=(()=>new e)();onEnable(){super.onEnable(),this.cat.event.on(yt.EFFECT_ON,this.onPlayEffectHandler,this).on(yt.EFFECT_OFF,this.onStopEffectHandler,this).on(yt.MUSIC_ON,this.onPlayMusicHandler,this).on(yt.MUSIC_OFF,this.onStopMusicHandler,this)}__preload(){this.clip&&(this.audioSource.clip=this.clip),this.audioSource.loop=this.loop,this.audioSource.volume=this.volume,this.audioSource.playOnAwake=this.playOnAwake,super.__preload();const{volumeEffect:t,volumeMusic:e}=this.cat.audio;this.audioSource.volume=this.type===It.BGM?e:t}stopAudio(){this.audioSource.stop()}playAudio(){const{switchEffect:t,switchMusic:e}=this.cat.audio;this.audioSource.playing||!(this.type===It.BGM?e:t)||y._paused||this.audioSource.play()}onPlayEffectHandler(){}onStopEffectHandler(){this.stopAudio()}onPlayMusicHandler(){}onStopMusicHandler(){this.stopAudio()}_onPreDestroy(){this.onStopMusicHandler(),super._onPreDestroy()}}bt([Nt({tooltip:"类型:\n EFFECT 音效\n BGM 音乐",type:g(It)}),Et("design:type",Number)],Rt.prototype,"type",void 0),bt([Nt({tooltip:"音源",type:s}),Et("design:type",s)],Rt.prototype,"clip",void 0),bt([Nt({tooltip:"循环"}),Et("design:type",Boolean)],Rt.prototype,"loop",void 0),bt([Nt({tooltip:"音量"}),Et("design:type",Number)],Rt.prototype,"volume",void 0),bt([Nt({tooltip:"是否启用自动播放"}),Et("design:type",Boolean)],Rt.prototype,"playOnAwake",void 0);const{ccclass:Dt,property:Mt,menu:Ft}=i;var xt;!function(t){t[t.FIXED=0]="FIXED",t[t.SLIDE=1]="SLIDE"}(xt||(xt={}));let Ut=class extends Ct{fixed_node;slide_node;fixed_label;slide_label;onLoad(){this.fixed_node.active=this.slide_node.active=!1}start(){this.show()}async show(){return new P(async(t,e)=>{const{title:i,type:s,fixed_time:o}=this.props;s==xt.FIXED?(this.fixed_node.active=!0,this.fixed_label.string=`${i}`,this.scheduleOnce(()=>{this.node.destroy(),t()},o)):(this.slide_node.active=!0,this.slide_label.string=`${i}`,this.playAnim(this.node).then(()=>{t()}))})}playAnim(t){return new P((e,i)=>{const s=this.node.getComponent(b),o=f(s).delay(1.2).to(.5,{opacity:0}).call(()=>{E.stopAllByTarget(t),this.node.destroy(),e()});f(t).by(.5,{position:_(0,400,0)}).call(()=>{o.start()}).start()})}onDestroy(){E.stopAllByTarget(this.node),this.unscheduleAllCallbacks()}};var Pt;bt([Mt({type:n,tooltip:"固定节点"}),Et("design:type",n)],Ut.prototype,"fixed_node",void 0),bt([Mt({type:n,tooltip:"滑动节点"}),Et("design:type",n)],Ut.prototype,"slide_node",void 0),bt([Mt({type:v,tooltip:"固定标签节点"}),Et("design:type",v)],Ut.prototype,"fixed_label",void 0),bt([Mt({type:v,tooltip:"滑动标签节点"}),Et("design:type",v)],Ut.prototype,"slide_label",void 0),Ut=bt([Dt("CoreToast"),Ft("CATCORE/CoreToast")],Ut),function(t){t.EVENT_SHOW="GlobalEventConstant/EVENT_SHOW",t.EVENT_HIDE="GlobalEventConstant/EVENT_HIDE",t.GAME_RESIZE="GlobalEventConstant/GAME_RESIZE",t.EVENT_CLOSE="GlobalEventConstant/EVENT_CLOSE",t.ONLINE="GlobalEventConstant/ONLINE",t.OFFLINE="GlobalEventConstant/OFFLINE",t.ROOT_MASK_UPDATE="GlobalEventConstant/ROOT_MASK_UPDATE",t.ROOT_MASK_CHANGE="GlobalEventConstant/ROOT_MASK_CHANGE"}(Pt||(Pt={}));const{ccclass:Lt,property:Bt,menu:Ht}=i;let Gt=class extends Ct{tween};bt([Bt({type:n,tooltip:"动画节点"}),Et("design:type",n)],Gt.prototype,"tween",void 0),Gt=bt([Lt("CoreBlackMask"),Ht("CATCORE/CoreBlackMask")],Gt);const{ccclass:jt,property:$t,menu:Kt}=i;let Wt=class extends St{scene_mask_node;ui_container;gui=null;onLoad(){this.setSceneMaskActive(!1)}get scene_mask(){return this.scene_mask_node.getComponent(Gt)}get brother(){return this.ui_container.children||[]}get tweenChildren(){return this.scene_mask.tween.children}onEventListener(){this.cat.event.on(Pt.ROOT_MASK_CHANGE,this.uiMaskChanged,this)}addMask(){const t=this.brother[this.brother.length-1];t&&this.scene_mask.node.setSiblingIndex(t.getSiblingIndex()),this.blockMaskSiblingIndexChanged()}subMask(){const t=this.brother[this.brother.length-2];t&&this.scene_mask.node.setSiblingIndex(t.getSiblingIndex()),this.blockMaskSiblingIndexChanged()}blockMaskSiblingIndexChanged(){this.tweenChildren.length>1||this.brother.length>1?this.show():this.hide()}addNodeToTween(t){return p(this)&&this.scene_mask&&this.scene_mask.tween.addChild(t),this}show(){this.setSceneMaskActive(!0)}hide(){this.setSceneMaskActive(!1)}setGui(t){return this.gui=t,this}uiMaskChanged(){this.blockMaskSiblingIndexChanged()}setSceneMaskActive(t){this.scene_mask.node.active=t}};bt([$t({type:n}),Et("design:type",n)],Wt.prototype,"scene_mask_node",void 0),bt([$t({type:n}),Et("design:type",n)],Wt.prototype,"ui_container",void 0),Wt=bt([jt("CoreUIContainer"),Kt("CATCORE/CoreUIContainer")],Wt);class Vt extends St{onEnable(){super.onEnable(),this.updateMask()}onDisable(){super.onDisable(),this.updateMask()}updateMask(){this.cat.event.emit(Pt.ROOT_MASK_UPDATE)}}const{ccclass:zt,property:qt,menu:Qt}=i;let Jt=class extends Vt{title;loadingTween;loading_rotate=0;onAutoObserver(){this.addAutorun([()=>{this.props?.title&&(this.title.string=`${this.props?.title}`),this.title.node.active=!!this.props?.title?.length},()=>{this.getComponent(C).enabled=!!this.props?.mask}])}update(t){this.loading_rotate+=220*t,this.loadingTween.setRotationFromEuler(0,0,-this.loading_rotate%360),this.loading_rotate>360&&(this.loading_rotate-=360)}};var Xt;bt([qt({type:v,tooltip:"标题"}),Et("design:type",v)],Jt.prototype,"title",void 0),bt([qt({type:n,tooltip:"动画"}),Et("design:type",n)],Jt.prototype,"loadingTween",void 0),Jt=bt([zt("CoreShowLoading"),Qt("CATCORE/CoreShowLoading")],Jt),function(t){t.RECONNECTED="重连成功",t.RECONNECTING="正在重连",t.MAX_RECONNECT="重连次数超出限制,请检查网络",t.RECONNECTED_ERROR="重连失败,请检查网络",t.CONNECT_PARAM_ERROR="游戏参数错误,请重新加载",t.KICK="账号已下线",t.OFFLINE="网络已断开",t.ONLINE="网络已连接",t.GAME_ERROR="连接游戏服错误"}(Xt||(Xt={}));const{ccclass:Zt,property:Yt,menu:te}=i;let ee=class extends Vt{common_prompt_text;btn_confirm;btn_close;is_close=!1;props={content:null};initUI(){}onLoad(){this.btn_confirm.node.on(w.EventType.CLICK,this.onConfirmHandler,this),this.btn_close.node.on(w.EventType.CLICK,this.onConfirmHandler,this),this.addAutorun([()=>{this.common_prompt_text.string=this.props.content??""}])}onDestroy(){this.unscheduleAllCallbacks()}updateProps(t){this.updatePromptText(t,t==Xt.RECONNECTING)}updatePromptText(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.unscheduleAllCallbacks(),this.props.content=t,a("更新提示文案:",t),e){let e=0;const i=()=>{e=(e+1)%4,this.common_prompt_text.string=t+["","·","··","···"][e]};this.schedule(i,.5)}}onConfirmHandler(){this.is_close=!0,this.cat.gui.hideReconnect()}};bt([Yt({type:v,tooltip:"通用提示文本"}),Et("design:type",v)],ee.prototype,"common_prompt_text",void 0),bt([Yt({type:w,tooltip:"确定按钮"}),Et("design:type",w)],ee.prototype,"btn_confirm",void 0),bt([Yt({type:w,tooltip:"关闭按钮"}),Et("design:type",w)],ee.prototype,"btn_close",void 0),ee=bt([Zt("CoreReconnection"),te("CATCORE/CoreReconnection")],ee);const{ccclass:ie,property:se,menu:oe}=i;let ne=class extends Vt{text;btn_confirm;btn_close;onLoad(){this.btn_confirm.node.on(w.EventType.CLICK,this.onConfrimHandler,this)}start(){this.props&&this.updateProps(this.props)}onConfrimHandler(){this.props?.confrim?.(),this.cat.gui.hideNotice()}updateProps(t){this.text.string=`${t.text}`}};bt([se({type:v,tooltip:"提示文本"}),Et("design:type",v)],ne.prototype,"text",void 0),bt([se({type:w,tooltip:"确定按钮"}),Et("design:type",w)],ne.prototype,"btn_confirm",void 0),bt([se({type:w,tooltip:"关闭按钮"}),Et("design:type",w)],ne.prototype,"btn_close",void 0),ne=bt([ie("CoreNotice"),oe("CATCORE/CoreNotice")],ne);class re extends Ct{isReload}const{ccclass:ae,property:le,menu:ce}=i;var he;!function(t){t[t.UI=0]="UI",t[t.LOADING=1]="LOADING",t[t.TOAST=2]="TOAST",t[t.RECONNECTTION=3]="RECONNECTTION",t[t.NOTICE=4]="NOTICE"}(he||(he={}));let pe=class extends Ct{reconnection_ui_prefab;toast_ui_prefab;loading_ui_prefab;notice_ui_prefab;ui_prefab;root_ui;root_toast;root_mask;ui_container_component;reconnection_ui_component;notice_ui_component;loading_ui_component;toast_ui_component;currentScene;onEventListener(){this.cat.event.on(Pt.ROOT_MASK_UPDATE,this.onRootUpdate,this)}init(t){this.cat=t;const e=r.getScene();return a("init scene"),e&&this.changeScene(e),this}start(){this.onRootUpdate()}toastQueue=[];isScheduling=!1;minInterval=.2;showToast(t){this.toastQueue.push(t),this.isScheduling||this.processQueueWithInterval()}processQueueWithInterval(){if(0===this.toastQueue.length)return void(this.isScheduling=!1);this.isScheduling=!0;const t=this.toastQueue.shift(),e=()=>{h(this.toast_ui_prefab).getComponent(Ut).addToParent(this.root_toast,{props:t}),this.scheduleOnce(()=>{this.processQueueWithInterval()},this.minInterval)};0===this.root_toast.children.length?e():this.scheduleOnce(e,this.minInterval)}hideToast(){var t;this.root_toast&&j(t=this.root_toast.children).call(t,t=>{t.getComponent(Ut)?.removeAndDestroy()});return this.toastQueue=[],this.unschedule(this.processQueueWithInterval),this.isScheduling=!1,this}showLoading(){let{title:t="",mask:e=!0,black:i=!0}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(a("showLoading",t),this.loading_ui_component)this.loading_ui_component.setOptions({props:{title:t,mask:e,black:i}});else{const s=h(this.loading_ui_prefab);this.loading_ui_component=s.getComponent(Jt).addToParent(this.root_ui,{props:{title:t,mask:e,black:i}})}return this}hideLoading(){return this.loading_ui_component?.removeAndDestroy(),this.loading_ui_component=null,this}showReconnect(t){if(this.reconnection_ui_component)this.reconnection_ui_component.setUpdateProps({content:t});else{const e=h(this.reconnection_ui_prefab);this.reconnection_ui_component=e.getComponent(ee).addToParent(this.root_ui,{props:{content:t}})}return this}hideReconnect(){return this.reconnection_ui_component?.removeAndDestroy(),this.reconnection_ui_component=null,this}showNotice(t){const e=h(this.notice_ui_prefab);return this.notice_ui_component=e.getComponent(ne).addToParent(this.root_ui,{props:t}),this}hideNotice(){return this.notice_ui_component?.removeAndDestroy(),this}loadScene(t,e,i){a("[加载场景名][参数][重新加载]",t,e,i);let s={},o=i??!1;return"boolean"==typeof e?o=e:s=e??{},r.once(S.EVENT_BEFORE_SCENE_LAUNCH,t=>{a("Director.EVENT_BEFORE_SCENE_LAUNCH",t),this.changeScene(t,s,o)}),"string"==typeof t?r.loadScene(t):r.runScene(t),this}resetScene(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return t=t||this.currentScene,this.loadScene(t)}cleanScene(){this.resetScene().hideLoading().hideNotice().hideReconnect().hideToast()}changeScene(t,e,i){this.currentScene=t.name,this.createUILayer(t);const s=t.getComponentInChildren(re);s&&(s.isReload=i??!1),s?.setOptions(e)}createUILayer(t){this.ui_container_component?.removeAndDestroy(),this.ui_container_component=null;const e=h(this.ui_prefab);this.ui_container_component=e.getComponent(Wt),this.ui_container_component?.setGui(this).addToParent(t,this.node.getSiblingIndex())}reloadScene(){this.loadScene(this.currentScene,!0)}async closeUI(t,e){const{component:i}=this.findUIBaseLayer(t,!1);i&&(i.setOptions({...e?.hook??{},...e?.props??{}}),await i.hideTween(e||{}),this.ui_container_component?.subMask())}async openUI(t,e){const{rootNode:i,component:s}=this.findUIBaseLayer(t,!0);i.getComponent(St),s?.setOptions(e),i&&this.ui_container_component?.addNodeToTween(i).addMask(),s&&await s.showTween(e||{}),this.ui_container_component?.ui_container&&s?.addToParent(this.ui_container_component.ui_container)}findUIBaseLayer(t,e){let i,s=null;if(t instanceof n){var r;i=t;const e=$(r=t.components).call(r,t=>t instanceof St);if(!e.length)return o(`${t.name}节点未找到继承自BaseLayer的组件`),{rootNode:i,component:s};1==e.length?s=e[0]:T(`${t.name}节点存在多个继承自BaseLayer的组件`)}else if(i=t.node,s=t,e){for(;i.parent;)i=i.parent;s.root=i}else i=t.root;return{rootNode:i,component:s}}onRootUpdate(){const t=this.root_ui.children.findLastIndex(t=>t.active&&t!=this.root_mask);if(this.root_mask.active=-1!=t,t>-1){const e=this.root_ui.children[t].getSiblingIndex()-1;this.root_mask.setSiblingIndex(e<0?0:e)}this.cat.event.emit(Pt.ROOT_MASK_CHANGE)}};var ue;bt([le({type:c,tooltip:"断线重连UI预制体"}),Et("design:type",c)],pe.prototype,"reconnection_ui_prefab",void 0),bt([le({type:c,tooltip:"提示UI预制体"}),Et("design:type",c)],pe.prototype,"toast_ui_prefab",void 0),bt([le({type:c,tooltip:"加载UI预制体"}),Et("design:type",c)],pe.prototype,"loading_ui_prefab",void 0),bt([le({type:c,tooltip:"公告UI预制体"}),Et("design:type",c)],pe.prototype,"notice_ui_prefab",void 0),bt([le({type:c,tooltip:"UI层预制体"}),Et("design:type",c)],pe.prototype,"ui_prefab",void 0),bt([le({type:n,tooltip:"root-UI层"}),Et("design:type",n)],pe.prototype,"root_ui",void 0),bt([le({type:n,tooltip:"root-组件层"}),Et("design:type",n)],pe.prototype,"root_toast",void 0),bt([le({type:n,tooltip:"root-mask"}),Et("design:type",n)],pe.prototype,"root_mask",void 0),pe=bt([ae("Gui"),ce("CATCORE/Gui")],pe),function(t){t.Root="prefabs/root",t.Toast="prefabs/toast",t.BlackMask="prefabs/black-mask",t.Loading="prefabs/loading",t.Notice="prefabs/notice",t.Reconnection="prefabs/reconnection"}(ue||(ue={}));class de extends gt{gui;#t="core";getGuiPrefabByType=(t,e)=>new P((i,s)=>{a(t,`${e}`),this.cat.res.load(t,e,(t,e)=>{t?s(t):i(e)})});async init(){this.cat.gui_bundle_name&&(this.#t=this.cat.gui_bundle_name);const t=await this.getGuiPrefabByType(this.#t,ue.Root),e=h(t);return this.gui=e.getComponent(pe).init(this.cat),r.addPersistRootNode(e),this}}class me extends ot{showRequestErrInfo=!1;logBlackList=[];ignore=t=>{var e;return B(e=this.logBlackList).call(e,t)};constructor(t,e,i,s){super(e,i,s,t),this.showRequestErrInfo=s?.showRequestErrInfo??!1}destroy(){this.disconnect(!0),t._cat.socialGameClient.unregister(this)}async GameRequest(e,i,s){let{forwardReq:o=!1,forwardResp:n=!1}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new P((r,l)=>{super.GameRequest(e,i,s,{forwardReq:o,forwardResp:n}).then(t=>{et&&a(`%c ws服务端消息 %c [Response][${new Date}] %c ${e} %c`,"background:#ff00ff ; padding: 1px; border-radius: 3px 0 0 3px; color: #fff","background:#3d7daa ; padding: 1px; color: #fff","background:#ff00ff ; padding: 1px; border-radius: 0 3px 3px 0; color: #fff","background:transparent",i),r(t)},e=>{this.showRequestErrInfo&&e?.msg&&t._cat.gui.showToast({title:e.msg}),l(e)})})}subscribe(e,i,s){return super.subscribe(e,i,i=>{et&&!this.ignore(e)&&a(`%c ws服务端消息:[subscribe][${new Date}] %c ${e} %c`,"background:#35495e ; padding: 1px; border-radius: 3px 0 0 3px; color: #fff","background:#410083 ; padding: 1px; border-radius: 0 3px 3px 0; color: #fff","background:transparent",i),t._cat.event.emit(e,i),s?.(i)}),this}}class _e extends gt{managedClients=(()=>new G)();isGlobalOnline=!0;isInBackground=!1;reconnecting=!1;onEventHideDelegate=(()=>new A)();onEventShowDelegate=(()=>new A)();onEventReloadSceneDelegate=(()=>new A)();reconnectTimer=null;scheduleReconnect(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2e3;this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.reconnectTimer=J(()=>{this.reconnectTimer=null,this.triggerReconnectAll()},t)}get activeClients(){var t,e;return $(t=X(e=Z(this.managedClients)).call(e,t=>{let[e,i]=t;return i})).call(t,t=>t.socket)}constructor(t){super(t),this.initGlobalListeners()}createWebSocket(t,e,i,s){if(this.managedClients.has(t)){this.managedClients.get(t).destroy(),a(`清理旧的 ${t} 客户端`)}const o=new me(t,i,s,U({reconnectMaxAttempts:1/0},{...e,isAutoConnect:!1,isArrayBuffer:it}));return this.register(o),o}register(t){t.on("reconnected",this.handleSingleReconnect),t.on("close",this.handleSingleClose),t.on("kick",this.handleSingleKick),this.managedClients.set(t.name,t)}unregister(t){t.off("reconnected",this.handleSingleReconnect),t.off("close",this.handleSingleClose),t.off("kick",this.handleSingleKick),this.managedClients.delete(t.name)}initGlobalListeners(){this.cat.event.on(Pt.ONLINE,()=>this.handleGlobalStateChange("online"),this).on(Pt.OFFLINE,()=>this.handleGlobalStateChange("offline"),this),y.on(I.EVENT_SHOW,()=>this.handleGlobalStateChange("show")),y.on(I.EVENT_HIDE,()=>this.handleGlobalStateChange("hide"))}async handleGlobalStateChange(t){switch(t){case"online":this.cat.gui.hideLoading().showToast({title:Xt.ONLINE}),this.isGlobalOnline=!0,this.triggerReconnectAll();break;case"offline":this.isGlobalOnline=!1,this.disconnectAll(!0),this.cat.gui.showLoading({title:Xt.OFFLINE});break;case"show":this.isInBackground=!1,await this.triggerReconnectAll(),await this.onEventShowDelegate.dispatch();break;case"hide":await this.onEventHideDelegate.dispatch(),this.isInBackground=!0,this.disconnectAll(!0)}}async triggerReconnectAll(){if(a("触发所有客户端重连",this.reconnecting,!this.isGlobalOnline,this.isInBackground,this.managedClients.size),!this.reconnecting&&this.isGlobalOnline&&!this.isInBackground&&0!==this.managedClients.size){this.reconnecting=!0,this.cat.gui.showLoading({title:"正在重连"});try{var t,e;await P.allSettled(X(t=this.activeClients).call(t,async t=>{try{await t.reconnectPromise()}catch(e){o(`${t.name}服重连失败`,e)}}));const i=$(e=this.activeClients).call(e,t=>t.socketConnectStatus!==tt.CONNECTED);i.length>0?(console.error("部分WS重连失败:",X(i).call(i,t=>t)),a("2s后重连所有客户端"),this.reconnecting=!1,this.scheduleReconnect()):this.reconnecting=!1}catch(t){throw this.reconnecting=!1,t}}}disconnectAll(t){var e;j(e=this.managedClients).call(e,e=>{a("断开连接",e.name,t,e.socket),e.disconnect(t)})}handleSingleClose=()=>{this.reconnecting||(a("3s后重连所有客户端"),this.scheduleReconnect(3e3))};handleSingleReconnect=async()=>{var t,e;Y(t=this.activeClients).call(t,t=>t.socketConnectStatus===tt.CONNECTED)&&(a("单个WS重连成功回调===",this.managedClients),await P.allSettled(X(e=this.activeClients).call(e,async t=>{try{await t.connectRequest()}catch(e){o(`${t.name}服登录错误`,e),this.cat.gui.showToast({title:`登录${t.name}服错误`})}})),this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),await this.onEventReloadSceneDelegate.dispatch(),this.cat.gui.hideLoading().reloadScene())};handleSingleKick=()=>{this.cat.gui.showReconnect(Xt.KICK)}}class fe{get=(()=>function(t,e){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"resources";return k.getBundle(i).get(t,e)})();isAssetType=t=>"function"==typeof t&&t.prototype instanceof O;async load(){let t=null,e=null,i=null;for(var s=arguments.length,o=new Array(s),n=0;n<s;n++)o[n]=arguments[n];"string"==typeof o[0]&&"string"==typeof o[1]&&(t=o.shift());let r=o.shift();this.isAssetType(o[0])&&(e=o.shift()),2==o.length&&(i=o.shift());const a=o.shift();let l=N;if(t&&"resources"!=t){k.bundles.has(t)||await this.loadBundle(t);let e=k.bundles.get(t);e&&(l=e)}i&&a?l.load(r,e,i,a):a?l.load(r,e,a):l.load(r,e)}async loadDir(){let t=null,e=null,i=null,s=null;for(var o=arguments.length,n=new Array(o),r=0;r<o;r++)n[r]=arguments[r];"string"==typeof n[0]&&"string"==typeof n[1]&&(t=n.shift());let a=n.shift();this.isAssetType(n[0])&&(e=n.shift()),2==n.length&&(i=n.shift()),s=n.shift();let l=N;if(t&&"resources"!=t){k.bundles.has(t)||await this.loadBundle(t);let e=k.bundles.get(t);e&&(l=e)}i&&s?l.loadDir(a,e,i,s):s?l.loadDir(a,e,s):l.loadDir(a,e)}loadRemote(t){for(var e,i=null,s=arguments.length,o=new Array(s>1?s-1:0),n=1;n<s;n++)o[n-1]=arguments[n];2==o.length&&(i=o.shift()),e=o.shift(),k.loadRemote(t,{ext:".png",...i},e)}loadBundle=(t,e)=>new P((i,s)=>{const o=(t,e)=>{if(t)return s(t);i(e)};e?k.loadBundle(t,{version:e},o):k.loadBundle(t,o)});releasePrefabtDepsRecursively=t=>{var e=k.assets.get(t);if(k.releaseAsset(e),e instanceof c){var i=k.dependUtil.getDepsRecursively(t);j(i).call(i,t=>{k.assets.get(t).decRef()})}};release=(()=>{var t=this;return function(e){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"resources";var s=k.getBundle(i);if(s){var o=s.get(e);o&&t.releasePrefabtDepsRecursively(o._uuid)}}})();releaseDir=(()=>{var t=this;return function(e){var i,s;let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"resources";var n=k.getBundle(o),r=n?.getDirWithPath(e);(null==(i=r)?void 0:W(s=Function.call).call(s,X(i),i))?.(e=>{t.releasePrefabtDepsRecursively(e.uuid)}),!e&&"resources"!=o&&n&&k.removeBundle(n)}})();dump=()=>{var t;j(t=k.assets).call(t,(t,e)=>{a(k.assets.get(e))}),a(`当前资源总数:${k.assets.count}`)};loadAssetsWithProgress(t,e){return new P((i,s)=>{const o=t.getDirWithPath(""),n=o.length;let r=0;if(0===n)return e(1),void i();j(o).call(o,o=>{t.load(o.path,t=>{t?s(t):(r++,e(r/n),r===n&&i())})})})}}class ge{rootStore;constructor(t){this.rootStore=t}}class ye extends gt{}let ve=null;const be={stringify:t=>{const e={ct:t.ciphertext.toString(nt.enc.Base64)};return t.iv&&(e.iv=t.iv.toString()),t.salt&&(e.s=t.salt.toString()),H(e)},parse:t=>{const e=JSON.parse(t),i=nt.lib.CipherParams.create({ciphertext:nt.enc.Base64.parse(e.ct)});return e.iv&&(i.iv=nt.enc.Hex.parse(e.iv)),e.s&&(i.salt=nt.enc.Hex.parse(e.s)),i}};var Ee=Object.freeze({__proto__:null,JsonFormatter:be,aesDecrypt:(t,e,i)=>nt.AES.decrypt(t,e,{iv:ve,format:be}).toString(nt.enc.Utf8),aesEncrypt:(t,e,i)=>nt.AES.encrypt(t,e,{iv:ve,format:be}).toString(),initCrypto:(t,e)=>{ve=nt.enc.Hex.parse(e)},md5:t=>nt.MD5(t).toString()});class Ce extends gt{encryptUtil=(()=>Ee)()}class we extends gt{_key=null;_iv=null;_id="";init(t,e){this.cat.util.encryptUtil.initCrypto(t,e),this._key=this.cat.util.encryptUtil.md5(t),this._iv=this.cat.util.encryptUtil.md5(e)}setUser(t){this._id=t}set(t,e){if(null!=(t=`${t}_${this._id}`)){if(st||(t=this.cat.util.encryptUtil.md5(t)),null==e)return console.warn("存储的值为空,则直接移除该存储"),void this.remove(t);if("function"!=typeof e){if("object"==typeof e)try{e=H(e)}catch(t){return void console.error(`解析失败,str = ${e}`)}else"number"==typeof e&&(e+="");st||null==this._key||null==this._iv||(e=this.cat.util.encryptUtil.aesEncrypt(`${e}`,this._key,this._iv)),R.localStorage.setItem(t,e)}else console.error("储存的值不能为方法")}else console.error("存储的key不能为空")}get(t,e){if(null==t)return console.error("存储的key不能为空"),null;t=`${t}_${this._id}`,st||(t=this.cat.util.encryptUtil.md5(t));let i=R.localStorage.getItem(t);return null==i||""===i||st||null==this._key||null==this._iv||(i=this.cat.util.encryptUtil.aesDecrypt(i,this._key,this._iv)),null===i?e:i}getNumber(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;var i=this.get(t);return Number(i)||e}getBoolean(t){var e=this.get(t);return Boolean(e)||!1}getJson(t,e){var i=this.get(t);return i&&JSON.parse(i)||e}remove(t){null!=t?(t=`${t}_${this._id}`,st||(t=this.cat.util.encryptUtil.md5(t)),R.localStorage.removeItem(t)):console.error("存储的key不能为空")}clear(){R.localStorage.clear()}}class Se{static#e=null;#i=!1;static get instance(){return this.#e??(this.#e=new Se)}onAppInitDelegate=(()=>new A)();onPlugInInitDelegate=(()=>new A)();#s=null;get audio(){return this.#s}#o=null;get event(){return this.#o}#n=null;get gui(){return this.#n}#r=null;get storage(){return this.#r}#a=null;get res(){return this.#a}#l=null;get util(){return this.#l}#c=null;get socialGameClient(){return this.#c}#h=null;get store(){return this.#h}#p="";get gui_bundle_name(){return this.#p}#u="";get audio_local_store_key(){return this.#u}#d="";get default_audio_effect(){return this.#d}setConfig=(()=>{var t=this;return function(){let{default_audio_effect:e="",gui_bundleName:i="resources",audio_local_store_key:s="game_audio"}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(t.#i)throw new Error("[CAT] 已初始化,无法修改配置");return t.#p=i,t.#u=s,t.#d=e,t}})();async boot(){if(this.#i)throw new Error("[CAT] 已初始化");try{this.#h=new ye(this),this.#a=new fe,this.#l=new Ce(this),this.#r=new we(this),this.#o=new L,this.#s=new vt(this),this.#c=new _e(this),this.#n=(await new de(this).init()).gui,this.#i=!0}catch(t){throw console.error("[CAT] 初始化失败:",t),t}}merge(t,e){if(!this.#i)throw new Error("[CAT] 未初始化");if("string"!=typeof t)throw new Error("merge方法第一个参数应该为string类型");return F(this,t)||x(this,t,e),U(F(this,t),e),this}appendPlugInInitDelegate(t){return this.#i?P.resolve().then(t).catch(t=>{console.error("[CAT] appendPlugInInitDelegate 回调执行失败:",t)}):this.onPlugInInitDelegate.add(t),this}}const{ccclass:Te,property:Ae,menu:Ie}=i;let ke=class extends St{default_title=null;title;prompt_content_str;prompt_content_spriteFrame;btn_confirm;confirm_spriteFrame;btn_cancel;cancel_spriteFrame;btn_close;isConfirm=!1;props={title:this.default_title,content:null,confirmCB:()=>{},cancelCB:()=>{},style:null};onLoad(){this.btn_cancel.node.on(w.EventType.CLICK,this.onCancelHandler,this),this.btn_confirm.node.on(w.EventType.CLICK,this.onConfirmHandler,this),this.btn_close.node.on(w.EventType.CLICK,this.onCloseHandler,this),this.addAutorun([()=>{this.title.spriteFrame=this.props?.title||this.default_title},()=>{this.props.content&&(this.props.content instanceof D?this.prompt_content_spriteFrame.spriteFrame=this.props.content:"string"==typeof this.props.content?this.prompt_content_str.string=this.props.content:console.error("未知类型的【UIModal】内容"))},()=>{null===this.props?.style?.confirm?this.btn_confirm.node.active=!1:(this.btn_confirm.node.active=!0,this.btn_confirm.getComponent(M).spriteFrame=this.props.style?.confirm||this.confirm_spriteFrame),null===this.props?.style?.cancel?this.btn_cancel.node.active=!1:(this.btn_cancel.node.active=!0,this.btn_cancel.getComponent(M).spriteFrame=this.props.style?.cancel||this.cancel_spriteFrame)}])}close(){this.props.cancelCB?.(),this.cat.gui.closeUI(this)}onCancelHandler(){this.close()}onConfirmHandler(){this.props.confirmCB?.()}onDestroy(){this.isConfirm&&this.props.onDestroy?.()}onCloseHandler(){this.close()}};var Oe;bt([Ae({type:D,tooltip:"默认标题"}),Et("design:type",D)],ke.prototype,"default_title",void 0),bt([Ae({type:M,tooltip:"标题节点"}),Et("design:type",M)],ke.prototype,"title",void 0),bt([Ae({type:v,tooltip:"字符串内容按钮"}),Et("design:type",v)],ke.prototype,"prompt_content_str",void 0),bt([Ae({type:M,tooltip:"图片精灵内容按钮"}),Et("design:type",M)],ke.prototype,"prompt_content_spriteFrame",void 0),bt([Ae({type:w,tooltip:"确认按钮"}),Et("design:type",w)],ke.prototype,"btn_confirm",void 0),bt([Ae({type:D,tooltip:"确认按钮精灵图"}),Et("design:type",D)],ke.prototype,"confirm_spriteFrame",void 0),bt([Ae({type:w,tooltip:"取消按钮"}),Et("design:type",w)],ke.prototype,"btn_cancel",void 0),bt([Ae({type:D,tooltip:"取消按钮精灵图"}),Et("design:type",D)],ke.prototype,"cancel_spriteFrame",void 0),bt([Ae({type:w,tooltip:"关闭按钮"}),Et("design:type",w)],ke.prototype,"btn_close",void 0),ke=bt([Te("CoreUIModal"),Ie("CATCORE/CoreUIModal")],ke),function(t){t[t.Delay=0]="Delay",t[t.Interval=1]="Interval"}(Oe||(Oe={}));class Ne{tag;type;callback;remainingTime;executionTime=0;initialTime;constructor(t,e,i,s){this.tag=t,this.type=e,this.remainingTime=i,this.initialTime=i,this.callback=s}}class Re extends gt{timers=(()=>new G)();lastUpdateTime=(()=>rt())();constructor(t){var e;super(t),t.event.on(Pt.EVENT_HIDE,this.onHandleAppBackground,this),t.event.on(Pt.EVENT_SHOW,this.onHandleAppForeground,this),at(W(e=this.update).call(e,this),1e3)}onHandleAppBackground(){this.lastUpdateTime=rt()}onHandleAppForeground(){const t=rt(),e=t-this.lastUpdateTime;a("elapsedTime",e);for(const t of lt(i=this.timers).call(i)){var i;t.remainingTime>0&&(t.remainingTime-=e,t.executionTime+=e)}this.lastUpdateTime=t}registerInterval(t,e,i){if(this.has(t))return o(`${t}定时器已存在,请勿重复注册`);const s=new Ne(t,Oe.Interval,e,i);this.timers.set(t,s)}registerDelay(t,e,i){if(this.has(t))return o(`${t}延时器已存在,请勿重复注册`);const s=new Ne(t,Oe.Delay,e,i);this.timers.set(t,s)}unregister(t){this.has(t)&&this.timers.delete(t)}has(t){return this.timers.has(t)}update(){const t=[];for(const[i,s]of ct(e=this.timers).call(e)){var e;s.remainingTime-=1e3,s.remainingTime<=0&&(s.type===Oe.Interval&&(s.executionTime+=s.initialTime),s.callback(s.executionTime),s.type===Oe.Interval?s.remainingTime=s.initialTime:t.push(i))}for(const e of t)this.timers.delete(e)}}const De=(e,i)=>(s,o,n)=>{let r=n.value;return n.value=function(){const s=e??t._cat.default_audio_effect;s?t._cat.audio.playEffect(s):console.warn("请添加音效路径参数"),i&&i();for(var o=arguments.length,n=new Array(o),a=0;a<o;a++)n[a]=arguments[a];r.apply(this,n)},n},Me=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,e=arguments.length>1?arguments[1]:void 0;return function(i,s,o){let n=o.value,r=!1;return o.value=function(){if(r)e&&e();else{r=!0,J(()=>{r=!1},1e3*t);for(var i=arguments.length,s=new Array(i),o=0;o<i;o++)s[o]=arguments[o];n.apply(this,s)}},o}},Fe=t._cat??=Se.instance;y.onPostProjectInitDelegate.add(async()=>{console.time("[Init App]");try{await Fe.boot(),await Fe.onAppInitDelegate.dispatch(),await Fe.onPlugInInitDelegate.dispatch()}catch(t){throw o(`[Init App] 初始化失败: ${t instanceof Error?t.message:String(t)}`),t}finally{console.timeEnd("[Init App]")}});export{De as AudioEffect,yt as AudioEventConstant,vt as AudioManager,kt as AudioSourceBaseComponent,Rt as AudioSourceUILayer,It as AudioTypeEnum,Ct as BaseComponent,gt as BaseManager,ue as BasePrefab,ge as BaseStore,Me as ButtonLock,Gt as CoreBlackMask,ne as CoreNotice,ee as CoreReconnection,Jt as CoreShowLoading,ye as CoreStore,Ut as CoreToast,Wt as CoreUIContainer,ke as CoreUIModal,Ce as CoreUtil,Pt as GlobalEventConstant,pe as Gui,de as GuiManager,he as LayerType,Se as Manager,Xt as ReconnectPrompt,Vt as RootUILayer,re as SceneLayer,Re as TimerManager,xt as ToastType,St as UILayer,me as WrapperSocialGameClient,Fe as cat};
package/package.json CHANGED
@@ -1,53 +1,53 @@
1
- {
2
- "name": "@shimotsuki/core",
3
- "version": "2.0.78",
4
- "description": "",
5
- "license": "MIT",
6
- "main": "dist/shimotsuki_core.js",
7
- "types": "dist/index.d.ts",
8
- "repository": "https://gitee.com/shimotsuki_yami/cat-core",
9
- "author": "shimotsuki <youcunzhou2383@shengtian.com>",
10
- "scripts": {
11
- "build:dev": "cross-env BUILD=development rollup -c",
12
- "build:prod": "cross-env BUILD=production rollup -c"
13
- },
14
- "devDependencies": {
15
- "@babel/core": "^7.26.8",
16
- "@babel/plugin-transform-runtime": "^7.27.4",
17
- "@babel/preset-env": "^7.26.8",
18
- "@babel/runtime": "^7.27.6",
19
- "@rollup/plugin-babel": "^6.0.4",
20
- "@rollup/plugin-typescript": "^12.1.2",
21
- "api": "git+ssh://git@gitlab.stnts.com:sparklab/gameapi.git",
22
- "cross-env": "^10.0.0",
23
- "rollup-plugin-delete": "^2.1.0",
24
- "rollup-plugin-typescript2": "^0.36.0",
25
- "tslib": "^2.8.1",
26
- "typescript": "^5.7.3"
27
- },
28
- "type": "module",
29
- "dependencies": {
30
- "@babel/runtime-corejs3": "^7.27.6",
31
- "@bufbuild/protobuf": "^2.2.5",
32
- "@rollup/plugin-commonjs": "^26.0.1",
33
- "@rollup/plugin-node-resolve": "^15.2.3",
34
- "@shimotsuki/mobx": "^1.0.1",
35
- "core-js": "^3.41.0",
36
- "crypto-es": "^2.1.0",
37
- "eventemitter3": "^5.0.1",
38
- "pitayaclient": "git+ssh://git@gitlab.stnts.com:sparklab/pitaya-client.git",
39
- "rollup": "^4.18.1",
40
- "rollup-plugin-copy": "^3.5.0",
41
- "rollup-plugin-dts": "^6.1.1",
42
- "rollup-plugin-terser": "^7.0.2",
43
- "sgc": "git+ssh://git@gitlab.stnts.com:sparklab/social-gaming-client.git"
44
- },
45
- "files": [
46
- "dist",
47
- "package.json",
48
- "./temp/tsconfig.cocos.json",
49
- "./temp/declarations",
50
- "tsconfig.json",
51
- "LICENSE"
52
- ]
53
- }
1
+ {
2
+ "name": "@shimotsuki/core",
3
+ "version": "3.0.0",
4
+ "description": "",
5
+ "license": "MIT",
6
+ "main": "dist/shimotsuki_core.js",
7
+ "types": "dist/index.d.ts",
8
+ "repository": "https://gitee.com/shimotsuki_yami/cat-core",
9
+ "author": "shimotsuki <youcunzhou2383@shengtian.com>",
10
+ "scripts": {
11
+ "build:dev": "cross-env BUILD=development rollup -c",
12
+ "build:prod": "cross-env BUILD=production rollup -c"
13
+ },
14
+ "devDependencies": {
15
+ "@babel/core": "^7.26.8",
16
+ "@babel/plugin-transform-runtime": "^7.27.4",
17
+ "@babel/preset-env": "^7.26.8",
18
+ "@babel/runtime": "^7.27.6",
19
+ "@rollup/plugin-babel": "^6.0.4",
20
+ "@rollup/plugin-typescript": "^12.1.2",
21
+ "api": "git+ssh://git@gitlab.stnts.com:sparklab/gameapi.git",
22
+ "cross-env": "^10.0.0",
23
+ "rollup-plugin-delete": "^2.1.0",
24
+ "rollup-plugin-typescript2": "^0.36.0",
25
+ "tslib": "^2.8.1",
26
+ "typescript": "^5.7.3"
27
+ },
28
+ "type": "module",
29
+ "dependencies": {
30
+ "@babel/runtime-corejs3": "^7.27.6",
31
+ "@bufbuild/protobuf": "^2.2.5",
32
+ "@rollup/plugin-commonjs": "^26.0.1",
33
+ "@rollup/plugin-node-resolve": "^15.2.3",
34
+ "@shimotsuki/mobx": "^1.0.1",
35
+ "core-js": "^3.41.0",
36
+ "crypto-es": "^2.1.0",
37
+ "eventemitter3": "^5.0.1",
38
+ "pitayaclient": "git+ssh://git@gitlab.stnts.com/sparklab/pitaya-client.git#ts-proto",
39
+ "rollup": "^4.18.1",
40
+ "rollup-plugin-copy": "^3.5.0",
41
+ "rollup-plugin-dts": "^6.1.1",
42
+ "rollup-plugin-terser": "^7.0.2",
43
+ "sgc": "git+ssh://git@gitlab.stnts.com/sparklab/social-gaming-client.git#ts-proto"
44
+ },
45
+ "files": [
46
+ "dist",
47
+ "package.json",
48
+ "./temp/tsconfig.cocos.json",
49
+ "./temp/declarations",
50
+ "tsconfig.json",
51
+ "LICENSE"
52
+ ]
53
+ }