diff --git a/doc/classes/TileMap.xml b/doc/classes/TileMap.xml
index 6ee948999556..036a4020ea7e 100644
--- a/doc/classes/TileMap.xml
+++ b/doc/classes/TileMap.xml
@@ -245,7 +245,7 @@
Bounce value for static body collisions (see [code]collision_use_kinematic[/code]). Default value: 0.
-
+
Friction value for static body collisions (see [code]collision_use_kinematic[/code]). Default value: 1.
diff --git a/scene/2d/tile_map.cpp b/scene/2d/tile_map.cpp
index c126dd8f6b75..92afb4d11b20 100644
--- a/scene/2d/tile_map.cpp
+++ b/scene/2d/tile_map.cpp
@@ -1171,7 +1171,7 @@ void TileMap::set_collision_use_kinematic(bool p_use_kinematic) {
_recreate_quadrants();
}
-void TileMap::set_collision_friction(float p_friction) {
+void TileMap::set_friction(float p_friction) {
friction = p_friction;
for (Map::Element *E = quadrant_map.front(); E; E = E->next()) {
@@ -1181,11 +1181,21 @@ void TileMap::set_collision_friction(float p_friction) {
}
}
-float TileMap::get_collision_friction() const {
+float TileMap::get_friction() const {
return friction;
}
+void TileMap::set_collision_friction(float p_friction) {
+
+ set_friction(p_friction);
+}
+
+float TileMap::get_collision_friction() const {
+
+ return get_friction();
+}
+
void TileMap::set_collision_bounce(float p_bounce) {
bounce = p_bounce;
@@ -1567,8 +1577,11 @@ void TileMap::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_collision_mask_bit", "bit", "value"), &TileMap::set_collision_mask_bit);
ClassDB::bind_method(D_METHOD("get_collision_mask_bit", "bit"), &TileMap::get_collision_mask_bit);
- ClassDB::bind_method(D_METHOD("set_collision_friction", "value"), &TileMap::set_collision_friction);
- ClassDB::bind_method(D_METHOD("get_collision_friction"), &TileMap::get_collision_friction);
+ ClassDB::bind_method(D_METHOD("set_collision_friction", "value"), &TileMap::set_friction);
+ ClassDB::bind_method(D_METHOD("get_collision_friction"), &TileMap::get_friction);
+
+ ClassDB::bind_method(D_METHOD("set_friction", "value"), &TileMap::set_friction);
+ ClassDB::bind_method(D_METHOD("get_friction"), &TileMap::get_friction);
ClassDB::bind_method(D_METHOD("set_collision_bounce", "value"), &TileMap::set_collision_bounce);
ClassDB::bind_method(D_METHOD("get_collision_bounce"), &TileMap::get_collision_bounce);
@@ -1618,6 +1631,7 @@ void TileMap::_bind_methods() {
ADD_GROUP("Collision", "collision_");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "collision_use_kinematic", PROPERTY_HINT_NONE, ""), "set_collision_use_kinematic", "get_collision_use_kinematic");
+ ADD_PROPERTY(PropertyInfo(Variant::REAL, "friction", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_friction", "get_friction");
ADD_PROPERTY(PropertyInfo(Variant::REAL, "collision_friction", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_collision_friction", "get_collision_friction");
ADD_PROPERTY(PropertyInfo(Variant::REAL, "collision_bounce", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_collision_bounce", "get_collision_bounce");
ADD_PROPERTY(PropertyInfo(Variant::INT, "collision_layer", PROPERTY_HINT_LAYERS_2D_PHYSICS), "set_collision_layer", "get_collision_layer");
diff --git a/scene/2d/tile_map.h b/scene/2d/tile_map.h
index 587bd3b684d5..37c3d5677ff3 100644
--- a/scene/2d/tile_map.h
+++ b/scene/2d/tile_map.h
@@ -267,6 +267,9 @@ class TileMap : public Node2D {
void set_collision_use_kinematic(bool p_use_kinematic);
bool get_collision_use_kinematic() const;
+ void set_friction(float p_friction);
+ float get_friction() const;
+
void set_collision_friction(float p_friction);
float get_collision_friction() const;