|
|
@ -218,24 +218,28 @@ public class Cinematic extends AbstractCinematicEvent implements AppState { |
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public void setTime(float time) { |
|
|
|
public void setTime(float time) { |
|
|
|
super.setTime(time); |
|
|
|
super.setTime(time); |
|
|
|
int keyFrameIndex = timeLine.getKeyFrameIndexFromTime(time); |
|
|
|
//stopping all events
|
|
|
|
|
|
|
|
for (CinematicEvent ce : cinematicEvents) { |
|
|
|
|
|
|
|
ce.stop(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//triggering all the event from start to "time"
|
|
|
|
//triggering all the event from start to "time"
|
|
|
|
//then computing timeOffset for each event
|
|
|
|
//then computing timeOffset for each event
|
|
|
|
for (int i = 0; i <= keyFrameIndex; i++) { |
|
|
|
for (KeyFrame keyFrame : timeLine.values()) { |
|
|
|
KeyFrame keyFrame = timeLine.get(i); |
|
|
|
//KeyFrame keyFrame = timeLine.get(timeLine.keySet());
|
|
|
|
if (keyFrame != null) { |
|
|
|
if (keyFrame != null) { |
|
|
|
for (CinematicEvent ce : keyFrame.getCinematicEvents()) { |
|
|
|
for (CinematicEvent ce : keyFrame.getCinematicEvents()) { |
|
|
|
|
|
|
|
float t = this.time - timeLine.getKeyFrameTime(keyFrame); |
|
|
|
|
|
|
|
if (t >= 0 && (t <= ce.getInitialDuration() || ce.getLoopMode() != LoopMode.DontLoop)) { |
|
|
|
ce.play(); |
|
|
|
ce.play(); |
|
|
|
ce.setTime(time - timeLine.getKeyFrameTime(keyFrame)); |
|
|
|
ce.setTime(t); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if (playState != PlayState.Playing) { |
|
|
|
if (playState != PlayState.Playing) { |
|
|
|
pause(); |
|
|
|
pause(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// step();
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public KeyFrame addCinematicEvent(float timeStamp, CinematicEvent cinematicEvent) { |
|
|
|
public KeyFrame addCinematicEvent(float timeStamp, CinematicEvent cinematicEvent) { |
|
|
|