extends Object class_name ObstacleGenerator var map_config : MapGeneratorResource = preload("res://resources/map_generator_resource.tres") var _noise_texture : NoiseTexture2D = preload("res://resources/obstacle_noise.tres") var _tile_map : TileMapLayer var _noise : Noise func _init(tile_map_layer: TileMapLayer): _tile_map = tile_map_layer _noise = _noise_texture.noise _noise.seed = randi() func generate_obstacles(): for i in range(map_config.grid_width): for j in range(map_config.grid_height): var noise = _noise.get_noise_2d(i, j) if noise < 0.20: pass elif noise < 0.55: _draw_tile_from_pool(map_config.atlas_coords["TREE"], Vector2i(i, j)) elif noise < 0.63: _draw_tile_from_pool(map_config.atlas_coords["DEAD_TREE"], Vector2i(i, j)) elif noise < 0.74: _draw_tile_from_pool(map_config.atlas_coords["GRASS"], Vector2i(i, j)) else: _draw_tile_from_pool(map_config.atlas_coords["CAMPSITE"], Vector2i(i, j)) func _draw_tile_from_pool(pool : Array, pos : Vector2i): var choice = pool[randi_range(0, pool.size() - 1)] _tile_map.set_cell(pos, 0, choice)