import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

public class Clavier implements KeyListener {

	
	boolean[] keys, toutJusteAppuie, nePeutPasAppuie;
	boolean up,down,left,right,degatUp,degatDown,degatLeft,degatRight,enter,ouvrirInventaire,exit,equipe,m,fermerInventaire;
	public Clavier(){
		keys = new boolean[256];
		toutJusteAppuie = new boolean[keys.length];
		nePeutPasAppuie = new boolean[keys.length];
	}
	
	public void tick(){
		int compteur = 0;
		//Gere le fait qu'on prenne en compte une seule fois la touche même si on reste appuyé dessus
		for(int i = 0;i < keys.length;i++){
			
			
			if(nePeutPasAppuie[i] && !keys[i]){
				nePeutPasAppuie[i] = false;
			}else if(toutJusteAppuie[i]){
				nePeutPasAppuie[i] = true;
				toutJusteAppuie[i] = false;
			}
			
			
			if(!nePeutPasAppuie[i] && keys[i]){
				toutJusteAppuie[i] = true;
			}
			
		}
		
		//Création des variables :
		
		up=keys[KeyEvent.VK_UP];
		down=keys[KeyEvent.VK_DOWN];
		left=keys[KeyEvent.VK_LEFT];
		right=keys[KeyEvent.VK_RIGHT];
		
		degatUp=keys[KeyEvent.VK_Z];
		degatDown=keys[KeyEvent.VK_S];
		degatLeft=keys[KeyEvent.VK_Q];
		degatRight=keys[KeyEvent.VK_D];
		
		enter=keys[KeyEvent.VK_ENTER];
		ouvrirInventaire=keys[KeyEvent.VK_I];
		fermerInventaire = keys[KeyEvent.VK_O];
		equipe=keys[KeyEvent.VK_E];
		m = keys[KeyEvent.VK_M];
		
		
		
		
		//Joue un son quand on attaque
		if(degatUp || degatDown || degatRight || degatLeft)
			Audio.playSound("attaqueJ.wav");
		
		
		// Verifie si le joueur est en mouvement
		
		for(int i =0;i<keys.length;i++){
			if(up ||down || right || left)
			compteur++;
		}
		if(compteur>0)
			Fenetre.j1.mouvement=true;
		else
			Fenetre.j1.mouvement=false;
		
	}
	
	
	
	
	@Override
	public void keyPressed(KeyEvent e) {
		keys[e.getKeyCode()]=true;
		
		
		
	}

	@Override
	public void keyReleased(KeyEvent e) {
		
		keys[e.getKeyCode()]=false; 
		
	}
	//Methode pour recuperer une fois l'appuie de la touche même si on reste appuyé 
	public boolean keyToutJusteAppuie(int keyCode){
		return toutJusteAppuie[keyCode];
	}

	@Override
	public void keyTyped(KeyEvent e) {}

}
