Skip to content

Commit 4b76da0

Browse files
author
Thomas Ibanez
committed
Merge branch 'ui-features' of github.com:ProtectedVariable/ICE into ui-features
2 parents 8b85171 + 5f41659 commit 4b76da0

File tree

5 files changed

+15
-3
lines changed

5 files changed

+15
-3
lines changed

ICE/Entity/include/Entity.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class EntityManager {
4646
void setSignature(Entity e, Signature s) { signatures[e] = s; }
4747

4848
Signature getSignature(Entity e) const {
49-
if (e == 0) {
49+
if (e == 0 || !signatures.contains(e)) {
5050
return 0;
5151
}
5252
return signatures.at(e);

ICE/Scene/include/Scene.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ class Scene {
3030
Entity createEntity();
3131
void addEntity(Entity e, const std::string& alias, Entity parent);
3232
void removeEntity(Entity e);
33+
bool hasEntity(Entity e);
3334

3435
private:
3536
std::string name;

ICE/Scene/src/Scene.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,9 @@ void Scene::removeEntity(Entity e) {
5757
aliases.erase(e);
5858
m_graph->removeEntity(e);
5959
}
60+
61+
bool Scene::hasEntity(Entity e) {
62+
return aliases.contains(e);
63+
}
64+
6065
} // namespace ICE

ICEBERG/src/Editor.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,10 @@ Editor::Editor(const std::shared_ptr<ICE::ICEEngine>& engine, const std::shared_
1111
m_open_scene_popup(engine) {
1212
m_viewport = std::make_unique<Viewport>(
1313
engine, [this]() { m_inspector->setSelectedEntity(m_hierarchy->getSelectedEntity(), true); },
14-
[this](ICE::Entity e) { m_hierarchy->setSelectedEntity(e); });
14+
[this](ICE::Entity e) {
15+
if (m_engine->getProject()->getCurrentScene()->hasEntity(e))
16+
m_hierarchy->setSelectedEntity(e);
17+
});
1518
m_hierarchy = std::make_unique<Hierarchy>(engine);
1619
m_inspector = std::make_unique<Inspector>(engine);
1720
m_assets = std::make_unique<Assets>(engine, g_factory);

ICEBERG/src/Inspector.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,16 @@ bool Inspector::entityHasChanged() {
3434
}
3535

3636
void Inspector::setSelectedEntity(ICE::Entity e, bool force_refesh) {
37+
if (!m_engine->getProject()->getCurrentScene()->hasEntity(e)) {
38+
return;
39+
}
3740
if (m_selected_entity == e && !force_refesh) {
3841
return;
3942
}
4043
m_entity_has_changed = 0;
4144
m_selected_entity = e;
42-
auto registry = m_engine->getProject()->getCurrentScene()->getRegistry();
4345

46+
auto registry = m_engine->getProject()->getCurrentScene()->getRegistry();
4447
ui.setEntityName(m_engine->getProject()->getCurrentScene()->getAlias(e));
4548
ui.setLightComponent(nullptr);
4649
ui.setRenderComponent(nullptr, {}, {}, {}, {});

0 commit comments

Comments
 (0)