Fix code errors and style issues after #2750

This commit is contained in:
Rémi Verschelde
2020-03-13 16:29:45 +01:00
parent a37d0c689d
commit 11b4a4a91a
2 changed files with 50 additions and 42 deletions

View File

@@ -18,7 +18,7 @@ References
~~~~~~~~~~ ~~~~~~~~~~
- :ref:`ResourceLoader<class_resourceloader>` - :ref:`ResourceLoader<class_resourceloader>`
- `core/io/resource_loader.cpp <https://github.com/godotengine/godot/blob/master/core/io/resource_loader.cpp#L258>`__ - `core/io/resource_loader.cpp <https://github.com/godotengine/godot/blob/master/core/io/resource_loader.cpp>`_
What for? What for?
--------- ---------
@@ -38,7 +38,7 @@ ImageFormatLoader should be used to load images.
References References
~~~~~~~~~~ ~~~~~~~~~~
- `core/io/image_loader.h <https://github.com/godotengine/godot/blob/master/core/io/image_loader.h>`__ - `core/io/image_loader.h <https://github.com/godotengine/godot/blob/master/core/io/image_loader.h>`_
Creating a ResourceFormatLoader Creating a ResourceFormatLoader
@@ -65,12 +65,12 @@ read and handle data serialization.
#include "core/io/resource_loader.h" #include "core/io/resource_loader.h"
class ResourceFormatLoaderJson : public ResourceFormatLoader { class ResourceFormatLoaderJson : public ResourceFormatLoader {
GDCLASS(ResourceFormatLoaderJson, ResourceFormatLoader) GDCLASS(ResourceFormatLoaderJson, ResourceFormatLoader);
public: public:
virtual RES load(const String &p_path, const String &p_original_path, Error *r_error = NULL); virtual RES load(const String &p_path, const String &p_original_path, Error *r_error = NULL);
virtual void get_recognized_extensions(List<String> *p_extensions) const; virtual void get_recognized_extensions(List<String> *r_extensions) const;
virtual bool handles_type(const String &p_type) const; virtual bool handles_type(const String &p_type) const;
virtual String get_resource_type(const String &p_path) const; virtual String get_resource_type(const String &p_path) const;
}; };
#endif // RESOURCE_LOADER_JSON_H #endif // RESOURCE_LOADER_JSON_H
@@ -79,20 +79,22 @@ read and handle data serialization.
/* resource_loader_json.cpp */ /* resource_loader_json.cpp */
#include "resource_loader_json.h" #include "resource_loader_json.h"
#include "resource_json.h"
#include "resource_json.h"
RES ResourceFormatLoaderJson::load(const String &p_path, const String &p_original_path, Error *r_error) { RES ResourceFormatLoaderJson::load(const String &p_path, const String &p_original_path, Error *r_error) {
Ref<JsonResource> json = memnew(JsonResource); Ref<JsonResource> json = memnew(JsonResource);
if (r_error) if (r_error) {
*r_error = OK; *r_error = OK;
}
Error err = json->load_file(p_path); Error err = json->load_file(p_path);
return json; return json;
} }
void ResourceFormatLoaderJson::get_recognized_extensions(List<String> *p_extensions) const { void ResourceFormatLoaderJson::get_recognized_extensions(List<String> *r_extensions) const {
if (!p_extensions->find("json")) if (!r_extensions->find("json")) {
p_extensions->push_back("json"); r_extensions->push_back("json");
}
} }
String ResourceFormatLoaderJson::get_resource_type(const String &p_path) const { String ResourceFormatLoaderJson::get_resource_type(const String &p_path) const {
@@ -100,16 +102,16 @@ read and handle data serialization.
} }
bool ResourceFormatLoaderJson::handles_type(const String &p_type) const { bool ResourceFormatLoaderJson::handles_type(const String &p_type) const {
return (ClassDB::is_parent_class(p_type, "Resource")); return ClassDB::is_parent_class(p_type, "Resource");
} }
Creating a ResourceFormatSaver Creating a ResourceFormatSaver
------------------------------ ------------------------------
If you'd like to be able to edit and save a resource, you can implement a ResourceFormatSaver: If you'd like to be able to edit and save a resource, you can implement a
``ResourceFormatSaver``:
.. code-block:: cpp
.. code:: cpp
/* resource_saver_json.h */ /* resource_saver_json.h */
@@ -119,22 +121,22 @@ If you'd like to be able to edit and save a resource, you can implement a Resour
#include "core/io/resource_saver.h" #include "core/io/resource_saver.h"
class ResourceFormatSaverJson : public ResourceFormatSaver { class ResourceFormatSaverJson : public ResourceFormatSaver {
GDCLASS(ResourceFormatSaverJson, ResourceFormatSaver) GDCLASS(ResourceFormatSaverJson, ResourceFormatSaver);
public: public:
virtual Error save(const String &p_path, const RES &p_resource, uint32_t p_flags = 0); virtual Error save(const String &p_path, const RES &p_resource, uint32_t p_flags = 0);
virtual bool recognize(const RES &p_resource) const; virtual bool recognize(const RES &p_resource) const;
virtual void get_recognized_extensions(const RES &p_resource, List<String> *p_extensions) const; virtual void get_recognized_extensions(const RES &p_resource, List<String> *r_extensions) const;
}; };
#endif // RESOURCE_SAVER_JSON_H #endif // RESOURCE_SAVER_JSON_H
.. code:: cpp .. code-block:: cpp
/* resource_saver_json.cpp */ /* resource_saver_json.cpp */
#include "resource_saver_json.h" #include "resource_saver_json.h"
#include "resource_json.h"
#include "scene\resources\resource_format_text.h"
#include "resource_json.h"
#include "scene/resources/resource_format_text.h"
Error ResourceFormatSaverJson::save(const String &p_path, const RES &p_resource, uint32_t p_flags) { Error ResourceFormatSaverJson::save(const String &p_path, const RES &p_resource, uint32_t p_flags) {
Ref<JsonResource> json = memnew(JsonResource); Ref<JsonResource> json = memnew(JsonResource);
@@ -146,9 +148,10 @@ If you'd like to be able to edit and save a resource, you can implement a Resour
return Object::cast_to<JsonResource>(*p_resource) != NULL; return Object::cast_to<JsonResource>(*p_resource) != NULL;
} }
void ResourceFormatSaverJson::get_recognized_extensions(const RES &p_resource, List<String> *p_extensions) const { void ResourceFormatSaverJson::get_recognized_extensions(const RES &p_resource, List<String> *r_extensions) const {
if (Object::cast_to<JsonResource>(*p_resource)) if (Object::cast_to<JsonResource>(*p_resource)) {
p_extensions->push_back("json"); r_extensions->push_back("json");
}
} }
Creating custom data types Creating custom data types
@@ -178,7 +181,7 @@ Here is an example of creating a custom datatype:
ClassDB::bind_method(D_METHOD("set_dict", "dict"), &JsonResource::set_dict); ClassDB::bind_method(D_METHOD("set_dict", "dict"), &JsonResource::set_dict);
ClassDB::bind_method(D_METHOD("get_dict"), &JsonResource::get_dict); ClassDB::bind_method(D_METHOD("get_dict"), &JsonResource::get_dict);
ADD_PROPERTY(PropertyInfo(Variant::DICTIONARY, "content", PROPERTY_HINT_NONE, ""), "set_dict", "get_dict"); ADD_PROPERTY(PropertyInfo(Variant::DICTIONARY, "content"), "set_dict", "get_dict");
} }
private: private:
@@ -193,7 +196,7 @@ Here is an example of creating a custom datatype:
}; };
#endif // RESOURCE_JSON_H #endif // RESOURCE_JSON_H
.. code:: cpp .. code-block:: cpp
/* resource_json.cpp */ /* resource_json.cpp */
@@ -202,15 +205,17 @@ Here is an example of creating a custom datatype:
Error JsonResource::load_file(const String &p_path) { Error JsonResource::load_file(const String &p_path) {
Error error; Error error;
FileAccess *file = FileAccess::open(p_path, FileAccess::READ, &error); FileAccess *file = FileAccess::open(p_path, FileAccess::READ, &error);
if (!error == OK) { if (error != OK) {
if (file) if (file) {
file->close(); file->close();
}
return error; return error;
} }
String json_string = String(""); String json_string = String("");
while (!file->eof_reached()) while (!file->eof_reached()) {
json_string += file->get_line(); json_string += file->get_line();
}
file->close(); file->close();
String error_string; String error_string;
@@ -218,7 +223,7 @@ Here is an example of creating a custom datatype:
JSON json; JSON json;
Variant result; Variant result;
error = json.parse(json_string, result, error_string, error_line); error = json.parse(json_string, result, error_string, error_line);
if (!error == OK) { if (error != OK) {
file->close(); file->close();
return error; return error;
} }
@@ -230,9 +235,10 @@ Here is an example of creating a custom datatype:
Error JsonResource::save_file(const String &p_path, const RES &p_resource) { Error JsonResource::save_file(const String &p_path, const RES &p_resource) {
Error error; Error error;
FileAccess *file = FileAccess::open(p_path, FileAccess::WRITE, &error); FileAccess *file = FileAccess::open(p_path, FileAccess::WRITE, &error);
if (!error == OK) { if (error != OK) {
if (file) if (file) {
file->close(); file->close();
}
return error; return error;
} }
@@ -241,7 +247,7 @@ Here is an example of creating a custom datatype:
file->store_string(json.print(json_ref->get_dict(), " ")); file->store_string(json.print(json_ref->get_dict(), " "));
file->close(); file->close();
return Error::OK; return OK;
} }
void JsonResource::set_dict(const Dictionary &p_dict) { void JsonResource::set_dict(const Dictionary &p_dict) {
@@ -263,6 +269,8 @@ calls into ``std::istream``.
.. code-block:: cpp .. code-block:: cpp
#include "core/os/file_access.h"
#include <istream> #include <istream>
#include <streambuf> #include <streambuf>
@@ -278,7 +286,7 @@ calls into ``std::istream``.
} else { } else {
size_t pos = _file->get_position(); size_t pos = _file->get_position();
uint8_t ret = _file->get_8(); uint8_t ret = _file->get_8();
_file->seek(pos); // required since get_8() advances the read head _file->seek(pos); // Required since get_8() advances the read head.
return ret; return ret;
} }
} }
@@ -294,9 +302,9 @@ calls into ``std::istream``.
References References
~~~~~~~~~~ ~~~~~~~~~~
- `istream <http://www.cplusplus.com/reference/istream/istream/>`__ - `istream <http://www.cplusplus.com/reference/istream/istream/>`_
- `streambuf <http://www.cplusplus.com/reference/streambuf/streambuf/?kw=streambuf>`__ - `streambuf <http://www.cplusplus.com/reference/streambuf/streambuf/?kw=streambuf>`_
- `core/io/fileaccess.h <https://github.com/godotengine/godot/blob/master/core/os/file_access.h>`__ - `core/io/fileaccess.h <https://github.com/godotengine/godot/blob/master/core/os/file_access.h>`_
Registering the new file format Registering the new file format
------------------------------- -------------------------------
@@ -312,13 +320,13 @@ when ``load`` is called.
void register_json_types(); void register_json_types();
void unregister_json_types(); void unregister_json_types();
.. code:: cpp .. code-block:: cpp
/* register_types.cpp */ /* register_types.cpp */
#include "register_types.h" #include "register_types.h"
#include "core/class_db.h"
#include "core/class_db.h"
#include "resource_loader_json.h" #include "resource_loader_json.h"
#include "resource_saver_json.h" #include "resource_saver_json.h"
#include "resource_json.h" #include "resource_json.h"
@@ -347,7 +355,7 @@ when ``load`` is called.
References References
~~~~~~~~~~ ~~~~~~~~~~
- `core/io/resource_loader.cpp <https://github.com/godotengine/godot/blob/master/core/io/resource_loader.cpp#L280>`__ - `core/io/resource_loader.cpp <https://github.com/godotengine/godot/blob/master/core/io/resource_loader.cpp>`_
Loading it on GDScript Loading it on GDScript
---------------------- ----------------------
@@ -375,4 +383,4 @@ Then attach the following script to any node::
onready var json_resource = load("res://demo.json") onready var json_resource = load("res://demo.json")
func _ready(): func _ready():
print(json_resource.get_dict()) print(json_resource.get_dict())

View File

@@ -94,7 +94,7 @@ Once you have access to the plugin ``aar`` file, move it to the Godot project ``
From your script: From your script:
.. code:: .. code-block::
if Engine.has_singleton("MyPlugin"): if Engine.has_singleton("MyPlugin"):
var singleton = Engine.get_singleton("MyPlugin") var singleton = Engine.get_singleton("MyPlugin")