package com.rzg.zombieland.server.juego;
import com.rzg.zombieland.comunes.misc.Avatar;
import com.rzg.zombieland.comunes.misc.Coordenada;
/**
* Elemento que vive en un tablero.
* @author nicolas
*
*/
public abstract class EntidadTablero {
/* (non-Javadoc)
* @see java.lang.Object#hashCode()
*/
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((posicion == null) ? 0 : posicion.hashCode());
return result;
}
// Posici�n que esta entidad ocupa en el tablero.
private Coordenada posicion;
public EntidadTablero(Coordenada posicion) {
this.posicion = posicion;
}
/**
* @return el avatar para dibujar la entidad en el tablero.
*/
public abstract Avatar getAvatar();
/**
* Hace colisionar esta entidad con otra, posiblemente afect�ndolas.
* @param entidad la entidad con la que se est� colisionando.
*/
public abstract void colisionar(EntidadTablero entidad);
/**
* @return la posici�n actual en el tablero de la entidad.
*/
public Coordenada getPosicion() {
return posicion;
}
protected void setPosicion(Coordenada posicion) {
this.posicion = posicion;
}
/* (non-Javadoc)
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
EntidadTablero other = (EntidadTablero) obj;
if (posicion == null) {
if (other.posicion != null)
return false;
} else if (!posicion.equals(other.posicion))
return false;
return true;
}
public abstract boolean esPersonaje();
}