import java.util.Vector;

public class Figura {
    static final int IZQUIERDA         = 0;
    static final int DERECHA           = 1;
    static final int ABAJO             = 2;
    static final int ARRIBA            = 3;
        
    private Vector elements;
    private int xorigen;
    private int yorigen;
    private int color;
    
    public Figura(int fila0, int color) {
        this.color = color;
        elements = new Vector();
        addElements(0,fila0);
    }
    
    public static Figura nuevaFigura(){
        int c = 0x0000FF;//rojo:0xFF0000; verde:0x00FF00; amarillo:0xFFFF00; azul:0x0000FF;        
        Figura fig = new Figura(0x0100, c);        
        fig.xorigen=0;//setea el origen del "cursor"
        fig.yorigen=1;
        return fig;
    }
    
    private void addElements(int fila, int valor) {
        if((valor & 0xF000)>0) elements.addElement(new Elemento(fila,0));
        if((valor & 0x0F00)>0) elements.addElement(new Elemento(fila,1));
        if((valor & 0x00F0)>0) elements.addElement(new Elemento(fila,2));
        if((valor & 0x000F)>0) elements.addElement(new Elemento(fila,3));
    }
    
    /**
     * Obtiene el numero de Elementos (celdas) que forma la Figura actual
     * @return el numero de Elementos (celdas) que forma la Figura actual
     */
    public int getNElements(){
        return elements.size();
    }
    
    /**
     * Obtiene el Elemento en la posicion pos de la Figura actual
     * @param pos la posicion
     * @return el Elemento en la posicion pos de la Figura actual
     */
    public Elemento getElementAt(int pos){
        return (Elemento)elements.elementAt(pos);
    }
    
    /**
     * Obtiene la posicion x respecto al origen de coordenadas de la Rejilla de la Figura actual
     * @return la posicion x respecto al origen de coordenadas de la Rejilla de la Figura actual
     */
    public int getXOrigen(){
        return xorigen;
    }
    
    /**
     * Obtiene la posicion y respecto al origen de coordenadas de la Rejilla de la Figura actual
     * @return la posicion y respecto al origen de coordenadas de la Rejilla de la Figura actual
     */
    public int getYOrigen(){
        return yorigen;
    }
    
    public void mueve(int direccion){
        if(direccion==ABAJO){
            yorigen++;
            System.out.println("Nueva posicion:"+xorigen+","+yorigen);
            //addCommand(opc1_1);
        }else if(direccion == ARRIBA){
            yorigen--;
            System.out.println("Nueva posicion:"+xorigen+","+yorigen);
        }else if(direccion == IZQUIERDA){
            xorigen--;
            System.out.println("Nueva posicion:"+xorigen+","+yorigen);
        }else if(direccion == DERECHA){
            xorigen++;
            System.out.println("Nueva posicion:"+xorigen+","+yorigen);
        }
    }
    public int getColor() {
        return color;
    }
    
}
