const { ccclass, property } = cc._decorator;

@ccclass
export default class MultiBatcher extends cc.Component {

    @property(cc.Node)
    batchBtn: cc.Node = null;

    @property(cc.Node)
    cancelBtn: cc.Node = null;

    @property(cc.Node)
    textures: cc.Node = null;


    protected onLoad(): void {
        this.batchBtn.on('click', () => {
            const batcher = new cc.sp.MultiBatcher();
            batcher.init();
            this.textures.children.forEach(v => {
                const sprite = v.getComponent(cc.Sprite);
                batcher.requsetMaterial(sprite.spriteFrame.getTexture());
                sprite.setVertsDirty();
            });
        });

        this.cancelBtn.on('click', () => {
            this.textures.children.forEach(v => {
                const sprite = v.getComponent(cc.Sprite);
                sprite.spriteFrame.getTexture().unlinkMaterial();
                sprite.setMaterial(0, cc.Material.getBuiltinMaterial('2d-sprite'));
                sprite.setVertsDirty();
            });
        });
    }

}