summaryrefslogtreecommitdiff
path: root/modules/gdnative/pluginscript/pluginscript_script.h
diff options
context:
space:
mode:
Diffstat (limited to 'modules/gdnative/pluginscript/pluginscript_script.h')
-rw-r--r--modules/gdnative/pluginscript/pluginscript_script.h85
1 files changed, 46 insertions, 39 deletions
diff --git a/modules/gdnative/pluginscript/pluginscript_script.h b/modules/gdnative/pluginscript/pluginscript_script.h
index 659289ef9b..73c486f6d9 100644
--- a/modules/gdnative/pluginscript/pluginscript_script.h
+++ b/modules/gdnative/pluginscript/pluginscript_script.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -32,7 +32,9 @@
#define PLUGINSCRIPT_SCRIPT_H
// Godot imports
-#include "core/script_language.h"
+
+#include "core/doc_data.h"
+#include "core/object/script_language.h"
// PluginScript imports
#include "pluginscript_language.h"
#include <pluginscript/godot_pluginscript.h>
@@ -59,19 +61,19 @@ private:
Map<StringName, PropertyInfo> _properties_info;
Map<StringName, MethodInfo> _signals_info;
Map<StringName, MethodInfo> _methods_info;
- Vector<ScriptNetData> _rpc_methods;
- Vector<ScriptNetData> _rpc_variables;
+ Vector<Multiplayer::RPCConfig> _rpc_methods;
Set<Object *> _instances;
//exported members
String _source;
String _path;
StringName _name;
+ String _icon_path;
protected:
static void _bind_methods();
- bool inherits_script(const Ref<Script> &p_script) const;
+ bool inherits_script(const Ref<Script> &p_script) const override;
PluginScriptInstance *_create_instance(const Variant **p_args, int p_argcount, Object *p_owner, Callable::CallError &r_error);
Variant _new(const Variant **p_args, int p_argcount, Callable::CallError &r_error);
@@ -79,57 +81,62 @@ protected:
#ifdef TOOLS_ENABLED
Set<PlaceHolderScriptInstance *> placeholders;
//void _update_placeholder(PlaceHolderScriptInstance *p_placeholder);
- virtual void _placeholder_erased(PlaceHolderScriptInstance *p_placeholder);
+ virtual void _placeholder_erased(PlaceHolderScriptInstance *p_placeholder) override;
#endif
public:
- virtual bool can_instance() const;
+ String get_script_class_name() const {
+ return _name;
+ }
+
+ String get_script_class_icon_path() const {
+ return _icon_path;
+ }
+
+ virtual bool can_instantiate() const override;
- virtual Ref<Script> get_base_script() const; //for script inheritance
+ virtual Ref<Script> get_base_script() const override; //for script inheritance
- virtual StringName get_instance_base_type() const; // this may not work in all scripts, will return empty if so
- virtual ScriptInstance *instance_create(Object *p_this);
- virtual bool instance_has(const Object *p_this) const;
+ virtual StringName get_instance_base_type() const override; // this may not work in all scripts, will return empty if so
+ virtual ScriptInstance *instance_create(Object *p_this) override;
+ virtual bool instance_has(const Object *p_this) const override;
- virtual bool has_source_code() const;
- virtual String get_source_code() const;
- virtual void set_source_code(const String &p_code);
- virtual Error reload(bool p_keep_state = false);
+ virtual bool has_source_code() const override;
+ virtual String get_source_code() const override;
+ virtual void set_source_code(const String &p_code) override;
+ virtual Error reload(bool p_keep_state = false) override;
// TODO: load_source_code only allow utf-8 file, should handle bytecode as well ?
virtual Error load_source_code(const String &p_path);
- virtual bool has_method(const StringName &p_method) const;
- virtual MethodInfo get_method_info(const StringName &p_method) const;
+#ifdef TOOLS_ENABLED
+ virtual const Vector<DocData::ClassDoc> &get_documentation() const override {
+ static Vector<DocData::ClassDoc> docs;
+ return docs;
+ }
+#endif // TOOLS_ENABLED
+
+ virtual bool has_method(const StringName &p_method) const override;
+ virtual MethodInfo get_method_info(const StringName &p_method) const override;
bool has_property(const StringName &p_method) const;
PropertyInfo get_property_info(const StringName &p_property) const;
- bool is_tool() const { return _tool; }
- bool is_valid() const { return true; }
-
- virtual ScriptLanguage *get_language() const;
+ bool is_tool() const override { return _tool; }
+ bool is_valid() const override { return true; }
- virtual bool has_script_signal(const StringName &p_signal) const;
- virtual void get_script_signal_list(List<MethodInfo> *r_signals) const;
+ virtual ScriptLanguage *get_language() const override;
- virtual bool get_property_default_value(const StringName &p_property, Variant &r_value) const;
+ virtual bool has_script_signal(const StringName &p_signal) const override;
+ virtual void get_script_signal_list(List<MethodInfo> *r_signals) const override;
- virtual void update_exports();
- virtual void get_script_method_list(List<MethodInfo> *r_methods) const;
- virtual void get_script_property_list(List<PropertyInfo> *r_properties) const;
+ virtual bool get_property_default_value(const StringName &p_property, Variant &r_value) const override;
- virtual int get_member_line(const StringName &p_member) const;
+ virtual void update_exports() override;
+ virtual void get_script_method_list(List<MethodInfo> *r_methods) const override;
+ virtual void get_script_property_list(List<PropertyInfo> *r_properties) const override;
- virtual Vector<ScriptNetData> get_rpc_methods() const;
- virtual uint16_t get_rpc_method_id(const StringName &p_method) const;
- virtual StringName get_rpc_method(const uint16_t p_rpc_method_id) const;
- virtual MultiplayerAPI::RPCMode get_rpc_mode_by_id(const uint16_t p_rpc_method_id) const;
- virtual MultiplayerAPI::RPCMode get_rpc_mode(const StringName &p_method) const;
+ virtual int get_member_line(const StringName &p_member) const override;
- virtual Vector<ScriptNetData> get_rset_properties() const;
- virtual uint16_t get_rset_property_id(const StringName &p_property) const;
- virtual StringName get_rset_property(const uint16_t p_rset_property_id) const;
- virtual MultiplayerAPI::RPCMode get_rset_mode_by_id(const uint16_t p_rpc_method_id) const;
- virtual MultiplayerAPI::RPCMode get_rset_mode(const StringName &p_variable) const;
+ virtual const Vector<Multiplayer::RPCConfig> get_rpc_methods() const override;
PluginScript();
void init(PluginScriptLanguage *language);