Files
sim/src/interfaces/ICostComponent.h
2025-03-13 23:18:38 +01:00

41 lines
845 B
C++

#ifndef ICOSTCOMPONENT_H
#define ICOSTCOMPONENT_H
#include <bitset>
#include "../model/Community.h"
#include "../Config.h"
class ICostComponent {
protected:
enum NET_LEVEL
{
NetLevel1,
NetLevel2,
NetLevel3,
NetLevel4,
NetLevel5,
NetLevel6,
NetLevel7mp,
NetLevel7op,
NetLevel7unt
};
enum MEASUREMENT_TYPE
{
NIEDER_WANDLERZAEHLER,
MITTLE_WANDLERZAEHLER,
DREHSTROM_ZEAHLUNG
};
public:
std::bitset<MAX_CONDITIONS> applicableConditions;
template<typename... Conditions>
explicit ICostComponent(Conditions... conditions) {
}
virtual ~ICostComponent() = default;
virtual void apply(std::unique_ptr<Building::Base> &building, std::unique_ptr<Community> &community) = 0;
};
#endif //ICOSTCOMPONENT_H