Exemplo n.º 1
0
        public void replace_surrounding_void(Tile target_tile, bool replace_with_passables)
        {
            gridCoordinate target_grid_c = target_tile.get_grid_c();
            Tile.Tile_Type tileType = target_tile.get_my_tile_type();

            for (int x = Math.Max(0, target_grid_c.x - 1); x < Math.Min(target_grid_c.x + 2, current_floorsize); x++)
                for (int y = Math.Max(0, target_grid_c.y - 1); y < Math.Min(target_grid_c.y + 2, current_floorsize); y++)
                {
                    Tile.Tile_Type target_tiletype = Tile.Tile_Type.Void;
                    if (floorTiles[x][y].isVoid())
                    {
                        if (replace_with_passables)
                        {
                            switch (target_tile.get_my_tile_type())
                            {
                                case Tile.Tile_Type.Abyss:
                                    target_tiletype = Tile.Tile_Type.Natural_Stone_Floor;
                                    break;
                            }
                        }
                        else
                        {
                            switch (target_tile.get_my_tile_type())
                            {
                                //Dirt
                                case Tile.Tile_Type.DirtFloor:
                                    target_tiletype = Tile.Tile_Type.DirtWall;
                                    break;
                                case Tile.Tile_Type.Rubble_Floor:
                                    target_tiletype = Tile.Tile_Type.Rubble_Wall;
                                    break;
                                case Tile.Tile_Type.Gravel:
                                case Tile.Tile_Type.Deep_Water:
                                case Tile.Tile_Type.Shallow_Water:
                                case Tile.Tile_Type.Natural_Stone_Floor:
                                case Tile.Tile_Type.Cavern_Entrance:
                                case Tile.Tile_Type.Cavern_Exit:
                                    target_tiletype = Tile.Tile_Type.Natural_Stone_Wall;
                                    break;
                                //Stone
                                default:
                                    target_tiletype = Tile.Tile_Type.StoneWall;
                                    break;
                            }
                        }
                    }
                    if(target_tiletype != Tile.Tile_Type.Void)
                        floorTiles[x][y].set_tile_type(target_tiletype, universal_spritesheet, dungeon_specific_spritesheet, general_texture_map);
                }
        }