
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
 */
package Wireless;


import Main.Carretera;
import Main.Dibujable;
import Main.Edificio;
import Main.Entorno;

/**
 *
 * @author Administrador
 */
public class MobileDevice extends Dibujable {

    // Estacion Base a la que se encuentra designado.
    int inicioX = 0;
    int inicioY = 0;
    int finX = 0;
    int finY = 0;
    int tipo = 0;
    int BS_ID_ABS;
    int BS_ID_HYS;

    public void setBS_ID_ABS(int ID){
        this.BS_ID_ABS = ID;
    }

    public int getBS_ID_ABS(){
        return BS_ID_ABS;
    }


    public void setBS_ID_HYS(int ID){
        this.BS_ID_HYS = ID;
    }

    public int getBS_ID_HYS(){
        return BS_ID_HYS;
    }

    public void setTipo(int tipo){
        this.tipo = tipo;
    }

    public int getInicioX(){
        return inicioX;
    }

    public int getInicioY(){
        return inicioY;
    }
    
        
    public int getFinX(){
        return finX;
    }

    public int getFinY(){
        return finY;
    }

    public void setPunto(int x,int y,boolean inicio){
        if(inicio){
            this.inicioX = x;
            this.inicioY = y;
        }else{
            this.finX = x;
            this.finY = y;
        }
        if(finX - inicioX > 0){
            vx = 1;
        }else{
            vx = -1;
        }
        if(finY - inicioY > 0){
            vy = 1;
        }else{
            vy = -1;
        }
    }

    int           IDBaseStation    = -1;
    String        IMEI             = "";
    protected int vx               = 1;
    protected int vy               = 1;
    int           potenciaRecibida = CONSTANTES.APAGADO;

    public MobileDevice(Entorno entorno, String IMEI) {
        super(entorno);
        this.IMEI = IMEI;
        setSpriteName("CEL2.png");
    }

    public void collision(Dibujable a) {

        if (a instanceof Carretera) {
            Carretera c = (Carretera)a;
            
            tipo = c.getTipo();
        }
    }

    /**
     *
     * @param X Posicion X del Dispositivo Mobil.
     * @param Y Posicion Y del Dispositivo Mobil.
     * @param IMEI Identificador unico del Dispositivo Mobil.
     */
    public void act() {

        if(tipo ==1){
            x += vx;
        }else{
            y += vy;
        }


        if ((x < 0) || (x > Entorno.WIDTH - this.width)) {
            vx = -vx;
        }

        if ((y < 0) || (y > Entorno.HEIGHT - this.height)) {
            vy = -vy;
        }
    }

    /**
     *
     * @param obj Objeto a comparar, si tienen el mismo IMEI significa que es el mismo Mobil Devise
     * @return True si es igual, false si es distinto.
     */
    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }

        if (obj == null) {
            return false;
        }

        if (getClass() != obj.getClass()) {
            return false;
        }

        final MobileDevice other = (MobileDevice) obj;

        if (this.IMEI.equals(other.IMEI)) {
            return true;
        } else {
            return false;
        }
    }

    /**
     *
     * @param dx
     * @param dy
     */
    public void move(int dx, int dy) {
        this.x += dx;
        this.y += dy;
    }

    public void move_to(int x, int y) {
        this.x = x;
        this.y = y;
    }

    public int get_X() {
        return x;
    }

    public int get_Y() {
        return y;
    }
}


//~ Formatted by Jindent --- http://www.jindent.com
