From f328f1e1eeaa0d0084975dcdb75bad3c0ed1d283 Mon Sep 17 00:00:00 2001 From: Brent Farris Date: Wed, 12 Jun 2024 17:10:10 -0500 Subject: [PATCH] Fixing hierarchy listing of deleted objects --- src/editor/ui/hierarchy/hierarchy_window.go | 5 ++++- src/editor/viewport/tools/deleter/delete_history.go | 2 ++ src/engine/entity.ed.go | 3 ++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/editor/ui/hierarchy/hierarchy_window.go b/src/editor/ui/hierarchy/hierarchy_window.go index bf907b58..5576a2a7 100644 --- a/src/editor/ui/hierarchy/hierarchy_window.go +++ b/src/editor/ui/hierarchy/hierarchy_window.go @@ -130,12 +130,15 @@ func (h *Hierarchy) orderEntitiesVisually() []entityEntry { entries := make([]entityEntry, 0, len(allEntities)) roots := make([]*engine.Entity, 0, len(allEntities)) for _, entity := range allEntities { - if entity.IsRoot() { + if entity.IsRoot() && !entity.EditorBindings.IsDeleted { roots = append(roots, entity) } } var addChildren func(*engine.Entity) addChildren = func(entity *engine.Entity) { + if entity.EditorBindings.IsDeleted { + return + } entries = append(entries, entityEntry{entity, false}) for _, c := range entity.Children { addChildren(c) diff --git a/src/editor/viewport/tools/deleter/delete_history.go b/src/editor/viewport/tools/deleter/delete_history.go index 2f77414e..c97071d8 100644 --- a/src/editor/viewport/tools/deleter/delete_history.go +++ b/src/editor/viewport/tools/deleter/delete_history.go @@ -51,6 +51,7 @@ type deleteHistory struct { func (h *deleteHistory) Redo() { for _, e := range h.entities { draws := e.EditorBindings.Drawings() + e.EditorBindings.IsDeleted = true for _, d := range draws { d.ShaderData.Deactivate() } @@ -67,6 +68,7 @@ func (h *deleteHistory) Redo() { func (h *deleteHistory) Undo() { for _, e := range h.entities { draws := e.EditorBindings.Drawings() + e.EditorBindings.IsDeleted = false for _, d := range draws { d.ShaderData.Activate() } diff --git a/src/engine/entity.ed.go b/src/engine/entity.ed.go index 08668eb4..80c89aa5 100644 --- a/src/engine/entity.ed.go +++ b/src/engine/entity.ed.go @@ -54,7 +54,8 @@ const ( ) type entityEditorBindings struct { - data map[string]any + data map[string]any + IsDeleted bool } func (e *entityEditorBindings) init() {