Files
MaaAssistantArknights/src/MeoAssistant/ItemConfiger.h
2022-09-04 01:30:53 +08:00

48 lines
1.5 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#pragma once
#include "AbstractConfigerWithTempl.h"
#include <unordered_map>
#include <unordered_set>
#include <vector>
namespace asst
{
class ItemConfiger final : public SingletonHolder<ItemConfiger>, public AbstractConfigerWithTempl
{
public:
virtual ~ItemConfiger() override = default;
const std::string& get_item_name(const std::string& id) const noexcept
{
if (id.empty()) {
static const std::string unknown = "Unknown";
return unknown;
}
if (auto iter = m_item_name.find(id); iter != m_item_name.cend()) {
return iter->second;
}
else {
static const std::string empty;
return empty;
}
}
const auto& get_all_item_id() const noexcept { return m_all_item_id; }
virtual const std::unordered_set<std::string>& get_templ_required() const noexcept override
{
return get_all_item_id();
}
const auto& get_ordered_material_item_id() const noexcept { return m_ordered_material_item_id; }
protected:
virtual bool parse(const json::value& json) override;
// key材料编号Idvalue材料名zhutf8
std::unordered_map<std::string, std::string> m_item_name;
std::unordered_set<std::string> m_all_item_id;
std::vector<std::string> m_ordered_material_item_id;
};
inline static auto& ItemData = ItemConfiger::get_instance();
}