Example #1
0
 private HallNode generateHallNode(LevelData data, int i, int j)
 {
     HallNode node = new HallNode ();
     if (i - 1 < 0 || (data.wallAt (i - 1, j) && !data.wallAt (i, j)))
         node.setWall (HallNode.Wall.LEFT);
     if (i + 1 >= hallWidth || (data.wallAt (i + 1, j) && !data.wallAt (i, j)))
         node.setWall (HallNode.Wall.RIGHT);
     if (j - 1 < 0 || (data.wallAt (i, j - 1) && !data.wallAt (i, j)))
         node.setWall (HallNode.Wall.TOP);
     if (j + 1 >= hallHeight || (data.wallAt (i, j + 1) && !data.wallAt (i, j)))
         node.setWall (HallNode.Wall.BOTTOM);
     return node;
 }
Example #2
0
 public bool hasWall(HallNode.Wall wall)
 {
     switch (wall) {
     case Wall.LEFT:
         return _left;
     case Wall.RIGHT:
         return _right;
     case Wall.TOP:
         return _top;
     case Wall.BOTTOM:
         return _bottom;
     default:
         return false;
     }
 }
Example #3
0
 public void setWall(HallNode.Wall wall)
 {
     switch (wall) {
     case Wall.LEFT:
         _left = true;
         break;
     case Wall.RIGHT:
         _right = true;
         break;
     case Wall.TOP:
         _top = true;
         break;
     case Wall.BOTTOM:
         _bottom = true;
         break;
     }
 }
Example #4
0
 public void setWallAt(int i, int j, HallNode.Wall wall)
 {
     _nodes [i, j].setWall (wall);
 }
Example #5
0
 public void setHallNode(int i, int j, HallNode node)
 {
     _nodes [i, j] = node;
 }
Example #6
0
 public bool hasWallAt(int i, int j, HallNode.Wall wall)
 {
     return _nodes [i, j].hasWall (wall);
 }
 public WallData(int i, int j, HallNode.Wall wall)
 {
     this.position = new Vector2(i , j);
     this.wall = wall;
 }
    private void generateWallData(int i, int j, Vector2 offset, HallNode.Wall wall)
    {
        if(hall.hasWallAt(i, j, wall)){
            string key = i+","+j;
            string keyPos1 = (i+offset.x)+","+(j+offset.y);
            string keyPos2 = (i-offset.x)+","+(j-offset.y);
            if(hallWalls.ContainsKey(keyPos1) && hallWalls[keyPos1].ContainsKey(wall)){
                hallWalls[keyPos1][wall].beforeLenght++;
                if(hallWalls.ContainsKey(key)){
                    hallWalls[key].Add(wall, hallWalls[keyPos1][wall]);
                }
                else{
                    hallWalls.Add(key, new Dictionary<HallNode.Wall, WallData>());
                    hallWalls[key].Add(wall, hallWalls[keyPos1][wall]);
                    //walls.Add(hallWalls[key][wall]);
                }

            }
            else if(hallWalls.ContainsKey(keyPos2) && hallWalls[keyPos2].ContainsKey(wall)){
                hallWalls[keyPos2][wall].afterLenght++;
                if(hallWalls.ContainsKey(key)){
                    hallWalls[key].Add(wall, hallWalls[keyPos2][wall]);
                }
                else{
                    hallWalls.Add(key, new Dictionary<HallNode.Wall, WallData>());
                    hallWalls[key].Add(wall, hallWalls[keyPos2][wall]);
                    //walls.Add(hallWalls[key][wall]);
                }
            }
            else{
                WallData wallData = new WallData(i, j, wall);
                if(hallWalls.ContainsKey(key)){
                    hallWalls[key].Add(wall, wallData);
                }
                else{
                    Dictionary<HallNode.Wall, WallData> dic = new Dictionary<HallNode.Wall, WallData>();
                    dic.Add(wall, wallData);
                    hallWalls.Add(key, dic);
                }

                walls.Add(wallData);
            }
        }
    }