#pragma once
#include "olcUTIL_Geometry2D.h"

struct XMLTag;

enum MapName{
	LEVEL1,
	LEVEL2,
	CAMPAIGN_1_1,
};

struct TileCollisionData{
	geom2d::rect<int>collision;
};

struct TilesetData{
	Renderable*tileset;
	std::map<int,XMLTag>foregroundTiles;
	std::map<int,XMLTag>upperForegroundTiles;
	std::map<int,TileCollisionData>collision;
	std::map<int,XMLTag>staircaseTiles;
};

struct TileRenderData{
	Decal*tileset;
	vi2d pos;
	vi2d tileSheetPos;
};

struct TileGroup{
private:
	geom2d::rect<int>range;
	std::vector<TileRenderData>tiles;
public:
	geom2d::rect<int>GetRange();
	std::vector<TileRenderData>&GetTiles();
	void InsertTile(TileRenderData tile);
	bool playerBehind=false;
};