#include "DeerCore/Universe.h" #include "DeerCore/Serialization/World.h" #include "cereal/archives/json.hpp" #include namespace Deer { void Universe::saveWorldInJson(World* world, WorldSerializationSettings& serializationSettings, const Path& path) { std::ofstream file(path); cereal::JSONOutputArchive archive(file); WorldSerialization worldSerialization{ .settings = serializationSettings, .world = world}; archive(cereal::make_nvp("SerializationSettings", serializationSettings)); archive(cereal::make_nvp("World", worldSerialization)); } World* Universe::loadWorldFromJson(const WorldSettings& worldSettings, WorldSerializationSettings& serializationSettings, const Path& path) { std::ifstream file(path); cereal::JSONInputArchive archive(file); World* world = Universe::createWorld(worldSettings); WorldSerialization worldSerialization{ .settings = serializationSettings, .world = world}; archive(cereal::make_nvp("SerializationSettings", serializationSettings)); archive(cereal::make_nvp("World", worldSerialization)); return world; } } // namespace Deer