Basic entity highlighting

This commit is contained in:
Simon Lübeß
2023-07-25 19:37:13 +02:00
parent 81a61d5a90
commit ef486b7082
2 changed files with 66 additions and 5 deletions
@@ -21,8 +21,26 @@ namespace GlitchyEditor.EditWindows
private List<Entity> _selectedEntities = new .() ~ delete _;
private Entity _entityToHighlight;
public List<Entity> SelectedEntities => _selectedEntities;
private List<Entity> _entitiesToUnfold = new .() ~ delete _;
public void HighlightEntity(Entity e)
{
_entityToHighlight = e;
Entity walker = _entityToHighlight;
while (walker.Parent != null)
{
walker = walker.Parent.Value;
_entitiesToUnfold.Add(walker);
}
}
public this(Editor editor, Scene scene)
{
_editor = editor;
@@ -322,8 +340,21 @@ namespace GlitchyEditor.EditWindows
if(inSelectedList)
flags |= .Selected;
if (_entitiesToUnfold.Contains(tree.Value))
{
_entitiesToUnfold.Remove(tree.Value);
ImGui.SetNextItemOpen(true, .None);
}
bool isOpen = ImGui.TreeNodeEx((void*)(uint)tree.Value.Handle.[Friend]Index, flags, $"{name}");
if (_entityToHighlight == tree.Value)
{
ImGui.SetScrollHereY(0);
_entityToHighlight = .();
}
ImGui.PushID((void*)(uint)tree.Value.Handle.[Friend]Index);
bool deleted = false;