From 038b3aceeea648cf97fe5ec014126edff206b656 Mon Sep 17 00:00:00 2001 From: Evan Hemsley Date: Fri, 22 Nov 2019 16:43:07 -0800 Subject: [PATCH] SetComponent should not require Reads --- encompass-cs/ComponentManager.cs | 5 ----- encompass-cs/DrawLayerManager.cs | 8 ++------ encompass-cs/Engine.cs | 16 +++------------- 3 files changed, 5 insertions(+), 24 deletions(-) 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;