mirror of
https://github.com/godotengine/godot.git
synced 2026-01-06 10:11:57 +03:00
Add mid height property to CapsuleShape2D/3D
This commit is contained in:
@@ -60,6 +60,18 @@ float SpringBoneCollisionCapsule3D::get_height() const {
|
||||
return height;
|
||||
}
|
||||
|
||||
void SpringBoneCollisionCapsule3D::set_mid_height(real_t p_mid_height) {
|
||||
ERR_FAIL_COND_MSG(p_mid_height < 0.0f, "SpringBoneCollisionCapsule3D mid-height cannot be negative.");
|
||||
height = p_mid_height + radius * 2.0f;
|
||||
#ifdef TOOLS_ENABLED
|
||||
update_gizmos();
|
||||
#endif // TOOLS_ENABLED
|
||||
}
|
||||
|
||||
real_t SpringBoneCollisionCapsule3D::get_mid_height() const {
|
||||
return height - radius * 2.0f;
|
||||
}
|
||||
|
||||
void SpringBoneCollisionCapsule3D::set_inside(bool p_enabled) {
|
||||
inside = p_enabled;
|
||||
#ifdef TOOLS_ENABLED
|
||||
@@ -83,11 +95,14 @@ void SpringBoneCollisionCapsule3D::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("get_radius"), &SpringBoneCollisionCapsule3D::get_radius);
|
||||
ClassDB::bind_method(D_METHOD("set_height", "height"), &SpringBoneCollisionCapsule3D::set_height);
|
||||
ClassDB::bind_method(D_METHOD("get_height"), &SpringBoneCollisionCapsule3D::get_height);
|
||||
ClassDB::bind_method(D_METHOD("set_mid_height", "mid_height"), &SpringBoneCollisionCapsule3D::set_mid_height);
|
||||
ClassDB::bind_method(D_METHOD("get_mid_height"), &SpringBoneCollisionCapsule3D::get_mid_height);
|
||||
ClassDB::bind_method(D_METHOD("set_inside", "enabled"), &SpringBoneCollisionCapsule3D::set_inside);
|
||||
ClassDB::bind_method(D_METHOD("is_inside"), &SpringBoneCollisionCapsule3D::is_inside);
|
||||
|
||||
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "radius", PROPERTY_HINT_RANGE, "0,1,0.001,or_greater,suffix:m"), "set_radius", "get_radius");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "height", PROPERTY_HINT_RANGE, "0,1,0.001,or_greater,suffix:m"), "set_height", "get_height");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "mid_height", PROPERTY_HINT_RANGE, "0,1,0.001,or_greater,suffix:m", PROPERTY_USAGE_NONE), "set_mid_height", "get_mid_height");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "inside"), "set_inside", "is_inside");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user