CreatureLib/src/Battling/ScriptHandling/ScriptResolver.hpp

35 lines
1.0 KiB
C++

#ifndef CREATURELIB_SCRIPTRESOLVER_HPP
#define CREATURELIB_SCRIPTRESOLVER_HPP
#include <unordered_set>
#include "../../Library/Items/Item.hpp"
#include "BattleScript.hpp"
#include "ItemUseScript.hpp"
#include "ScriptCategory.hpp"
namespace CreatureLib::Battling {
class BattleLibrary;
class ScriptResolver {
public:
ScriptResolver() {}
NO_COPY_OR_MOVE(ScriptResolver);
virtual ~ScriptResolver() = default;
virtual void Initialize([[maybe_unused]] BattleLibrary* non_null library){};
virtual ArbUt::OptionalUniquePtr<BattleScript>
LoadScript([[maybe_unused]] const ArbUt::OptionalBorrowedPtr<void>& owner,
[[maybe_unused]] ScriptCategory category, [[maybe_unused]] const ArbUt::StringView& scriptName) {
return nullptr;
};
virtual ArbUt::OptionalBorrowedPtr<ItemUseScript>
LoadItemScript([[maybe_unused]] const CreatureLib::Library::Item* non_null item) {
return nullptr;
};
};
}
#endif // CREATURELIB_SCRIPTRESOLVER_HPP