Re-add extents property to box shapes for compatibility

This commit is contained in:
Aaron Franke 2021-06-16 23:23:52 -04:00
parent 13c4796693
commit 1a9e6cba2f
No known key found for this signature in database
GPG key ID: 40A1750B977E56BF
4 changed files with 48 additions and 0 deletions

View file

@ -56,6 +56,26 @@ void BoxShape3D::_update_shape() {
Shape3D::_update_shape();
}
#ifndef DISABLE_DEPRECATED
bool BoxShape3D::_set(const StringName &p_name, const Variant &p_value) {
if (p_name == "extents") { // Compatibility with Godot 3.x.
// Convert to `size`, twice as big.
set_size((Vector3)p_value * 2);
return true;
}
return false;
}
bool BoxShape3D::_get(const StringName &p_name, Variant &r_property) const {
if (p_name == "extents") { // Compatibility with Godot 3.x.
// Convert to `extents`, half as big.
r_property = size / 2;
return true;
}
return false;
}
#endif // DISABLE_DEPRECATED
void BoxShape3D::set_size(const Vector3 &p_size) {
size = p_size;
_update_shape();

View file

@ -39,6 +39,10 @@ class BoxShape3D : public Shape3D {
protected:
static void _bind_methods();
#ifndef DISABLE_DEPRECATED
bool _set(const StringName &p_name, const Variant &p_value);
bool _get(const StringName &p_name, Variant &r_property) const;
#endif // DISABLE_DEPRECATED
virtual void _update_shape() override;

View file

@ -37,6 +37,26 @@ void RectangleShape2D::_update_shape() {
emit_changed();
}
#ifndef DISABLE_DEPRECATED
bool RectangleShape2D::_set(const StringName &p_name, const Variant &p_value) {
if (p_name == "extents") { // Compatibility with Godot 3.x.
// Convert to `size`, twice as big.
set_size((Vector2)p_value * 2);
return true;
}
return false;
}
bool RectangleShape2D::_get(const StringName &p_name, Variant &r_property) const {
if (p_name == "extents") { // Compatibility with Godot 3.x.
// Convert to `extents`, half as big.
r_property = size / 2;
return true;
}
return false;
}
#endif // DISABLE_DEPRECATED
void RectangleShape2D::set_size(const Vector2 &p_size) {
size = p_size;
_update_shape();

View file

@ -41,6 +41,10 @@ class RectangleShape2D : public Shape2D {
protected:
static void _bind_methods();
#ifndef DISABLE_DEPRECATED
bool _set(const StringName &p_name, const Variant &p_value);
bool _get(const StringName &p_name, Variant &r_property) const;
#endif // DISABLE_DEPRECATED
public:
void set_size(const Vector2 &p_size);