Namespaces instead of underscore prefix for binds
Thanks to neikeq for the initial work. Co-authored-by: Ignacio Roldán Etcheverry <neikeq@users.noreply.github.com>
This commit is contained in:
parent
3d673fac50
commit
81f7d1890b
14 changed files with 964 additions and 917 deletions
|
|
@ -43,7 +43,7 @@
|
|||
|
||||
VisualScriptLanguage *visual_script_language = nullptr;
|
||||
#ifdef TOOLS_ENABLED
|
||||
static _VisualScriptEditor *vs_editor_singleton = nullptr;
|
||||
static vs_bind::VisualScriptEditor *vs_editor_singleton = nullptr;
|
||||
#endif
|
||||
|
||||
void register_visual_script_types() {
|
||||
|
|
@ -114,10 +114,10 @@ void register_visual_script_types() {
|
|||
|
||||
#ifdef TOOLS_ENABLED
|
||||
ClassDB::set_current_api(ClassDB::API_EDITOR);
|
||||
GDREGISTER_CLASS(_VisualScriptEditor);
|
||||
GDREGISTER_CLASS(vs_bind::VisualScriptEditor);
|
||||
ClassDB::set_current_api(ClassDB::API_CORE);
|
||||
vs_editor_singleton = memnew(_VisualScriptEditor);
|
||||
Engine::get_singleton()->add_singleton(Engine::Singleton("VisualScriptEditor", _VisualScriptEditor::get_singleton()));
|
||||
vs_editor_singleton = memnew(vs_bind::VisualScriptEditor);
|
||||
Engine::get_singleton()->add_singleton(Engine::Singleton("VisualScriptEditor", vs_bind::VisualScriptEditor::get_singleton()));
|
||||
|
||||
VisualScriptEditor::register_editor();
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -4521,44 +4521,49 @@ void VisualScriptEditor::register_editor() {
|
|||
EditorNode::add_plugin_init_callback(register_editor_callback);
|
||||
}
|
||||
|
||||
Ref<VisualScriptNode> _VisualScriptEditor::create_node_custom(const String &p_name) {
|
||||
void VisualScriptEditor::validate() {
|
||||
}
|
||||
|
||||
namespace vs_bind {
|
||||
|
||||
Ref<VisualScriptNode> VisualScriptEditor::create_node_custom(const String &p_name) {
|
||||
Ref<VisualScriptCustomNode> node;
|
||||
node.instantiate();
|
||||
node->set_script(singleton->custom_nodes[p_name]);
|
||||
return node;
|
||||
}
|
||||
|
||||
_VisualScriptEditor *_VisualScriptEditor::singleton = nullptr;
|
||||
Map<String, REF> _VisualScriptEditor::custom_nodes;
|
||||
VisualScriptEditor *VisualScriptEditor::singleton = nullptr;
|
||||
Map<String, REF> VisualScriptEditor::custom_nodes;
|
||||
|
||||
_VisualScriptEditor::_VisualScriptEditor() {
|
||||
VisualScriptEditor::VisualScriptEditor() {
|
||||
singleton = this;
|
||||
}
|
||||
|
||||
_VisualScriptEditor::~_VisualScriptEditor() {
|
||||
VisualScriptEditor::~VisualScriptEditor() {
|
||||
custom_nodes.clear();
|
||||
}
|
||||
|
||||
void _VisualScriptEditor::add_custom_node(const String &p_name, const String &p_category, const Ref<Script> &p_script) {
|
||||
void VisualScriptEditor::add_custom_node(const String &p_name, const String &p_category, const Ref<Script> &p_script) {
|
||||
String node_name = "custom/" + p_category + "/" + p_name;
|
||||
custom_nodes.insert(node_name, p_script);
|
||||
VisualScriptLanguage::singleton->add_register_func(node_name, &_VisualScriptEditor::create_node_custom);
|
||||
VisualScriptLanguage::singleton->add_register_func(node_name, &VisualScriptEditor::create_node_custom);
|
||||
emit_signal(SNAME("custom_nodes_updated"));
|
||||
}
|
||||
|
||||
void _VisualScriptEditor::remove_custom_node(const String &p_name, const String &p_category) {
|
||||
void VisualScriptEditor::remove_custom_node(const String &p_name, const String &p_category) {
|
||||
String node_name = "custom/" + p_category + "/" + p_name;
|
||||
custom_nodes.erase(node_name);
|
||||
VisualScriptLanguage::singleton->remove_register_func(node_name);
|
||||
emit_signal(SNAME("custom_nodes_updated"));
|
||||
}
|
||||
|
||||
void _VisualScriptEditor::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("add_custom_node", "name", "category", "script"), &_VisualScriptEditor::add_custom_node);
|
||||
ClassDB::bind_method(D_METHOD("remove_custom_node", "name", "category"), &_VisualScriptEditor::remove_custom_node);
|
||||
void VisualScriptEditor::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("add_custom_node", "name", "category", "script"), &VisualScriptEditor::add_custom_node);
|
||||
ClassDB::bind_method(D_METHOD("remove_custom_node", "name", "category"), &VisualScriptEditor::remove_custom_node);
|
||||
ADD_SIGNAL(MethodInfo("custom_nodes_updated"));
|
||||
}
|
||||
|
||||
void VisualScriptEditor::validate() {
|
||||
}
|
||||
} // namespace vs_bind
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -332,28 +332,33 @@ public:
|
|||
~VisualScriptEditor();
|
||||
};
|
||||
|
||||
namespace vs_bind {
|
||||
|
||||
// Singleton
|
||||
class _VisualScriptEditor : public Object {
|
||||
GDCLASS(_VisualScriptEditor, Object);
|
||||
class VisualScriptEditor : public Object {
|
||||
GDCLASS(VisualScriptEditor, Object);
|
||||
|
||||
friend class VisualScriptLanguage;
|
||||
|
||||
protected:
|
||||
static void _bind_methods();
|
||||
static _VisualScriptEditor *singleton;
|
||||
static VisualScriptEditor *singleton;
|
||||
|
||||
static Map<String, REF> custom_nodes;
|
||||
static Ref<VisualScriptNode> create_node_custom(const String &p_name);
|
||||
|
||||
public:
|
||||
static _VisualScriptEditor *get_singleton() { return singleton; }
|
||||
static VisualScriptEditor *get_singleton() { return singleton; }
|
||||
|
||||
void add_custom_node(const String &p_name, const String &p_category, const Ref<Script> &p_script);
|
||||
void remove_custom_node(const String &p_name, const String &p_category);
|
||||
|
||||
_VisualScriptEditor();
|
||||
~_VisualScriptEditor();
|
||||
VisualScriptEditor();
|
||||
~VisualScriptEditor();
|
||||
};
|
||||
|
||||
} // namespace vs_bind
|
||||
|
||||
#endif
|
||||
|
||||
#endif // VISUALSCRIPT_EDITOR_H
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue