Package tyrelion

Source Code of tyrelion.FontManager

/**
*
*/
package tyrelion;



import java.util.HashMap;

import org.newdawn.slick.AngelCodeFont;
import org.newdawn.slick.Color;
import org.newdawn.slick.Font;
import org.newdawn.slick.Graphics;
import org.newdawn.slick.SlickException;

/**
* @author imladriel
*
*/
public class FontManager{
 
  public static int FANCY = 1;
  public static int SIMPLE = 2;
 
  public static int SMALL = 1;
  public static int MEDIUM = 2;
  public static int LARGE = 3;
 
  private int defaultStyle = SIMPLE;
 
  private Color defaultColor = Color.black;
 
  private float defaultSize = MEDIUM;
 
  private static FontManager instance = null;
 
  private HashMap<Integer, AngelCodeFont> fancy_fonts;
  private HashMap<Integer, AngelCodeFont> simple_fonts;
 
  public FontManager() throws SlickException{
   
    fancy_fonts = new HashMap<Integer, AngelCodeFont>();
    simple_fonts = new HashMap<Integer, AngelCodeFont>();
    initFonts();
  }
 
  public static FontManager getInstance() {
    if (instance == null) {
      try {
        instance = new FontManager();
      } catch (SlickException e) {
        e.printStackTrace();
      }
    }
    return instance;
  }
 
  private void initFonts() throws SlickException{
    fancy_fonts.put(1, new AngelCodeFont("res/fonts/fancy18.fnt","res/fonts/fancy18.png"));
    fancy_fonts.put(2, new AngelCodeFont("res/fonts/fancy24.fnt","res/fonts/fancy24.png"));
    fancy_fonts.put(3, new AngelCodeFont("res/fonts/fancy36.fnt","res/fonts/fancy36.png"));
   
    simple_fonts.put(1, new AngelCodeFont("res/fonts/simple11.fnt","res/fonts/simple11_0.png"));
    simple_fonts.put(2, new AngelCodeFont("res/fonts/simple14.fnt","res/fonts/simple14_0.png"));
    simple_fonts.put(3, new AngelCodeFont("res/fonts/simple18.fnt","res/fonts/simple18_0.png"));
  }
 
  /** Draws String. */
  public void drawString(Graphics g, float x, float y, String text, int style, float size, Color color){
    Font oldFont = g.getFont();
    Color oldColor = g.getColor();
   
    Font newFont = chooseFonts(style).get((int) size);
   
    g.setFont(newFont);
    g.setColor(color);
   
    g.drawString(text, x, y);
   
    g.setFont(oldFont);
    g.setColor(oldColor);
  }
 
  public void drawString(Graphics g, float x, float y, String text, int style, float size){
    drawString(g, x, y, text, style, size, defaultColor);
  }
 
  public void drawString(Graphics g, float x, float y, String text, int style, Color color){
    drawString(g, x, y, text, style, defaultSize, color);
  }
 
  public void drawString(Graphics g, float x, float y, String text, float size, Color color){
    drawString(g, x, y, text, defaultStyle, size, color);
  }
 
  public void drawString(Graphics g, float x, float y, String text, int style){
    drawString(g, x, y, text, style, defaultSize, defaultColor);
  }
 
  public void drawString(Graphics g, float x, float y, String text, float size){
    drawString(g, x, y, text, defaultStyle, size, defaultColor);
  }
 
  public void drawString(Graphics g, float x, float y, String text, Color color){
    drawString(g, x, y, text, defaultStyle, defaultSize, color);
  }
 
  public void drawString(Graphics g, float x, float y, String text){
    drawString(g, x, y, text, defaultStyle, defaultSize, defaultColor);
  }
 
  /** Returns requested AngelCodeFont.*/
  public Font getFont(int style, float size){
    return chooseFonts(style).get(size);
  }
 
  /** Returns all Fonts as a Clone.*/
  @SuppressWarnings("unchecked") //type is safe
  public HashMap<Integer, AngelCodeFont> getFonts(){
    HashMap<Integer, AngelCodeFont> temp = (HashMap<Integer, AngelCodeFont>) fancy_fonts.clone();
    temp.putAll(simple_fonts);
    return temp;
  }
 
  /** Adds a font to the font.database */
  public void addFont(int style, AngelCodeFont font, int size){
    chooseFonts(style).put(size, font);
  }
 
  /** Chooses requested fontmap.*/
  private HashMap<Integer, AngelCodeFont> chooseFonts(int style){
    switch (style){
    case 1:
      return fancy_fonts;
    case 2:
      return simple_fonts;
    default:
      return simple_fonts;
    }
  }
 
}
TOP

Related Classes of tyrelion.FontManager

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.