X-Git-Url: http://git.purplebirdman.com/catris.git/blobdiff_plain/c33ce97e5bdcf33bdfec91f58afc055d60c35b95..337edaab89f707658130d1a332cc169180fe9f67:/script/board.gd diff --git a/script/board.gd b/script/board.gd index 4e7e802..bc05616 100644 --- a/script/board.gd +++ b/script/board.gd @@ -41,8 +41,26 @@ func _input(event: InputEvent) -> void: if event.is_action_pressed("player_up"): if _player_piece: - _player_piece.rotate_left() - print(_player_piece.to_string()) + _player_piece.rotate_cells_left() + + # if player piece has cells off to the right or left of the board, + # then shift it back onto the board + var leftmost: int = 0 + var rightmost: int = 0 + for pos: Vector2i in _player_piece.get_cell_grid(): + pos += _player_position # remember, pos is relative! + if pos.x < leftmost: + leftmost = pos.x + elif pos.x > _grid_final_x_row - 1 and pos.x > rightmost: + rightmost = pos.x - _grid_final_x_row - 1 + + + print("l,r: %d, %d" % [leftmost, rightmost]) + + if leftmost < 0: + _move(-Vector2i(leftmost, 0)) + elif rightmost > 0: + _move(-Vector2i(rightmost, 0)) if event.is_action_pressed("player_down"): # move piece to bottom