window.BULLET_STATE = {
  Startup: 0,
  Active: 1,
  Exploding: 2,
};

cc.Class({
  extends: cc.Component,

  properties: {
    animNode: {
      type: cc.Node,
      default: null
    },
  },

  updateAnim(newAnimName, frameIdxInAnim, dirX, spontaneousLooping, rdf, newAnimIdx) {
    this.animComp = this.effAnimNode.getComponent(cc.Animation);
    // Update directions
    if (this.animComp && this.animComp.node) {
      if (0 > dirX) {
        this.animNode.scaleX = (-1.0);
      } else if (0 < dirX) {
        this.animNode.scaleX = (1.0);
      }
    }

    const currentClip = this.animComp.currentClip;
    if (true == spontaneousLooping && (null != currentClip && currentClip.name == newAnimName)) {
      return;
    }
    const targetClip = this.animComp.getClips()[newAnimIdx]; 
    let fromTime = (frameIdxInAnim / targetClip.sample); // TODO: Anyway to avoid using division here?
    this.animComp.play(newAnimName, fromTime);
  },
});