summaryrefslogtreecommitdiff
path: root/scripts/obstacle_generator.gd
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/obstacle_generator.gd')
-rw-r--r--scripts/obstacle_generator.gd34
1 files changed, 34 insertions, 0 deletions
diff --git a/scripts/obstacle_generator.gd b/scripts/obstacle_generator.gd
new file mode 100644
index 0000000..5b97820
--- /dev/null
+++ b/scripts/obstacle_generator.gd
@@ -0,0 +1,34 @@
+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)
+ print(noise)
+ if noise < 0.25:
+ pass
+ elif noise < 0.5:
+ _draw_tile_from_pool(map_config.atlas_coords["TREE"], Vector2i(i, j))
+ elif noise < 0.65:
+ _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)