// Learn TypeScript:
//  - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
// Learn Attribute:
//  - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
//  - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html

const {ccclass, property} = cc._decorator;

@ccclass
export default class RotateScripts extends cc.Component {

    @property(cc.Float)
    rotate: number = 20;

    @property(cc.Float)
    time: number = 0.1;
    tw = null;

    // LIFE-CYCLE CALLBACKS:

    onLoad () {
        // cc.tween(this.node).repeatForever(cc.tween().to(0.5,{angle:0.8}).to(0.5,{angle:1})).start();
    }
    stop(){
        if (this.tw !=null){
            console.log("rotate stop");
            this.node.angle = 0;
            this.tw.stop();
            this.tw = null;
        }
    }
    start () {
        console.log("rotate start")
        this.tw = cc.tween(this.node)
        .repeatForever(
            cc.tween()
            .to(this.time, { angle: this.rotate })
            .to(this.time*2, { angle: -this.rotate })
            .to(this.time, { angle: 0 })
            .to(this.time, { angle: this.rotate })
            .to(this.time*2, { angle: -this.rotate })
            .to(this.time, { angle: 0 })
            .delay(this.time*5)
        )
        .start()
    }
    startCustom () {
        console.log("rotate start")
        this.tw = cc.tween(this.node)
        .repeatForever(
            cc.tween()
            .to(this.time, { angle: this.rotate })
            .to(this.time*2, { angle: -this.rotate })
            .to(this.time, { angle: 0 })
            .to(this.time, { angle: this.rotate })
            .to(this.time*2, { angle: -this.rotate })
            .to(this.time, { angle: 0 })
            .delay(this.time*5)
        )
        .start()
    }
    // update (dt) {}
}