Package org.pokenet.client.backend.entity

Source Code of org.pokenet.client.backend.entity.Player

package org.pokenet.client.backend.entity;

import java.util.LinkedList;
import java.util.Queue;

import org.newdawn.slick.Image;
import org.pokenet.client.GameClient;
import org.pokenet.client.backend.BattleManager;
import org.pokenet.client.backend.SpriteFactory;

/**
* Represents a player
* @author shadowkanji
*
*/
public class Player {
  private static SpriteFactory m_spriteFactory;
  protected int m_x;
  protected int m_y;
  protected int m_svrX;
  protected int m_svrY;
  protected int m_id;
  protected String m_username;
  protected int m_sprite;
  protected Direction m_direction = Direction.Down;
  protected boolean m_isAnimating = false;
  //Handles animating footsteps
  public boolean m_leftOrRight = false;
  protected Image m_currentImage;
  protected boolean m_ours = false;
  protected boolean m_wasOnGrass = false;
 
  public enum Direction {Up, Down, Left, Right}
  /* Handles movement queue */
  protected Queue<Direction> m_movementQueue = new LinkedList<Direction>();
 
  public static void loadSpriteFactory() {
    m_spriteFactory = new SpriteFactory();
  }
 
  /**
   * Queues a movement
   * @param d
   */
  public void queueMovement(Direction d) {
    if (m_direction != d || !GameClient.getInstance().getMapMatrix()
        .getCurrentMap().isColliding(this, d) &&
        !GameClient.getInstance().getDisplay().containsChild(
            BattleManager.getInstance().getBattleWindow()))
        m_movementQueue.offer(d);
  }
 
  /**
   * Returns true if player has a movement queued
   * and can be moved
   * @return
   */
  public boolean requiresMovement() {
    return canMove() && m_movementQueue.size() > 0;
  }
 
  /**
   * Returns the next movement for the player
   * @return
   */
  public Direction getNextMovement() {
    return m_movementQueue.poll();
  }
 
  /**
   * Moves this player right
   */
  public void moveRight() {
      m_svrX += 32;
      m_isAnimating = true;
  }
 
  /**
   * Moves this player left
   */
  public void moveLeft() {
    m_svrX -= 32;
    m_isAnimating = true;
  }
 
  /**
   * Moves this player down
   */
  public void moveDown() {
    m_svrY += 32;
    m_isAnimating = true;
  }
 
  /**
   * Moves this player up
   */
  public void moveUp() {
    m_svrY -= 32;
    m_isAnimating = true;
  }
 
  /**
   * Sets this player's x co-ordinate
   * @param x
   */
  public void setX(int x) {
    m_x = x;
  }
 
  /**
   * Returns this player's x co-ordinate
   * @return
   */
  public int getX() {
    return m_x;
  }

  /**
   * Sets this player's x co-ordinate on the server
   * @param x
   */
  public void setServerX(int x) {
    m_svrX = x;
  }
 
  /**
   * Returns this player's x co-ordinate serverside
   * @return
   */
  public int getServerX() {
    return m_svrX;
  }
 
  /**
   * Sets this player's y co-ordinate on the server
   * @param y
   */
  public void setServerY(int y) {
    m_svrY = y;
  }
 
  /**
   * Returns this player's y co-ordinate serverside
   * @return
   */
  public int getServerY() {
    return m_svrY;
  }
 
  /**
   * Sets this player's y co-ordinate
   * @param y
   */
  public void setY(int y) {
    m_y = y;
  }
 
  /**
   * Returns this player's y co-ordinate
   * @return
   */
  public int getY() {
    return m_y;
  }
 
  /**
   * Sets this player's username
   * @param username
   */
  public void setUsername(String username) {
    m_username = username;
  }
 
  /**
   * Returns this player's username
   * @return
   */
  public String getUsername() {
    return m_username;
  }
 
  /**
   * Sets this player's sprite
   * @param sprite
   */
  public void setSprite(int sprite) {
    m_sprite = sprite;
  }
 
  /**
   * Loads the player's sprite image
   */
  public void loadSpriteImage() {
    m_currentImage = Player.getSpriteFactory().getSprite(m_direction, false, m_leftOrRight, m_sprite);
  }
 
  /**
   * Returns this player's sprite
   * @return
   */
  public int getSprite() {
    return m_sprite;
  }
 
  /**
   * Returns the sprite factory
   * @return
   */
  public static SpriteFactory getSpriteFactory() {
    return m_spriteFactory;
  }
 
  /**
   * Returns true if this player is/should be animating
   * @return
   */
  public boolean isAnimating() {
    return m_isAnimating;
  }
 
  /**
   * Sets if this player is animating
   * @param a
   */
  public void setAnimating(boolean a) {
    m_isAnimating = a;
  }
 
  /**
   * Sets this player's direction
   * @param d
   */
  public void setDirection(Direction d) {
    m_direction = d;
  }
 
  /**
   * Returns this player's direction
   * @return
   */
  public Direction getDirection() {
    return m_direction;
  }
 
  /**
   * Sets this player's id
   * @param id
   */
  public void setId(int id) {
    m_id = id;
  }
 
  /**
   * Returns this player's id
   * @return
   */
  public int getId() {
    return m_id;
  }
 
  /**
   * Returns the current image of this player's animation
   * @return
   */
  public Image getCurrentImage() {
    return m_currentImage;
  }
 
  /**
   * Sets this player's current image
   * @param i
   */
  public void setCurrentImage(Image i) {
    m_currentImage = i;
  }
 
  /**
   * Sets if this is our player
   * @param b
   */
  public void setOurPlayer(boolean b) {
    m_ours = b;
  }
 
  /**
   * Returns true if this is our player
   * @return
   */
  public boolean isOurPlayer() {
    return m_ours;
  }
 
 
  /**
   * Returns true if our player can move
   * @return
   */
  public boolean canMove() {
    if(this.getX() == this.getServerX() &&
        this.getY() == this.getServerY()) {
      return true;
    }
    return false;
  }
 
  /**
   * Returns the type of player
   * @return 0 for NPC, 1 for Player, 2 for HMObject
   */
  public int getType() {
    return 0;
  }

  public static void setSpriteFactory(SpriteFactory spriteFactory) {
    m_spriteFactory = spriteFactory;
   
  }
}
TOP

Related Classes of org.pokenet.client.backend.entity.Player

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.