|
@@ -1188,12 +1188,6 @@ void GodotSpace3D::set_param(PhysicsServer3D::SpaceParameter p_param, real_t p_v
|
|
|
case PhysicsServer3D::SPACE_PARAM_BODY_TIME_TO_SLEEP:
|
|
|
body_time_to_sleep = p_value;
|
|
|
break;
|
|
|
- case PhysicsServer3D::SPACE_PARAM_BODY_ANGULAR_VELOCITY_DAMP_RATIO:
|
|
|
- body_angular_velocity_damp_ratio = p_value;
|
|
|
- break;
|
|
|
- case PhysicsServer3D::SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS:
|
|
|
- constraint_bias = p_value;
|
|
|
- break;
|
|
|
case PhysicsServer3D::SPACE_PARAM_SOLVER_ITERATIONS:
|
|
|
solver_iterations = p_value;
|
|
|
break;
|
|
@@ -1216,10 +1210,6 @@ real_t GodotSpace3D::get_param(PhysicsServer3D::SpaceParameter p_param) const {
|
|
|
return body_angular_velocity_sleep_threshold;
|
|
|
case PhysicsServer3D::SPACE_PARAM_BODY_TIME_TO_SLEEP:
|
|
|
return body_time_to_sleep;
|
|
|
- case PhysicsServer3D::SPACE_PARAM_BODY_ANGULAR_VELOCITY_DAMP_RATIO:
|
|
|
- return body_angular_velocity_damp_ratio;
|
|
|
- case PhysicsServer3D::SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS:
|
|
|
- return constraint_bias;
|
|
|
case PhysicsServer3D::SPACE_PARAM_SOLVER_ITERATIONS:
|
|
|
return solver_iterations;
|
|
|
}
|
|
@@ -1247,7 +1237,21 @@ GodotSpace3D::GodotSpace3D() {
|
|
|
body_angular_velocity_sleep_threshold = GLOBAL_DEF("physics/3d/sleep_threshold_angular", Math::deg2rad(8.0));
|
|
|
body_time_to_sleep = GLOBAL_DEF("physics/3d/time_before_sleep", 0.5);
|
|
|
ProjectSettings::get_singleton()->set_custom_property_info("physics/3d/time_before_sleep", PropertyInfo(Variant::FLOAT, "physics/3d/time_before_sleep", PROPERTY_HINT_RANGE, "0,5,0.01,or_greater"));
|
|
|
- body_angular_velocity_damp_ratio = 10;
|
|
|
+
|
|
|
+ solver_iterations = GLOBAL_DEF("physics/3d/solver/solver_iterations", 16);
|
|
|
+ ProjectSettings::get_singleton()->set_custom_property_info("physics/3d/solver/solver_iterations", PropertyInfo(Variant::INT, "physics/3d/solver/solver_iterations", PROPERTY_HINT_RANGE, "1,32,1,or_greater"));
|
|
|
+
|
|
|
+ contact_recycle_radius = GLOBAL_DEF("physics/3d/solver/contact_recycle_radius", 0.01);
|
|
|
+ ProjectSettings::get_singleton()->set_custom_property_info("physics/3d/solver/contact_recycle_radius", PropertyInfo(Variant::FLOAT, "physics/3d/solver/contact_max_separation", PROPERTY_HINT_RANGE, "0,0.1,0.01,or_greater"));
|
|
|
+
|
|
|
+ contact_max_separation = GLOBAL_DEF("physics/3d/solver/contact_max_separation", 0.05);
|
|
|
+ ProjectSettings::get_singleton()->set_custom_property_info("physics/3d/solver/contact_max_separation", PropertyInfo(Variant::FLOAT, "physics/3d/solver/contact_max_separation", PROPERTY_HINT_RANGE, "0,0.1,0.01,or_greater"));
|
|
|
+
|
|
|
+ contact_max_allowed_penetration = GLOBAL_DEF("physics/3d/solver/contact_max_allowed_penetration", 0.01);
|
|
|
+ ProjectSettings::get_singleton()->set_custom_property_info("physics/3d/solver/contact_max_allowed_penetration", PropertyInfo(Variant::FLOAT, "physics/3d/solver/contact_max_allowed_penetration", PROPERTY_HINT_RANGE, "0,0.1,0.01,or_greater"));
|
|
|
+
|
|
|
+ contact_bias = GLOBAL_DEF("physics/3d/solver/default_contact_bias", 0.8);
|
|
|
+ ProjectSettings::get_singleton()->set_custom_property_info("physics/3d/solver/default_contact_bias", PropertyInfo(Variant::FLOAT, "physics/3d/solver/default_contact_bias", PROPERTY_HINT_RANGE, "0,1,0.01"));
|
|
|
|
|
|
broadphase = GodotBroadPhase3D::create_func();
|
|
|
broadphase->set_pair_callback(_broadphase_pair, this);
|