GBGridRotationUtils

AUTO-GENERATED FILE – DO NOT EDIT MANUALLY

Grid-aware object rotation utilities for 2D grid-based games.

Source File: addons/grid_building/utils/gb_grid_rotation_utils.gd

Extends: RefCounted

Public Methods

degrees_to_cardinal

1
degrees_to_cardinal(degrees: float) -> CardinalDirection

Flags: static

Convert rotation degrees to cardinal direction degrees Rotation in degrees (will be normalized to 0-360 range) [return] CardinalDirection enum value


cardinal_to_degrees

1
cardinal_to_degrees(direction: CardinalDirection) -> float

Flags: static

Convert cardinal direction to rotation degrees direction CardinalDirection enum value [return] Rotation in degrees (0, 90, 180, or 270)


rotate_clockwise

1
rotate_clockwise(current: CardinalDirection) -> CardinalDirection

Flags: static

Get the next cardinal direction (clockwise rotation) current Current CardinalDirection [return] Next CardinalDirection clockwise


rotate_counter_clockwise

1
rotate_counter_clockwise(current: CardinalDirection) -> CardinalDirection

Flags: static

Get the previous cardinal direction (counter-clockwise rotation) current Current CardinalDirection [return] Previous CardinalDirection counter-clockwise


rotate_node_clockwise

1
2
3
4
5
6
rotate_node_clockwise(
    node: Node2D,
    map: TileMapLayer,
    increment_degrees: float = 90.0,
    snap_to_grid: bool = true
) -> float

Flags: static

Rotate a Node2D clockwise by a specified increment while maintaining grid alignment node Node2D to rotate (must be on a grid tile) map TileMapLayer providing grid alignment increment_degrees Rotation increment in degrees (default 90.0 for 4-direction)

  • Use 90.0 for 4-direction (RTS-style)
  • Use 45.0 for 8-direction (isometric with diagonals)
  • Use 60.0 for 6-direction (hex-style)
  • Use 30.0 for 12-direction
  • Or any custom angle snap_to_grid Whether to snap position to grid after rotation (default true) [return] New rotation angle in degrees (0-360 range)

rotate_node_counter_clockwise

1
2
3
4
5
6
rotate_node_counter_clockwise(
    node: Node2D,
    map: TileMapLayer,
    increment_degrees: float = 90.0,
    snap_to_grid: bool = true
) -> float

Flags: static

Rotate a Node2D counter-clockwise by a specified increment while maintaining grid alignment node Node2D to rotate (must be on a grid tile) map TileMapLayer providing grid alignment increment_degrees Rotation increment in degrees (default 90.0 for 4-direction)

  • Use 90.0 for 4-direction (RTS-style)
  • Use 45.0 for 8-direction (isometric with diagonals)
  • Use 60.0 for 6-direction (hex-style)
  • Use 30.0 for 12-direction
  • Or any custom angle snap_to_grid Whether to snap position to grid after rotation (default true) [return] New rotation angle in degrees (0-360 range) Rotate a Node2D counter-clockwise by a specified increment while maintaining grid alignment node Node2D to rotate (must be on a grid tile) map TileMapLayer providing grid alignment increment_degrees Rotation increment in degrees (default 90.0 for 4-direction)
  • Use 90.0 for 4-direction (RTS-style)
  • Use 45.0 for 8-direction (isometric with diagonals)
  • Use 60.0 for 6-direction (hex-style)
  • Use 30.0 for 12-direction
  • Or any custom angle snap_to_grid Whether to snap position to grid after rotation (default true) [return] New rotation angle in degrees (0-360 range)

set_node_direction

1
2
3
4
5
6
set_node_direction(
    node: Node2D,
    direction: CardinalDirection,
    map: TileMapLayer,
    snap_to_grid: bool = true
) -> void

Flags: static

Set a Node2D to a specific cardinal direction with grid alignment node Node2D to rotate direction Target CardinalDirection map TileMapLayer providing grid alignment snap_to_grid Whether to snap position to grid after rotation (default true)


get_direction_tile_delta

1
get_direction_tile_delta(direction: CardinalDirection) -> Vector2i

Flags: static

Get a tile delta vector for movement in a cardinal direction direction CardinalDirection to move in [return] Vector2i tile delta for the direction


get_opposite_direction

1
get_opposite_direction(direction: CardinalDirection) -> CardinalDirection

Flags: static

Get the opposite cardinal direction direction Input CardinalDirection [return] Opposite CardinalDirection (180 degrees)


is_horizontal

1
is_horizontal(direction: CardinalDirection) -> bool

Flags: static

Check if a direction is horizontal (East or West) direction CardinalDirection to check [return] True if direction is East or West


is_vertical

1
is_vertical(direction: CardinalDirection) -> bool

Flags: static

Check if a direction is vertical (North or South) direction CardinalDirection to check [return] True if direction is North or South


direction_to_string

1
direction_to_string(direction: CardinalDirection) -> String

Flags: static

Convert cardinal direction to a human-readable string direction CardinalDirection to convert [return] String representation (“North”, “East”, “South”, “West”)


Private Methods

_snap_node_to_grid

1
2
3
4
_snap_node_to_grid(
    node: Node2D,
    map: TileMapLayer
) -> void

Flags: static, private

Snap a node to the nearest grid tile center using existing positioning utilities node Node2D to snap to grid map TileMapLayer providing grid alignment


_normalize_degrees

1
_normalize_degrees(degrees: float) -> float

Flags: static, private

Normalize degrees to 0-360 range degrees Angle in degrees (can be negative or > 360) [return] Normalized angle in 0-360 range


_set_node_global_rotation

1
2
3
4
_set_node_global_rotation(
    node: Node2D,
    target_global_rotation: float
) -> void

Flags: static, private

Helper function to set a node’s rotation to achieve a target global rotation node Node2D to rotate target_global_rotation Desired global rotation in radians