#include "ground-atlas.hpp" #include "compat/exception.hpp" #include "compat/borrowed-ptr.inl" #include "src/ground-atlas.hpp" #include "src/ground-def.hpp" #include "loader/loader.hpp" #include "loader/ground-cell.hpp" #include "serialize/corrade-string.hpp" #include "serialize/magnum-vector.hpp" #include "serialize/pass-mode.hpp" #include #include #include #include namespace nlohmann { using namespace floormat; void adl_serializer::to_json(json& j, const ground_def& x) { using nlohmann::to_json; j = std::tuple{x.name, x.size, x.pass}; } void adl_serializer::from_json(const json& j, ground_def& val) { using nlohmann::from_json; val = {}; val.name = j["name"]; val.size = j["size"]; if (j.contains("pass-mode")) val.pass = j["pass-mode"]; } void adl_serializer::to_json(json& j, const ground_cell& x) { j = std::tuple{x.name, x.size, x.pass}; } void adl_serializer::from_json(const json& j, ground_cell& val) { using nlohmann::from_json; val = {}; val.name = j["name"]; fm_soft_assert(loader.check_atlas_name(val.name)); val.size = j["size"]; if (j.contains("pass-mode")) val.pass = j["pass-mode"]; } void adl_serializer>::to_json(json& j, const bptr& x) { j = std::tuple{x->name(), x->num_tiles2(), x->pass_mode()}; } void adl_serializer>::from_json(const json& j, bptr& val) { ground_def def = j; val = bptr(InPlace, move(def), loader.texture(loader.GROUND_TILESET_PATH, def.name)); } } // namespace nlohmann