#include "Library/Math/IntervalTrigger.h"

#include "Library/Math/MathUtil.h"

namespace al {
IntervalTrigger::IntervalTrigger(f32 intervalTime) : mIntervalTime{intervalTime} {}

void IntervalTrigger::update(f32 deltaTime) {
    mIsTriggered = false;
    mTime += deltaTime;

    if (mTime >= mIntervalTime) {
        mIsTriggered = true;
        mTime = modf(mTime, mIntervalTime);
    }

    if (mTime < 0.0f) {
        mIsTriggered = true;
        mTime += ((s32)(-mTime / mIntervalTime) + 1) * mIntervalTime;
    }
}
}  // namespace al
