Remove slash delimiter from NavigationMesh properties
Remove slash delimiter from NavigationMesh properties.
(cherry picked from commit 2c059dcfcb
)
This commit is contained in:
parent
e5c9f90bce
commit
e629622598
4 changed files with 109 additions and 60 deletions
|
@ -34,7 +34,7 @@
|
||||||
<return type="bool" />
|
<return type="bool" />
|
||||||
<argument index="0" name="bit" type="int" />
|
<argument index="0" name="bit" type="int" />
|
||||||
<description>
|
<description>
|
||||||
Returns whether the specified [code]bit[/code] of the [member geometry/collision_mask] is set.
|
Returns whether the specified [code]bit[/code] of the [member geometry_collision_mask] is set.
|
||||||
</description>
|
</description>
|
||||||
</method>
|
</method>
|
||||||
<method name="get_polygon">
|
<method name="get_polygon">
|
||||||
|
@ -61,8 +61,8 @@
|
||||||
<argument index="0" name="bit" type="int" />
|
<argument index="0" name="bit" type="int" />
|
||||||
<argument index="1" name="value" type="bool" />
|
<argument index="1" name="value" type="bool" />
|
||||||
<description>
|
<description>
|
||||||
If [code]value[/code] is [code]true[/code], sets the specified [code]bit[/code] in the [member geometry/collision_mask].
|
If [code]value[/code] is [code]true[/code], sets the specified [code]bit[/code] in the [member geometry_collision_mask].
|
||||||
If [code]value[/code] is [code]false[/code], clears the specified [code]bit[/code] in the [member geometry/collision_mask].
|
If [code]value[/code] is [code]false[/code], clears the specified [code]bit[/code] in the [member geometry_collision_mask].
|
||||||
</description>
|
</description>
|
||||||
</method>
|
</method>
|
||||||
<method name="set_vertices">
|
<method name="set_vertices">
|
||||||
|
@ -74,75 +74,75 @@
|
||||||
</method>
|
</method>
|
||||||
</methods>
|
</methods>
|
||||||
<members>
|
<members>
|
||||||
<member name="agent/height" type="float" setter="set_agent_height" getter="get_agent_height" default="1.5">
|
<member name="agent_height" type="float" setter="set_agent_height" getter="get_agent_height" default="1.5">
|
||||||
The minimum floor to ceiling height that will still allow the floor area to be considered walkable.
|
The minimum floor to ceiling height that will still allow the floor area to be considered walkable.
|
||||||
[b]Note:[/b] While baking, this value will be rounded up to the nearest multiple of [member cell/height].
|
[b]Note:[/b] While baking, this value will be rounded up to the nearest multiple of [member cell_height].
|
||||||
</member>
|
</member>
|
||||||
<member name="agent/max_climb" type="float" setter="set_agent_max_climb" getter="get_agent_max_climb" default="0.25">
|
<member name="agent_max_climb" type="float" setter="set_agent_max_climb" getter="get_agent_max_climb" default="0.25">
|
||||||
The minimum ledge height that is considered to still be traversable.
|
The minimum ledge height that is considered to still be traversable.
|
||||||
[b]Note:[/b] While baking, this value will be rounded down to the nearest multiple of [member cell/height].
|
[b]Note:[/b] While baking, this value will be rounded down to the nearest multiple of [member cell_height].
|
||||||
</member>
|
</member>
|
||||||
<member name="agent/max_slope" type="float" setter="set_agent_max_slope" getter="get_agent_max_slope" default="45.0">
|
<member name="agent_max_slope" type="float" setter="set_agent_max_slope" getter="get_agent_max_slope" default="45.0">
|
||||||
The maximum slope that is considered walkable, in degrees.
|
The maximum slope that is considered walkable, in degrees.
|
||||||
</member>
|
</member>
|
||||||
<member name="agent/radius" type="float" setter="set_agent_radius" getter="get_agent_radius" default="0.5">
|
<member name="agent_radius" type="float" setter="set_agent_radius" getter="get_agent_radius" default="0.5">
|
||||||
The distance to erode/shrink the walkable area of the heightfield away from obstructions.
|
The distance to erode/shrink the walkable area of the heightfield away from obstructions.
|
||||||
[b]Note:[/b] While baking, this value will be rounded up to the nearest multiple of [member cell/size].
|
[b]Note:[/b] While baking, this value will be rounded up to the nearest multiple of [member cell_size].
|
||||||
</member>
|
</member>
|
||||||
<member name="cell/height" type="float" setter="set_cell_height" getter="get_cell_height" default="0.25">
|
<member name="cell_height" type="float" setter="set_cell_height" getter="get_cell_height" default="0.25">
|
||||||
The Y axis cell size to use for fields.
|
The Y axis cell size to use for fields.
|
||||||
</member>
|
</member>
|
||||||
<member name="cell/size" type="float" setter="set_cell_size" getter="get_cell_size" default="0.25">
|
<member name="cell_size" type="float" setter="set_cell_size" getter="get_cell_size" default="0.25">
|
||||||
The XZ plane cell size to use for fields.
|
The XZ plane cell size to use for fields.
|
||||||
</member>
|
</member>
|
||||||
<member name="detail/sample_distance" type="float" setter="set_detail_sample_distance" getter="get_detail_sample_distance" default="6.0">
|
<member name="detail_sample_distance" type="float" setter="set_detail_sample_distance" getter="get_detail_sample_distance" default="6.0">
|
||||||
The sampling distance to use when generating the detail mesh, in cell unit.
|
The sampling distance to use when generating the detail mesh, in cell unit.
|
||||||
</member>
|
</member>
|
||||||
<member name="detail/sample_max_error" type="float" setter="set_detail_sample_max_error" getter="get_detail_sample_max_error" default="5.0">
|
<member name="detail_sample_max_error" type="float" setter="set_detail_sample_max_error" getter="get_detail_sample_max_error" default="5.0">
|
||||||
The maximum distance the detail mesh surface should deviate from heightfield, in cell unit.
|
The maximum distance the detail mesh surface should deviate from heightfield, in cell unit.
|
||||||
</member>
|
</member>
|
||||||
<member name="edge/max_error" type="float" setter="set_edge_max_error" getter="get_edge_max_error" default="1.3">
|
<member name="edge_max_error" type="float" setter="set_edge_max_error" getter="get_edge_max_error" default="1.3">
|
||||||
The maximum distance a simplfied contour's border edges should deviate the original raw contour.
|
The maximum distance a simplfied contour's border edges should deviate the original raw contour.
|
||||||
</member>
|
</member>
|
||||||
<member name="edge/max_length" type="float" setter="set_edge_max_length" getter="get_edge_max_length" default="12.0">
|
<member name="edge_max_length" type="float" setter="set_edge_max_length" getter="get_edge_max_length" default="12.0">
|
||||||
The maximum allowed length for contour edges along the border of the mesh.
|
The maximum allowed length for contour edges along the border of the mesh.
|
||||||
[b]Note:[/b] While baking, this value will be rounded up to the nearest multiple of [member cell/size].
|
[b]Note:[/b] While baking, this value will be rounded up to the nearest multiple of [member cell_size].
|
||||||
</member>
|
</member>
|
||||||
<member name="filter/filter_walkable_low_height_spans" type="bool" setter="set_filter_walkable_low_height_spans" getter="get_filter_walkable_low_height_spans" default="false">
|
<member name="filter_ledge_spans" type="bool" setter="set_filter_ledge_spans" getter="get_filter_ledge_spans" default="false">
|
||||||
If [code]true[/code], marks walkable spans as not walkable if the clearance above the span is less than [member agent/height].
|
|
||||||
</member>
|
|
||||||
<member name="filter/ledge_spans" type="bool" setter="set_filter_ledge_spans" getter="get_filter_ledge_spans" default="false">
|
|
||||||
If [code]true[/code], marks spans that are ledges as non-walkable.
|
If [code]true[/code], marks spans that are ledges as non-walkable.
|
||||||
</member>
|
</member>
|
||||||
<member name="filter/low_hanging_obstacles" type="bool" setter="set_filter_low_hanging_obstacles" getter="get_filter_low_hanging_obstacles" default="false">
|
<member name="filter_low_hanging_obstacles" type="bool" setter="set_filter_low_hanging_obstacles" getter="get_filter_low_hanging_obstacles" default="false">
|
||||||
If [code]true[/code], marks non-walkable spans as walkable if their maximum is within [member agent/max_climb] of a walkable neighbor.
|
If [code]true[/code], marks non-walkable spans as walkable if their maximum is within [member agent_max_climb] of a walkable neighbor.
|
||||||
</member>
|
</member>
|
||||||
<member name="geometry/collision_mask" type="int" setter="set_collision_mask" getter="get_collision_mask">
|
<member name="filter_walkable_low_height_spans" type="bool" setter="set_filter_walkable_low_height_spans" getter="get_filter_walkable_low_height_spans" default="false">
|
||||||
|
If [code]true[/code], marks walkable spans as not walkable if the clearance above the span is less than [member agent_height].
|
||||||
|
</member>
|
||||||
|
<member name="geometry_collision_mask" type="int" setter="set_collision_mask" getter="get_collision_mask" default="4294967295">
|
||||||
The physics layers to scan for static colliders.
|
The physics layers to scan for static colliders.
|
||||||
Only used when [member geometry/parsed_geometry_type] is [constant PARSED_GEOMETRY_STATIC_COLLIDERS] or [constant PARSED_GEOMETRY_BOTH].
|
Only used when [member geometry_parsed_geometry_type] is [constant PARSED_GEOMETRY_STATIC_COLLIDERS] or [constant PARSED_GEOMETRY_BOTH].
|
||||||
</member>
|
</member>
|
||||||
<member name="geometry/parsed_geometry_type" type="int" setter="set_parsed_geometry_type" getter="get_parsed_geometry_type" enum="NavigationMesh.ParsedGeometryType" default="0">
|
<member name="geometry_parsed_geometry_type" type="int" setter="set_parsed_geometry_type" getter="get_parsed_geometry_type" enum="NavigationMesh.ParsedGeometryType" default="0">
|
||||||
Determines which type of nodes will be parsed as geometry. See [enum ParsedGeometryType] for possible values.
|
Determines which type of nodes will be parsed as geometry. See [enum ParsedGeometryType] for possible values.
|
||||||
</member>
|
</member>
|
||||||
<member name="geometry/source_geometry_mode" type="int" setter="set_source_geometry_mode" getter="get_source_geometry_mode" enum="NavigationMesh.SourceGeometryMode" default="0">
|
<member name="geometry_source_geometry_mode" type="int" setter="set_source_geometry_mode" getter="get_source_geometry_mode" enum="NavigationMesh.SourceGeometryMode" default="0">
|
||||||
The source of the geometry used when baking. See [enum SourceGeometryMode] for possible values.
|
The source of the geometry used when baking. See [enum SourceGeometryMode] for possible values.
|
||||||
</member>
|
</member>
|
||||||
<member name="geometry/source_group_name" type="String" setter="set_source_group_name" getter="get_source_group_name">
|
<member name="geometry_source_group_name" type="String" setter="set_source_group_name" getter="get_source_group_name" default=""navmesh"">
|
||||||
The name of the group to scan for geometry.
|
The name of the group to scan for geometry.
|
||||||
Only used when [member geometry/source_geometry_mode] is [constant SOURCE_GEOMETRY_GROUPS_WITH_CHILDREN] or [constant SOURCE_GEOMETRY_GROUPS_EXPLICIT].
|
Only used when [member geometry_source_geometry_mode] is [constant SOURCE_GEOMETRY_GROUPS_WITH_CHILDREN] or [constant SOURCE_GEOMETRY_GROUPS_EXPLICIT].
|
||||||
</member>
|
</member>
|
||||||
<member name="polygon/verts_per_poly" type="float" setter="set_verts_per_poly" getter="get_verts_per_poly" default="6.0">
|
<member name="polygon_verts_per_poly" type="float" setter="set_verts_per_poly" getter="get_verts_per_poly" default="6.0">
|
||||||
The maximum number of vertices allowed for polygons generated during the contour to polygon conversion process.
|
The maximum number of vertices allowed for polygons generated during the contour to polygon conversion process.
|
||||||
</member>
|
</member>
|
||||||
<member name="region/merge_size" type="float" setter="set_region_merge_size" getter="get_region_merge_size" default="20.0">
|
<member name="region_merge_size" type="float" setter="set_region_merge_size" getter="get_region_merge_size" default="20.0">
|
||||||
Any regions with a size smaller than this will be merged with larger regions if possible.
|
Any regions with a size smaller than this will be merged with larger regions if possible.
|
||||||
[b]Note:[/b] This value will be squared to calculate the number of cells. For example, a value of 20 will set the number of cells to 400.
|
[b]Note:[/b] This value will be squared to calculate the number of cells. For example, a value of 20 will set the number of cells to 400.
|
||||||
</member>
|
</member>
|
||||||
<member name="region/min_size" type="float" setter="set_region_min_size" getter="get_region_min_size" default="2.0">
|
<member name="region_min_size" type="float" setter="set_region_min_size" getter="get_region_min_size" default="2.0">
|
||||||
The minimum size of a region for it to be created.
|
The minimum size of a region for it to be created.
|
||||||
[b]Note:[/b] This value will be squared to calculate the minimum number of cells allowed to form isolated island areas. For example, a value of 8 will set the number of cells to 64.
|
[b]Note:[/b] This value will be squared to calculate the minimum number of cells allowed to form isolated island areas. For example, a value of 8 will set the number of cells to 64.
|
||||||
</member>
|
</member>
|
||||||
<member name="sample_partition_type/sample_partition_type" type="int" setter="set_sample_partition_type" getter="get_sample_partition_type" enum="NavigationMesh.SamplePartitionType" default="0">
|
<member name="sample_partition_type" type="int" setter="set_sample_partition_type" getter="get_sample_partition_type" enum="NavigationMesh.SamplePartitionType" default="0">
|
||||||
Partitioning algorithm for creating the navigation mesh polys. See [enum SamplePartitionType] for possible values.
|
Partitioning algorithm for creating the navigation mesh polys. See [enum SamplePartitionType] for possible values.
|
||||||
</member>
|
</member>
|
||||||
</members>
|
</members>
|
||||||
|
@ -163,7 +163,7 @@
|
||||||
Parses mesh instances as geometry. This includes [MeshInstance], [CSGShape], and [GridMap] nodes.
|
Parses mesh instances as geometry. This includes [MeshInstance], [CSGShape], and [GridMap] nodes.
|
||||||
</constant>
|
</constant>
|
||||||
<constant name="PARSED_GEOMETRY_STATIC_COLLIDERS" value="1" enum="ParsedGeometryType">
|
<constant name="PARSED_GEOMETRY_STATIC_COLLIDERS" value="1" enum="ParsedGeometryType">
|
||||||
Parses [StaticBody] colliders as geometry. The collider should be in any of the layers specified by [member geometry/collision_mask].
|
Parses [StaticBody] colliders as geometry. The collider should be in any of the layers specified by [member geometry_collision_mask].
|
||||||
</constant>
|
</constant>
|
||||||
<constant name="PARSED_GEOMETRY_BOTH" value="2" enum="ParsedGeometryType">
|
<constant name="PARSED_GEOMETRY_BOTH" value="2" enum="ParsedGeometryType">
|
||||||
Both [constant PARSED_GEOMETRY_MESH_INSTANCES] and [constant PARSED_GEOMETRY_STATIC_COLLIDERS].
|
Both [constant PARSED_GEOMETRY_MESH_INSTANCES] and [constant PARSED_GEOMETRY_STATIC_COLLIDERS].
|
||||||
|
@ -175,10 +175,10 @@
|
||||||
Scans the child nodes of [NavigationMeshInstance] recursively for geometry.
|
Scans the child nodes of [NavigationMeshInstance] recursively for geometry.
|
||||||
</constant>
|
</constant>
|
||||||
<constant name="SOURCE_GEOMETRY_GROUPS_WITH_CHILDREN" value="1" enum="SourceGeometryMode">
|
<constant name="SOURCE_GEOMETRY_GROUPS_WITH_CHILDREN" value="1" enum="SourceGeometryMode">
|
||||||
Scans nodes in a group and their child nodes recursively for geometry. The group is specified by [member geometry/source_group_name].
|
Scans nodes in a group and their child nodes recursively for geometry. The group is specified by [member geometry_source_group_name].
|
||||||
</constant>
|
</constant>
|
||||||
<constant name="SOURCE_GEOMETRY_GROUPS_EXPLICIT" value="2" enum="SourceGeometryMode">
|
<constant name="SOURCE_GEOMETRY_GROUPS_EXPLICIT" value="2" enum="SourceGeometryMode">
|
||||||
Uses nodes in a group for geometry. The group is specified by [member geometry/source_group_name].
|
Uses nodes in a group for geometry. The group is specified by [member geometry_source_group_name].
|
||||||
</constant>
|
</constant>
|
||||||
<constant name="SOURCE_GEOMETRY_MAX" value="3" enum="SourceGeometryMode">
|
<constant name="SOURCE_GEOMETRY_MAX" value="3" enum="SourceGeometryMode">
|
||||||
Represents the size of the [enum SourceGeometryMode] enum.
|
Represents the size of the [enum SourceGeometryMode] enum.
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
<argument index="0" name="nav_mesh" type="NavigationMesh" />
|
<argument index="0" name="nav_mesh" type="NavigationMesh" />
|
||||||
<argument index="1" name="root_node" type="Node" />
|
<argument index="1" name="root_node" type="Node" />
|
||||||
<description>
|
<description>
|
||||||
Bakes navigation data to the provided [code]nav_mesh[/code] by parsing child nodes under the provided [code]root_node[/code] or a specific group of nodes for potential source geometry. The parse behavior can be controlled with the [member NavigationMesh.geometry/parsed_geometry_type] and [member NavigationMesh.geometry/source_geometry_mode] properties on the [NavigationMesh] resource.
|
Bakes navigation data to the provided [code]nav_mesh[/code] by parsing child nodes under the provided [code]root_node[/code] or a specific group of nodes for potential source geometry. The parse behavior can be controlled with the [member NavigationMesh.geometry_parsed_geometry_type] and [member NavigationMesh.geometry_source_geometry_mode] properties on the [NavigationMesh] resource.
|
||||||
</description>
|
</description>
|
||||||
</method>
|
</method>
|
||||||
<method name="clear">
|
<method name="clear">
|
||||||
|
|
|
@ -479,29 +479,36 @@ void NavigationMesh::_bind_methods() {
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::POOL_VECTOR3_ARRAY, "vertices", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL), "set_vertices", "get_vertices");
|
ADD_PROPERTY(PropertyInfo(Variant::POOL_VECTOR3_ARRAY, "vertices", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL), "set_vertices", "get_vertices");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "polygons", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL), "_set_polygons", "_get_polygons");
|
ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "polygons", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL), "_set_polygons", "_get_polygons");
|
||||||
|
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "sample_partition_type/sample_partition_type", PROPERTY_HINT_ENUM, "Watershed,Monotone,Layers"), "set_sample_partition_type", "get_sample_partition_type");
|
ADD_GROUP("Sampling", "sample_");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "geometry/parsed_geometry_type", PROPERTY_HINT_ENUM, "Mesh Instances,Static Colliders,Both"), "set_parsed_geometry_type", "get_parsed_geometry_type");
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "sample_partition_type", PROPERTY_HINT_ENUM, "Watershed,Monotone,Layers"), "set_sample_partition_type", "get_sample_partition_type");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "geometry/collision_mask", PROPERTY_HINT_LAYERS_3D_PHYSICS), "set_collision_mask", "get_collision_mask");
|
ADD_GROUP("Geometry", "geometry_");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "geometry/source_geometry_mode", PROPERTY_HINT_ENUM, "Navmesh Children, Group With Children, Group Explicit"), "set_source_geometry_mode", "get_source_geometry_mode");
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "geometry_parsed_geometry_type", PROPERTY_HINT_ENUM, "Mesh Instances,Static Colliders,Both"), "set_parsed_geometry_type", "get_parsed_geometry_type");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::STRING, "geometry/source_group_name"), "set_source_group_name", "get_source_group_name");
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "geometry_collision_mask", PROPERTY_HINT_LAYERS_3D_PHYSICS), "set_collision_mask", "get_collision_mask");
|
||||||
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "geometry_source_geometry_mode", PROPERTY_HINT_ENUM, "Navmesh Children, Group With Children, Group Explicit"), "set_source_geometry_mode", "get_source_geometry_mode");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::REAL, "cell/size", PROPERTY_HINT_RANGE, "0.01,500.0,0.01,or_greater"), "set_cell_size", "get_cell_size");
|
ADD_PROPERTY(PropertyInfo(Variant::STRING, "geometry_source_group_name"), "set_source_group_name", "get_source_group_name");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::REAL, "cell/height", PROPERTY_HINT_RANGE, "0.01,500.0,0.01,or_greater"), "set_cell_height", "get_cell_height");
|
ADD_GROUP("Cells", "cell_");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::REAL, "agent/height", PROPERTY_HINT_RANGE, "0.0,500.0,0.01,or_greater"), "set_agent_height", "get_agent_height");
|
ADD_PROPERTY(PropertyInfo(Variant::REAL, "cell_size", PROPERTY_HINT_RANGE, "0.01,500.0,0.01,or_greater"), "set_cell_size", "get_cell_size");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::REAL, "agent/radius", PROPERTY_HINT_RANGE, "0.0,500.0,0.01,or_greater"), "set_agent_radius", "get_agent_radius");
|
ADD_PROPERTY(PropertyInfo(Variant::REAL, "cell_height", PROPERTY_HINT_RANGE, "0.01,500.0,0.01,or_greater"), "set_cell_height", "get_cell_height");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::REAL, "agent/max_climb", PROPERTY_HINT_RANGE, "0.0,500.0,0.01,or_greater"), "set_agent_max_climb", "get_agent_max_climb");
|
ADD_GROUP("Agents", "agent_");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::REAL, "agent/max_slope", PROPERTY_HINT_RANGE, "0.02,90.0,0.01"), "set_agent_max_slope", "get_agent_max_slope");
|
ADD_PROPERTY(PropertyInfo(Variant::REAL, "agent_height", PROPERTY_HINT_RANGE, "0.0,500.0,0.01,or_greater"), "set_agent_height", "get_agent_height");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::REAL, "region/min_size", PROPERTY_HINT_RANGE, "0.0,150.0,0.01,or_greater"), "set_region_min_size", "get_region_min_size");
|
ADD_PROPERTY(PropertyInfo(Variant::REAL, "agent_radius", PROPERTY_HINT_RANGE, "0.0,500.0,0.01,or_greater"), "set_agent_radius", "get_agent_radius");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::REAL, "region/merge_size", PROPERTY_HINT_RANGE, "0.0,150.0,0.01,or_greater"), "set_region_merge_size", "get_region_merge_size");
|
ADD_PROPERTY(PropertyInfo(Variant::REAL, "agent_max_climb", PROPERTY_HINT_RANGE, "0.0,500.0,0.01,or_greater"), "set_agent_max_climb", "get_agent_max_climb");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::REAL, "edge/max_length", PROPERTY_HINT_RANGE, "0.0,50.0,0.01,or_greater"), "set_edge_max_length", "get_edge_max_length");
|
ADD_PROPERTY(PropertyInfo(Variant::REAL, "agent_max_slope", PROPERTY_HINT_RANGE, "0.02,90.0,0.01"), "set_agent_max_slope", "get_agent_max_slope");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::REAL, "edge/max_error", PROPERTY_HINT_RANGE, "0.1,3.0,0.01,or_greater"), "set_edge_max_error", "get_edge_max_error");
|
ADD_GROUP("Regions", "region_");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::REAL, "polygon/verts_per_poly", PROPERTY_HINT_RANGE, "3.0,12.0,1.0,or_greater"), "set_verts_per_poly", "get_verts_per_poly");
|
ADD_PROPERTY(PropertyInfo(Variant::REAL, "region_min_size", PROPERTY_HINT_RANGE, "0.0,150.0,0.01,or_greater"), "set_region_min_size", "get_region_min_size");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::REAL, "detail/sample_distance", PROPERTY_HINT_RANGE, "0.1,16.0,0.01,or_greater"), "set_detail_sample_distance", "get_detail_sample_distance");
|
ADD_PROPERTY(PropertyInfo(Variant::REAL, "region_merge_size", PROPERTY_HINT_RANGE, "0.0,150.0,0.01,or_greater"), "set_region_merge_size", "get_region_merge_size");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::REAL, "detail/sample_max_error", PROPERTY_HINT_RANGE, "0.0,16.0,0.01,or_greater"), "set_detail_sample_max_error", "get_detail_sample_max_error");
|
ADD_GROUP("Edges", "edge_");
|
||||||
|
ADD_PROPERTY(PropertyInfo(Variant::REAL, "edge_max_length", PROPERTY_HINT_RANGE, "0.0,50.0,0.01,or_greater"), "set_edge_max_length", "get_edge_max_length");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "filter/low_hanging_obstacles"), "set_filter_low_hanging_obstacles", "get_filter_low_hanging_obstacles");
|
ADD_PROPERTY(PropertyInfo(Variant::REAL, "edge_max_error", PROPERTY_HINT_RANGE, "0.1,3.0,0.01,or_greater"), "set_edge_max_error", "get_edge_max_error");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "filter/ledge_spans"), "set_filter_ledge_spans", "get_filter_ledge_spans");
|
ADD_GROUP("Polygons", "polygon_");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "filter/filter_walkable_low_height_spans"), "set_filter_walkable_low_height_spans", "get_filter_walkable_low_height_spans");
|
ADD_PROPERTY(PropertyInfo(Variant::REAL, "polygon_verts_per_poly", PROPERTY_HINT_RANGE, "3.0,12.0,1.0,or_greater"), "set_verts_per_poly", "get_verts_per_poly");
|
||||||
|
ADD_GROUP("Details", "detail_");
|
||||||
|
ADD_PROPERTY(PropertyInfo(Variant::REAL, "detail_sample_distance", PROPERTY_HINT_RANGE, "0.1,16.0,0.01,or_greater"), "set_detail_sample_distance", "get_detail_sample_distance");
|
||||||
|
ADD_PROPERTY(PropertyInfo(Variant::REAL, "detail_sample_max_error", PROPERTY_HINT_RANGE, "0.0,16.0,0.01,or_greater"), "set_detail_sample_max_error", "get_detail_sample_max_error");
|
||||||
|
ADD_GROUP("Filters", "filter_");
|
||||||
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "filter_low_hanging_obstacles"), "set_filter_low_hanging_obstacles", "get_filter_low_hanging_obstacles");
|
||||||
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "filter_ledge_spans"), "set_filter_ledge_spans", "get_filter_ledge_spans");
|
||||||
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "filter_walkable_low_height_spans"), "set_filter_walkable_low_height_spans", "get_filter_walkable_low_height_spans");
|
||||||
|
|
||||||
BIND_ENUM_CONSTANT(SAMPLE_PARTITION_WATERSHED);
|
BIND_ENUM_CONSTANT(SAMPLE_PARTITION_WATERSHED);
|
||||||
BIND_ENUM_CONSTANT(SAMPLE_PARTITION_MONOTONE);
|
BIND_ENUM_CONSTANT(SAMPLE_PARTITION_MONOTONE);
|
||||||
|
@ -535,6 +542,43 @@ void NavigationMesh::_validate_property(PropertyInfo &property) const {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef DISABLE_DEPRECATED
|
||||||
|
bool NavigationMesh::_set(const StringName &p_name, const Variant &p_value) {
|
||||||
|
String name = p_name;
|
||||||
|
if (name.find("/") != -1) {
|
||||||
|
// Compatibility with pre-3.5 "category/path" property names.
|
||||||
|
name = name.replace("/", "_");
|
||||||
|
if (name == "sample_partition_type_sample_partition_type") {
|
||||||
|
set("sample_partition_type", p_value);
|
||||||
|
} else if (name == "filter_filter_walkable_low_height_spans") {
|
||||||
|
set("filter_walkable_low_height_spans", p_value);
|
||||||
|
} else {
|
||||||
|
set(name, p_value);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool NavigationMesh::_get(const StringName &p_name, Variant &r_ret) const {
|
||||||
|
String name = p_name;
|
||||||
|
if (name.find("/") != -1) {
|
||||||
|
// Compatibility with pre-3.5 "category/path" property names.
|
||||||
|
name = name.replace("/", "_");
|
||||||
|
if (name == "sample_partition_type_sample_partition_type") {
|
||||||
|
r_ret = get("sample_partition_type");
|
||||||
|
} else if (name == "filter_filter_walkable_low_height_spans") {
|
||||||
|
r_ret = get("filter_walkable_low_height_spans");
|
||||||
|
} else {
|
||||||
|
r_ret = get(name);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
#endif // DISABLE_DEPRECATED
|
||||||
|
|
||||||
NavigationMesh::NavigationMesh() {
|
NavigationMesh::NavigationMesh() {
|
||||||
cell_size = 0.25f;
|
cell_size = 0.25f;
|
||||||
cell_height = 0.25f;
|
cell_height = 0.25f;
|
||||||
|
|
|
@ -59,6 +59,11 @@ protected:
|
||||||
static void _bind_methods();
|
static void _bind_methods();
|
||||||
virtual void _validate_property(PropertyInfo &property) const;
|
virtual void _validate_property(PropertyInfo &property) const;
|
||||||
|
|
||||||
|
#ifndef DISABLE_DEPRECATED
|
||||||
|
bool _set(const StringName &p_name, const Variant &p_value);
|
||||||
|
bool _get(const StringName &p_name, Variant &r_ret) const;
|
||||||
|
#endif // DISABLE_DEPRECATED
|
||||||
|
|
||||||
void _set_polygons(const Array &p_array);
|
void _set_polygons(const Array &p_array);
|
||||||
Array _get_polygons() const;
|
Array _get_polygons() const;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue