From ca7a74f77487ef1fa1e7876fb5617b2e775dbbb8 Mon Sep 17 00:00:00 2001 From: DaniTheSkunk Date: Wed, 12 Oct 2022 01:42:59 +0000 Subject: [PATCH] added .then function to tweens --- com/danitheskunk/skunkworks/TestNode.java | 5 ++++- com/danitheskunk/skunkworks/nodes/BaseTween.java | 10 +++++++++- com/danitheskunk/skunkworks/nodes/Tweener.java | 3 +++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/com/danitheskunk/skunkworks/TestNode.java b/com/danitheskunk/skunkworks/TestNode.java index 8c8f399..48a7909 100644 --- a/com/danitheskunk/skunkworks/TestNode.java +++ b/com/danitheskunk/skunkworks/TestNode.java @@ -11,7 +11,10 @@ public class TestNode extends BaseGame { sprite.setTexture(window.loadTexture("demoassets/test.png")); sprite.setPos(new Vec2f(100, 100)); rootNode.add(sprite); - sprite.tweenPos(new Vec2f(800, 400), 120).delay(600); + sprite.tweenPos(new Vec2f(800, 400), 120).delay(60).then(() -> { + System.out.println("yay! got there! now lets go home"); + sprite.tweenPos(new Vec2f(100, 100), 120); + }); } public static void main(String[] args) { diff --git a/com/danitheskunk/skunkworks/nodes/BaseTween.java b/com/danitheskunk/skunkworks/nodes/BaseTween.java index 680a9a5..b492edd 100644 --- a/com/danitheskunk/skunkworks/nodes/BaseTween.java +++ b/com/danitheskunk/skunkworks/nodes/BaseTween.java @@ -4,18 +4,26 @@ public abstract class BaseTween { protected double progress; protected int startFrame; protected int endFrame; + protected Runnable thenFunc; public BaseTween() { progress = 0; + thenFunc = null; } public void setProgress(double progress) { this.progress = progress; } - public void delay(int frames) { + public BaseTween delay(int frames) { startFrame += frames; endFrame += frames; + return this; + } + + public BaseTween then(Runnable func) { + thenFunc = func; + return this; } protected abstract void apply(); diff --git a/com/danitheskunk/skunkworks/nodes/Tweener.java b/com/danitheskunk/skunkworks/nodes/Tweener.java index c771e97..84a4cee 100644 --- a/com/danitheskunk/skunkworks/nodes/Tweener.java +++ b/com/danitheskunk/skunkworks/nodes/Tweener.java @@ -36,6 +36,9 @@ public class Tweener { } } for(var tween : toRemove) { + if(tween.thenFunc != null) { + tween.thenFunc.run(); + } tweens.remove(tween); } ++currentFrame;