Exemple #1
0
        public bool HoleFree(LinkedRoom level, Hole hole)
        {
            Vector2 outward = hole.Side.Unit() * (hole.Side == ScreenDirection.Up || hole.Side == ScreenDirection.Down ? 180 : 320);
            Vector2 pt1v    = hole.LowCoord(level.Bounds) + outward;
            Vector2 pt2v    = hole.HighCoord(level.Bounds) + outward;
            Point   pt1     = new Point((int)pt1v.X, (int)pt1v.Y);
            Point   pt2     = new Point((int)pt2v.X, (int)pt2v.Y);

            foreach (var room in this.Rooms)
            {
                if (room.Bounds.Contains(pt1))
                {
                    return(false);
                }
            }
            foreach (var room in this.Rooms)
            {
                if (room.Bounds.Contains(pt2))
                {
                    return(false);
                }
            }
            return(true);
        }