Package org.pokenet.client.backend.time

Source Code of org.pokenet.client.backend.time.TimeService

package org.pokenet.client.backend.time;

import mdes.slick.sui.Label;

import org.newdawn.slick.Color;
import org.pokenet.client.GameClient;

/**
* Handles time and rendering of night. Also acts as a label for usage in GUI
* @author shadowkanji
*
*/
public class TimeService extends Label implements Runnable {
  private int m_hour, m_minutes, m_daylight, m_targetDaylight;
  private Thread m_thread;
 
  /**
   * Default constructor
   */
  public TimeService() {
    super("00:00");
    this.pack();
    this.setLocation(4, 4);
    this.setVisible(true);
    this.setFont(GameClient.getFontLarge());
    this.setForeground(new Color(255, 255, 255));
    m_thread = new Thread(this);
  }
 
  /**
   * Called by thread.start()
   */
  public void run() {
    String min;
    String hour;
    while(true) {
      m_minutes = m_minutes == 59 ? 0 : m_minutes + 1;
      if(m_minutes == 0) {
        m_hour = m_hour == 23 ? 0 : m_hour + 1;
        switch(m_hour) {
        case 3:
          m_targetDaylight = 150;
          break;
        case 4:
          m_targetDaylight = 125;
          break;
        case 5:
          m_targetDaylight = 100;
          break;
        case 6:
          m_targetDaylight = 75;
          break;
        case 7:
          m_targetDaylight = 0;
          break;
        case 17:
          m_targetDaylight = 75;
          break;
        case 18:
          m_targetDaylight = 100;
          break;
        case 19:
          m_targetDaylight = 125;
          break;
        case 20:
          m_targetDaylight = 150;
          break;
        case 21:
          m_targetDaylight = 175;
          break;
        default:
          break;
        }
      }
      hour = m_hour < 10 ? "0" + String.valueOf(m_hour) : String.valueOf(m_hour);
      min = m_minutes < 10 ? "0" + String.valueOf(m_minutes) : String.valueOf(m_minutes);
      this.setText(hour + ":" + min);
      this.pack();
      try {
        Thread.sleep(60000);
      } catch (Exception e) {}
    }
  }
 
  /**
   * Updates daylight
   */
  public void updateDaylight() {
    if(m_daylight < m_targetDaylight)
      m_daylight++;
    else if(m_daylight > m_targetDaylight)
      m_daylight--;
  }

  /**
   * Sets the current time and starts the time service
   * @param hours
   * @param minutes
   */
  public void setTime(int hour, int minutes) {
    m_hour = hour;
    m_minutes = minutes;
   
    if(hour == 17) {
      m_daylight = 75;
      m_targetDaylight = 75;
    } else if(hour == 18) {
      m_daylight = 100;
      m_targetDaylight = 100;
    } else if(hour == 19) {
      m_daylight = 125;
      m_targetDaylight = 125;
    } else if(hour == 20) {
      m_daylight = 150;
      m_targetDaylight = 150;
    } else if(hour == 3) {
      m_daylight = 150;
      m_targetDaylight = 150;
    } else if(hour == 4) {
      m_daylight = 125;
      m_targetDaylight = 125;
    } else if(hour == 5) {
      m_daylight = 100;
      m_targetDaylight = 100;
    } else if(hour == 6) {
      m_daylight = 75;
      m_targetDaylight = 75;
    } else if(hour >= 8 && hour <= 17) {
      m_daylight = 0;
      m_targetDaylight = 0;
    } else {
      m_daylight = 175;
      m_targetDaylight = 175;
    }
    this.setText(hour + ":" + minutes);
   
    // Stop was causing this next part not to work for some reason...
    // hopefully this doesn't cause any problems if setTime gets called
    // in the future
    m_thread.start();
  }
 
  /**
   * Returns true if it is night
   * @return
   */
  public boolean isNight() {
    return m_hour >= 18 && m_hour <= 7;
  }
 
  /**
   * Returns the current daylight
   * @return
   */
  public int getDaylight() {
    return m_daylight;
  }
 
  /**
   * Returns the target daylight
   * @return
   */
  public int getTargetDaylight() {
    return m_targetDaylight;
  }
}
TOP

Related Classes of org.pokenet.client.backend.time.TimeService

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.