CollisionHandlerGravity

class CollisionHandlerGravity

Bases: CollisionHandlerPhysical

A specialized kind of CollisionHandler that sets the Z height of the collider to a fixed linear offset from the highest detected collision point each frame. It’s intended to implement walking around on a floor of varying height by casting a ray down from the avatar’s head.

Inheritance diagram

digraph inheritance93f56622ed { bgcolor=transparent; rankdir=BT; size="8.0, 12.0"; "CollisionHandler" [URL="acron.core.CollisionHandler.html#acron.core.CollisionHandler",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="",target="_top",tooltip="/**"]; "TypedReferenceCount" -> "CollisionHandler" [arrowsize=0.75,style=""]; "CollisionHandlerEvent" [URL="acron.core.CollisionHandlerEvent.html#acron.core.CollisionHandlerEvent",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="",target="_top",tooltip="/**"]; "CollisionHandler" -> "CollisionHandlerEvent" [arrowsize=0.75,style=""]; "CollisionHandlerGravity" [URL="acron.core.CollisionHandlerGravity.html#acron.core.CollisionHandlerGravity",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="",target="_top",tooltip="/**"]; "CollisionHandlerPhysical" -> "CollisionHandlerGravity" [arrowsize=0.75,style=""]; "CollisionHandlerPhysical" [URL="acron.core.CollisionHandlerPhysical.html#acron.core.CollisionHandlerPhysical",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="",target="_top",tooltip="/**"]; "CollisionHandlerEvent" -> "CollisionHandlerPhysical" [arrowsize=0.75,style=""]; "DTOOL_SUPER_BASE" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style=""]; "ReferenceCount" [URL="acron.core.ReferenceCount.html#acron.core.ReferenceCount",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="",target="_top",tooltip="/**"]; "DTOOL_SUPER_BASE" -> "ReferenceCount" [arrowsize=0.75,style=""]; "TypedObject" [URL="acron.core.TypedObject.html#acron.core.TypedObject",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="",target="_top",tooltip="/**"]; "DTOOL_SUPER_BASE" -> "TypedObject" [arrowsize=0.75,style=""]; "TypedReferenceCount" [URL="acron.core.TypedReferenceCount.html#acron.core.TypedReferenceCount",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="",target="_top",tooltip="/**"]; "TypedObject" -> "TypedReferenceCount" [arrowsize=0.75,style=""]; "ReferenceCount" -> "TypedReferenceCount" [arrowsize=0.75,style=""]; }
CollisionHandlerGravity.__init__()
CollisionHandlerGravity.add_velocity()

Adds the sepcified amount to the current velocity. This is mostly here allow this common operation to be faster for scripting, but it’s also more concise even in cpp.

CollisionHandlerGravity.get_airborne_height()

Return the height of the object from the ground.

The object might not necessarily be at rest. Use is_on_ground() if you want to know whether the object is on the ground and at rest.

static CollisionHandlerGravity.get_class_type()
CollisionHandlerGravity.get_contact_normal()
CollisionHandlerGravity.get_gravity()

Gets the linear gravity force (always plumb).

CollisionHandlerGravity.get_impact_velocity()

How hard did the object hit the ground. This value is set on impact with the ground. You may want to watch (poll) on is_on_ground() and when that is true, call get_impact_velocity(). Normally I avoid polling, but we are calling is_on_ground() frequently anyway.

CollisionHandlerGravity.get_legacy_mode()

returns true if legacy mode is enabled

CollisionHandlerGravity.get_max_velocity()

Retrieves the maximum speed at which the object will be allowed to descend towards a floor below it, in units per second. See set_max_velocity().

CollisionHandlerGravity.get_offset()

Returns the linear offset to add to (or subtract from) the highest detected collision point to determine the actual height at which to set the collider.

CollisionHandlerGravity.get_reach()

Returns the reach to add to (or subtract from) the highest collision point

CollisionHandlerGravity.get_velocity()

Gets the current vertical velocity.

Generally, negative values mean the object is in free fall; while postive values mean the object has vertical thrust.

A zero value does not necessarily mean the object on the ground, it may also be weightless and/or at the apex of its jump.

See Also: is_on_ground() and get_gravity()

CollisionHandlerGravity.is_on_ground()

Is the object at rest?

CollisionHandlerGravity.set_gravity()

Sets the linear gravity force (always plumb).

CollisionHandlerGravity.set_legacy_mode()

Enables old behavior required by Toontown (Sellbot Factory lava room is good test case, lava and conveyor belt specifically). Behavior is to throw enter/exit events only for floor that the toon is in contact with

CollisionHandlerGravity.set_max_velocity()

Sets the maximum speed at which the object will be allowed to descend towards a floor below it, in units per second. Set this to zero to allow it to instantly teleport any distance.

CollisionHandlerGravity.set_offset()

Sets the linear offset to add to (or subtract from) the highest detected collision point to determine the actual height at which to set the collider.

CollisionHandlerGravity.set_reach()

Sets the reach to add to (or subtract from) the highest collision point

CollisionHandlerGravity.set_velocity()

Sets the current vertical velocity.