Example #1
0
 private static void placeDoor(Vector2Int position, Utils.GlobalDirection wallDirection)
 {
     //For now the door is only a hole 2x2
     placeTileGround(new Vector3Int(position.x, position.y, 0), dungeonAsset.groundTile);
     placeTileGround(new Vector3Int(position.x - 1, position.y, 0), dungeonAsset.groundTile);
     placeTileGround(new Vector3Int(position.x, position.y - 1, 0), dungeonAsset.groundTile);
     placeTileGround(new Vector3Int(position.x - 1, position.y - 1, 0), dungeonAsset.groundTile);
     placeTileWall(new Vector3Int(position.x, position.y, 0), null);
     placeTileWall(new Vector3Int(position.x - 1, position.y, 0), null);
     placeTileWall(new Vector3Int(position.x, position.y - 1, 0), null);
     placeTileWall(new Vector3Int(position.x - 1, position.y - 1, 0), null);
     placeTileWallFront(new Vector3Int(position.x, position.y, 0), null);
     placeTileWallFront(new Vector3Int(position.x - 1, position.y, 0), null);
     placeTileWallFront(new Vector3Int(position.x, position.y - 1, 0), null);
     placeTileWallFront(new Vector3Int(position.x - 1, position.y - 1, 0), null);
     //If is on the left wall
     if (wallDirection == Utils.GlobalDirection.WEST)
     {
         placeTileWall(new Vector3Int(position.x - 1, position.y + 1, 0), dungeonAsset.wallFront);
         placeTileWallFront(new Vector3Int(position.x - 1, position.y - 1, 0), dungeonAsset.wallTop);
     }
     else if (wallDirection == Utils.GlobalDirection.EST)
     {
         placeTileWall(new Vector3Int(position.x, position.y + 1, 0), dungeonAsset.wallFront);
         placeTileWallFront(new Vector3Int(position.x, position.y - 1, 0), dungeonAsset.wallTop);
     }
     else if (wallDirection == Utils.GlobalDirection.NORTH)
     {
     }
     else if (wallDirection == Utils.GlobalDirection.SOUTH)
     {
         placeTileWall(new Vector3Int(position.x - 1, position.y - 1, 0), dungeonAsset.wallLeft);
         placeTileWall(new Vector3Int(position.x, position.y - 1, 0), dungeonAsset.wallRight);
         placeTileWallFront(new Vector3Int(position.x - 1, position.y - 1, 0), null);
         placeTileWallFront(new Vector3Int(position.x, position.y - 1, 0), null);
     }
 }
Example #2
0
    public static bool drawRoom(DungeonAssetModule dungeonAsset, Vector2Int origin, RoomProperty property, Utils.GlobalDirection direction)
    {
        //TODO add logic for room rotation
        DungeonDrawer.dungeonAsset = dungeonAsset;
        CellState[,] cells         = generateCells(property);
        //Ground and Collider draw
        try {
            for (int x = 0; x < property.basicDim.x; x++)
            {
                for (int y = 0; y < property.basicDim.y; y++)
                {
                    switch (cells[x, y])
                    {
                    case CellState.emptyCell:
                        placeTileCollider(new Vector3Int(origin.x + x, origin.y + y, 0),
                                          dungeonAsset.dungeonTiles.groundBase);
                        break;

                    case CellState.groundCell:
                        placeTileGround(new Vector3Int(origin.x + x, origin.y + y, 0),
                                        dungeonAsset.dungeonTiles.groundBase);
                        break;
                    }
                }
            }
            //Wall draw
            for (int x = 0; x < property.basicDim.x; x++)
            {
                for (int y = 0; y < property.basicDim.y; y++)
                {
                    // switch (cells[x, y])
                    // {

                    // }
                }
            }
        } catch (NullReferenceException ex) {
        }
        return(true);
    }