diff --git a/sonic-radiance.love/birb/modules/assets/types/animator.lua b/sonic-radiance.love/birb/modules/assets/types/animator.lua index 9d92b25..2f31ab9 100644 --- a/sonic-radiance.love/birb/modules/assets/types/animator.lua +++ b/sonic-radiance.love/birb/modules/assets/types/animator.lua @@ -66,6 +66,7 @@ function Animator:update(dt) self:sendCallback() else self.frame = self.frame + 1 + self:sendFrameSignal() end end end @@ -139,6 +140,25 @@ function Animator:sendCallback() end end +function Animator:sendFrameSignal() + if (self.animationData.signal ~= nil) then + if (type(self.animationData.signal[1]) ~= "table") then + self:trySendSignal(self:getRelativeFrame(), self.animationData.signal) + else + for _, signal in ipairs(self.animationData.signal) do + self:trySendSignal(self:getRelativeFrame(), signal) + end + end + end +end + +function Animator:trySendSignal(frame, signal) + print(signal[2], frame, signal[1]) + if (signal[1] == frame) and (self.actor ~= nil) and (self.actor.receiveFrameSignal ~= nil) then + self.actor:receiveFrameSignal(signal[2]) + end +end + -- DRAW FUNCTIONS -- Draw animations using these functions