238 lines
9.4 KiB
XML
238 lines
9.4 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<class name="GridMap" inherits="Node3D" version="4.0">
|
|
<brief_description>
|
|
Node for 3D tile-based maps.
|
|
</brief_description>
|
|
<description>
|
|
GridMap lets you place meshes on a grid interactively. It works both from the editor and from scripts, which can help you create in-game level editors.
|
|
GridMaps use a [MeshLibrary] which contains a list of tiles. Each tile is a mesh with materials plus optional collision and navigation shapes.
|
|
A GridMap contains a collection of cells. Each grid cell refers to a tile in the [MeshLibrary]. All cells in the map have the same dimensions.
|
|
Internally, 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.
|
|
[b]Note:[/b] GridMap doesn't extend [VisualInstance3D] and therefore can't be hidden or cull masked based on [member VisualInstance3D.layers]. If you make a light not affect the first layer, the whole GridMap won't be lit by the light in question.
|
|
</description>
|
|
<tutorials>
|
|
<link title="Using gridmaps">https://docs.godotengine.org/en/latest/tutorials/3d/using_gridmaps.html</link>
|
|
<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
|
|
<link title="3D Kinematic Character Demo">https://godotengine.org/asset-library/asset/126</link>
|
|
</tutorials>
|
|
<methods>
|
|
<method name="clear">
|
|
<return type="void">
|
|
</return>
|
|
<description>
|
|
Clear all cells.
|
|
</description>
|
|
</method>
|
|
<method name="clear_baked_meshes">
|
|
<return type="void">
|
|
</return>
|
|
<description>
|
|
</description>
|
|
</method>
|
|
<method name="get_bake_mesh_instance">
|
|
<return type="RID">
|
|
</return>
|
|
<argument index="0" name="idx" type="int">
|
|
</argument>
|
|
<description>
|
|
</description>
|
|
</method>
|
|
<method name="get_bake_meshes">
|
|
<return type="Array">
|
|
</return>
|
|
<description>
|
|
Returns an array of [ArrayMesh]es and [Transform] references of all bake meshes that exist within the current GridMap.
|
|
</description>
|
|
</method>
|
|
<method name="get_cell_item" qualifiers="const">
|
|
<return type="int">
|
|
</return>
|
|
<argument index="0" name="position" type="Vector3i">
|
|
</argument>
|
|
<description>
|
|
The [MeshLibrary] item index located at the given grid coordinates. If the cell is empty, [constant INVALID_CELL_ITEM] will be returned.
|
|
</description>
|
|
</method>
|
|
<method name="get_cell_item_orientation" qualifiers="const">
|
|
<return type="int">
|
|
</return>
|
|
<argument index="0" name="position" type="Vector3i">
|
|
</argument>
|
|
<description>
|
|
The orientation of the cell at the given grid coordinates. [code]-1[/code] is returned if the cell is empty.
|
|
</description>
|
|
</method>
|
|
<method name="get_collision_layer_bit" qualifiers="const">
|
|
<return type="bool">
|
|
</return>
|
|
<argument index="0" name="bit" type="int">
|
|
</argument>
|
|
<description>
|
|
Returns an individual bit on the [member collision_layer].
|
|
</description>
|
|
</method>
|
|
<method name="get_collision_mask_bit" qualifiers="const">
|
|
<return type="bool">
|
|
</return>
|
|
<argument index="0" name="bit" type="int">
|
|
</argument>
|
|
<description>
|
|
Returns an individual bit on the [member collision_mask].
|
|
</description>
|
|
</method>
|
|
<method name="get_meshes">
|
|
<return type="Array">
|
|
</return>
|
|
<description>
|
|
Returns an array of [Transform] and [Mesh] references corresponding to the non-empty cells in the grid. The transforms are specified in world space.
|
|
</description>
|
|
</method>
|
|
<method name="get_used_cells" qualifiers="const">
|
|
<return type="Array">
|
|
</return>
|
|
<description>
|
|
Returns an array of [Vector3] with the non-empty cell coordinates in the grid map.
|
|
</description>
|
|
</method>
|
|
<method name="make_baked_meshes">
|
|
<return type="void">
|
|
</return>
|
|
<argument index="0" name="gen_lightmap_uv" type="bool" default="false">
|
|
</argument>
|
|
<argument index="1" name="lightmap_uv_texel_size" type="float" default="0.1">
|
|
</argument>
|
|
<description>
|
|
</description>
|
|
</method>
|
|
<method name="map_to_world" qualifiers="const">
|
|
<return type="Vector3">
|
|
</return>
|
|
<argument index="0" name="map_position" type="Vector3i">
|
|
</argument>
|
|
<description>
|
|
Returns the position of a grid cell in the GridMap's local coordinate space.
|
|
</description>
|
|
</method>
|
|
<method name="resource_changed">
|
|
<return type="void">
|
|
</return>
|
|
<argument index="0" name="resource" type="Resource">
|
|
</argument>
|
|
<description>
|
|
</description>
|
|
</method>
|
|
<method name="set_cell_item">
|
|
<return type="void">
|
|
</return>
|
|
<argument index="0" name="position" type="Vector3i">
|
|
</argument>
|
|
<argument index="1" name="item" type="int">
|
|
</argument>
|
|
<argument index="2" name="orientation" type="int" default="0">
|
|
</argument>
|
|
<description>
|
|
Sets the mesh index for the cell referenced by its grid coordinates.
|
|
A negative item index such as [constant INVALID_CELL_ITEM] will clear the cell.
|
|
Optionally, the item's orientation can be passed. For valid orientation values, see [method Basis.get_orthogonal_index].
|
|
</description>
|
|
</method>
|
|
<method name="set_clip">
|
|
<return type="void">
|
|
</return>
|
|
<argument index="0" name="enabled" type="bool">
|
|
</argument>
|
|
<argument index="1" name="clipabove" type="bool" default="true">
|
|
</argument>
|
|
<argument index="2" name="floor" type="int" default="0">
|
|
</argument>
|
|
<argument index="3" name="axis" type="int" enum="Vector3.Axis" default="0">
|
|
</argument>
|
|
<description>
|
|
</description>
|
|
</method>
|
|
<method name="set_collision_layer_bit">
|
|
<return type="void">
|
|
</return>
|
|
<argument index="0" name="bit" type="int">
|
|
</argument>
|
|
<argument index="1" name="value" type="bool">
|
|
</argument>
|
|
<description>
|
|
Sets an individual bit on the [member collision_layer].
|
|
</description>
|
|
</method>
|
|
<method name="set_collision_mask_bit">
|
|
<return type="void">
|
|
</return>
|
|
<argument index="0" name="bit" type="int">
|
|
</argument>
|
|
<argument index="1" name="value" type="bool">
|
|
</argument>
|
|
<description>
|
|
Sets an individual bit on the [member collision_mask].
|
|
</description>
|
|
</method>
|
|
<method name="world_to_map" qualifiers="const">
|
|
<return type="Vector3i">
|
|
</return>
|
|
<argument index="0" name="world_position" type="Vector3">
|
|
</argument>
|
|
<description>
|
|
Returns the coordinates of the grid cell containing the given point.
|
|
[code]pos[/code] should be in the GridMap's local coordinate space.
|
|
</description>
|
|
</method>
|
|
</methods>
|
|
<members>
|
|
<member name="bake_navigation" type="bool" setter="set_bake_navigation" getter="is_baking_navigation" default="false">
|
|
If [code]true[/code], this GridMap bakes a navigation region.
|
|
</member>
|
|
<member name="cell_center_x" type="bool" setter="set_center_x" getter="get_center_x" default="true">
|
|
If [code]true[/code], grid items are centered on the X axis.
|
|
</member>
|
|
<member name="cell_center_y" type="bool" setter="set_center_y" getter="get_center_y" default="true">
|
|
If [code]true[/code], grid items are centered on the Y axis.
|
|
</member>
|
|
<member name="cell_center_z" type="bool" setter="set_center_z" getter="get_center_z" default="true">
|
|
If [code]true[/code], grid items are centered on the Z axis.
|
|
</member>
|
|
<member name="cell_octant_size" type="int" setter="set_octant_size" getter="get_octant_size" default="8">
|
|
The size of each octant measured in number of cells. This applies to all three axis.
|
|
</member>
|
|
<member name="cell_scale" type="float" setter="set_cell_scale" getter="get_cell_scale" default="1.0">
|
|
The scale of the cell items.
|
|
This does not affect the size of the grid cells themselves, only the items in them. This can be used to make cell items overlap their neighbors.
|
|
</member>
|
|
<member name="cell_size" type="Vector3" setter="set_cell_size" getter="get_cell_size" default="Vector3( 2, 2, 2 )">
|
|
The dimensions of the grid's cells.
|
|
This does not affect the size of the meshes. See [member cell_scale].
|
|
</member>
|
|
<member name="collision_layer" type="int" setter="set_collision_layer" getter="get_collision_layer" default="1">
|
|
The physics layers this GridMap is in.
|
|
GridMaps act as static bodies, meaning they aren't affected by gravity or other forces. They only affect other physics bodies that collide with them.
|
|
</member>
|
|
<member name="collision_mask" type="int" setter="set_collision_mask" getter="get_collision_mask" default="1">
|
|
The physics layers this GridMap detects collisions in. See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information.
|
|
</member>
|
|
<member name="navigation_layers" type="int" setter="set_navigation_layers" getter="get_navigation_layers" default="1">
|
|
The navigation layers the GridMap generates its navigable regions in.
|
|
</member>
|
|
<member name="mesh_library" type="MeshLibrary" setter="set_mesh_library" getter="get_mesh_library">
|
|
The assigned [MeshLibrary].
|
|
</member>
|
|
</members>
|
|
<signals>
|
|
<signal name="cell_size_changed">
|
|
<argument index="0" name="cell_size" type="Vector3">
|
|
</argument>
|
|
<description>
|
|
Emitted when [member cell_size] changes.
|
|
</description>
|
|
</signal>
|
|
</signals>
|
|
<constants>
|
|
<constant name="INVALID_CELL_ITEM" value="-1">
|
|
Invalid cell item that can be used in [method set_cell_item] to clear cells (or represent an empty cell in [method get_cell_item]).
|
|
</constant>
|
|
</constants>
|
|
</class>
|