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

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 {
    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');

        
        let loadRes = [
            'bomb/game/icon_1'
        ];
        
        let loadNum = 0;
        let maxLoadNum = loadRes.length;  // +  MaterialUtil.init资源数量
        let finishBack = () => {
            loadNum++;
            if (loadNum >= maxLoadNum) {
                
            }
        };
        //MaterialUtil.init(finishBack);

        for (let index = 0; index < loadRes.length; index++) {
            const element = loadRes[index];
            let path = `texture/${element}/spriteFrame`
            resLoader.load('package', path, SpriteFrame, (error: Error, res: SpriteFrame) => {
                if (!error) {
                    
                    finishBack();
                }
            });
        }
        // Framework.layer.open(ViewID.TowerUI, null,{});
        // Framework.layer.open(ViewID.ZombieUI, null,{});
        Framework.layer.open(ViewID.LoginUI, null, () => {
           // this.node.getChildByPath('UICamera/loginbg').destroy()
        });
        // this.connect()
    }



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


}