diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2020-06-12 13:16:14 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2020-06-12 14:30:18 +0200 |
commit | b3bc5aafc5dbe6559534bb1e19093e719afbf52c (patch) | |
tree | 850db91f87f2bd497c3fb0c662d7d3809a53c6fb /scene/3d | |
parent | 84abf5a979648081a9076ec6b342f5f9d33093d4 (diff) |
Object: Add usage hint to instantiate Object properties in editor
Fixes #36372 as Path2D/Path3D's `curve` property no longer uses a Curve
instance as default value, but instead it gets a (unique) default Curve
instance when created through the editor (CreateDialog).
ClassDB gets a sanity check to ensure that we don't do the same mistake
for other properties in the future, but instead use the dedicated
property usage hint.
Fixes #36372.
Fixes #36650.
Supersedes #36644 and #36656.
Co-authored-by: Thakee Nathees <thakeenathees@gmail.com>
Co-authored-by: simpuid <utkarsh.email@yahoo.com>
Diffstat (limited to 'scene/3d')
-rw-r--r-- | scene/3d/path_3d.cpp | 6 | ||||
-rw-r--r-- | scene/3d/path_3d.h | 2 |
2 files changed, 2 insertions, 6 deletions
diff --git a/scene/3d/path_3d.cpp b/scene/3d/path_3d.cpp index dcfdf8efcf..40d988ff9f 100644 --- a/scene/3d/path_3d.cpp +++ b/scene/3d/path_3d.cpp @@ -77,15 +77,11 @@ void Path3D::_bind_methods() { ClassDB::bind_method(D_METHOD("set_curve", "curve"), &Path3D::set_curve); ClassDB::bind_method(D_METHOD("get_curve"), &Path3D::get_curve); - ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "curve", PROPERTY_HINT_RESOURCE_TYPE, "Curve3D"), "set_curve", "get_curve"); + ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "curve", PROPERTY_HINT_RESOURCE_TYPE, "Curve3D", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_EDITOR_INSTANTIATE_OBJECT), "set_curve", "get_curve"); ADD_SIGNAL(MethodInfo("curve_changed")); } -Path3D::Path3D() { - set_curve(Ref<Curve3D>(memnew(Curve3D))); //create one by default -} - ////////////// void PathFollow3D::_update_transform() { diff --git a/scene/3d/path_3d.h b/scene/3d/path_3d.h index 5a33016bc6..7f227a8a6f 100644 --- a/scene/3d/path_3d.h +++ b/scene/3d/path_3d.h @@ -49,7 +49,7 @@ public: void set_curve(const Ref<Curve3D> &p_curve); Ref<Curve3D> get_curve() const; - Path3D(); + Path3D() {} }; class PathFollow3D : public Node3D { |