+ return "%d: %s" % [rotation_degrees, str(get_cell_grid())]
+
+
+func get_cell_grid() -> Array:
+ if rotation_degrees == 0.0:
+ return _cell_grid
+ elif rotation_degrees == 90.0:
+ return _cell_grid.map(func f(v): return Vector2i(v.y, v.x))
+ elif rotation_degrees == 180.0:
+ return _cell_grid.map(func f(v): return Vector2i(-v.x, -v.y))
+ elif rotation_degrees == 270.0:
+ return _cell_grid.map(func f(v): return Vector2i(-v.y, -v.x))
+ else:
+ assert(false, "Invalid rotation: " + str(global_rotation_degrees))
+ return []
+
+
+func rotate_left():
+ _rotation_index += 1
+ rotation_degrees = _rotation_angles[_rotation_index % _rotation_angles.size()]