public class EntityContainer
{
public GameWorld GW;
public Dictionary<int, BaseEntity> All;
public Dictionary<Segment, List<BaseEntity>> BySegment;
public Dictionary<EntitySchematic, List<BaseEntity>> BySchematic;
public EntityContainer(GameWorld parent)
{
GW = parent;
All = new Dictionary<int, BaseEntity>();
BySegment = new Dictionary<Segment, List<BaseEntity>>();
foreach (Segment segment in GameWorld.Segments)
{
BySegment.Add(segment, new List<BaseEntity>());
}
BySchematic = new Dictionary<EntitySchematic, List<BaseEntity>>();
BySchematic.Add(EntitySchematics.Tree, new List<BaseEntity>());
}
public void AddEntitiy(BaseEntity entity)
{
All.Add(entity.ID, entity);
BySegment[entity.GetSegment()].Add(entity);
BySchematic[entity.Schematic].Add(entity);
}
public void RemoveEntitiy(BaseEntity entity)
{
All.Remove(entity);
BySegment[entity.GetSegment()].Remove(entity);
BySchematic[entity.Schematic].Remove(entity);
}
}