summaryrefslogtreecommitdiff
path: root/scene/resources/resource_format_text.cpp
AgeCommit message (Collapse)Author
2023-01-21Merge pull request #71687 from reduz/support-script-class-name-in-efsRémi Verschelde
Support script global resource name in EditorFileSystem
2023-01-21Support script global resource name in EditorFileSystemJuan Linietsky
* Works for binary and text files. * Makes EditorQuickOpen work with custom resources again. * Information is cached and easily accessible. Properly fixes #66179. Supersedes #66215 and supersedes #62417 **WARNING**: This required breaking backwards binary compatibility (.res and .scn files). Files saved after this PR is merged will no longer open in any earlier versions of Godot.
2023-01-19Merge pull request #44596 from KoBeWi/🧹🧹🧹Rémi Verschelde
Cleanup unused engine code v2
2023-01-19Cleanup unused engine code v2kobewi
2023-01-19Fix using Resource objects as keys in the `tres` formatLife4gal
Fixes #57506.
2023-01-10Text resource loader fixesJuan Linietsky
* Moved the order of progress update to after the actual resource loading to give better % numbers. * Fix a bug introduced by #67714, which broke cache ignoring.
2023-01-09Ability to change a resource UID from APIJuan Linietsky
* Works for text, binary and imported resources * Allows better clean up of duplicate files. TODO (future PRs): * Use this API for assigning new UIDs to copied files. * Use this API for UID conflict on FS scanning (if more than one file has the same UID, the newer one(s) should get assigned a different UID).
2023-01-05One Copyright Update to rule them allRémi Verschelde
As many open source projects have started doing it, we're removing the current year from the copyright notice, so that we don't need to bump it every year. It seems like only the first year of publication is technically relevant for copyright notices, and even that seems to be something that many companies stopped listing altogether (in a version controlled codebase, the commits are a much better source of date of publication than a hardcoded copyright statement). We also now list Godot Engine contributors first as we're collectively the current maintainers of the project, and we clarify that the "exclusive" copyright of the co-founders covers the timespan before opensourcing (their further contributions are included as part of Godot Engine contributors). Also fixed "cf." Frenchism - it's meant as "refer to / see".
2022-12-13Use buffer to speed up copying/transcribing when renaming dependenciesRindbee
If the scene is more complex, you may need to copy/transcribe a large amount of data, so use buffer to speed up this process.
2022-12-12VariantParser make readahead optionallawnjelly
It turns out some areas are independently moving / reading filepointers outside of the VariantParser, which can cause the readahead caching to get out of sync. This PR makes the VariantParser readahead to be optional to allow for these use cases.
2022-12-04Use system fonts as fallback and improve system font handling.bruvzg
Add support for font weight and stretch selection when using system fonts. Add function to get system fallback font from a font name, style, text, and language code. Implement system font support for Android. Use system fonts as a last resort fallback.
2022-11-28Don't break parsing on missing resourceskobewi
2022-11-18Fix cyclic references in GDScript 2.0Adam Scott
2022-11-16Merge pull request #68709 from MewPurPur/instance-begone-part3Rémi Verschelde
Remove more instances of 'instance' being used as a verb
2022-11-16Remove more instances of 'instance' being used as a verbVolTer
2022-11-15Fixes infinite loop in ResourceFormatText when having unexpected end of fileGilles Roudière
2022-10-10Defer clearing of ResourceUID cache and silence warningskobewi
2022-10-07Fix MSVC warnings, rename shadowed variables, fix uninitialized values, ↵bruvzg
change warnings=all to use /W4.
2022-08-29Rename String `plus_file` to `path_join`Aaron Franke
2022-07-29Swap arguments of ResourceSaver.save()kobewi
2022-07-22Implement Feature Build Profilesreduz
This PR is a continuation of #50381 (which was implemented exactly a year ago!) * Add a visual interface to select which classes should not be built into Godot (well, they are built if something else uses them, but if not used the optimizer will remove them out). * Add a detection system to scan the project and figure out the actual classes used. * Added the ability for SCons to load build profiles. Obligatory Screen: A simple test with a couple of nodes in the scene resulted in a 25% reduction for the final binary size TODO: * Script languages need to implement used class detection (left for another PR). * Options to disable servers or server functionalities (like 2D or 3D physics, navigation, etc). Are missing, that should also greatly aid in reducing binary size. * Options to disable some modules would be desired. * More options to disable drivers (OpenGL, Vulkan, etc) would be desired. In general this PR is a starting point for more contributors to improve and enhance this functionality.
2022-06-27Merge pull request #62185 from reduz/export-node-pointer-pathRémi Verschelde
Add ability to export Node pointers as NodePaths
2022-06-25Add ability to export Node pointers as NodePathsreduz
This PR implements: * A new hint: PROPERTY_HINT_NODE_TYPE for variant type OBJECT, which can take specific node types as hint string. * The editor will show it as a node path, but will set it as a pointer to a node from the current scene if you select a path. * When scene is saved, the node path is saved, then restored as a pointer. NOTE: This is a proof of concept and this approach will most likely not work. The reason if that, if the node referenced is deleted, then when trying to edit this the node will become invalid. Potential workarounds: Since this uses the Variant API, it should obtain the pointer from the Variant object ID. Yet, this would either only really work in GDScript or it would need to be implemented with workarounds in every language. Alternative ways to make this work: Nodes could export an additional property with a node path (like for which_node, it could be which_node_path). Another alternative: Path editing could happen as a hidden metadata (ignoring the pointer).
2022-06-25Merge pull request #62309 from reduz/remake-resource-thread-safetyRémi Verschelde
Remake ResourceCache thread safety code and API
2022-06-22Merge pull request #56185 from nikitalita/fix-save-as-binaryRémi Verschelde
Fix ResourceLoaderText::save_as_binary()
2022-06-22Remake resource thread safety and APIreduz
* Ensures thread safety when resources are destroyed. * Simplified API by always forcing `ResourceCache::get_ref`, which needs less hacks and is fully thread safe. * Removed RWLock for resources because its not possible to use for the new logic. Should not be a problem. Supersedes #57533
2022-06-19Remove spaces in `SubResource()/ExtResource/Resource()` in text resourcesHugo Locurcio
These spaces are not needed for the file to be successfully parsed. Other types such as Vector3 are no longer serialized with spaces after the opening parenthesis and before the closing parenthesis, so this is also more consistent.
2022-05-23Fix typos with codespellRémi Verschelde
Using codespell 2.2-dev from current git.
2022-05-20Add a new HashSet templatereduz
* Intended to replace RBSet in most cases. * Optimized for iteration speed
2022-05-16Replace most uses of Map by HashMapreduz
* Map is unnecessary and inefficient in almost every case. * Replaced by the new HashMap. * Renamed Map to RBMap and Set to RBSet for cases that still make sense (order matters) but use is discouraged. There were very few cases where replacing by HashMap was undesired because keeping the key order was intended. I tried to keep those (as RBMap) as much as possible, but might have missed some. Review appreciated!
2022-05-03Implement missing Node & Resource placeholdersreduz
Implemented by request of @neikeq to advance in the GDExtension version of Mono. * If a Resource type is missing upon load, it will be remembered together with its data (Unless manually overriden). * If a Node type is missing upon load, it will be also be remembered together with its data (unless deleted). This feature makes working with GDExtension much easier, as it ensures that missing types no longer cause data loss.
2022-05-03Remove `RES` and `REF` typedefs in favor of spelled out `Ref<>`Hugo Locurcio
These typedefs don't save much typing compared to the full `Ref<Resource>` and `Ref<RefCounted>`, yet they sometimes introduce confusion among new contributors.
2022-05-02Fix tscn not listed as Resource extensionkobewi
2022-05-02Fix resource dependence renaming.bruvzg
2022-04-22Close FileAccess before accessing it with DirAccessHaoyu Qiu
2022-04-13Fix binsary resource exportnikitalita
2022-04-12Narrow FileAccess scope to prevent deadlocks.bruvzg
2022-04-11Make FileAccess and DirAccess classes reference counted.bruvzg
2022-04-06Fix some issues found by cppcheck.bruvzg
2022-03-11Convert uses of `DirAccess *` to `DirAccessRef` to prevent memleaksRémi Verschelde
`DirAccess *` needs to be deleted manually, and this is often forgotten especially when doing early returns with `ERR_FAIL_COND`. `DirAccessRef` is deleted automatically when it goes out of scope. Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2022-02-26Don't abort loading scene on missing dependencykobewi
2022-02-08Refactor some object type checking code with `cast_to`Rémi Verschelde
Less stringly typed logic, and less String allocations and comparisons.
2022-02-04String: Add contains().Anilforextra
2022-01-04Merge pull request #53313 from KoBeWi/debinded_konnektRémi Verschelde
2022-01-03Update copyright statements to 2022Rémi Verschelde
Happy new year to the wonderful Godot community!
2021-12-09Replace String comparisons with "", String() to is_empty()Nathan Franke
Also: - Adds two stress tests to test_string.h - Changes to .empty() on std::strings
2021-11-23Improve various textskobewi
2021-11-04Add is_built_in() method to Resourcekobewi
2021-10-04Add support for unbinding in connection dialogkobewi
2021-09-30Use range iterators for `Map`Lightning_A