#include "Map.h"
#include "Crawler.h"

INCLUDE_game

float TileGroup::FADE_TIME=0.3;
uint8_t TileGroup::FADE_AMT=160;

void TileGroup::InsertTile(TileRenderData tile){
	if(tiles.size()==0){
		range={tile.pos,{game->GetCurrentMap().tilewidth,game->GetCurrentMap().tilewidth}};
		minX=tile.pos.x;
		maxX=minX+game->GetCurrentMap().tilewidth;
		minY=tile.pos.y;
		maxY=minY+game->GetCurrentMap().tilewidth;
	} else {
		if(tile.pos.x<minX){
			minX=tile.pos.x;
		}
		if(tile.pos.x+game->GetCurrentMap().tilewidth>maxX){
			maxX=tile.pos.x+game->GetCurrentMap().tilewidth;
		}
		if(tile.pos.y<minY){
			minY=tile.pos.y;
		}
		if(tile.pos.y+game->GetCurrentMap().tilewidth>maxY){
			maxY=tile.pos.y+game->GetCurrentMap().tilewidth;
		}
		range={{minX,minY},{maxX-minX,maxY-minY}};
	}
	tiles.push_back(tile);
}

geom2d::rect<int>TileGroup::GetRange(){
	return range;
}

geom2d::rect<int>TileGroup::GetFadeRange(){
	return {range.pos+vi2d{-24,-24},range.size+vi2d{48,24}};
}

std::vector<TileRenderData>&TileGroup::GetTiles(){
	return tiles;
}