Package org.pokenet.client.ui.frames

Source Code of org.pokenet.client.ui.frames.PlayerInfoDialog

package org.pokenet.client.ui.frames;

import mdes.slick.sui.Frame;
import mdes.slick.sui.Label;

import org.newdawn.slick.Color;
import org.newdawn.slick.Image;
import org.newdawn.slick.SlickException;
import org.pokenet.client.GameClient;
import org.pokenet.client.backend.entity.Player;
import org.pokenet.client.backend.entity.Player.Direction;

/**
* A frame that shows trainer information and stats
*
* @author ZombieBear
* @author TriMethylXanthine_OverDose (TMX:OD/adpoliak)
*
*/
public class PlayerInfoDialog extends Frame {
  final boolean ALL_REGIONS = false; // set this to TRUE/refactor as regions are completed
  private Label[] m_kanto;
  private Label[] m_johto;
  private Label[] m_hoenn;
  private Label[] m_sinnoh;
  private Label[] m_orange;
  private Label[] m_extras;

  private Label m_kantoLbl;
  private Label m_johtoLbl;
  private Label m_hoennLbl;
  private Label m_sinnohLbl;
  private Label m_orangeLbl;
  private Label m_extrasLbl;

  private Label m_playerImage;

  private Label m_trainerEXP;
  private Label m_breedingEXP;
  private Label m_fishingEXP;
  private Label m_coordinatingEXP;

  private float maxLblWidth;

  /**
   * Default constructor
   */
  public PlayerInfoDialog() {
    m_kanto = new Label[8];
    m_johto = new Label[8];
    if (ALL_REGIONS)
      m_hoenn = new Label[8];
    if (ALL_REGIONS)
      m_sinnoh = new Label[8];
    if (ALL_REGIONS)
      m_orange = new Label[4];
    if (ALL_REGIONS)
      m_extras = new Label[6];

    initGUI();
  }

