Remove get_closest_* methods from ShapeCast2D
The physics API cannot provide needed functionality to ensure the correct behavior, which might lead to confusion (see `rest_info()`). However `get_closest_collision_safe/unsafe_fraction()` methods are not removed, because they return correct result from `cast_motion()`.
This commit is contained in:
@ -39,31 +39,6 @@
|
|||||||
[b]Note:[/b] [code]enabled == true[/code] is not required for this to work.
|
[b]Note:[/b] [code]enabled == true[/code] is not required for this to work.
|
||||||
</description>
|
</description>
|
||||||
</method>
|
</method>
|
||||||
<method name="get_closest_collider" qualifiers="const">
|
|
||||||
<return type="Object" />
|
|
||||||
<description>
|
|
||||||
Returns the first object that the shape intersects, or [code]null[/code] if no object is intersecting the shape (i.e. [method is_colliding] returns [code]false[/code]).
|
|
||||||
</description>
|
|
||||||
</method>
|
|
||||||
<method name="get_closest_collider_shape" qualifiers="const">
|
|
||||||
<return type="int" />
|
|
||||||
<description>
|
|
||||||
Returns the shape ID of the first object that the shape intersects, or [code]0[/code] if no object is intersecting the shape (i.e. [method is_colliding] returns [code]false[/code]).
|
|
||||||
</description>
|
|
||||||
</method>
|
|
||||||
<method name="get_closest_collision_normal" qualifiers="const">
|
|
||||||
<return type="Vector2" />
|
|
||||||
<description>
|
|
||||||
Returns the normal of the closest intersecting object's shape at the collision point.
|
|
||||||
</description>
|
|
||||||
</method>
|
|
||||||
<method name="get_closest_collision_point" qualifiers="const">
|
|
||||||
<return type="Vector2" />
|
|
||||||
<description>
|
|
||||||
Returns the collision point at which the shape intersects the closest object.
|
|
||||||
[b]Note:[/b] this point is in the [b]global[/b] coordinate system.
|
|
||||||
</description>
|
|
||||||
</method>
|
|
||||||
<method name="get_closest_collision_safe_fraction" qualifiers="const">
|
<method name="get_closest_collision_safe_fraction" qualifiers="const">
|
||||||
<return type="float" />
|
<return type="float" />
|
||||||
<description>
|
<description>
|
||||||
|
|||||||
@ -130,26 +130,6 @@ real_t ShapeCast2D::get_closest_collision_unsafe_fraction() const {
|
|||||||
return collision_unsafe_fraction;
|
return collision_unsafe_fraction;
|
||||||
}
|
}
|
||||||
|
|
||||||
Object *ShapeCast2D::get_closest_collider() const {
|
|
||||||
ERR_FAIL_COND_V_MSG(result.is_empty(), nullptr, "Shape cast has not collided with anything yet.");
|
|
||||||
return ObjectDB::get_instance(result[0].collider_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
int ShapeCast2D::get_closest_collider_shape() const {
|
|
||||||
ERR_FAIL_COND_V_MSG(result.is_empty(), -1, "Shape cast has not collided with anything yet.");
|
|
||||||
return result[0].shape;
|
|
||||||
}
|
|
||||||
|
|
||||||
Vector2 ShapeCast2D::get_closest_collision_point() const {
|
|
||||||
ERR_FAIL_COND_V_MSG(result.is_empty(), Vector2(), "Shape cast has not collided with anything yet.");
|
|
||||||
return result[0].point;
|
|
||||||
}
|
|
||||||
|
|
||||||
Vector2 ShapeCast2D::get_closest_collision_normal() const {
|
|
||||||
ERR_FAIL_COND_V_MSG(result.is_empty(), Vector2(), "Shape cast has not collided with anything yet.");
|
|
||||||
return result[0].normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ShapeCast2D::set_enabled(bool p_enabled) {
|
void ShapeCast2D::set_enabled(bool p_enabled) {
|
||||||
enabled = p_enabled;
|
enabled = p_enabled;
|
||||||
update();
|
update();
|
||||||
@ -437,10 +417,6 @@ void ShapeCast2D::_bind_methods() {
|
|||||||
ClassDB::bind_method(D_METHOD("get_collision_point", "index"), &ShapeCast2D::get_collision_point);
|
ClassDB::bind_method(D_METHOD("get_collision_point", "index"), &ShapeCast2D::get_collision_point);
|
||||||
ClassDB::bind_method(D_METHOD("get_collision_normal", "index"), &ShapeCast2D::get_collision_normal);
|
ClassDB::bind_method(D_METHOD("get_collision_normal", "index"), &ShapeCast2D::get_collision_normal);
|
||||||
|
|
||||||
ClassDB::bind_method(D_METHOD("get_closest_collider"), &ShapeCast2D::get_closest_collider);
|
|
||||||
ClassDB::bind_method(D_METHOD("get_closest_collider_shape"), &ShapeCast2D::get_closest_collider_shape);
|
|
||||||
ClassDB::bind_method(D_METHOD("get_closest_collision_point"), &ShapeCast2D::get_closest_collision_point);
|
|
||||||
ClassDB::bind_method(D_METHOD("get_closest_collision_normal"), &ShapeCast2D::get_closest_collision_normal);
|
|
||||||
ClassDB::bind_method(D_METHOD("get_closest_collision_safe_fraction"), &ShapeCast2D::get_closest_collision_safe_fraction);
|
ClassDB::bind_method(D_METHOD("get_closest_collision_safe_fraction"), &ShapeCast2D::get_closest_collision_safe_fraction);
|
||||||
ClassDB::bind_method(D_METHOD("get_closest_collision_unsafe_fraction"), &ShapeCast2D::get_closest_collision_unsafe_fraction);
|
ClassDB::bind_method(D_METHOD("get_closest_collision_unsafe_fraction"), &ShapeCast2D::get_closest_collision_unsafe_fraction);
|
||||||
|
|
||||||
|
|||||||
@ -105,10 +105,6 @@ public:
|
|||||||
Vector2 get_collision_point(int p_idx) const;
|
Vector2 get_collision_point(int p_idx) const;
|
||||||
Vector2 get_collision_normal(int p_idx) const;
|
Vector2 get_collision_normal(int p_idx) const;
|
||||||
|
|
||||||
Object *get_closest_collider() const;
|
|
||||||
int get_closest_collider_shape() const;
|
|
||||||
Vector2 get_closest_collision_point() const;
|
|
||||||
Vector2 get_closest_collision_normal() const;
|
|
||||||
real_t get_closest_collision_safe_fraction() const;
|
real_t get_closest_collision_safe_fraction() const;
|
||||||
real_t get_closest_collision_unsafe_fraction() const;
|
real_t get_closest_collision_unsafe_fraction() const;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user