public void Add(Entity e)
{
lock (InterpolatedStates.FlipLocker)
{
lock (ReadBuffers.FlipLocker)
{
if (e.BufferedStates.BufferedStatesManager == null)
{
e.BufferedStates.BufferedStatesManager = this;
e.BufferedStates.motionStateIndex = entities.Count;
entities.Add(e);
if (ReadBuffers.Enabled)
ReadBuffers.Add(e);
if (InterpolatedStates.Enabled)
InterpolatedStates.Add(e);
}
else
throw new InvalidOperationException("Entity already belongs to a BufferedStatesManager; cannot add.");
}
}
}