Exemplo n.º 1
0
        public static List <ILineObstacle> GetBlockLines(Block block, int layer)
        {
            var obstacles = new List <ILineObstacle>();

            block.GetCollision(obstacles, false);
            if (obstacles.Count == 0)
            {
                obstacles.Add(LineObstacle.DefaultLeft((int)block.Position.X, (int)block.Position.Y, layer));
                obstacles.Add(LineObstacle.DefaultTop((int)block.Position.X, (int)block.Position.Y, layer));
                obstacles.Add(LineObstacle.DefaultRight((int)block.Position.X, (int)block.Position.Y, layer));
                obstacles.Add(LineObstacle.DefaultBottom((int)block.Position.X, (int)block.Position.Y, layer));
            }
            return(obstacles);
        }
Exemplo n.º 2
0
        private static void AddLine(Vector2 key, LineObstacle line, IDictionary <Vector2, List <LineObstacle> > points)
        {
            List <LineObstacle> segments;

            if (points.TryGetValue(key, out segments))
            {
                if (!segments.Contains(line))
                {
                    segments.Add(line);
                }
            }
            else
            {
                segments = new List <LineObstacle> {
                    line
                };
                points.Add(key, segments);
            }
        }