// Path: core/src/com/galvarez/ttw/model/map/MapPosition.java
// public final class MapPosition extends Component {
// 
//   public final int x, y;
// 
//   public MapPosition(int x, int y) {
//     this.x = x;
//     this.y = y;
//   }
// 
//   @Override
//   public int hashCode() {
//     return x + y * 31;
//   }
// 
//   @Override
//   public boolean equals(Object obj) {
//     if (obj == this)
//       return true;
//     else if (obj instanceof MapPosition) {
//       MapPosition p = (MapPosition) obj;
//       return x == p.x && y == p.y;
//     }
//     return false;
//   }
// 
//   @Override
//   public String toString() {
//     return "(" + x + "," + y + ")";
//   }
// }
// 
// Path: core/src/com/galvarez/ttw/model/map/Terrain.java
// public enum Terrain {
// 
//   DEEP_WATER("deep water", Color.NAVY, 50, false),
// 
//   SHALLOW_WATER("shallow water", Color.BLUE, 30, false),
// 
//   DESERT("desert", Color.YELLOW, 50, false),
// 
//   PLAIN("plain", Color.GREEN, 10, true),
// 
//   GRASSLAND("grassland", new Color(0, 0.5f, 0, 1), 15, true),
// 
//   FOREST("forest", Color.OLIVE, 30, true),
// 
//   HILLS("hills", Color.ORANGE, 30, true),
// 
//   MOUNTAIN("mountain", Color.MAROON, 50, false),
// 
//   ARCTIC("arctic", Color.WHITE, 100, false);
// 
//   private final Color color;
// 
//   private final int moveCost;
// 
//   private final String desc;
// 
//   private final boolean canStart;
// 
//   private Terrain(String desc, Color color, int moveCost, boolean canStart) {
//     this.desc = desc;
//     this.moveCost = moveCost;
//     this.color = color;
//     this.canStart = canStart;
//   }
// 
//   public Color getColor() {
//     return color;
//   }
// 
//   public boolean moveBlock() {
//     return false;
//   }
// 
//   public boolean canStart() {
//     return canStart;
//   }
// 
//   public int moveCost() {
//     return moveCost;
//   }
// 
//   public int getTexture() {
//     return ordinal();
//   }
// 
//   public String getDesc() {
//     return desc;
//   }
// 
// }


import java.util.EnumSet;
import java.util.List;
import java.util.Set;
import com.artemis.Component;
import com.galvarez.ttw.model.map.MapPosition;
import com.galvarez.ttw.model.map.Terrain;
package com.galvarez.ttw.model.components;



/**
 * Store destination (and the path to it) for an entity.
 * 
 * @author Guillaume Alvarez
 */
public final class Destination extends Component {

  public final Set<Terrain> forbiddenTiles;

// Path: core/src/com/galvarez/ttw/model/map/MapPosition.java
// public final class MapPosition extends Component {
// 
//   public final int x, y;
// 
//   public MapPosition(int x, int y) {
//     this.x = x;
//     this.y = y;
//   }
// 
//   @Override
//   public int hashCode() {
//     return x + y * 31;
//   }
// 
//   @Override
//   public boolean equals(Object obj) {
//     if (obj == this)
//       return true;
//     else if (obj instanceof MapPosition) {
//       MapPosition p = (MapPosition) obj;
//       return x == p.x && y == p.y;
//     }
//     return false;
//   }
// 
//   @Override
//   public String toString() {
//     return "(" + x + "," + y + ")";
//   }
// }
// 
// Path: core/src/com/galvarez/ttw/model/map/Terrain.java
// public enum Terrain {
// 
//   DEEP_WATER("deep water", Color.NAVY, 50, false),
// 
//   SHALLOW_WATER("shallow water", Color.BLUE, 30, false),
// 
//   DESERT("desert", Color.YELLOW, 50, false),
// 
//   PLAIN("plain", Color.GREEN, 10, true),
// 
//   GRASSLAND("grassland", new Color(0, 0.5f, 0, 1), 15, true),
// 
//   FOREST("forest", Color.OLIVE, 30, true),
// 
//   HILLS("hills", Color.ORANGE, 30, true),
// 
//   MOUNTAIN("mountain", Color.MAROON, 50, false),
// 
//   ARCTIC("arctic", Color.WHITE, 100, false);
// 
//   private final Color color;
// 
//   private final int moveCost;
// 
//   private final String desc;
// 
//   private final boolean canStart;
// 
//   private Terrain(String desc, Color color, int moveCost, boolean canStart) {
//     this.desc = desc;
//     this.moveCost = moveCost;
//     this.color = color;
//     this.canStart = canStart;
//   }
// 
//   public Color getColor() {
//     return color;
//   }
// 
//   public boolean moveBlock() {
//     return false;
//   }
// 
//   public boolean canStart() {
//     return canStart;
//   }
// 
//   public int moveCost() {
//     return moveCost;
//   }
// 
//   public int getTexture() {
//     return ordinal();
//   }
// 
//   public String getDesc() {
//     return desc;
//   }
// 
// }


// Path: core/src/com/galvarez/ttw/model/components/Destination.java
import java.util.EnumSet;
import java.util.List;
import java.util.Set;
import com.artemis.Component;
import com.galvarez.ttw.model.map.MapPosition;
import com.galvarez.ttw.model.map.Terrain;

package com.galvarez.ttw.model.components;



/**
 * Store destination (and the path to it) for an entity.
 * 
 * @author Guillaume Alvarez
 */
public final class Destination extends Component {

  public final Set<Terrain> forbiddenTiles;

  public MapPosition target;