GridPosition

AUTO-GENERATED FILE – DO NOT EDIT MANUALLY

This page documents the supported public API surface only. Private, internal, benchmark, test, and implementation-detail types are intentionally omitted.

Declaration

1
public readonly struct GridPosition : IEquatable<GridPosition>

Summary

Represents a position in 2D grid coordinates with utility methods for coordinate conversion.

Provides POCS implementation of grid positioning logic without Godot dependencies. Supports conversion between world coordinates and grid coordinates, adjacency calculations, and grid-based movement operations.

Ported from: godot/addons/grid_building/shared/utils/positioning/gb_positioning_2d_utils.gd

Metadata

Namespace: GridPlacement.Core.Grid

Source File: cs/Core/Types/GridPosition.cs

Assembly: GridPlacement.Core

Type: struct

Implements

  • IEquatable<GridPosition>

Constructors

GridPosition

1
2
3
4
5
public GridPosition(
    int x,
    int y,
    CoreVector2 tileSize = default
)

Initializes a new instance of the GridPosition struct.

Parameters

NameDescription
xThe X coordinate in grid space.
yThe Y coordinate in grid space.
tileSizeThe tile size in world units. If default, a 64x64 tile size is used.

GridPosition

1
2
3
4
public GridPosition(
    CoreVector2I vector2I,
    CoreVector2 tileSize = default
)

Initializes a new instance of the GridPosition struct from a CoreVector2I.

Parameters

NameDescription
vector2IThe grid-space vector.
tileSizeThe tile size in world units. If default, a 64x64 tile size is used.

Fields

X

1
public readonly int X

X coordinate (column) in grid space.


Y

1
public readonly int Y

Y coordinate (row) in grid space.


TileSize

1
public readonly CoreVector2 TileSize

Tile size in world units (pixels). Default is 64x64.


Zero

1
public static readonly GridPosition Zero

Gets the zero grid position (0,0).


One

1
public static readonly GridPosition One

Gets the unit grid position (1,1).


Methods

ToWorldCoordinates

1
public CoreVector2 ToWorldCoordinates()

Convert grid position to world coordinates (tile center).


ToWorldCoordinates

1
public CoreVector2 ToWorldCoordinates(CoreVector2 customTileSize)

Convert grid position to world coordinates with custom tile size.


FromWorldCoordinates

1
2
3
4
public static GridPosition FromWorldCoordinates(
    CoreVector2 worldPos,
    CoreVector2 tileSize
)

Convert world coordinates to grid position.


ManhattanDistanceTo

1
public int ManhattanDistanceTo(GridPosition other)

Get the Manhattan distance to another grid position.


ChebyshevDistanceTo

1
public int ChebyshevDistanceTo(GridPosition other)

Get the Chebyshev distance (king’s move distance) to another grid position.


IsAdjacentTo

1
2
3
4
public bool IsAdjacentTo(
    GridPosition other,
    bool includeDiagonals = true
)

Check if this position is adjacent to another position (including diagonals).


GetAdjacentPositions

1
public GridPosition[] GetAdjacentPositions()

Get all adjacent positions (8-directional).


GetOrthogonalPositions

1
public GridPosition[] GetOrthogonalPositions()

Get orthogonal adjacent positions (4-directional).


MoveInDirection

1
2
3
4
public GridPosition MoveInDirection(
    CardinalDirection direction,
    int distance = 1
)

Move in a cardinal direction.


Clamp

1
2
3
4
public GridPosition Clamp(
    GridPosition min,
    GridPosition max
)

Clamp position within a rectangular region.


IsWithinRegion

1
2
3
4
public bool IsWithinRegion(
    GridPosition min,
    GridPosition max
)

Check if position is within a rectangular region.


op_Addition

1
2
3
4
public static GridPosition operator +(
    GridPosition a,
    GridPosition b
)

Adds two grid positions component-wise.


op_Subtraction

1
2
3
4
public static GridPosition operator -(
    GridPosition a,
    GridPosition b
)

Subtracts two grid positions component-wise.


op_Multiply

1
2
3
4
public static GridPosition operator *(
    GridPosition pos,
    int scalar
)

Multiplies a grid position by a scalar.


op_Equality

1
2
3
4
public static bool operator ==(
    GridPosition a,
    GridPosition b
)

Determines whether two grid positions are equal.


op_Inequality

1
2
3
4
public static bool operator !=(
    GridPosition a,
    GridPosition b
)

Determines whether two grid positions are not equal.


op_Implicit

1
public static implicit operator CoreVector2I(GridPosition pos)

Converts a GridPosition to a CoreVector2I.


op_Explicit

1
public static explicit operator GridPosition(CoreVector2I vec)

Converts a CoreVector2I to a GridPosition.


Equals

1
public bool Equals(GridPosition other)

Determines whether this instance is equal to another GridPosition.


Equals

1
public override bool Equals(object? obj)

GetHashCode

1
public override int GetHashCode()

ToString

1
public override string ToString()

GetDirectionTo

1
public CardinalDirection GetDirectionTo(GridPosition target)

Get the direction to another position.


GetLineTo

1
public IEnumerable<GridPosition> GetLineTo(GridPosition target)

Get all positions in a line from this position to target.


GetPositionsInRadius

1
public IEnumerable<GridPosition> GetPositionsInRadius(int radius)

Get positions in a radius around this position.


GetPositionsInRectangle

1
2
3
4
public IEnumerable<GridPosition> GetPositionsInRectangle(
    int width,
    int height
)

Get positions in a rectangle around this position.