
const { ccclass, property } = cc._decorator;
/**
 * 窗口遮罩
 * - 挂载到节点上
 * @author 薛鸿潇
 */
@ccclass//('UIBG')
export default class UIBG extends cc.Component {
    @property({ displayName: '背景颜色' })
    private color = new cc.Color(0, 0, 0, 180);
    @property({ displayName: '自定义屏蔽节点', type: cc.Node })
    private design_block_node: cc.Node = null!;
    @property({ displayName: '点击关闭' })
    private bClickClose: boolean = false;

    /** 背景节点 */
    private node_bg: cc.Node = null;

    onLoad() {
        this.initBG();
    }

    private initBG() {
        const width = mk.game.getWinSize().width;
        const height = mk.game.getWinSize().height;
        this.node_bg = this.drawColorRect(new cc.Rect(-width / 2, -height / 2, width, height));
        this.node_bg.parent = this.node;
        this.node_bg.zIndex = -10000;
        this.node_bg.addComponent(cc.Button);
        this.node_bg.on('click', this.initClick, this);
        // this.btn_close && this.btn_close.node.on('click', this.onClickClose, this);

        if (this.design_block_node) this.design_block_node.addComponent(cc.BlockInputEvents);
    }

    /**
     * 按钮回调
     */
    private initClick() {
        if (this.bClickClose) this.onClickClose();
    }

    private onClickClose() {
        mk.ui.closePanel(this.node.name);
    }
    /**
     * 创建背景蒙版 by 绘图组件
     * @param size 坐标及宽高
     * @returns 创建的节点
     */
    public drawColorRect(size: cc.Rect): cc.Node {
        let node = new cc.Node('colorRect');
        node.setContentSize(size);
        let graph = node.addComponent(cc.Graphics);
        graph.fillColor = this.color;
        graph.fillRect(size.x, size.y, size.width, size.height);
        return node;
    }

}
