package domain;
import domain.Entity;
/**
* A map is an object that groups tiles, obstructions, zones and entities.
* Each map has one tileset.
* Each map points to N entities.
*
* -------- ------- ---------
* |Entity| N...1 | Map | 1...1 |TileSet|
* -------- ------- ---------
*/
public interface Map {
// Default map size
static final int DEFAULT_X = 30;
static final int DEFAULT_Y = 20;
String getMapname();
int getWidth();
int getHeight();
int getNumLayers();
int getStartX();
int getStartY();
int gettile(int x, int y, int i);
void settile(int x, int y, int i, int z);
boolean getobs(int x, int y);
void setobs(int x, int y, int t);
boolean getobspixel(int x, int y);
void render(int x, int y, VImage dest);
String getFilename(); // ??
Vsp getTileSet();
boolean getHorizontalWrapable();
boolean getVerticalWrapable();
Entity[] getEntities();
String getRenderstring();
void setRenderstring(String string);
// Methods related to zones
int getzone(int x, int y);
void setzone(int x, int y, int z);
String getScriptZone(int zone);
int getPercentZone(int zone);
int getMethodZone(int zone);
// Methods related to layers
int getLayerLucent(int layer);
public void setHorizontalWrapable(boolean b);
public void setVerticalWrapable(boolean b);
}