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); } }
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); }