From bd61ff837235c6d05eb42521c46f1d1c264f89a7 Mon Sep 17 00:00:00 2001 From: roby2014 Date: Thu, 9 Nov 2023 08:23:27 +0000 Subject: [PATCH] refactor(tesseratos): use DataInspector for entity inspector plugin --- .../tesseratos/entity_inspector/plugin.cpp | 35 +++++++++++++------ 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/tools/tesseratos/src/tesseratos/entity_inspector/plugin.cpp b/tools/tesseratos/src/tesseratos/entity_inspector/plugin.cpp index 1f29987611..73d5265015 100644 --- a/tools/tesseratos/src/tesseratos/entity_inspector/plugin.cpp +++ b/tools/tesseratos/src/tesseratos/entity_inspector/plugin.cpp @@ -1,40 +1,53 @@ #include +#include +#include + +#include #include -#include #include #include -using cubos::core::data::old::Context; -using cubos::core::data::old::SerializationMap; using cubos::core::ecs::Entity; using cubos::core::ecs::World; using cubos::core::ecs::Write; +using cubos::core::reflection::reflect; +using cubos::core::reflection::Type; using cubos::engine::Cubos; -using cubos::engine::imguiEditPackage; +using cubos::engine::DataInspector; using namespace tesseratos; static void inspectEntity(Write world) { - auto selection = world->read().get().selection; - ImGui::Begin("Entity Inspector"); if (!ImGui::IsWindowCollapsed()) { - ImGui::BeginTable("showEntity", 2, ImGuiTableFlags_BordersOuter | ImGuiTableFlags_Resizable); + auto selection = world->read().get().selection; if (!selection.isNull() && world->isAlive(selection)) { - auto pkg = world->pack(selection); - if (imguiEditPackage(pkg, std::to_string(selection.index))) + ImGui::Text("Entity %d selected", selection.index); + ImGui::BeginTable("showEntity", 2, ImGuiTableFlags_BordersOuter | ImGuiTableFlags_Resizable); + auto dataInspector = world->write(); + + ImGui::TableNextRow(); + + for (auto [type, value] : world->components(selection)) { - world->unpack(selection, pkg); + if (dataInspector.get().inspect(type->name(), *type, value, false)) + { + // ... + } } + ImGui::EndTable(); + } + else + { + ImGui::Text("No entity selected"); } - ImGui::EndTable(); } ImGui::End(); }