diff options
Diffstat (limited to 'src/main/java/cc/polyfrost/oneconfig/gui/animations')
6 files changed, 21 insertions, 26 deletions
diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/animations/Animation.java b/src/main/java/cc/polyfrost/oneconfig/gui/animations/Animation.java index a5cfae0..30fcc4e 100644 --- a/src/main/java/cc/polyfrost/oneconfig/gui/animations/Animation.java +++ b/src/main/java/cc/polyfrost/oneconfig/gui/animations/Animation.java @@ -3,7 +3,7 @@ package cc.polyfrost.oneconfig.gui.animations; import cc.polyfrost.oneconfig.utils.gui.GuiUtils; public abstract class Animation { - protected final boolean reverse; + private final boolean reverse; private final float duration; private final float start; private final float change; @@ -34,7 +34,7 @@ public abstract class Animation { public float get(float deltaTime) { timePassed += deltaTime; if (timePassed >= duration) timePassed = duration; - return animate(timePassed, duration, start, change); + return animate(timePassed / duration) * change + start; } /** @@ -58,5 +58,5 @@ public abstract class Animation { return reverse; } - protected abstract float animate(float timePassed, float duration, float start, float change); + protected abstract float animate(float x); } diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/animations/DummyAnimation.java b/src/main/java/cc/polyfrost/oneconfig/gui/animations/DummyAnimation.java index dc5bc26..7363ed6 100644 --- a/src/main/java/cc/polyfrost/oneconfig/gui/animations/DummyAnimation.java +++ b/src/main/java/cc/polyfrost/oneconfig/gui/animations/DummyAnimation.java @@ -1,15 +1,23 @@ package cc.polyfrost.oneconfig.gui.animations; public class DummyAnimation extends Animation { + protected final float value; + /** * @param value The value that is returned */ public DummyAnimation(float value) { super(value, value, value, false); + this.value = value; + } + + @Override + public float get(float deltaTime) { + return value; } @Override - protected float animate(float timePassed, float duration, float start, float change) { - return start; + protected float animate(float x) { + return x; } } diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/animations/EaseInOutCubic.java b/src/main/java/cc/polyfrost/oneconfig/gui/animations/EaseInOutCubic.java index 760f369..1de3346 100644 --- a/src/main/java/cc/polyfrost/oneconfig/gui/animations/EaseInOutCubic.java +++ b/src/main/java/cc/polyfrost/oneconfig/gui/animations/EaseInOutCubic.java @@ -12,12 +12,8 @@ public class EaseInOutCubic extends Animation { super(duration, start, end, reverse); } - /** - * Adapted from <a href="https://github.com/jesusgollonet/processing-penner-easing">https://github.com/jesusgollonet/processing-penner-easing</a> - */ @Override - protected float animate(float timePassed, float duration, float start, float change) { - if ((timePassed /= duration / 2) < 1) return change / 2 * timePassed * timePassed * timePassed + start; - return change / 2 * ((timePassed -= 2) * timePassed * timePassed + 2) + start; + protected float animate(float x) { + return x < 0.5 ? 4 * x * x * x : (float) (1 - Math.pow(-2 * x + 2, 3) / 2); } } diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/animations/EaseInOutQuad.java b/src/main/java/cc/polyfrost/oneconfig/gui/animations/EaseInOutQuad.java index f43c75d..3855eac 100644 --- a/src/main/java/cc/polyfrost/oneconfig/gui/animations/EaseInOutQuad.java +++ b/src/main/java/cc/polyfrost/oneconfig/gui/animations/EaseInOutQuad.java @@ -12,12 +12,8 @@ public class EaseInOutQuad extends Animation { super(duration, start, end, reverse); } - /** - * Adapted from <a href="https://github.com/jesusgollonet/processing-penner-easing">https://github.com/jesusgollonet/processing-penner-easing</a> - */ @Override - protected float animate(float timePassed, float duration, float start, float change) { - if ((timePassed /= duration / 2) < 1) return change / 2 * timePassed * timePassed + start; - return -change / 2 * ((--timePassed) * (timePassed - 2) - 1) + start; + protected float animate(float x) { + return x < 0.5 ? 2 * x * x : (float) (1 - Math.pow(-2 * x + 2, 2) / 2); } } diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/animations/EaseInOutQuart.java b/src/main/java/cc/polyfrost/oneconfig/gui/animations/EaseInOutQuart.java index 9c3abe9..c397d4b 100644 --- a/src/main/java/cc/polyfrost/oneconfig/gui/animations/EaseInOutQuart.java +++ b/src/main/java/cc/polyfrost/oneconfig/gui/animations/EaseInOutQuart.java @@ -12,13 +12,8 @@ public class EaseInOutQuart extends Animation { super(duration, start, end, reverse); } - /** - * Adapted from <a href="https://github.com/jesusgollonet/processing-penner-easing">https://github.com/jesusgollonet/processing-penner-easing</a> - */ @Override - protected float animate(float timePassed, float duration, float start, float change) { - if ((timePassed /= duration / 2) < 1) - return change / 2 * timePassed * timePassed * timePassed * timePassed + start; - return -change / 2 * ((timePassed -= 2) * timePassed * timePassed * timePassed - 2) + start; + protected float animate(float x) { + return x < 0.5 ? 8 * x * x * x * x : (float) (1 - Math.pow(-2 * x + 2, 4) / 2); } } diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/animations/EaseOutQuad.java b/src/main/java/cc/polyfrost/oneconfig/gui/animations/EaseOutQuad.java index 6cc97bf..8c7bff2 100644 --- a/src/main/java/cc/polyfrost/oneconfig/gui/animations/EaseOutQuad.java +++ b/src/main/java/cc/polyfrost/oneconfig/gui/animations/EaseOutQuad.java @@ -16,7 +16,7 @@ public class EaseOutQuad extends Animation { * Adapted from <a href="https://github.com/jesusgollonet/processing-penner-easing">https://github.com/jesusgollonet/processing-penner-easing</a> */ @Override - protected float animate(float timePassed, float duration, float start, float change) { - return -change * (timePassed /= duration) * (timePassed - 2) + start; + protected float animate(float x) { + return 1 - (1 - x) * (1 - x); } } |