extends TileMap

signal kace_broken
signal has_moved

enum Tile {
	BRICK = 0,
}

enum State {
	DONE,
	MOVING,
}

var current_state = State.DONE

var current_row = 1

var living_cells = {}


func generate_and_move():
	generate_row()
	current_state = State.MOVING
	move()
	current_state = State.DONE

func generate_row():
	for k in range(10):
		set_cell(k, -current_row, Tile.BRICK)


func move():
	current_row += 1
	position.y += cell_size.y


func _ready():
	generate_and_move()


func _on_Ball_kace_contact(contact_pos:Vector2):
	var local_position = to_local(contact_pos)
	var tile_pos = world_to_map(local_position)
	var cell = get_cellv(tile_pos)
	if cell != TileMap.INVALID_CELL and cell == Tile.BRICK:
		set_cellv(tile_pos, -1)
		emit_signal("kace_broken")


func _on_Launcher_is_full():
	generate_and_move()
	emit_signal("has_moved")