  /**
   * Initializes the interface
   */
  @SuppressWarnings("all")
  private void initGUI() {
    getContentPane().setX(getContentPane().getX() - 1);
    getContentPane().setY(getContentPane().getY() + 1);
    setTitle("Player Information");
    // Player Image
    m_playerImage = new Label(Player.getSpriteFactory().getSprite(
        Direction.Down, false, false,
        GameClient.getInstance().getOurPlayer().getSprite()));
    m_playerImage.setSize(52, 52);
    m_playerImage.setLocation(2, 2);
    getContentPane().add(m_playerImage);

    // Trainer data labels
    m_trainerEXP = new Label("Trainer Lv:          "
        + GameClient.getInstance().getOurPlayer().getTrainerLevel());
    m_breedingEXP = new Label("Breeding Lv:       "
        + GameClient.getInstance().getOurPlayer().getBreedingLevel());
    m_fishingEXP = new Label("Fishing Lv:          "
        + GameClient.getInstance().getOurPlayer().getFishingLevel());
    m_coordinatingEXP = new Label("Corrdinating Lv:  "
        + GameClient.getInstance().getOurPlayer()
            .getCoordinatingLevel());

    m_trainerEXP.pack();
    m_breedingEXP.pack();
    m_fishingEXP.pack();
    m_coordinatingEXP.pack();

    m_trainerEXP.setForeground(Color.white);
    m_breedingEXP.setForeground(Color.white);
    m_fishingEXP.setForeground(Color.white);
    m_coordinatingEXP.setForeground(Color.white);
   
    m_trainerEXP.setLocation(m_playerImage.getWidth() + 2, 2);
    m_breedingEXP.setLocation(m_playerImage.getWidth() + 2, 2
        + m_trainerEXP.getY() + m_trainerEXP.getHeight());
    m_fishingEXP.setLocation(m_playerImage.getWidth() + 2, 2
        + m_breedingEXP.getY() + m_breedingEXP.getHeight());
    m_coordinatingEXP.setLocation(m_playerImage.getWidth() + 2, 2
        + m_fishingEXP.getY() + m_fishingEXP.getHeight());

    getContentPane().add(m_trainerEXP);
    getContentPane().add(m_breedingEXP);
    getContentPane().add(m_fishingEXP);
    getContentPane().add(m_coordinatingEXP);

    // Start the badge labels
    m_kantoLbl = new Label("Kanto:");
    m_johtoLbl = new Label("Johto:");
    if (ALL_REGIONS)
      m_hoennLbl = new Label("Hoenn:");
    if (ALL_REGIONS)
      m_sinnohLbl = new Label("Sinnoh:");
    if (ALL_REGIONS)
      m_orangeLbl = new Label("Orange Islands:");
    if (ALL_REGIONS)
      m_extrasLbl = new Label("Others:");

    // Pack the badge labels
    m_kantoLbl.pack();
    m_johtoLbl.pack();
   
    m_kantoLbl.setForeground(Color.white);
    m_johtoLbl.setForeground(Color.white);

    if (ALL_REGIONS)
      m_hoennLbl.pack();
    if (ALL_REGIONS)
      m_sinnohLbl.pack();
    if (ALL_REGIONS)
      m_orangeLbl.pack();
    if (ALL_REGIONS)
      m_extrasLbl.pack();

    // Badge Label Placement
    m_kantoLbl.setY(m_coordinatingEXP.getY()
        + m_coordinatingEXP.getHeight() + 4);
    m_johtoLbl.setY(m_kantoLbl.getY() + m_kantoLbl.getHeight() + 2);
    if (ALL_REGIONS)
      m_hoennLbl.setY(m_johtoLbl.getY() + m_johtoLbl.getHeight() + 2);
    if (ALL_REGIONS)
      m_sinnohLbl.setY(m_hoennLbl.getY() + m_hoennLbl.getHeight() + 2);
    if (ALL_REGIONS)
      m_orangeLbl.setY(m_sinnohLbl.getY() + m_sinnohLbl.getHeight() + 2);
    if (ALL_REGIONS)
      m_extrasLbl.setY(m_orangeLbl.getY() + m_orangeLbl.getHeight() + 2);

    // Add Labels to Content Pane
    getContentPane().add(m_kantoLbl);
    getContentPane().add(m_johtoLbl);
    if (ALL_REGIONS)
      getContentPane().add(m_hoennLbl);
    if (ALL_REGIONS)
      getContentPane().add(m_sinnohLbl);
    if (ALL_REGIONS)
      getContentPane().add(m_orangeLbl);
    if (ALL_REGIONS)
      getContentPane().add(m_extrasLbl);

    // DEAD CODE WARNING CAN BE IGNORED, THIS FILE WILL NEED TO BE
    // REFACTORED ANYWAYZ ~TMXOD/apoliak
    maxLblWidth = ((ALL_REGIONS) ? m_orangeLbl : m_kantoLbl).getWidth();

    loadImages();
    /*
     * 6 rows, 20 pixels each + title bar height
     */
    if (ALL_REGIONS) {
      setSize(160 + 2 + maxLblWidth, m_extras[0].getY()
          + m_extras[0].getHeight() + getTitleBar().getHeight() + 2);
    } else {
      setSize(160 + 2 + maxLblWidth, m_johto[0].getY()
          + m_johto[0].getHeight() + getTitleBar().getHeight() + 2);
    }
   
    setBackground(new Color(0, 0, 0, 85));
    setResizable(false);
    showBadges();
  }

