namespace Ragon.Core.Game; public class EntityList { private List _dynamicEntitiesList = new List(); private List _staticEntitesList = new List(); private Dictionary _entitiesMap = new Dictionary(); public IReadOnlyList StaticList => _staticEntitesList; public IReadOnlyList DynamicList => _dynamicEntitiesList; public IReadOnlyDictionary Map => _entitiesMap; public void Add(Entity entity) { if (entity.StaticId != 0) _staticEntitesList.Add(entity); else _dynamicEntitiesList.Add(entity); _entitiesMap.Add(entity.Id, entity); } public Entity Remove(Entity entity) { if (_entitiesMap.Remove(entity.Id, out var existEntity)) { _staticEntitesList.Remove(entity); _dynamicEntitiesList.Remove(entity); return existEntity; } return null; } }