Merge pull request #90797 from Geometror/vsnode-comment-compat

[Compatibility] Add stub for VisualShaderNodeComment
This commit is contained in:
Rémi Verschelde 2024-04-18 12:24:50 +02:00
commit 2d884ba70c
No known key found for this signature in database
GPG key ID: C3336907360768E1
5 changed files with 64 additions and 4 deletions

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="VisualShaderNodeComment" inherits="VisualShaderNodeFrame" deprecated="This class has no function anymore and only exists for compatibility." xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Only exists for compatibility. Use [VisualShaderNodeFrame] as a replacement.
</brief_description>
<description>
This node was replaced by [VisualShaderNodeFrame] and only exists to preserve compatibility. In the [VisualShader] editor it behaves exactly like [VisualShaderNodeFrame].
</description>
<tutorials>
</tutorials>
<members>
<member name="description" type="String" setter="set_description" getter="get_description" default="&quot;&quot;">
This property only exists to preserve data authored in earlier versions of Godot. It has currently no function.
</member>
</members>
</class>

View file

@ -256,9 +256,9 @@ Compatibility methods registered.
GH-88014
--------
Validate extension JSON: API was removed: classes/VisualShaderNodeComment
Removed VisualShaderNodeComment, which is replaced by VisualShaderNodeFrame.
Validate extension JSON: API was removed: classes/VisualShaderNodeComment/methods/get_title
Validate extension JSON: API was removed: classes/VisualShaderNodeComment/methods/set_title
Validate extension JSON: API was removed: classes/VisualShaderNodeComment/properties/title
GH-87888

View file

@ -657,6 +657,9 @@ void register_scene_types() {
GDREGISTER_ABSTRACT_CLASS(VisualShaderNodeConstant);
GDREGISTER_ABSTRACT_CLASS(VisualShaderNodeVectorBase);
GDREGISTER_CLASS(VisualShaderNodeFrame);
#ifndef DISABLE_DEPRECATED
GDREGISTER_CLASS(VisualShaderNodeComment); // Deprecated, just for compatibility.
#endif
GDREGISTER_CLASS(VisualShaderNodeFloatConstant);
GDREGISTER_CLASS(VisualShaderNodeIntConstant);
GDREGISTER_CLASS(VisualShaderNodeUIntConstant);

View file

@ -4206,7 +4206,7 @@ VisualShaderNodeResizableBase::VisualShaderNodeResizableBase() {
set_allow_v_resize(true);
}
////////////// Comment
////////////// Frame
String VisualShaderNodeFrame::get_caption() const {
return title;
@ -4323,6 +4323,25 @@ void VisualShaderNodeFrame::_bind_methods() {
VisualShaderNodeFrame::VisualShaderNodeFrame() {
}
////////////// Comment (Deprecated)
#ifndef DISABLE_DEPRECATED
void VisualShaderNodeComment::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_description", "description"), &VisualShaderNodeComment::set_description);
ClassDB::bind_method(D_METHOD("get_description"), &VisualShaderNodeComment::get_description);
ADD_PROPERTY(PropertyInfo(Variant::STRING, "description"), "set_description", "get_description");
}
void VisualShaderNodeComment::set_description(const String &p_description) {
description = p_description;
}
String VisualShaderNodeComment::get_description() const {
return description;
}
#endif
////////////// GroupBase
void VisualShaderNodeGroupBase::set_inputs(const String &p_inputs) {

View file

@ -767,6 +767,28 @@ public:
VisualShaderNodeFrame();
};
#ifndef DISABLE_DEPRECATED
// Deprecated, for compatibility only.
class VisualShaderNodeComment : public VisualShaderNodeFrame {
GDCLASS(VisualShaderNodeComment, VisualShaderNodeFrame);
String description;
protected:
static void _bind_methods();
public:
virtual String get_caption() const override { return "Comment(Deprecated)"; }
virtual Category get_category() const override { return CATEGORY_NONE; }
void set_description(const String &p_description);
String get_description() const;
VisualShaderNodeComment() {}
};
#endif
class VisualShaderNodeGroupBase : public VisualShaderNodeResizableBase {
GDCLASS(VisualShaderNodeGroupBase, VisualShaderNodeResizableBase);