26 lines
774 B
C++
26 lines
774 B
C++
#include "GrowthRatesBuilder.hpp"
|
|
#include <fstream>
|
|
#include <iostream>
|
|
#include "json.hpp"
|
|
using json = nlohmann::json;
|
|
|
|
CreatureLib::Library::GrowthRateLibrary* GrowthRatesBuilder::Build(const std::string& path) {
|
|
std::ifstream fileStream(path.c_str());
|
|
if (fileStream.fail()) {
|
|
std::cout << "Failed to load Pokemon data file at '" << path << "'\n";
|
|
return nullptr;
|
|
}
|
|
auto lib = new CreatureLib::Library::GrowthRateLibrary();
|
|
json j;
|
|
fileStream >> j;
|
|
|
|
for (const auto& i : j.items()) {
|
|
const auto& name = i.key();
|
|
auto values = i.value();
|
|
lib->AddGrowthRate(ArbUt::StringView(name.c_str()),
|
|
new LookupGrowthRate(values.get<std::vector<uint32_t>>()));
|
|
}
|
|
|
|
return lib;
|
|
}
|