Script interface improvements for test body motion

-Physics servers test body motion use a class to hold parameters instead
of multiple arguments to make it more readable and flexible since there
are many options
-Improved documentation for test body motion and kinematic collision
-Removed read-only properties for body motion results (not handled in
scripts, so they should be get_ methods only instead)
This commit is contained in:
PouleyKetchoupp
2021-09-30 11:28:57 -07:00
parent 073db83569
commit 3ae5687d48
28 changed files with 679 additions and 489 deletions
+82 -26
View File
@@ -1,35 +1,91 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="PhysicsTestMotionResult2D" inherits="RefCounted" version="4.0">
<brief_description>
Result from a 2D body motion test.
</brief_description>
<description>
This class contains the motion and collision result from [method PhysicsServer2D.body_test_motion].
</description>
<tutorials>
</tutorials>
<members>
<member name="collider" type="Object" setter="" getter="get_collider">
</member>
<member name="collider_id" type="int" setter="" getter="get_collider_id" default="0">
</member>
<member name="collider_rid" type="RID" setter="" getter="get_collider_rid">
</member>
<member name="collider_shape" type="int" setter="" getter="get_collider_shape" default="0">
</member>
<member name="collider_velocity" type="Vector2" setter="" getter="get_collider_velocity" default="Vector2(0, 0)">
</member>
<member name="collision_depth" type="float" setter="" getter="get_collision_depth" default="0.0">
</member>
<member name="collision_normal" type="Vector2" setter="" getter="get_collision_normal" default="Vector2(0, 0)">
</member>
<member name="collision_point" type="Vector2" setter="" getter="get_collision_point" default="Vector2(0, 0)">
</member>
<member name="collision_safe_fraction" type="float" setter="" getter="get_collision_safe_fraction" default="0.0">
</member>
<member name="collision_unsafe_fraction" type="float" setter="" getter="get_collision_unsafe_fraction" default="0.0">
</member>
<member name="remainder" type="Vector2" setter="" getter="get_remainder" default="Vector2(0, 0)">
</member>
<member name="travel" type="Vector2" setter="" getter="get_travel" default="Vector2(0, 0)">
</member>
</members>
<methods>
<method name="get_collider" qualifiers="const">
<return type="Object" />
<description>
Returns the colliding body's attached [Object], if a collision occured.
</description>
</method>
<method name="get_collider_id" qualifiers="const">
<return type="int" />
<description>
Returns the unique instance ID of the colliding body's attached [Object], if a collision occured. See [method Object.get_instance_id].
</description>
</method>
<method name="get_collider_rid" qualifiers="const">
<return type="RID" />
<description>
Returns the colliding body's [RID] used by the [PhysicsServer2D], if a collision occured.
</description>
</method>
<method name="get_collider_shape" qualifiers="const">
<return type="int" />
<description>
Returns the colliding body's shape index, if a collision occured. See [CollisionObject2D].
</description>
</method>
<method name="get_collider_velocity" qualifiers="const">
<return type="Vector2" />
<description>
Returns the colliding body's velocity, if a collision occured.
</description>
</method>
<method name="get_collision_depth" qualifiers="const">
<return type="float" />
<description>
Returns the length of overlap along the collision normal, if a collision occured.
</description>
</method>
<method name="get_collision_local_shape" qualifiers="const">
<return type="int" />
<description>
Returns the moving object's colliding shape, if a collision occured.
</description>
</method>
<method name="get_collision_normal" qualifiers="const">
<return type="Vector2" />
<description>
Returns the colliding body's shape's normal at the point of collision, if a collision occured.
</description>
</method>
<method name="get_collision_point" qualifiers="const">
<return type="Vector2" />
<description>
Returns the point of collision in global coordinates, if a collision occured.
</description>
</method>
<method name="get_collision_safe_fraction" qualifiers="const">
<return type="float" />
<description>
Returns the maximum fraction of the motion that can occur without a collision, between [code]0[/code] and [code]1[/code].
</description>
</method>
<method name="get_collision_unsafe_fraction" qualifiers="const">
<return type="float" />
<description>
Returns the minimum fraction of the motion needed to collide, if a collision occured, between [code]0[/code] and [code]1[/code].
</description>
</method>
<method name="get_remainder" qualifiers="const">
<return type="Vector2" />
<description>
Returns the moving object's remaining movement vector.
</description>
</method>
<method name="get_travel" qualifiers="const">
<return type="Vector2" />
<description>
Returns the moving object's travel before collision.
</description>
</method>
</methods>
</class>