public void RemoveEntity(Entity entity) { Coordinate currentCoordinate = m_EntityToCoordinate[entity]; m_EntityToCoordinate.Remove(entity); m_CoordinateToEntities[currentCoordinate].Remove(entity); m_Entities.Remove(entity); StoreDidUpdate?.Invoke(); }
public void AddEntity(Entity entity, Coordinate coordinate) { if (!m_CoordinateToEntities.ContainsKey(coordinate)) { m_CoordinateToEntities[coordinate] = new List <Entity>(); } m_CoordinateToEntities[coordinate].Add(entity); m_EntityToCoordinate.Add(entity, coordinate); m_Entities.Add(entity); StoreDidUpdate?.Invoke(); }
public void MoveEntity(Entity entity, Coordinate coordinate) { Coordinate previousCoordinate = m_EntityToCoordinate[entity]; m_CoordinateToEntities[previousCoordinate].Remove(entity); if (!m_CoordinateToEntities.ContainsKey(coordinate)) { m_CoordinateToEntities[coordinate] = new List <Entity>(); } m_CoordinateToEntities[coordinate].Add(entity); m_EntityToCoordinate[entity] = coordinate; StoreDidUpdate?.Invoke(); }