From 265b44187b2aca48e878e23ef42b14a54109c992 Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Sun, 22 Feb 2026 01:38:30 +0100 Subject: [PATCH] Animation stagger delay --- src/main/java/org/saturnclient/ui2/Element.java | 2 +- src/main/java/org/saturnclient/ui2/anim/Animation.java | 1 + .../org/saturnclient/ui2/elements/AnimationStagger.java | 8 ++++---- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/saturnclient/ui2/Element.java b/src/main/java/org/saturnclient/ui2/Element.java index 296ec7f..1d41d3d 100644 --- a/src/main/java/org/saturnclient/ui2/Element.java +++ b/src/main/java/org/saturnclient/ui2/Element.java @@ -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); } } diff --git a/src/main/java/org/saturnclient/ui2/anim/Animation.java b/src/main/java/org/saturnclient/ui2/anim/Animation.java index 269cbcf..5fa328b 100644 --- a/src/main/java/org/saturnclient/ui2/anim/Animation.java +++ b/src/main/java/org/saturnclient/ui2/anim/Animation.java @@ -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; diff --git a/src/main/java/org/saturnclient/ui2/elements/AnimationStagger.java b/src/main/java/org/saturnclient/ui2/elements/AnimationStagger.java index ce2e1cd..5cd6e93 100644 --- a/src/main/java/org/saturnclient/ui2/elements/AnimationStagger.java +++ b/src/main/java/org/saturnclient/ui2/elements/AnimationStagger.java @@ -10,10 +10,10 @@ import org.saturnclient.ui2.components.ElementRenderer; public class AnimationStagger extends Element { protected List 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); }