Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
        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();
        }