package uk.co.flyingsquirrels.utils; import java.util.HashMap; import java.util.Map; import org.newdawn.slick.AngelCodeFont; import org.newdawn.slick.Font; import org.newdawn.slick.SlickException; public class FontFactory { private final static Map<String, Font> fontCache = new HashMap<String, Font>(); public static Font loadFont(String fontName) { if (fontCache.containsKey(fontName)) { return fontCache.get(fontName); } try { return loadFont(fontName, "tga"); } catch (Exception e1) { try { return loadFont(fontName, "png"); } catch (SlickException e2) { throw new RuntimeException(e2); } } } private static Font loadFont(String fontName, String extension) throws SlickException { Font font = new AngelCodeFont("fonts/" + fontName + ".fnt", "fonts/" + fontName + "." + extension); fontCache.put(fontName, font); return font; } }