Esempio n. 1
0
    // Perimeter
    protected bool ConvertPerimeterWall(VirtualMap map, VirtualCell conversion_cell)
    {
        if (!behaviour.usePerimeter)
        {
            return(false);
        }
        if (map.LocationIsInPerimeter(conversion_cell.location))
        {
            conversion_cell.Type = VirtualCell.CellType.PerimeterWall;

            if (conversion_cell.location.x == 0)
            {
                conversion_cell.Orientation = VirtualMap.DirectionType.East;
            }
            else if (conversion_cell.location.x == map.Width - 1)
            {
                conversion_cell.Orientation = VirtualMap.DirectionType.West;
            }
            else if (conversion_cell.location.y == 0)
            {
                conversion_cell.Orientation = VirtualMap.DirectionType.North;
            }
            else if (conversion_cell.location.y == map.Height - 1)
            {
                conversion_cell.Orientation = VirtualMap.DirectionType.South;
            }
            return(true);
        }
        return(false);
    }
Esempio n. 2
0
 protected bool ConvertPerimeterColumn(VirtualMap map, VirtualCell conversion_cell)
 {
     if (!behaviour.usePerimeter)
     {
         return(false);
     }
     if (behaviour.internalPerimeter)
     {
         // Internal perimeter: we check that we have nothing towards the outside
         // TODO:
     }
     else
     {
         // External perimeter: we place a perimeter around the whole map
         if (map.LocationIsInPerimeter(conversion_cell.location))
         {
             conversion_cell.Type = VirtualCell.CellType.PerimeterColumn;
             return(true);
         }
     }
     return(false);
 }