import { v3 } from "cc";
import { JNLayerAnim, JNLayerInfo } from "../../../extensions/ngame/assets/ngame/ui/JNLayer";

export enum GLayer{
    View = "View",
    Popup = "Popup",
    Tips = "Tips",
}

export enum GUI{
    /** 系统UI */
    Login = "Login",        //登录页面
    Loading = "Loading",    //加载页面
    Tips = "Tips",          //提示

    /** 主页页面 */
    MainChat = "MainChat", //主页聊天页面

    /** 新手引导 */
    NoviceNamingView = "NoviceNamingView", //新手引导页面 - 取名
    NoviceSelectPetView = "NoviceSelectPetView", //新手引导页面 - 选择宠物

    Home = "Home",          //主页面
    Main = "Main",          //主页面2
}


//系统UI
const UISystemConfig:{ [key: string]: JNLayerInfo; } = {
    [GUI.Tips]:{
        layer:GLayer.Tips,
        uri: "prefab/ui/系统页面/Tips/TipsView",
        anims:{
            front:JNLayerAnim.BackOutOpen,
            back:JNLayerAnim.BackInClose
        }
    },
    [GUI.Login]:{
        layer:GLayer.Popup,
        uri: "prefab/ui/系统页面/LoginView",
        anims:{
            front:JNLayerAnim.BackOutOpen,
            back:JNLayerAnim.BackInClose
        }
    },
    [GUI.Loading]:{
        layer:GLayer.View, 
        uri: "prefab/ui/加载页面/LoadingView",
        anims:{
            back:JNLayerAnim.Smaller,
            backInfo:{key:"position",start:v3(0,0,0),end:v3(-720,0,0)}
        },
    },
}

//主页UI
const UIMainConfig:{ [key: string]: JNLayerInfo; } = {
    [GUI.MainChat]:{
        layer:GLayer.Tips,
        uri: "prefab/ui/主页/聊天/MainChatView",
        anims:{
            front:JNLayerAnim.Enlarge,
            back:JNLayerAnim.Smaller,
            frontInfo:{key:"position",start:v3(0,-1280,0),end:v3(0,0,0)},
            backInfo:{key:"position",start:v3(0,0,0),end:v3(0,-1280,0)}
        }
    },
}

//新手引导页面
const UINoviceConfig:{ [key: string]: JNLayerInfo; } = {

    [GUI.NoviceNamingView]:{
        layer:GLayer.Popup,
        uri: "prefab/ui/新手引导页面/NoviceNamingView",
        anims:{
            front:JNLayerAnim.BackOutOpen,
            back:JNLayerAnim.BackInClose
        }
    },
    [GUI.NoviceSelectPetView]:{
        layer:GLayer.Popup,
        uri: "prefab/ui/新手引导页面/NoviceSelectPetView",
        anims:{
            front:JNLayerAnim.BackOutOpen,
            back:JNLayerAnim.BackInClose
        }
    },

}

export const UIConfig:{ [key: string]: JNLayerInfo; } = {
    [GUI.Home]:{
        layer:GLayer.View,
        uri: "prefab/ui/主页/HomeView",
        anims:{
            front:JNLayerAnim.Enlarge,
            back:JNLayerAnim.Smaller,
            frontInfo:{key:"position",start:v3(720,0,0),end:v3(0,0,0)},
            backInfo:{key:"position",start:v3(0,0,0),end:v3(-720,0,0)}
        },
    },
    [GUI.Main]:{
        layer:GLayer.View,
        uri: "prefab/ui/主页/MainView",
        anims:{
            front:JNLayerAnim.Enlarge,
            back:JNLayerAnim.Smaller,
            frontInfo:{key:"position",start:v3(720,0,0),end:v3(0,0,0)},
            backInfo:{key:"position",start:v3(0,0,0),end:v3(-720,0,0)}
        },
    },
    ...UISystemConfig, //系统页面
    ...UINoviceConfig, //新手引导页面
    ...UIMainConfig, //主页面
}