You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-09 12:50:35 +00:00
Merge pull request #38387 from Rhathe/set_iterations
[3.x] Enable setting of collision iterations in Physics2DServer
This commit is contained in:
@@ -1003,6 +1003,15 @@
|
||||
Activates or deactivates the 2D physics engine.
|
||||
</description>
|
||||
</method>
|
||||
<method name="set_collision_iterations">
|
||||
<return type="void">
|
||||
</return>
|
||||
<argument index="0" name="iterations" type="int">
|
||||
</argument>
|
||||
<description>
|
||||
Sets the amount of iterations for calculating velocities of colliding bodies. The greater the amount, the more accurate the collisions, but with a performance loss.
|
||||
</description>
|
||||
</method>
|
||||
<method name="shape_get_data" qualifiers="const">
|
||||
<return type="Variant">
|
||||
</return>
|
||||
|
||||
@@ -1195,6 +1195,10 @@ void Physics2DServerSW::set_active(bool p_active) {
|
||||
active = p_active;
|
||||
};
|
||||
|
||||
void Physics2DServerSW::set_collision_iterations(int p_iterations) {
|
||||
iterations = p_iterations;
|
||||
};
|
||||
|
||||
void Physics2DServerSW::init() {
|
||||
doing_sync = false;
|
||||
last_step = 0.001;
|
||||
|
||||
@@ -282,6 +282,8 @@ public:
|
||||
virtual void end_sync();
|
||||
virtual void finish();
|
||||
|
||||
virtual void set_collision_iterations(int p_iterations);
|
||||
|
||||
virtual bool is_flushing_queries() const { return flushing_queries; }
|
||||
|
||||
int get_process_info(ProcessInfo p_info);
|
||||
|
||||
@@ -297,6 +297,7 @@ public:
|
||||
|
||||
FUNC1(free, RID);
|
||||
FUNC1(set_active, bool);
|
||||
FUNC1(set_collision_iterations, int);
|
||||
|
||||
virtual void init();
|
||||
virtual void step(real_t p_step);
|
||||
|
||||
@@ -649,6 +649,8 @@ void Physics2DServer::_bind_methods() {
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_active", "active"), &Physics2DServer::set_active);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_collision_iterations", "iterations"), &Physics2DServer::set_collision_iterations);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_process_info", "process_info"), &Physics2DServer::get_process_info);
|
||||
|
||||
BIND_ENUM_CONSTANT(SPACE_PARAM_CONTACT_RECYCLE_RADIUS);
|
||||
|
||||
@@ -583,6 +583,8 @@ public:
|
||||
|
||||
virtual bool is_flushing_queries() const = 0;
|
||||
|
||||
virtual void set_collision_iterations(int iterations) = 0;
|
||||
|
||||
enum ProcessInfo {
|
||||
|
||||
INFO_ACTIVE_OBJECTS,
|
||||
|
||||
Reference in New Issue
Block a user