Fix move_and_slide forcing synchronization with physics thread

Co-authored-by: Ricardo Buring <ricardo.buring@gmail.com>
This commit is contained in:
Mikael Hermansson
2025-08-14 13:05:08 +02:00
parent de463e0241
commit 6c907c2d37
22 changed files with 226 additions and 2 deletions

View File

@ -166,6 +166,22 @@ bool GodotPhysicsDirectBodyState2D::is_sleeping() const {
return !body->is_active();
}
void GodotPhysicsDirectBodyState2D::set_collision_layer(uint32_t p_layer) {
body->set_collision_layer(p_layer);
}
uint32_t GodotPhysicsDirectBodyState2D::get_collision_layer() const {
return body->get_collision_layer();
}
void GodotPhysicsDirectBodyState2D::set_collision_mask(uint32_t p_mask) {
body->set_collision_mask(p_mask);
}
uint32_t GodotPhysicsDirectBodyState2D::get_collision_mask() const {
return body->get_collision_mask();
}
int GodotPhysicsDirectBodyState2D::get_contact_count() const {
return body->contact_count;
}

View File

@ -81,6 +81,12 @@ public:
virtual void set_sleep_state(bool p_enable) override;
virtual bool is_sleeping() const override;
virtual void set_collision_layer(uint32_t p_layer) override;
virtual uint32_t get_collision_layer() const override;
virtual void set_collision_mask(uint32_t p_mask) override;
virtual uint32_t get_collision_mask() const override;
virtual int get_contact_count() const override;
virtual Vector2 get_contact_local_position(int p_contact_idx) const override;

View File

@ -174,6 +174,22 @@ bool GodotPhysicsDirectBodyState3D::is_sleeping() const {
return !body->is_active();
}
void GodotPhysicsDirectBodyState3D::set_collision_layer(uint32_t p_layer) {
body->set_collision_layer(p_layer);
}
uint32_t GodotPhysicsDirectBodyState3D::get_collision_layer() const {
return body->get_collision_layer();
}
void GodotPhysicsDirectBodyState3D::set_collision_mask(uint32_t p_mask) {
body->set_collision_mask(p_mask);
}
uint32_t GodotPhysicsDirectBodyState3D::get_collision_mask() const {
return body->get_collision_mask();
}
int GodotPhysicsDirectBodyState3D::get_contact_count() const {
return body->contact_count;
}

View File

@ -84,6 +84,12 @@ public:
virtual void set_sleep_state(bool p_sleep) override;
virtual bool is_sleeping() const override;
virtual void set_collision_layer(uint32_t p_layer) override;
virtual uint32_t get_collision_layer() const override;
virtual void set_collision_mask(uint32_t p_mask) override;
virtual uint32_t get_collision_mask() const override;
virtual int get_contact_count() const override;
virtual Vector3 get_contact_local_position(int p_contact_idx) const override;

View File

@ -162,6 +162,22 @@ void JoltPhysicsDirectBodyState3D::set_sleep_state(bool p_enabled) {
body->set_is_sleeping(p_enabled);
}
void JoltPhysicsDirectBodyState3D::set_collision_layer(uint32_t p_layer) {
body->set_collision_layer(p_layer);
}
uint32_t JoltPhysicsDirectBodyState3D::get_collision_layer() const {
return body->get_collision_layer();
}
void JoltPhysicsDirectBodyState3D::set_collision_mask(uint32_t p_mask) {
body->set_collision_mask(p_mask);
}
uint32_t JoltPhysicsDirectBodyState3D::get_collision_mask() const {
return body->get_collision_mask();
}
int JoltPhysicsDirectBodyState3D::get_contact_count() const {
return body->get_contact_count();
}

View File

@ -90,6 +90,12 @@ public:
virtual void set_sleep_state(bool p_enabled) override;
virtual bool is_sleeping() const override;
virtual void set_collision_layer(uint32_t p_layer) override;
virtual uint32_t get_collision_layer() const override;
virtual void set_collision_mask(uint32_t p_mask) override;
virtual uint32_t get_collision_mask() const override;
virtual int get_contact_count() const override;
virtual Vector3 get_contact_local_position(int p_contact_idx) const override;