28 void Serialize(
Node& node)
const override
30 node.set_type(NodeType::Array);
31 auto& properties = node.properties();
33 for (
const auto& entry : components)
36 entry_node[
"entity"] << entry.id;
38 component_node << entry.value;
39 entry_node[
"component"] = component_node;
40 properties.push_back({
"", entry_node });
44 void Deserialize(
const Node& node)
override
46 ASSERT(node.type() == NodeType::Array || node.type() == NodeType::Null,
"Expected component storage data to be an array");
47 for (
const auto& [key, entry_node] : node.properties())
51 entry_node[
"entity"] >> entity;
53 entry_node[
"component"] >> component;
54 components.insert_or_assign(entity, std::move(component));
63 void RemoveComponent(uint32_t entity)
override
65 components.erase(entity);