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

const { ccclass, property } = cc._decorator;

@ccclass
export default class CirculateTweenAnimation extends cc.Component {

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

    @property(cc.Vec3)
    startPoint: cc.Vec3 = null;

    @property(cc.Vec3)
    endPoint: cc.Vec3 = null;

    @property()
    time: number = 10;

    // LIFE-CYCLE CALLBACKS:

    // onLoad () {}

    // start() {}

    protected onEnable(): void {
        if (!this.circulateTweenNode) {
            this.circulateTweenNode = this.node;
        }

        let atween = cc.tween(this.circulateTweenNode)
            .set({ position: this.startPoint })
            .to(this.time, { position: this.endPoint })
            .union()
            .repeatForever()
            .start();

        this.node.attr({
            stop: () => {
                atween.stop();
            }
        });
    }



    // update (dt) {}
}