Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RigidBody3D #93

Closed
Tracked by #117
mihe opened this issue Dec 22, 2022 · 1 comment
Closed
Tracked by #117

RigidBody3D #93

mihe opened this issue Dec 22, 2022 · 1 comment
Labels
enhancement New feature or request meta Concerning other issues topic:runtime Concerning runtime behavior (or its source code)

Comments

@mihe
Copy link
Contributor

mihe commented Dec 22, 2022

Description

This issue tracks the progress of implementing the functionality of Godot's RigidBody3D node type. Below you'll find all user-facing properties, methods and signals, including ones inherited from relevant node types. If you notice any missing from this list, please leave a comment down below.

Status

  • Not supported
  • Not started
  • Partial (not functional)
  • Partial (functional) 👈
  • Done (as much as it can be)
  • Done (completely)

Links

Documentation: RigidBody3D
Inherits: PhysicsBody3D, CollisionObject3D, Node3D

Legend

  • 🚧 indicates a partial, incomplete or broken implementation.
  • 🛑 indicates that it's blocked or incompatible with Jolt in some way.

Properties

Uncategorized

  • Mass (mass)
  • Inertia (inertia)
  • Center of Mass Mode (center_of_mass_mode)
    • Auto (CENTER_OF_MASS_MODE_AUTO)
    • Custom (CENTER_OF_MASS_MODE_CUSTOM)
  • Physical Material Override (physics_material_override)
    • Friction (friction)
    • Rough (rough)
    • Bounce (bounce)
    • Absorbent (absorbent)
  • Gravity Scale (gravity_scale)
  • 🛑 Custom Integrator (custom_integrator)
    • Not supported by Jolt
  • Continuous CD (continuous_cd)
  • Max Contacts Reported (max_contacts_reported)
  • Contact Monitor (contact_monitor)
  • Sleeping (sleeping)
  • Can Sleep (can_sleep)
  • Lock Rotation (lock_rotation)
  • Freeze (freeze)
  • Freeze Mode (freeze_mode)
    • Static (FREEZE_MODE_STATIC)
    • Kinematic (FREEZE_MODE_KINEMATIC)

Linear

  • Velocity (linear_velocity)
  • Damp Mode (linear_damp_mode)
    • Combine (DAMP_MODE_COMBINE)
    • Replace (DAMP_MODE_REPLACE)
  • Damp (linear_damp)

Angular

  • Velocity (angular_velocity)
  • Damp Mode (angular_damp_mode)
    • Combine (DAMP_MODE_COMBINE)
    • Replace (DAMP_MODE_REPLACE)
  • Damp (angular_damp)

Constant Forces

  • Force (constant_force)
  • Torque (constant_torque)

Properties (PhysicsBody3D)

Axis Lock

  • Linear X (BODY_AXIS_LINEAR_X)
  • Linear Y (BODY_AXIS_LINEAR_Y)
  • Linear Z (BODY_AXIS_LINEAR_Z)
  • Angular X (BODY_AXIS_ANGULAR_X)
  • Angular Y (BODY_AXIS_ANGULAR_Y)
  • Angular Z (BODY_AXIS_ANGULAR_Z)

Properties (CollisionObject3D)

Uncategorized

  • Disable Mode (disable_mode)
    • Remove (DISABLE_MODE_REMOVE)
    • Static (DISABLE_MODE_MAKE_STATIC)
    • Active (DISABLE_MODE_KEEP_ACTIVE)

Collision

  • Layer (collision_layer)
  • Mask (collision_mask)
  • Priority (collision_priority)

Input

  • 🚧 Ray Pickable (input_ray_pickable)
    • Technically implemented, but hardcoded to true until Godot 4.1
  • Capture on Drag (input_capture_on_drag)

Properties (Node3D)

Transform

  • Position (position)
  • Rotation (rotation)
  • Scale (scale)

Methods

  • _integrate_forces
  • add_constant_central_force
  • add_constant_force
  • add_constant_torque
  • apply_central_force
  • apply_central_torque
  • apply_central_impulse
  • apply_force
  • apply_impulse
  • apply_torque
  • apply_torque_impulse
  • get_colliding_bodies
  • get_contact_count
  • get_inverse_inertia_tensor
  • set_axis_velocity

Methods (PhysicsBody3D)

  • add_collision_exception_with
  • remove_collision_exception_with
  • get_axis_lock
  • get_collision_exception
  • 🚧 move_and_collide
    • Works, but recovery_as_collision is hardcoded to true until Godot 4.1
  • set_axis_lock
  • 🚧 test_move
    • Works, but recovery_as_collision is hardcoded to true until Godot 4.1

Methods (CollisionObject3D)

  • _input_event
  • _mouse_enter
  • _mouse_exit
  • create_shape_owner
  • get_collision_layer_value
  • get_collision_mask_value
  • get_rid
  • get_shape_owners
  • is_shape_owner_disabled
  • remove_shape_owner
  • set_collision_layer_value
  • set_collision_mask_value
  • shape_find_owner
  • shape_owner_add_shape
  • shape_owner_clear_shapes
  • shape_owner_get_owner
  • shape_owner_get_shape
  • shape_owner_get_shape_count
  • shape_owner_get_shape_index
  • shape_owner_get_transform
  • shape_owner_remove_shape
  • shape_owner_set_disabled
  • shape_owner_set_transform

Signals

  • body_entered
  • body_exited
  • body_shape_entered
  • body_shape_exited
  • sleeping_state_changed

Signals (CollisionObject3D)

  • input_event
  • mouse_entered
  • mouse_exited
@mihe
Copy link
Contributor Author

mihe commented May 18, 2023

This tracking issue has served its purpose and will now be closed. 🫡

Any remaining work has had new issues created for it.

@mihe mihe closed this as completed May 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request meta Concerning other issues topic:runtime Concerning runtime behavior (or its source code)
Projects
None yet
Development

No branches or pull requests

1 participant