// Path: src/main/java/utilties/entities/Empty.java
// public class Empty extends Entity {
// 
// 
//     /**
//      * Empty Entity.  Placed in a tile without any Objects
//      */
//     public Empty(Point location) {
//         this.location = location;
//         this.entityType = EntityType.EMPTY;
//     }
// 
// }
// 
// Path: src/main/java/utilties/entities/Entity.java
// public abstract class Entity {
// 
//     protected EntityType entityType = null;
// 
//     protected Point location;
// 
//     /*
//     Entity Type enum
//      */
//     public enum EntityType {
//         EMPTY, PLAYER
//     }
// 
// 
//     public void setLocation(Point location) {
//         this.location = location;
//     }
// 
//     public Point getLocation() {
//         return this.location;
//     }
// 
//     public EntityType getEntityType() {
//         return this.entityType;
//     }
// 
// 
// }
// 
// Path: src/main/java/utilties/entities/Player.java
// public class Player extends Entity {
// 
//     private int id;
//     private int health;
//     private int damage;
//     private boolean isShielding;
//     private int shieldStrength;
// 
//     /**
//      * @param id       Player ID
//      * @param location Location of where Player will be added
//      */
//     public Player(int id, Point location) {
//         this.id = id;
//         this.health = 100;
//         this.damage = 10;
//         this.location = location;
//         entityType = EntityType.PLAYER;
//         this.isShielding = false;
//         this.shieldStrength = 5;
//     }
// 
//     /**
//      * Get the ID of the player
//      *
//      * @return ID of player
//      */
//     public int getId() {
//         return this.id;
//     }
// 
//     /**
//      * Get health of Player
//      *
//      * @return Health of Player
//      */
//     public int getHealth() {
//         return this.health;
//     }
// 
// 
//     /**
//      * Set health of player
//      *
//      * @param health Health to change to
//      */
//     public void setHealth(int health) {
//         this.health = health;
//     }
// 
// 
//     public int getDamage() {
//         return damage;
//     }
// 
//     public void setDamage(int damage) {
//         this.damage = damage;
//     }
// 
// 
//     public boolean isShielding() {
//         return isShielding;
//     }
// 
//     public void setShielding(boolean shielding) {
//         isShielding = shielding;
//     }
// 
//     public int getShieldStrength() {
//         return shieldStrength;
//     }
// 
//     public void setShieldStrength(int shieldStrength) {
//         this.shieldStrength = shieldStrength;
//     }
// 
// }


import org.mapeditor.core.Map;
import org.mapeditor.core.MapLayer;
import org.mapeditor.core.Tile;
import org.mapeditor.core.TileLayer;
import utilties.entities.Empty;
import utilties.entities.Entity;
import utilties.entities.Player;
import java.awt.*;
import java.util.ArrayList;
     * @param point
     * @return
     */
    public boolean isInsideMap(Point point) {
        if (point.x >= this._numberOfColumns || point.x < 0
                || point.y >= this._numberOfRows || point.y < 0) {
            return false;
        }
        return true;
    }

    public ArrayList<EntityTile> getPlayers() {
        return _players;
    }

    public EntityTile[][] getEntityTiles() {
        return _entityTiles;
    }

    public Map getMap(){
        return this._gameMap;
    }

    /**
     * Removes tile at specified location from map
     * @param location
     */
    public void removeTile(Point location){
        EntityTile entityTile = this._entityTiles[location.x][location.y];
        getPlayerLayer().removeTile(entityTile.getTile());
// Path: src/main/java/utilties/entities/Empty.java
// public class Empty extends Entity {
// 
// 
//     /**
//      * Empty Entity.  Placed in a tile without any Objects
//      */
//     public Empty(Point location) {
//         this.location = location;
//         this.entityType = EntityType.EMPTY;
//     }
// 
// }
// 
// Path: src/main/java/utilties/entities/Entity.java
// public abstract class Entity {
// 
//     protected EntityType entityType = null;
// 
//     protected Point location;
// 
//     /*
//     Entity Type enum
//      */
//     public enum EntityType {
//         EMPTY, PLAYER
//     }
// 
// 
//     public void setLocation(Point location) {
//         this.location = location;
//     }
// 
//     public Point getLocation() {
//         return this.location;
//     }
// 
//     public EntityType getEntityType() {
//         return this.entityType;
//     }
// 
// 
// }
// 
// Path: src/main/java/utilties/entities/Player.java
// public class Player extends Entity {
// 
//     private int id;
//     private int health;
//     private int damage;
//     private boolean isShielding;
//     private int shieldStrength;
// 
//     /**
//      * @param id       Player ID
//      * @param location Location of where Player will be added
//      */
//     public Player(int id, Point location) {
//         this.id = id;
//         this.health = 100;
//         this.damage = 10;
//         this.location = location;
//         entityType = EntityType.PLAYER;
//         this.isShielding = false;
//         this.shieldStrength = 5;
//     }
// 
//     /**
//      * Get the ID of the player
//      *
//      * @return ID of player
//      */
//     public int getId() {
//         return this.id;
//     }
// 
//     /**
//      * Get health of Player
//      *
//      * @return Health of Player
//      */
//     public int getHealth() {
//         return this.health;
//     }
// 
// 
//     /**
//      * Set health of player
//      *
//      * @param health Health to change to
//      */
//     public void setHealth(int health) {
//         this.health = health;
//     }
// 
// 
//     public int getDamage() {
//         return damage;
//     }
// 
//     public void setDamage(int damage) {
//         this.damage = damage;
//     }
// 
// 
//     public boolean isShielding() {
//         return isShielding;
//     }
// 
//     public void setShielding(boolean shielding) {
//         isShielding = shielding;
//     }
// 
//     public int getShieldStrength() {
//         return shieldStrength;
//     }
// 
//     public void setShieldStrength(int shieldStrength) {
//         this.shieldStrength = shieldStrength;
//     }
// 
// }


// Path: src/main/java/utilties/models/EntityMap.java
import org.mapeditor.core.Map;
import org.mapeditor.core.MapLayer;
import org.mapeditor.core.Tile;
import org.mapeditor.core.TileLayer;
import utilties.entities.Empty;
import utilties.entities.Entity;
import utilties.entities.Player;
import java.awt.*;
import java.util.ArrayList;

     * @param point
     * @return
     */
    public boolean isInsideMap(Point point) {
        if (point.x >= this._numberOfColumns || point.x < 0
                || point.y >= this._numberOfRows || point.y < 0) {
            return false;
        }
        return true;
    }

    public ArrayList<EntityTile> getPlayers() {
        return _players;
    }

    public EntityTile[][] getEntityTiles() {
        return _entityTiles;
    }

    public Map getMap(){
        return this._gameMap;
    }

    /**
     * Removes tile at specified location from map
     * @param location
     */
    public void removeTile(Point location){
        EntityTile entityTile = this._entityTiles[location.x][location.y];
        getPlayerLayer().removeTile(entityTile.getTile());
        this._entityTiles[location.x][location.y] = new EntityTile(location, new Empty(location), getPlayerLayer().getTileAt(location.x, location.y));