From a8dced21f1b66b93704a19f8c9d9604ccf7a284c Mon Sep 17 00:00:00 2001 From: adrienmalin <41926238+adrienmalin@users.noreply.github.com> Date: Wed, 16 Jan 2019 18:29:51 +0100 Subject: [PATCH] prepare rotate to be moved in main class --- source/Tetrominos/TetroO.gd | 6 +++--- source/Tetrominos/Tetromino.gd | 36 +++++++++++++++++----------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/source/Tetrominos/TetroO.gd b/source/Tetrominos/TetroO.gd index 90bfd8f..9808e70 100644 --- a/source/Tetrominos/TetroO.gd +++ b/source/Tetrominos/TetroO.gd @@ -1,5 +1,5 @@ extends "Tetromino.gd" -func rotate(direction): - return false - \ No newline at end of file +const CLOCKWISE = -1 +const COUNTERCLOCKWISE = 1 +const SUPER_ROTATION_SYSTEM = [{CLOCKWISE: [], COUNTERCLOCKWISE: []}] diff --git a/source/Tetrominos/Tetromino.gd b/source/Tetrominos/Tetromino.gd index 723aec8..f06b47f 100644 --- a/source/Tetrominos/Tetromino.gd +++ b/source/Tetrominos/Tetromino.gd @@ -101,24 +101,24 @@ func move(movement): return false func rotate(direction): - var t = get_translations() - var rotated_translations = [t[0]] - for i in range(1, NB_MINOES): - var v = t[i] - v -= t[0] - v = Vector3(-1*direction*v.y, direction*v.x, 0) - v += t[0] - rotated_translations.append(v) - var movements = SUPER_ROTATION_SYSTEM[orientation][direction] - for i in range(movements.size()): - if grid_map.possible_positions(rotated_translations, movements[i]): - orientation = (orientation - direction) % NB_MINOES - set_translations(rotated_translations) - translate(movements[i]) - lock_delay.start() - if i == 4: - rotation_point_5_used = true - return true + var rotations = SUPER_ROTATION_SYSTEM[orientation][direction] + if rotations: + var translations = get_translations() + var rotated_translations = [translations[0]] + for i in range(1, NB_MINOES): + var rotated_translation = translations[i] - translations[0] + rotated_translation = Vector3(-1*direction*rotated_translation.y, direction*rotated_translation.x, 0) + rotated_translation += translations[0] + rotated_translations.append(rotated_translation) + for i in range(rotations.size()): + if grid_map.possible_positions(rotated_translations, rotations[i]): + orientation = (orientation - direction) % NB_MINOES + set_translations(rotated_translations) + translate(rotations[i]) + lock_delay.start() + if i == 4: + rotation_point_5_used = true + return true return false func t_spin():