Lets say the first key on my timeline is on frame 30 at 1 sec.
I pass in 1.3 seconds, the bone is applied to a state that is between frame 30 and the next one. Next I pass in 0.9 seconds, which is before the first frame of the timeline, so the timeline is skipped. This means that the bone is the same state that it was in at 1.3 seconds, not, as it should be, at the state of frame 30.
Every timeline has a line like follows:
if (time < frames[0]) return; // Time is before first frame.
something like
if (lastTime > frames[0] && time < frames[0]) {
//Apply frame 0 and return.
}
Could be used in order to apply the first frame of a timeline once in a backwards animation.
But I guess having a key on frame zero for each timeline and always pass in 0 to apply the first frame would work.