From 36ce0209fb30deb3f408f1b5163df8a8f131e927 Mon Sep 17 00:00:00 2001 From: Speiger Date: Sun, 2 Jun 2024 14:25:20 +0200 Subject: [PATCH] Small Progress on the Gui Animation System --- .../rendering/gui/animation/GuiAnimation.java | 1 + .../rendering/gui/animation/GuiAnimator.java | 5 ++++ .../rendering/input/events/FileEvents.java | 29 +++++++++++-------- 3 files changed, 23 insertions(+), 12 deletions(-) create mode 100644 src/main/java/speiger/src/coreengine/rendering/gui/animation/GuiAnimator.java diff --git a/src/main/java/speiger/src/coreengine/rendering/gui/animation/GuiAnimation.java b/src/main/java/speiger/src/coreengine/rendering/gui/animation/GuiAnimation.java index 5beaea5..d40fc53 100644 --- a/src/main/java/speiger/src/coreengine/rendering/gui/animation/GuiAnimation.java +++ b/src/main/java/speiger/src/coreengine/rendering/gui/animation/GuiAnimation.java @@ -45,6 +45,7 @@ public class GuiAnimation { public GuiAnimation build() { float duration = 0F; + actions.values().mapToFloat(IAction::duration).reduce(Math::max); for(IAction action : actions.values()) { duration = Math.max(duration, action.duration()); } diff --git a/src/main/java/speiger/src/coreengine/rendering/gui/animation/GuiAnimator.java b/src/main/java/speiger/src/coreengine/rendering/gui/animation/GuiAnimator.java new file mode 100644 index 0000000..a067889 --- /dev/null +++ b/src/main/java/speiger/src/coreengine/rendering/gui/animation/GuiAnimator.java @@ -0,0 +1,5 @@ +package speiger.src.coreengine.rendering.gui.animation; + +public class GuiAnimator { + +} diff --git a/src/main/java/speiger/src/coreengine/rendering/input/events/FileEvents.java b/src/main/java/speiger/src/coreengine/rendering/input/events/FileEvents.java index 9ac0eee..abaf72e 100644 --- a/src/main/java/speiger/src/coreengine/rendering/input/events/FileEvents.java +++ b/src/main/java/speiger/src/coreengine/rendering/input/events/FileEvents.java @@ -1,28 +1,33 @@ package speiger.src.coreengine.rendering.input.events; +import java.nio.file.Files; import java.nio.file.Path; +import java.util.Iterator; + +import speiger.src.collections.objects.utils.ObjectIterators; public class FileEvents { - public static class Drop extends MouseEvent { - Path[] files; - String[] extension; - String[] name; + public static class Drop extends MouseEvent implements Iterable { + DroppedFile[] files; public Drop(long window, int x, int y, Path[] files) { super(window, x, y); - this.files = files; - this.extension = new String[files.length]; - this.name = new String[files.length]; + this.files = new DroppedFile[files.length]; for(int i = 0,m=files.length;i iterator() { return ObjectIterators.wrap(files); } public int size() { return files.length; } - public Path file(int index) { return files[index]; } - public String extension(int index) { return extension[index]; } - public String name(int index) { return name[index]; } + public DroppedFile get() { return files[0]; } + public DroppedFile get(int index) { return files[index]; } + } + + public record DroppedFile(Path path, String name, String extension) { + public boolean isFolder() { return Files.isDirectory(path); } + public boolean isFile() { return Files.isRegularFile(path); } } }