# mapped to iso_tileset.png # https://youtu.be/dclc8w6JW7Y?si=QSu2dwSILyatO_oa extends TileMap const source_atlas_blue_pos = Vector2i(0, 0) const source_atlas_red_pos = Vector2i(1, 0) const source_atlas_green_pos = Vector2i(2, 0) const source_atlas_orange_pos = Vector2i(6, 0) const source_atlas = 0 #used by the "procgen" const source_atlas_array = [ source_atlas_blue_pos, source_atlas_green_pos, source_atlas_green_pos, # duplicate entry to tweak the generator ] enum Layers { layer0 = 0, layer1 = 1, layer2 = 2, } func _ready() -> void: #for "procgen" var rng: RandomNumberGenerator = RandomNumberGenerator.new() rng.randomize() for i in range(10): for j in range(10): var rand_tile = rng.randf_range(0, source_atlas_array.size()) set_cell(Layers.layer0, Vector2i(i + 30, j + 0), source_atlas, source_atlas_array[rand_tile], 0) func _input(event) -> void: if event is InputEventMouseButton: if event.button_index == MOUSE_BUTTON_LEFT && event.is_pressed(): var clicked_pos = local_to_map(to_local(event.position)) #place a "house" prefab set_cell(Layers.layer1, Vector2i(clicked_pos.x - 1, clicked_pos.y - 1), source_atlas, source_atlas_red_pos, 0) set_cell(Layers.layer2, Vector2i(clicked_pos.x - 2, clicked_pos.y - 2), source_atlas, source_atlas_orange_pos, 0)