import { Component, game, UIRenderer, _decorator, Game, SpriteFrame, ProgressBar, assetManager } from 'cc';
import { ViewID } from '../framework/config/LayerConf';
import { Framework } from '../framework/Framework';
import { GameEvent } from './data/GameEvent';
import { MaterialUtil, ProcessData } from '../framework/util/MaterialUtil';
import { NetManager } from './common/NetManager';
import { FrameworkConf } from '../framework/config/FrameworkConf';
import { resLoader } from '../framework/res/ResLoader';
import { UnionManager } from './manager/UnionManager';

const { ccclass, property } = _decorator;

// export let NetMgr: NetManager = null;

//临时解决透明度为0还会渲染的bug
// UIRenderer.prototype.updateAssembler = function updateAssembler(render: any) {
//     if (this._renderDataFlag) {
//         this._assembler!.updateRenderData(this, render);
//         this._renderDataFlag = false;
//     }
//     if (render._pOpacity > 0 && this._renderFlag) {
//         // console.log(render);
//         this._render(render);
//     }
// }

game.frameRate = 59;

// 获取URL参数的函数
function getParameterByName(name) {
    let url = window.location.href;
    name = name.replace(/[\[\]]/g, "\\$&");
    const regex = new RegExp(`[?&]${name}(=([^&#]*)|&|#|$)`);
    const results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, ' '));

    // return results[2].replace(/\+/g, ' ')
}

@ccclass('Main')
export class Main extends Component {

    //主进度条
    @property(ProgressBar)
    mainProgress: ProgressBar = null;
    //小进度条
    @property(ProgressBar)
    subProgress: ProgressBar = null;

    private _uid = "";

    //切换后台的起始时间 单位ms
    hideTime = 0;
    //重连的时间 超过2秒就重连  单位ms 
    reconnectTime = 2000;
    onLoad() {

        Framework.event.addEvent(FrameworkConf.Event.GAME_SHOW, this.gameEvent_onShow, this);
        Framework.event.addEvent(FrameworkConf.Event.GAME_HIDE, this.gameEvent_onHide, this);
        
        let loginbg = this.node.getChildByPath('loginbg');

        Framework.unionManager = UnionManager;
        
  
        MaterialUtil.init(this.finishBack.bind(this));

        // this.connect()
    }


    finishBack(process:ProcessData){
        if(this.mainProgress.progress == 1) return
        //主进度百分比
        let mainProgressPercent = process.curMain/process.maxMain
        if(mainProgressPercent>=1){
            this.mainProgress.progress = 1

            Framework.layer.open(ViewID.LoginUI, null, () => {
                
            });
            return
        }
        else if(mainProgressPercent < 0){
            this.mainProgress.progress = 0
        }
        
        this.mainProgress.progress = mainProgressPercent
    }


    gameEvent_onShow() {
        // let time = Date.now() - this.hideTime
        // if(time > this.reconnectTime){
        //     this.connect()
        // }
    }
    gameEvent_onHide() {
        // this.hideTime = Date.now()
    }


}