#pragma once #include #include #include "WarehouseT.h" enum class BuildingTypeT {FARM, LUMBERJACK, MINE, SAWMILL, MINT, KITCHEN, FACTORY}; std::string BulidingTTypeToString(BuildingTypeT t); std::ostream & operator << (std::ostream & s, BuildingTypeT t); class BuildingT { public: BuildingT(WarehouseT & w, BuildingTypeT t); static bool CanBuild(WarehouseT w, BuildingTypeT t); virtual int WorkersNeeded(void) const = 0; std::string Type() const; protected: WarehouseT & warehouse; private: BuildingTypeT myType; };