SetComponent should not require Reads

pull/5/head
Evan Hemsley 2019-11-22 16:43:07 -08:00
parent d45295ae87
commit 038b3aceee
3 changed files with 5 additions and 24 deletions

View File

@ -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;

View File

@ -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<Guid> ComponentIDsByLayer(int layer)
{
return layerIndexToComponentIDs.ContainsKey(layer) ?

View File

@ -522,18 +522,7 @@ namespace Encompass
if (component is IDrawableComponent drawableComponent)
{
if (HasComponent<TComponent>(entity))
{
var currentComponent = GetComponent<TComponent>(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<TComponent>(entity)) { return false; }
var (componentID, _) = GetComponentHelper<TComponent>(entity);
var (componentID, component) = GetComponentHelper<TComponent>(entity);
RemoveComponent(componentID);
return true;