CreatureLib/src/Battling/ScriptHandling/ScriptSet.hpp

37 lines
869 B
C++
Raw Normal View History

#ifndef CREATURELIB_SCRIPTSET_HPP
#define CREATURELIB_SCRIPTSET_HPP
#include <any>
#include <unordered_map>
#include "Script.hpp"
namespace CreatureLib::Battling{
class ScriptSet{
std::unordered_map<std::string, Script*> _scripts;
public:
void Add(Script* script){
auto f = _scripts.find(script->GetName());
if (f != _scripts.end()){
f->second->Stack();
}
else{
_scripts.insert({script->GetName(), script});
}
}
void Remove(const std::string& key){
_scripts.erase(key);
}
2019-11-09 11:15:45 +00:00
size_t Count() const{
return _scripts.size();
}
const std::unordered_map<std::string, Script *> * GetIterator() const{
2019-11-09 11:15:45 +00:00
return &_scripts;
}
};
}
#endif //CREATURELIB_SCRIPTSET_HPP