| 391 | } |
| 392 | |
| 393 | void EditorUI::showEditorWorldObjectsWindow(bool* p_open) |
| 394 | { |
| 395 | ImGuiWindowFlags window_flags = ImGuiWindowFlags_None; |
| 396 | |
| 397 | const ImGuiViewport* main_viewport = ImGui::GetMainViewport(); |
| 398 | |
| 399 | if (!*p_open) |
| 400 | return; |
| 401 | |
| 402 | if (!ImGui::Begin("World Objects", p_open, window_flags)) |
| 403 | { |
| 404 | ImGui::End(); |
| 405 | return; |
| 406 | } |
| 407 | |
| 408 | std::shared_ptr<Level> current_active_level = |
| 409 | g_runtime_global_context.m_world_manager->getCurrentActiveLevel().lock(); |
| 410 | if (current_active_level == nullptr) |
| 411 | return; |
| 412 | |
| 413 | const LevelObjectsMap& all_gobjects = current_active_level->getAllGObjects(); |
| 414 | for (auto& id_object_pair : all_gobjects) |
| 415 | { |
| 416 | const GObjectID object_id = id_object_pair.first; |
| 417 | std::shared_ptr<GObject> object = id_object_pair.second; |
| 418 | const std::string name = object->getName(); |
| 419 | if (name.size() > 0) |
| 420 | { |
| 421 | if (ImGui::Selectable(name.c_str(), |
| 422 | g_editor_global_context.m_scene_manager->getSelectedObjectID() == object_id)) |
| 423 | { |
| 424 | if (g_editor_global_context.m_scene_manager->getSelectedObjectID() != object_id) |
| 425 | { |
| 426 | g_editor_global_context.m_scene_manager->onGObjectSelected(object_id); |
| 427 | } |
| 428 | else |
| 429 | { |
| 430 | g_editor_global_context.m_scene_manager->onGObjectSelected(k_invalid_gobject_id); |
| 431 | } |
| 432 | break; |
| 433 | } |
| 434 | } |
| 435 | } |
| 436 | ImGui::End(); |
| 437 | } |
| 438 | |
| 439 | void EditorUI::createClassUI(Reflection::ReflectionInstance& instance) |
| 440 | { |
nothing calls this directly
no test coverage detected