GridMap

Inherits: Spatial < Node < Object

Category: Core

Brief Description

Node for 3D tile-based maps.

Member Functions

void clear ( )
int get_cell_item ( int x, int y, int z ) const
int get_cell_item_orientation ( int x, int y, int z ) const
Vector3 get_cell_size ( ) const
bool get_center_x ( ) const
bool get_center_y ( ) const
bool get_center_z ( ) const
Array get_meshes ( )
int get_octant_size ( ) const
MeshLibrary get_theme ( ) const
Array get_used_cells ( ) const
Vector3 map_to_world ( int x, int y, int z ) const
void resource_changed ( Resource resource )
void set_cell_item ( int x, int y, int z, int item, int orientation=0 )
void set_cell_size ( Vector3 size )
void set_center_x ( bool enable )
void set_center_y ( bool enable )
void set_center_z ( bool enable )
void set_clip ( bool enabled, bool clipabove=true, int floor=0, int axis=0 )
void set_octant_size ( int size )
void set_theme ( MeshLibrary theme )
Vector3 world_to_map ( Vector3 pos ) const

Numeric Constants

  • INVALID_CELL_ITEM = -1 — Invalid cell item that can be used in set_cell_item to clear cells (or represent an empty cell in get_cell_item).

Description

GridMap lets you place meshes on a grid interactively. It works both from the editor and can help you create in-game level editors.

GridMaps use a MeshLibrary which contain a list of tiles: meshes with materials plus optional collisions and extra elements.

A GridMap contains a collection of cells. Each grid cell refers to a MeshLibrary item. All cells in the map have the same dimensions.

A GridMap is split into a sparse collection of octants for efficient rendering and physics processing. Every octant has the same dimensions and can contain several cells.

Member Function Description

  • void clear ( )

Clear all cells.

The MeshLibrary item index located at the grid-based X, Y and Z coordinates. If the cell is empty, INVALID_CELL_ITEM will be returned.

  • int get_cell_item_orientation ( int x, int y, int z ) const

The orientation of the cell at the grid-based X, Y and Z coordinates. -1 is retuned if the cell is empty.

The dimensions of the grid’s cells.

  • bool get_center_x ( ) const

Returns whether or not grid items are centered on the X axis.

  • bool get_center_y ( ) const

Returns whether or not grid items are centered on the Y axis.

  • bool get_center_z ( ) const

Returns whether or not grid items are centered on the Z axis.

Array of Transform and Mesh references corresponding to the non empty cells in the grid. The transforms are specified in world space.

  • int get_octant_size ( ) const

The size of each octant measured in number of cells. This applies to all three axis.

The assigned MeshLibrary.

  • Array get_used_cells ( ) const

Array of Vector3 with the non empty cell coordinates in the grid map.

  • void resource_changed ( Resource resource )

Set the mesh index for the cell referenced by its grid-based X, Y and Z coordinates.

A negative item index will clear the cell.

Optionally, the item’s orientation can be passed.

  • void set_cell_size ( Vector3 size )

Sets the height, width and depth of the grid’s cells.

  • void set_center_x ( bool enable )

Set grid items to be centered on the X axis. By default it is enabled.

  • void set_center_y ( bool enable )

Set grid items to be centered on the Y axis. By default it is enabled.

  • void set_center_z ( bool enable )

Set grid items to be centered on the Z axis. By default it is enabled.

  • void set_clip ( bool enabled, bool clipabove=true, int floor=0, int axis=0 )
  • void set_octant_size ( int size )

Sets the size for each octant measured in number of cells. This applies to all three axis.

Sets the collection of meshes for the map.