  /**
   * Loads the status icons
   */
  public void loadImages() {
    String respath = System.getProperty("res.path");
    if(respath==null)
      respath="";
    String m_path = respath+"res/badges/";
    // Kanto Badges
    for (int i = 0; i < 8; i++) {
      try {
        // KANTO
        m_kanto[i] = new Label(new Image(m_path
            + "kanto" + (i + 1) + ".png", false));
        m_kanto[i].setSize(18, 18);
        m_kanto[i].setX(maxLblWidth + (20 * i));
        m_kanto[i].setY(m_coordinatingEXP.getY()
            + m_coordinatingEXP.getHeight() + 2);
        getContentPane().add(m_kanto[i]);

        // JOHTO
        m_johto[i] = new Label(new Image(m_path
            + "johto" + (i + 1) + ".png", false));
        m_johto[i].setSize(18, 18);
        m_johto[i].setX(2 + maxLblWidth + (20 * i));
        m_johto[i].setY(2 + m_kanto[i].getY() + m_kanto[i].getHeight());
        getContentPane().add(m_johto[i]);

        // HOENN
        if (ALL_REGIONS) {
          m_hoenn[i] = new Label(new Image(m_path + "hoenn" + (i + 1) + ".png", false));
          m_hoenn[i].setSize(18, 18);
          m_hoenn[i].setX(2 + maxLblWidth + (20 * i));
          m_hoenn[i].setY(2 + m_johto[i].getY()
              + m_johto[i].getHeight());
          getContentPane().add(m_hoenn[i]);
        }
        // SINNOH
        if (ALL_REGIONS) {
          m_sinnoh[i] = new Label(new Image(m_path + "sinnoh" + (i + 1) + ".png", false));
          m_sinnoh[i].setSize(18, 18);
          m_sinnoh[i].setX(2 + maxLblWidth + (20 * i));
          m_sinnoh[i].setY(2 + m_hoenn[i].getY()
              + m_hoenn[i].getHeight());
          getContentPane().add(m_sinnoh[i]);
        }
        // ORANGE ISLANDS
        if (ALL_REGIONS) {
          if (i < 4) {
            m_orange[i] = new Label(new Image(m_path + "orange" + (i + 1) + ".png", false));
            m_orange[i].setSize(18, 18);
            m_orange[i].setX(2 + maxLblWidth + (20 * i));
            m_orange[i].setY(2 + m_sinnoh[i].getY()
                + m_sinnoh[i].getHeight());
            getContentPane().add(m_orange[i]);
          }
        }
        // Extra badges ???
        if (ALL_REGIONS) {
          if (i < 6) {
            m_extras[i] = new Label(new Image(m_path + "extra" + (i + 1) + ".png", false));
            m_extras[i].setSize(18, 18);
            m_extras[i].setX(2 + maxLblWidth + (20 * i));
            m_extras[i].setY(2 + m_orange[i].getY()
                + m_orange[i].getHeight());
            getContentPane().add(m_extras[i]);
          }
        }
      } catch (SlickException e) {
        e.printStackTrace();
      }
    }
  }

  /**
   * Shows badges (darkens ones the player does not have)
   * @throws NullPointerException
   */
  public void showBadges() throws NullPointerException {
    int[] badges = GameClient.getInstance().getOurPlayer().getBadges();
    try {
      for (int i = 0; i < badges.length; i++) {
        if (i < 8) {
          // Kanto
          if (badges[i] == 0)
            m_kanto[i].setImageFilter(Color.black);
        } else if (i < 16) {
          // Johto
          if (badges[i] == 0)
            m_johto[i - 8].setImageFilter(Color.black);
        } else if (i < 24) {
          // Hoenn
          if (ALL_REGIONS) {
            if (badges[i] == 0)
              m_hoenn[i - 16].setImageFilter(Color.black);
          }
        } else if (i < 32) {
          // Sinnoh
          if (ALL_REGIONS) {
            if (badges[i] == 0)
              m_sinnoh[i - 24].setImageFilter(Color.black);
          }
        } else if (i < 36) {
          // Orange Islands
          if (ALL_REGIONS) {
            if (badges[i] == 0)
              m_orange[i - 32].setImageFilter(Color.black);
          }
        } else if (i < 42) {
          // Extras
          if (ALL_REGIONS) {
            if (badges[i] == 0)
              m_extras[i - 36].setImageFilter(Color.black);
          }
        } else {
          throw new NullPointerException("Bad Badge Number");
        }
      }
    } catch (NullPointerException e) {
      e.printStackTrace();
      System.err.println("See http://xkcd.com/371/ for details");
    }
  }
 
  public void updateDialog() {
    m_trainerEXP.setText("Trainer Lv:          "
        + GameClient.getInstance().getOurPlayer().getTrainerLevel());
    m_breedingEXP.setText("Breeding Lv:       "
        + GameClient.getInstance().getOurPlayer().getBreedingLevel());
    m_fishingEXP.setText("Fishing Lv:          "
        + GameClient.getInstance().getOurPlayer().getFishingLevel());
    m_coordinatingEXP.setText("Corrdinating Lv:  "
        + GameClient.getInstance().getOurPlayer()
            .getCoordinatingLevel());
    showBadges();
  }
}
TOP

Related Classes of org.pokenet.client.ui.frames.PlayerInfoDialog

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.