public static PlacementCheckResult GetIntersections(GridTransform transform) { PlacementCheckResult result = new PlacementCheckResult(); List <Point> occupiedPoints = transform.GetOccupiedTiles().ToList(); foreach (Machine m1 in GetInstance().m_machines) { List <Point> intersections = m1.GetOccupiedTiles().Intersect(occupiedPoints).ToList(); if (intersections.Count > 0) { result._intersectingMachines.Add(m1); result._intersectingPoints.AddRange(intersections); } } foreach (Conveyor c in GetInstance().m_conveyors) { List <Point> intersections = c.GetOccupiedTiles().Intersect(occupiedPoints).ToList(); if (intersections.Count > 0) { result._intersectingConveyors.Add(c); result._intersectingPoints.AddRange(intersections); } } return(result); }
public IEnumerable <Point> GetOccupiedTiles() { return(_gridTransform.GetOccupiedTiles()); }