From d158668dfd467ba235c1eb874aaadc085a1e44f2 Mon Sep 17 00:00:00 2001 From: Bas de Jong Date: Tue, 30 Sep 2025 20:04:48 +0200 Subject: [PATCH] Resources now impelement the ResourceType interface --- .../assets/resources/AudioResource.java | 8 +++++--- .../assets/resources/FontResource.java | 7 ++++++- .../assets/resources/ImageResource.java | 8 ++------ .../framework/assets/resources/Resource.java | 6 ++---- .../assets/resources/ResourceType.java | 5 +++++ .../assets/resources/TextResource.java | 20 +++++++++++++++++++ 6 files changed, 40 insertions(+), 14 deletions(-) create mode 100644 framework/src/main/java/org/toop/framework/assets/resources/ResourceType.java create mode 100644 framework/src/main/java/org/toop/framework/assets/resources/TextResource.java diff --git a/framework/src/main/java/org/toop/framework/assets/resources/AudioResource.java b/framework/src/main/java/org/toop/framework/assets/resources/AudioResource.java index f46557b..9ad5388 100644 --- a/framework/src/main/java/org/toop/framework/assets/resources/AudioResource.java +++ b/framework/src/main/java/org/toop/framework/assets/resources/AudioResource.java @@ -3,9 +3,12 @@ package org.toop.framework.assets.resources; import javax.sound.sampled.*; import java.io.*; -public class AudioResource extends Resource { +public class AudioResource extends Resource implements ResourceType { + private AudioInputStream audioInputStream = null; private Clip clip = null; + + public AudioResource(File audioFile) { super(audioFile); } @@ -18,8 +21,7 @@ public class AudioResource extends Resource { return this.clip; } - @Override - public Resource load() { + public AudioResource load() { try { this.audioInputStream = AudioSystem.getAudioInputStream(this.stream); Clip clip = AudioSystem.getClip(); diff --git a/framework/src/main/java/org/toop/framework/assets/resources/FontResource.java b/framework/src/main/java/org/toop/framework/assets/resources/FontResource.java index 1ae4802..5348edb 100644 --- a/framework/src/main/java/org/toop/framework/assets/resources/FontResource.java +++ b/framework/src/main/java/org/toop/framework/assets/resources/FontResource.java @@ -2,8 +2,13 @@ package org.toop.framework.assets.resources; import java.io.File; -public class FontResource extends Resource { +public class FontResource extends Resource implements ResourceType { + public FontResource(File fontFile) { super(fontFile); } + + public FontResource load() { + return this; + } } diff --git a/framework/src/main/java/org/toop/framework/assets/resources/ImageResource.java b/framework/src/main/java/org/toop/framework/assets/resources/ImageResource.java index 8f5bf05..44548d3 100644 --- a/framework/src/main/java/org/toop/framework/assets/resources/ImageResource.java +++ b/framework/src/main/java/org/toop/framework/assets/resources/ImageResource.java @@ -2,11 +2,8 @@ package org.toop.framework.assets.resources; import javafx.scene.image.Image; import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStream; -public class ImageResource extends Resource { +public class ImageResource extends Resource implements ResourceType { private Image image = null; @@ -18,8 +15,7 @@ public class ImageResource extends Resource { return this.image; } - @Override - public Resource load() { + public ImageResource load() { this.image = new Image(this.stream); return this; } diff --git a/framework/src/main/java/org/toop/framework/assets/resources/Resource.java b/framework/src/main/java/org/toop/framework/assets/resources/Resource.java index 8c3cd19..72277d0 100644 --- a/framework/src/main/java/org/toop/framework/assets/resources/Resource.java +++ b/framework/src/main/java/org/toop/framework/assets/resources/Resource.java @@ -3,6 +3,7 @@ package org.toop.framework.assets.resources; import java.io.*; public abstract class Resource { + final InputStream stream; final File file; @@ -15,10 +16,6 @@ public abstract class Resource { } } - public Resource load() { - return this; - } - public InputStream getInputStream() { return this.stream; } @@ -26,4 +23,5 @@ public abstract class Resource { public File getFile() { return this.file; } + } diff --git a/framework/src/main/java/org/toop/framework/assets/resources/ResourceType.java b/framework/src/main/java/org/toop/framework/assets/resources/ResourceType.java new file mode 100644 index 0000000..c9ad398 --- /dev/null +++ b/framework/src/main/java/org/toop/framework/assets/resources/ResourceType.java @@ -0,0 +1,5 @@ +package org.toop.framework.assets.resources; + +public interface ResourceType { + T load(); +} diff --git a/framework/src/main/java/org/toop/framework/assets/resources/TextResource.java b/framework/src/main/java/org/toop/framework/assets/resources/TextResource.java new file mode 100644 index 0000000..a325733 --- /dev/null +++ b/framework/src/main/java/org/toop/framework/assets/resources/TextResource.java @@ -0,0 +1,20 @@ +package org.toop.framework.assets.resources; + +import javax.sound.sampled.AudioSystem; +import javax.sound.sampled.Clip; +import javax.sound.sampled.LineUnavailableException; +import javax.sound.sampled.UnsupportedAudioFileException; +import java.io.File; +import java.io.IOException; + +public class TextResource extends Resource implements ResourceType { + + TextResource(File file) { + super(file); + } + + public TextResource load() { + return this; + } + +}