| 688 | } |
| 689 | |
| 690 | void Object::readStoredData(Json const& diskStore) { |
| 691 | setUniqueId(diskStore.optString("uniqueId")); |
| 692 | setTilePosition(jsonToVec2I(diskStore.get("tilePosition"))); |
| 693 | setOrientationIndex(jsonToSize(diskStore.get("orientationIndex"))); |
| 694 | m_direction.set(DirectionNames.getLeft(diskStore.getString("direction"))); |
| 695 | |
| 696 | m_interactive.set(diskStore.getBool("interactive", !configValue("interactAction", Json()).isNull())); |
| 697 | |
| 698 | m_scriptComponent.setScriptStorage(diskStore.getObject("scriptStorage", JsonObject())); |
| 699 | |
| 700 | JsonArray inputNodes = diskStore.getArray("inputWireNodes"); |
| 701 | for (size_t i = 0; i < m_inputNodes.size(); ++i) { |
| 702 | if (i < inputNodes.size()) { |
| 703 | auto& in = m_inputNodes[i]; |
| 704 | List<WireConnection> connections; |
| 705 | for (auto const& conn : inputNodes[i].getArray("connections")) |
| 706 | connections.append(WireConnection{jsonToVec2I(conn.get(0)), (size_t)conn.get(1).toUInt()}); |
| 707 | in.connections.set(std::move(connections)); |
| 708 | in.state.set(inputNodes[i].getBool("state")); |
| 709 | } |
| 710 | } |
| 711 | |
| 712 | JsonArray outputNodes = diskStore.getArray("outputWireNodes"); |
| 713 | for (size_t i = 0; i < m_outputNodes.size(); ++i) { |
| 714 | if (i < outputNodes.size()) { |
| 715 | auto& in = m_outputNodes[i]; |
| 716 | List<WireConnection> connections; |
| 717 | for (auto const& conn : outputNodes[i].getArray("connections")) |
| 718 | connections.append(WireConnection{jsonToVec2I(conn.get(0)), (size_t)conn.get(1).toUInt()}); |
| 719 | in.connections.set(std::move(connections)); |
| 720 | in.state.set(outputNodes[i].getBool("state")); |
| 721 | } |
| 722 | } |
| 723 | } |
| 724 | |
| 725 | Json Object::writeStoredData() const { |
| 726 | JsonArray inputNodes; |
no test coverage detected