var _grid_final_x_row: int = 0
var num_pieces: int = 0
+const start_pos: Vector2i = Vector2i(5, 2)
func _ready() -> void:
assert(piece_catalogue.size() >= 1, "Expected at least one piece in catalogue")
_move(Vector2i(1, 0))
if event.is_action_pressed("player_up"):
- # TODO: rotate
- pass
+ if _player_piece:
+ _player_piece.rotate_left()
+ print(_player_piece.to_string())
if event.is_action("player_down"):
_move(Vector2i(0, 1))
piece.block_size = block_size
# TODO: start piece at center of board
- _player_position = Vector2i(5, 0)
+ _player_position = start_pos
piece.position = _player_position * block_size
_player_piece = piece
var new_player_position: Vector2i = _player_position + v
# for each cell in the block, offset it by new position and check for collision
- for pos: Vector2i in _player_piece.cell_grid:
+ for pos: Vector2i in _player_piece.get_cell_grid():
pos += new_player_position
if pos.x < 0 or pos.x >= _grid_final_x_row:
# ignore input that moves beyond lateral boundaries
_player_piece.position = _player_position * block_size
# if any cell's at the bottom of the grid, we're done
- for pos: Vector2i in _player_piece.cell_grid:
+ for pos: Vector2i in _player_piece.get_cell_grid():
pos += _player_position
if (pos.y >= _grid_final_y_row - 1):
end_round.emit()
+
func _on_end_round():
# fill in collision grid with piece cells
- for pos: Vector2i in _player_piece.cell_grid:
+ for pos: Vector2i in _player_piece.get_cell_grid():
pos += _player_position
_set_grid_position(pos, true)