You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-08 12:40:44 +00:00
Added basic support for custom resource savers and loaders
This commit is contained in:
@@ -417,8 +417,8 @@ void PluginScriptLanguage::unlock() {
|
||||
|
||||
PluginScriptLanguage::PluginScriptLanguage(const godot_pluginscript_language_desc *desc) :
|
||||
_desc(*desc) {
|
||||
_resource_loader = memnew(ResourceFormatLoaderPluginScript(this));
|
||||
_resource_saver = memnew(ResourceFormatSaverPluginScript(this));
|
||||
_resource_loader = Ref<ResourceFormatLoaderPluginScript>(memnew(ResourceFormatLoaderPluginScript(this)));
|
||||
_resource_saver = Ref<ResourceFormatSaverPluginScript>(memnew(ResourceFormatSaverPluginScript(this)));
|
||||
|
||||
// TODO: totally remove _lock attribute if NO_THREADS is set
|
||||
#ifdef NO_THREADS
|
||||
@@ -429,8 +429,6 @@ PluginScriptLanguage::PluginScriptLanguage(const godot_pluginscript_language_des
|
||||
}
|
||||
|
||||
PluginScriptLanguage::~PluginScriptLanguage() {
|
||||
memdelete(_resource_loader);
|
||||
memdelete(_resource_saver);
|
||||
#ifndef NO_THREADS
|
||||
if (_lock) {
|
||||
memdelete(_lock);
|
||||
|
||||
@@ -48,8 +48,8 @@ class PluginScriptLanguage : public ScriptLanguage {
|
||||
friend class PluginScript;
|
||||
friend class PluginScriptInstance;
|
||||
|
||||
ResourceFormatLoaderPluginScript *_resource_loader;
|
||||
ResourceFormatSaverPluginScript *_resource_saver;
|
||||
Ref<ResourceFormatLoaderPluginScript> _resource_loader;
|
||||
Ref<ResourceFormatSaverPluginScript> _resource_saver;
|
||||
const godot_pluginscript_language_desc _desc;
|
||||
godot_pluginscript_language_data *_data;
|
||||
|
||||
@@ -59,8 +59,8 @@ class PluginScriptLanguage : public ScriptLanguage {
|
||||
public:
|
||||
virtual String get_name() const;
|
||||
|
||||
_FORCE_INLINE_ ResourceFormatLoaderPluginScript *get_resource_loader() { return _resource_loader; };
|
||||
_FORCE_INLINE_ ResourceFormatSaverPluginScript *get_resource_saver() { return _resource_saver; };
|
||||
_FORCE_INLINE_ Ref<ResourceFormatLoaderPluginScript> get_resource_loader() { return _resource_loader; }
|
||||
_FORCE_INLINE_ Ref<ResourceFormatSaverPluginScript> get_resource_saver() { return _resource_saver; }
|
||||
|
||||
/* LANGUAGE FUNCTIONS */
|
||||
virtual void init();
|
||||
|
||||
@@ -39,6 +39,9 @@
|
||||
class PluginScriptLanguage;
|
||||
|
||||
class ResourceFormatLoaderPluginScript : public ResourceFormatLoader {
|
||||
|
||||
GDCLASS(ResourceFormatLoaderPluginScript, ResourceFormatLoader)
|
||||
|
||||
PluginScriptLanguage *_language;
|
||||
|
||||
public:
|
||||
@@ -50,6 +53,9 @@ public:
|
||||
};
|
||||
|
||||
class ResourceFormatSaverPluginScript : public ResourceFormatSaver {
|
||||
|
||||
GDCLASS(ResourceFormatSaverPluginScript, ResourceFormatSaver)
|
||||
|
||||
PluginScriptLanguage *_language;
|
||||
|
||||
public:
|
||||
|
||||
Reference in New Issue
Block a user