Animation stagger delay

This commit is contained in:
2026-02-22 01:38:30 +01:00
parent f46f9c474e
commit 265b44187b
3 changed files with 6 additions and 5 deletions
@@ -42,7 +42,7 @@ public class Element {
}
public void playAnimationFrame(long elapsed) {
if (this.animation != null) {
if (this.animation != null && elapsed >= this.animation.delay) {
this.animation.tick(this.curve.apply(Math.min(1.0, (double) elapsed / this.animation.duration)), this);
}
}
@@ -4,6 +4,7 @@ import org.saturnclient.ui2.Element;
public abstract class Animation {
public int duration;
public int delay = 0;
Animation(int duration) {
this.duration = duration;
@@ -10,10 +10,10 @@ import org.saturnclient.ui2.components.ElementRenderer;
public class AnimationStagger extends Element {
protected List<Element> children = new ArrayList<>();
public int duration;
public int delay;
public AnimationStagger(int duration) {
this.duration = duration;
public AnimationStagger(int delay) {
this.delay = delay;
}
@Override
@@ -30,7 +30,7 @@ public class AnimationStagger extends Element {
public void draw(Element element) {
if (element.animation != null) {
element.animation.duration = duration * (children.size() + 1);
element.animation.delay = delay * (children.size() + 1);
}
children.add(element);
}