reverse lookup optimization
parent
a62153730f
commit
0b2ef55634
|
@ -11,10 +11,10 @@ namespace Encompass
|
||||||
|
|
||||||
private readonly Dictionary<Guid, Type> componentIDToType = new Dictionary<Guid, Type>();
|
private readonly Dictionary<Guid, Type> componentIDToType = new Dictionary<Guid, Type>();
|
||||||
private readonly Dictionary<Guid, IComponent> IDToComponent = new Dictionary<Guid, IComponent>();
|
private readonly Dictionary<Guid, IComponent> IDToComponent = new Dictionary<Guid, IComponent>();
|
||||||
private readonly Dictionary<Guid, List<Guid>> entityIDToComponentIDs = new Dictionary<Guid, List<Guid>>(); // TODO: hashset
|
private readonly Dictionary<Guid, HashSet<Guid>> entityIDToComponentIDs = new Dictionary<Guid, HashSet<Guid>>();
|
||||||
private readonly Dictionary<Guid, Guid> componentIDToEntityID = new Dictionary<Guid, Guid>();
|
private readonly Dictionary<Guid, Guid> componentIDToEntityID = new Dictionary<Guid, Guid>();
|
||||||
|
|
||||||
private readonly Dictionary<Type, List<Guid>> typeToComponentIDs = new Dictionary<Type, List<Guid>>(); // TODO: hashset
|
private readonly Dictionary<Type, HashSet<Guid>> typeToComponentIDs = new Dictionary<Type, HashSet<Guid>>();
|
||||||
|
|
||||||
private readonly List<Guid> activeComponents = new List<Guid>();
|
private readonly List<Guid> activeComponents = new List<Guid>();
|
||||||
private readonly List<Guid> inactiveComponents = new List<Guid>();
|
private readonly List<Guid> inactiveComponents = new List<Guid>();
|
||||||
|
@ -42,7 +42,7 @@ namespace Encompass
|
||||||
|
|
||||||
internal void RegisterEntity(Guid entityID)
|
internal void RegisterEntity(Guid entityID)
|
||||||
{
|
{
|
||||||
entityIDToComponentIDs.Add(entityID, new List<Guid>());
|
entityIDToComponentIDs.Add(entityID, new HashSet<Guid>());
|
||||||
}
|
}
|
||||||
|
|
||||||
internal Guid AddComponent<TComponent>(Guid entityID, TComponent component) where TComponent : struct, IComponent
|
internal Guid AddComponent<TComponent>(Guid entityID, TComponent component) where TComponent : struct, IComponent
|
||||||
|
@ -54,7 +54,7 @@ namespace Encompass
|
||||||
|
|
||||||
if (!typeToComponentIDs.ContainsKey(typeof(TComponent)))
|
if (!typeToComponentIDs.ContainsKey(typeof(TComponent)))
|
||||||
{
|
{
|
||||||
typeToComponentIDs.Add(typeof(TComponent), new List<Guid>());
|
typeToComponentIDs.Add(typeof(TComponent), new HashSet<Guid>());
|
||||||
}
|
}
|
||||||
|
|
||||||
typeToComponentIDs[typeof(TComponent)].Add(componentID);
|
typeToComponentIDs[typeof(TComponent)].Add(componentID);
|
||||||
|
|
Loading…
Reference in New Issue