Resources now impelement the ResourceType interface

This commit is contained in:
Bas de Jong
2025-09-30 20:04:48 +02:00
parent 44b4613c27
commit d158668dfd
6 changed files with 40 additions and 14 deletions

View File

@@ -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<AudioResource> {
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();

View File

@@ -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<FontResource> {
public FontResource(File fontFile) {
super(fontFile);
}
public FontResource load() {
return this;
}
}

View File

@@ -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<ImageResource> {
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;
}

View File

@@ -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;
}
}

View File

@@ -0,0 +1,5 @@
package org.toop.framework.assets.resources;
public interface ResourceType<T extends Resource> {
T load();
}

View File

@@ -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> {
TextResource(File file) {
super(file);
}
public TextResource load() {
return this;
}
}