@Override public void update() { tick++; if (tick == 1) { /*Install starting civilizations*/ ArrayList<String[]> listeCivs = Initialiseur.getListeChamp( "Civilisation", new File( Configuration.pathToRessources + "/environnements/" + Configuration.environnementACharger + Configuration.getExtension())); for (int i = 0; i < listeCivs.size(); i++) { int u = Integer.parseInt(listeCivs.get(i)[1]); int v = Integer.parseInt(listeCivs.get(i)[2]); Communaute c = new Communaute(Configuration.getCivilisationByName(listeCivs.get(i)[0])); TurtleGenerator.getInstance().createTurtle(c); c.moveTo(u, -v); } } /* Periodic actions of the environment*/ if (tick % 150 == 0) { for (int xx = 0; xx < x; xx++) { for (int yy = 0; yy < y; yy++) { Terrain t = Configuration.couleurs_terrains.get(this.getPatch(xx, yy).getColor()); for (int i = 0; i < t.getPheroCroissance().size(); i++) { this.getPatch(xx, yy) .dropPheromone( t.getPheromones().get(i).getNom(), t.getPheroCroissance().get(i).floatValue()); } Pheromone ph = this.getPheromone("passage"); float phVal = ph.get(xx, yy); // if (phVal >= 100) System.out.println(phVal); if (phVal > Configuration.EffacementRoute) { ph.set(xx, yy, phVal - Configuration.EffacementRoute); } else { ph.set(xx, yy, 0); } phVal = ph.get(xx, yy); if (this.getPatch(xx, yy).isMarkPresent("Route") && phVal < Configuration.EffacementRoute) { this.getPatch(xx, yy).getMark("Route"); } } } } exportData(); }
public void activate() { super.activate(); initExportData(); new Initialiseur(); // Initialize simulation x = Integer.parseInt( Initialiseur.getChamp( "Largeur", new File( Configuration.pathToRessources + "/environnements/" + Configuration.environnementACharger + Configuration.getExtension()))[0]); y = Integer.parseInt( Initialiseur.getChamp( "Hauteur", new File( Configuration.pathToRessources + "/environnements/" + Configuration.environnementACharger + Configuration.getExtension()))[0]); /*Reglages sur les civilisations*/ for (int i = 0; i < Configuration.civilisations.size(); i++) { Configuration.civilisations.get(i).postWorldSetup(); } /*Init pheromons*/ for (int i = 0; i < Configuration.itemsPheromones.size(); i++) { this.addFlavor(Configuration.itemsPheromones.get(i).getNom()); } // System.out.println(Configuration.environnementACharger); if (Configuration.environnementACharger != null) { // System.out.println("Chargement de l'environnement"); HashMap<Integer, Terrain> typeTerrains = new HashMap<Integer, Terrain>(); ArrayList<String[]> listeTerrains = Initialiseur.getListeChamp( "Terrain", new File( Configuration.pathToRessources + "/environnements/" + Configuration.environnementACharger + Configuration.getExtension())); for (int i = 0; i < listeTerrains.size(); i++) { // System.out.println("hash "+i+" "+listeTerrains.get(i)[0]+" // "+Configuration.getTerrainByName(listeTerrains.get(i)[0])); typeTerrains.put(i, Configuration.getTerrainByName(listeTerrains.get(i)[0])); // System.out.println(typeTerrains.get(i) + typeTerrains.get(i).getCouleur().toString()); } ArrayList<String[]> terrains = Initialiseur.getListeChamp( "Rang", new File( Configuration.pathToRessources + "/environnements/" + Configuration.environnementACharger + Configuration.getExtension())); for (int i = 0; i < x; i++) { for (int j = 0; j < y; j++) { Terrain t = typeTerrains.get(Integer.parseInt(terrains.get(y - j - 1)[i])); this.getPatch(i, j).setColor(t.getCouleur()); for (int k = 0; k < t.getPheromones().size(); k++) { this.getPatch(i, j) .dropPheromone( t.getPheromones().get(k).getNom(), t.getPheroInitiales().get(k).floatValue()); } } } /* AddOn a = new AddOn(); TurtleGenerator.getInstance().createTurtle(a); */ } else { /*Old World Generator*/ // TODO : Adapt to Metaciv /* int posX; int posY; for(int i=0;i<this.getWidth();i++) for(int j=0;j<this.getHeight();j++) this.grid[i][j].setColor(ColorOcean); for (int i=0; i<nContinents;i++) { genererContinents((int)(Math.random()*this.getWidth()) , (int)(Math.random()*this.getHeight()) , 5000 , 8); } dessinerLesCotes(); for (int i=0; i< nMontagnes;i++) { do { posX = (int)(Math.random()*this.getWidth()); posY = (int)(Math.random()*this.getHeight()); } while (this.grid[posX][posY].getColor() == ColorOcean); genererMassifMontagneux(posX, posY, 300); } for (int i=0; i< nForets;i++) { do { posX = (int)(Math.random()*this.getWidth()); posY = (int)(Math.random()*this.getHeight()); } while (this.grid[posX][posY].getColor() == ColorOcean); genererForet(posX, posY, 200, 3); } for (int i=0; i< nDesertsNord;i++) { posX = (int)(Math.random()*this.getWidth()); genererDesert(posX, 200, 3, 23.6); } for (int i=0; i< nDesertsSud;i++) { posX = (int)(Math.random()*this.getWidth()); genererDesert(posX, 200, 3, -23.6); } for (int i=0; i< nFleuves;i++) { do { posX = (int)(Math.random()*this.getWidth()); posY = (int)(Math.random()*this.getHeight()); } while (this.grid[posX][posY].getColor() != ColorCollines); while (genererFleuves(posX, posY) == false) { do { posX = (int)(Math.random()*this.getWidth()); posY = (int)(Math.random()*this.getHeight()); } while (this.grid[posX][posY].getColor() != ColorCollines); } } genererLittoral(); initialiserRessources();*/ } // System.out.println("---End World Setup---"); }