magarena/src/magic/utility/MagicResources.java

63 lines
2.3 KiB
Java

package magic.utility;
import static java.nio.charset.StandardCharsets.UTF_8;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import magic.data.MagicIcon;
import magic.data.MagicPredefinedFormat;
import magic.data.MagicSets;
public final class MagicResources {
private MagicResources() { }
// Used as reference class for accessing JAR resources.
private static final MagicResources instance = new MagicResources();
public static String getFileContent(final MagicSets magicSet) {
return getResourceFileContent("/magic/data/sets/" + magicSet.toString().replace("_", "") + ".txt");
}
public static String getFileContent(final MagicPredefinedFormat magicFormat) {
return getResourceFileContent("/magic/data/formats/" + magicFormat.getFilename() + ".fmt");
}
public static InputStream getJarResourceStream(String filename) {
return instance.getClass().getResourceAsStream(filename);
}
private static String getResourceFileContent(final String filename) {
try (final InputStream inputStream = getJarResourceStream(filename)) {
return inputStream != null ? FileIO.toStr(inputStream) : "";
} catch (final IOException ex) {
System.err.println(filename + " : " + ex.getMessage());
return "";
}
}
public static InputStream getManaImageUrl(MagicIcon manaIcon) {
return instance.getClass().getResourceAsStream("/magic/data/icons/mana/" + manaIcon.getFilename());
}
public static InputStream getImageStream(final String imageFilename) {
return instance.getClass().getResourceAsStream("/magic/data/icons/" + imageFilename);
}
public static InputStream getTextureImageStream(final String imageFilename) {
return instance.getClass().getResourceAsStream("/magic/data/textures/" + imageFilename);
}
public static BufferedInputStream getSoundStream(final String filename) {
return new BufferedInputStream(instance.getClass().getResourceAsStream("/soundfx/" + filename));
}
public static InputStreamReader getH2ScriptFile(String filename) {
return new InputStreamReader(
getJarResourceStream("/h2/stats/" + filename), UTF_8
);
}
}