fix bug where splitter filters were not taken over to blueprint
This commit is contained in:
@@ -51,6 +51,24 @@ std::string serialize(const std::vector<Blueprint>& blueprints)
|
||||
bldTbl.insert("offset_x", static_cast<int64_t>(b.offset.x()));
|
||||
bldTbl.insert("offset_y", static_cast<int64_t>(b.offset.y()));
|
||||
bldTbl.insert("recipe_id", b.recipeId);
|
||||
if (!b.splitterFilterA.empty())
|
||||
{
|
||||
toml::array filterArr;
|
||||
for (const ItemType& item : b.splitterFilterA)
|
||||
{
|
||||
filterArr.push_back(item.id);
|
||||
}
|
||||
bldTbl.insert("filter_a", std::move(filterArr));
|
||||
}
|
||||
if (!b.splitterFilterB.empty())
|
||||
{
|
||||
toml::array filterArr;
|
||||
for (const ItemType& item : b.splitterFilterB)
|
||||
{
|
||||
filterArr.push_back(item.id);
|
||||
}
|
||||
bldTbl.insert("filter_b", std::move(filterArr));
|
||||
}
|
||||
if (b.shipLayout.has_value())
|
||||
{
|
||||
toml::array modArr;
|
||||
@@ -138,6 +156,28 @@ std::vector<Blueprint> deserialize(const std::string& tomlContent)
|
||||
bb.offset.setX(static_cast<int>((*bldTbl)["offset_x"].value_or(int64_t{0})));
|
||||
bb.offset.setY(static_cast<int>((*bldTbl)["offset_y"].value_or(int64_t{0})));
|
||||
bb.recipeId = (*bldTbl)["recipe_id"].value_or(std::string{});
|
||||
|
||||
const toml::array* filterAArr = (*bldTbl)["filter_a"].as_array();
|
||||
if (filterAArr)
|
||||
{
|
||||
for (std::size_t k = 0; k < filterAArr->size(); ++k)
|
||||
{
|
||||
const std::optional<std::string> itemId =
|
||||
(*filterAArr)[k].value<std::string>();
|
||||
if (itemId) { bb.splitterFilterA.push_back(ItemType{*itemId}); }
|
||||
}
|
||||
}
|
||||
const toml::array* filterBArr = (*bldTbl)["filter_b"].as_array();
|
||||
if (filterBArr)
|
||||
{
|
||||
for (std::size_t k = 0; k < filterBArr->size(); ++k)
|
||||
{
|
||||
const std::optional<std::string> itemId =
|
||||
(*filterBArr)[k].value<std::string>();
|
||||
if (itemId) { bb.splitterFilterB.push_back(ItemType{*itemId}); }
|
||||
}
|
||||
}
|
||||
|
||||
const toml::array* modArr = (*bldTbl)["modules"].as_array();
|
||||
if (modArr)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user