예제 #1
0
    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);
    }
예제 #2
0
파일: Machine.cs 프로젝트: mahibak/idlorio
 public IEnumerable <Point> GetOccupiedTiles()
 {
     return(_gridTransform.GetOccupiedTiles());
 }