diff --git a/encompass-cs/ComponentManager.cs b/encompass-cs/ComponentManager.cs index f93f41d..f76d76e 100644 --- a/encompass-cs/ComponentManager.cs +++ b/encompass-cs/ComponentManager.cs @@ -77,11 +77,6 @@ namespace Encompass drawLayerManager.RegisterComponentWithLayer(componentID, component.Layer); } - internal void ChangeDrawableComponentLayer(Guid componentID, int layer) - { - drawLayerManager.AdjustComponentLayer(componentID, layer); - } - internal void AddComponent(Entity entity, Type type, Guid componentID, IComponent component) { IDToComponent[componentID] = component; diff --git a/encompass-cs/DrawLayerManager.cs b/encompass-cs/DrawLayerManager.cs index e8f3418..926be6f 100644 --- a/encompass-cs/DrawLayerManager.cs +++ b/encompass-cs/DrawLayerManager.cs @@ -51,6 +51,8 @@ namespace Encompass public void RegisterComponentWithLayer(Guid id, int layer) { + if (componentIDToLayerIndex.ContainsKey(id)) { UnRegisterComponentWithLayer(id); } + if (layerIndexToComponentIDs.ContainsKey(layer)) { var set = layerIndexToComponentIDs[layer]; @@ -81,12 +83,6 @@ namespace Encompass componentIDToLayerIndex.Remove(id); } - public void AdjustComponentLayer(Guid id, int layer) - { - UnRegisterComponentWithLayer(id); - RegisterComponentWithLayer(id, layer); - } - public IEnumerable ComponentIDsByLayer(int layer) { return layerIndexToComponentIDs.ContainsKey(layer) ? diff --git a/encompass-cs/Engine.cs b/encompass-cs/Engine.cs index 9ec8870..274834a 100644 --- a/encompass-cs/Engine.cs +++ b/encompass-cs/Engine.cs @@ -522,18 +522,7 @@ namespace Encompass if (component is IDrawableComponent drawableComponent) { - if (HasComponent(entity)) - { - var currentComponent = GetComponent(entity); - if (((IDrawableComponent)currentComponent).Layer != drawableComponent.Layer) - { - componentManager.ChangeDrawableComponentLayer(componentID, drawableComponent.Layer); - } - } - else - { - componentManager.RegisterDrawableComponent(componentID, drawableComponent); - } + componentManager.RegisterDrawableComponent(componentID, drawableComponent); } } @@ -685,7 +674,8 @@ namespace Encompass { if (!HasComponent(entity)) { return false; } - var (componentID, _) = GetComponentHelper(entity); + var (componentID, component) = GetComponentHelper(entity); + RemoveComponent(componentID); return true;