// Path: core/src/com/galvarez/ttw/model/data/Empire.java
// public final class Empire extends Component {
// 
//   private static final AtomicInteger COUNTER = new AtomicInteger(0);
// 
//   public final int id;
// 
//   public final Color color;
// 
//   public final Color backColor;
// 
//   public final Culture culture;
// 
//   private final boolean computer;
// 
//   public Empire(Color color, Culture culture, boolean computer) {
//     this.id = COUNTER.getAndIncrement();
//     this.color = color;
//     this.backColor = Colors.contrast(color);
//     this.culture = culture;
//     this.computer = computer;
//   }
// 
//   public boolean isComputerControlled() {
//     return computer;
//   }
// 
//   public Color getColor() {
//     return color;
//   }
// 
//   public Culture getCulture() {
//     return culture;
//   }
// 
//   public String newCityName() {
//     return culture.newCityName();
//   }
// 
//   @Override
//   public boolean equals(Object obj) {
//     if (obj == this)
//       return true;
//     else if (obj instanceof Empire)
//       return id == ((Empire) obj).id;
//     else
//       return false;
//   }
// 
//   @Override
//   public int hashCode() {
//     return id;
//   }
// 
//   @Override
//   public String toString() {
//     return culture.name + "(ia=" + computer + ")";
//   }
// 
// }
// 
// Path: core/src/com/galvarez/ttw/utils/MyMath.java
// public class MyMath {
// 	public static int min(int a, int b) {
// 		if (a < b) return a;
// 		return b;
// 	}
// 	
// 	public static int min(int a, int b, int c) {
// 		if (min(a,b) < c) return min(a,b);
// 		return c;
// 	}
// 	
// 	public static int max(int a, int b) {
// 		if (a > b) return a;
// 		return b;
// 	}
// 	
// 	public static int pow(int a, int b) {
// 		if (b > 1) return a*pow(a,b-1);
// 		else return a;
// 	}
// }


import java.util.Collection;
import com.artemis.Entity;
import com.badlogic.gdx.graphics.Pixmap;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.utils.Array;
import com.galvarez.ttw.model.data.Empire;
import com.galvarez.ttw.utils.MyMath;
package com.galvarez.ttw.model.map;



public final class GameMap {

  public final Terrain[][] map;

  private final Entity[][] entityByCoord;

  private final MapPosition[][] posByCoord;

  private final Influence[][] influenceByCoord;

  public final int width, height;

  /** Represents the whole map as a single image. */
  public final Texture texture;

// Path: core/src/com/galvarez/ttw/model/data/Empire.java
// public final class Empire extends Component {
// 
//   private static final AtomicInteger COUNTER = new AtomicInteger(0);
// 
//   public final int id;
// 
//   public final Color color;
// 
//   public final Color backColor;
// 
//   public final Culture culture;
// 
//   private final boolean computer;
// 
//   public Empire(Color color, Culture culture, boolean computer) {
//     this.id = COUNTER.getAndIncrement();
//     this.color = color;
//     this.backColor = Colors.contrast(color);
//     this.culture = culture;
//     this.computer = computer;
//   }
// 
//   public boolean isComputerControlled() {
//     return computer;
//   }
// 
//   public Color getColor() {
//     return color;
//   }
// 
//   public Culture getCulture() {
//     return culture;
//   }
// 
//   public String newCityName() {
//     return culture.newCityName();
//   }
// 
//   @Override
//   public boolean equals(Object obj) {
//     if (obj == this)
//       return true;
//     else if (obj instanceof Empire)
//       return id == ((Empire) obj).id;
//     else
//       return false;
//   }
// 
//   @Override
//   public int hashCode() {
//     return id;
//   }
// 
//   @Override
//   public String toString() {
//     return culture.name + "(ia=" + computer + ")";
//   }
// 
// }
// 
// Path: core/src/com/galvarez/ttw/utils/MyMath.java
// public class MyMath {
// 	public static int min(int a, int b) {
// 		if (a < b) return a;
// 		return b;
// 	}
// 	
// 	public static int min(int a, int b, int c) {
// 		if (min(a,b) < c) return min(a,b);
// 		return c;
// 	}
// 	
// 	public static int max(int a, int b) {
// 		if (a > b) return a;
// 		return b;
// 	}
// 	
// 	public static int pow(int a, int b) {
// 		if (b > 1) return a*pow(a,b-1);
// 		else return a;
// 	}
// }


// Path: core/src/com/galvarez/ttw/model/map/GameMap.java
import java.util.Collection;
import com.artemis.Entity;
import com.badlogic.gdx.graphics.Pixmap;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.utils.Array;
import com.galvarez.ttw.model.data.Empire;
import com.galvarez.ttw.utils.MyMath;

package com.galvarez.ttw.model.map;



public final class GameMap {

  public final Terrain[][] map;

  private final Entity[][] entityByCoord;

  private final MapPosition[][] posByCoord;

  private final Influence[][] influenceByCoord;

  public final int width, height;

  /** Represents the whole map as a single image. */
  public final Texture texture;

  public final Empire[] empires;