public void Remove(BlackEngine.Game.Objects.Object o) { lock (((System.Collections.ICollection)oblectLayerCollection).SyncRoot) foreach (var list in oblectLayerCollection) { foreach (var ph in list.Value) { if (ph == o.physicalObject) { world.Delete(o.physicalObject); list.Value.Remove(ph); return; } } } }
public void Add(BlackEngine.Game.Objects.Object o, int layer = 0) { List <Objects.Object> collection; lock (((System.Collections.ICollection)oblectLayerCollection).SyncRoot) { if (oblectLayerCollection.TryGetValue(layer, out collection)) { collection.Add(o); } else { collection = new List <Objects.Object>(); collection.Add(o); oblectLayerCollection.Add(layer, collection); } } world.Add(o.physicalObject); }