#pragma once
#include <map>

#include "GridSystem/WorldTile.h"


class GroundTileType;

class GroundTileTypeManager
{
public:
	static GroundTileTypeManager* GetInstance();
	static void DestroyInstance();
	
		GroundTileType* AIR;
		GroundTileType* DIRT;

		GroundTileType* STONE;
		GroundTileType* LAVA;

		GroundTileType* IRON;
		GroundTileType* BRONZE;
		GroundTileType* GOLD;

		GroundTileType* HARD_LEFT;
		GroundTileType* HARD_RIGHT;
		GroundTileType* HARD_MIDDLE;

		GroundTileType* GRASS;

	
	//
	// static GroundTileType* AIR{ nullptr };
	//
	//
	// static std::map<GroundTileType *, float> GroundTileWeights {
	// 	{ Tiles::AIR, 0.2f },
	// 	{ Tiles::DIRT, 0.5f },
	// 	{ Tiles::Special::GRASS, 0.0f },
	// 	{ Tiles::Hazards::STONE, 0.025f },
	// 	{ Tiles::Hazards::LAVA, 0.01f },
	// 	{ Tiles::Special::HARD_LEFT, 0.0f },
	// 	{ Tiles::Special::HARD_MIDDLE, 0.0f },
	// 	{ Tiles::Special::HARD_RIGHT, 0.0f },
	// 	{ Tiles::Ores::BRONZE, 0.05f },
	// 	{ Tiles::Ores::GOLD, 0.02f },
	// 	{ Tiles::Ores::IRON, 0.1f },
	// };

private:
	GroundTileTypeManager();
	~GroundTileTypeManager();

	static GroundTileTypeManager* m_pInstance;
	
};
