aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/cc/polyfrost/oneconfig/gui/pages
diff options
context:
space:
mode:
authorDeDiamondPro <67508414+DeDiamondPro@users.noreply.github.com>2022-06-02 19:14:51 +0200
committerDeDiamondPro <67508414+DeDiamondPro@users.noreply.github.com>2022-06-02 19:14:51 +0200
commit0ad0457dc608ade2cd8ff7e325c009c2847fb711 (patch)
treea8761d2aef3684de9c10c5345f7e11a3cde245da /src/main/java/cc/polyfrost/oneconfig/gui/pages
parent4945b1bf585a0a53917917b29f3450002d4e3553 (diff)
downloadOneConfig-0ad0457dc608ade2cd8ff7e325c009c2847fb711.tar.gz
OneConfig-0ad0457dc608ade2cd8ff7e325c009c2847fb711.tar.bz2
OneConfig-0ad0457dc608ade2cd8ff7e325c009c2847fb711.zip
animations
Diffstat (limited to 'src/main/java/cc/polyfrost/oneconfig/gui/pages')
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/pages/Page.java23
1 files changed, 15 insertions, 8 deletions
diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/pages/Page.java b/src/main/java/cc/polyfrost/oneconfig/gui/pages/Page.java
index fdb5292..4a3cfa6 100644
--- a/src/main/java/cc/polyfrost/oneconfig/gui/pages/Page.java
+++ b/src/main/java/cc/polyfrost/oneconfig/gui/pages/Page.java
@@ -1,5 +1,8 @@
package cc.polyfrost.oneconfig.gui.pages;
+import cc.polyfrost.oneconfig.gui.animations.Animation;
+import cc.polyfrost.oneconfig.gui.animations.EaseInOutQuad;
+import cc.polyfrost.oneconfig.gui.animations.EaseOutQuad;
import cc.polyfrost.oneconfig.lwjgl.scissor.Scissor;
import cc.polyfrost.oneconfig.lwjgl.scissor.ScissorManager;
import cc.polyfrost.oneconfig.utils.MathUtils;
@@ -9,7 +12,7 @@ import org.lwjgl.input.Mouse;
* A page is a 1056x728 rectangle of the GUI. It is the main content of the gui, and can be switched back and forwards easily. All the content of OneConfig is in a page.
*/
public abstract class Page {
- private float currentScroll = 0f;
+ private Animation scrollAnimation;
private float scrollTarget;
protected final String title;
@@ -35,20 +38,24 @@ public abstract class Page {
public void scrollWithDraw(long vg, int x, int y) { // TODO scroll bar
int maxScroll = getMaxScrollHeight();
int scissorOffset = drawStatic(vg, x, y);
+ float scroll = scrollAnimation == null ? scrollTarget : scrollAnimation.get();
Scissor scissor = ScissorManager.scissor(vg, x, y + scissorOffset, x + 1056, y + 728 - scissorOffset);
+ int dWheel = Mouse.getDWheel();
+ if (dWheel != 0) {
+ scrollTarget += dWheel;
+
+ if (scrollTarget > 0f) scrollTarget = 0f;
+ else if (scrollTarget < -maxScroll + 728) scrollTarget = -maxScroll + 728;
+
+ scrollAnimation = new EaseOutQuad(150, scroll, scrollTarget, false);
+ } else if (scrollAnimation != null && scrollAnimation.isFinished()) scrollAnimation = null;
if (maxScroll <= 728) {
draw(vg, x, y);
ScissorManager.resetScissor(vg, scissor);
return;
}
- draw(vg, x, (int) (y + currentScroll));
- int dWheel = Mouse.getDWheel();
- scrollTarget += dWheel;
-
- if (scrollTarget > 0f) scrollTarget = 0f;
- else if (scrollTarget < -maxScroll + 728) scrollTarget = -maxScroll + 728;
+ draw(vg, x, (int) (y + scroll));
- currentScroll = MathUtils.easeOut(currentScroll, scrollTarget, 50f);
ScissorManager.resetScissor(vg, scissor);
}