#pragma once
#include "Assets/Map.h"
#include <string>
#include "Mechanics/MilitaryBuilding.h"

namespace mechanics {
	class Object;
	class Townsfolk;
	class TownBuilding;
	class Wildling;
	class Den;
}

mechanics::Object *createObject(std::string ID, ObjectType type);
mechanics::Townsfolk *createTownsfolk();
mechanics::TownBuilding *createTownBuilding(const std::string &ID);
mechanics::MilitaryBuilding *createMilitaryBuilding(const std::string &ID);
mechanics::Wildling *createWildling(std::string ID, int level);
mechanics::Item *createItem(std::string ID);
void createMap(assets::Map &given_provider);
