UrbanMarginal/src/modele/JeuServeur.java

86 lines
1.8 KiB
Java

package modele;
import java.util.ArrayList;
import java.util.Hashtable;
import javax.swing.JLabel;
import controleur.Controle;
import controleur.GLOBAL;
import outils.connexion.Connection;
/**
* Gestion du jeu côté serveur
*
*/
public class JeuServeur extends Jeu {
/**
* Collection de murs
*/
private ArrayList<Mur> lesMurs = new ArrayList<Mur>() ;
/**
* Collection de joueurs
*/
private Hashtable<Connection, Joueur> lesJoueurs = new Hashtable<Connection, Joueur>() ;
private Connection connection;
/**
* Constructeur
*/
public JeuServeur(Controle control) {
this.controle = control;
}
@Override
public void connexion(Connection connection) {
this.lesJoueurs.put(connection, new Joueur(this));
}
@Override
public void reception(Connection connection, Object info) {
String splitted[] = ((String)info).split(GLOBAL.separateur);
switch(splitted[0]) {
case "pseudo":
controle.evenementJeuServeur("ajout panel murs", connection);
String pseudo = splitted[1];
int numPerso = Integer.parseInt(splitted[2]);
System.out.println(info);
this.lesJoueurs.get(connection).initPerso(pseudo, numPerso, lesMurs, lesJoueurs.values());
}
}
@Override
public void deconnexion() {
}
/**
* Envoi d'une information vers tous les clients
* fais appel plusieurs fois à l'envoi de la classe Jeu
*/
public void envoi() {
}
/**
* Génération des murs
*/
public void constructionMurs() {
for(int i = 0; i<20; i++){
Mur leMur = new Mur();
lesMurs.add(leMur);
this.controle.evenementJeuServeur("ajout mur", leMur.getJLabel());;
}
}
public void ajoutJLabelJeuArene(JLabel obj) {
controle.evenementJeuServeur("ajout jlabel jeu", obj);
}
public void envoiJeuATous() {
for(Connection joueur : lesJoueurs.keySet()) {
controle.evenementJeuServeur("ajout joueurs", joueur);
}
}
}