You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-08 12:40:44 +00:00
Modified RigidBody, PhysicsDirectBodyState, PhysicsServer, and their respective 2D counterparts to be more consistent and to include more useful methods.
RigidBody: - Added add_central_force - Added add_force - Added add_torque - Added apply_central_impulse RigidBody2D: - Added add_central_force - Added add_torque - Added apply_central_impulse - Added apply_torque_impulse PhysicsDirectBodyState: - Added apply_central_impulse Physics2DDirectBodyState: - Added add_central_force - Added add_force - Added add_torque - Added apply_central_impulse - Added apply_impulse - Added apply_torque_impulse PhysicsServer: - Added body_add_force - Added body_add_torque - Added body_add_central_force - Added body_apply_central_impulse Physics2DServer: - Added body_add_torque - Added body_add_central_force - Added body_apply_central_impulse - Added body_apply_torque_impulse Also fixed some small bugs along the way
This commit is contained in:
@@ -854,6 +854,21 @@ real_t Physics2DServerSW::body_get_applied_torque(RID p_body) const {
|
||||
return body->get_applied_torque();
|
||||
};
|
||||
|
||||
void Physics2DServerSW::body_apply_central_impulse(RID p_body, const Vector2 &p_impulse) {
|
||||
Body2DSW *body = body_owner.get(p_body);
|
||||
ERR_FAIL_COND(!body);
|
||||
|
||||
body->apply_central_impulse(p_impulse);
|
||||
body->wakeup();
|
||||
}
|
||||
|
||||
void Physics2DServerSW::body_apply_torque_impulse(RID p_body, real_t p_torque) {
|
||||
Body2DSW *body = body_owner.get(p_body);
|
||||
ERR_FAIL_COND(!body);
|
||||
|
||||
body->apply_torque_impulse(p_torque);
|
||||
}
|
||||
|
||||
void Physics2DServerSW::body_apply_impulse(RID p_body, const Vector2 &p_pos, const Vector2 &p_impulse) {
|
||||
|
||||
Body2DSW *body = body_owner.get(p_body);
|
||||
@@ -863,12 +878,28 @@ void Physics2DServerSW::body_apply_impulse(RID p_body, const Vector2 &p_pos, con
|
||||
body->wakeup();
|
||||
};
|
||||
|
||||
void Physics2DServerSW::body_add_central_force(RID p_body, const Vector2 &p_force) {
|
||||
Body2DSW *body = body_owner.get(p_body);
|
||||
ERR_FAIL_COND(!body);
|
||||
|
||||
body->add_central_force(p_force);
|
||||
body->wakeup();
|
||||
};
|
||||
|
||||
void Physics2DServerSW::body_add_force(RID p_body, const Vector2 &p_offset, const Vector2 &p_force) {
|
||||
|
||||
Body2DSW *body = body_owner.get(p_body);
|
||||
ERR_FAIL_COND(!body);
|
||||
|
||||
body->add_force(p_force, p_offset);
|
||||
body->add_force(p_offset, p_force);
|
||||
body->wakeup();
|
||||
};
|
||||
|
||||
void Physics2DServerSW::body_add_torque(RID p_body, real_t p_torque) {
|
||||
Body2DSW *body = body_owner.get(p_body);
|
||||
ERR_FAIL_COND(!body);
|
||||
|
||||
body->add_torque(p_torque);
|
||||
body->wakeup();
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user