Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update 2 Master #190

Merged
merged 95 commits into from
Oct 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
e1cb65b
Apply `WS_MINIMIZE` style on window creation
shatyuka May 2, 2024
14f6c81
Offset drag instantiated scenes that result in a collision by its bou…
ryevdokimov Feb 18, 2024
2470eed
Call restart_editor() in RUN_PROJECT_MANAGER
KoBeWi Jul 28, 2024
e2c0346
Close expanded tile editor when inspector updates
KoBeWi Aug 1, 2024
5cf9afb
Don't fold resources when child of main inspector exits
KoBeWi Aug 4, 2024
b67eb68
Misc code cleanup in EditorFileDialog
KoBeWi Aug 15, 2024
42e5c5b
Allow horizontal scrolling in Tree using Shift
KoBeWi Aug 21, 2024
b01c2ef
Globally remember advanced toggle in project settings
KoBeWi Sep 5, 2024
beb55f7
[Editor] Try loading system Noto CJK font.
bruvzg Sep 11, 2024
971e154
GDExtension: Allow directly getting `ObjectID` from `Variant`
dsnopek Sep 17, 2024
22ccfc5
Print error on invalid call_group() calls
KoBeWi Sep 20, 2024
f2f34e9
Fix TabBar initialization issue and add tests
kitbdev Sep 20, 2024
cca54ba
Move pseudolocalization into TranslationDomain
timothyqiu Aug 28, 2024
59c6658
Fix ScrollContainer configuration warnings
KoBeWi Sep 21, 2024
866c50a
Add submenu support to EditorContextMenuPlugin
KoBeWi Sep 21, 2024
0ad1820
Metal: implement texture_create_from_extension
kroketio Sep 21, 2024
abf9d24
Make internal unique scene resource ID deterministic
reduz Sep 23, 2024
08947d3
Make RID_Owner lock-free for fetching.
reduz Dec 19, 2023
e63c858
[Docs] Adds notes about glyph contour decomposition format.
bruvzg Sep 26, 2024
66d2b0f
Fix closing Theme Editor not actually closing it
KoBeWi Sep 27, 2024
4c5094a
Use dedicated `print_error` method for colored output for unsupported…
dustdfg Sep 27, 2024
1abcfdd
Replace comments with printed warning for Metal on x86_64
dustdfg Sep 28, 2024
c1dc59f
Disable unused Basis Universal features to reduce binary size
Calinou May 14, 2022
210810b
Fix `atr_n()` behavior when auto translation is disabled
timothyqiu Sep 29, 2024
4c8f8e6
[macOS] Fix menu crash when used from opened native dialog.
bruvzg Oct 1, 2024
4cc9d2f
[Linux/BSD] Fix cross-device rename.
bruvzg Oct 2, 2024
25f439c
[DisplayServer] Implement has_hardware_keyboard method for Android an…
bruvzg Oct 2, 2024
b380584
Fix UI of sun angle in the sun/preview env popup
adamscott Oct 2, 2024
a7f6ec0
Add a sort method to Dictionary and HashMap
aaronfranke May 18, 2023
d2f3725
Fix window_set_current_screen for maximized windows.
bruvzg Oct 3, 2024
6286f9d
GDScript: Fix `GDScriptCache::get_full_script()` uses non-remapped path
dalexeev Oct 3, 2024
6aac039
Support object inspection through DAP `variables` request
rsubtil Sep 24, 2024
0d098d3
Support REPL expressions through DAP `evaluate` request
rsubtil Sep 30, 2024
9dd7a8a
Bump DAP requests timeout to 5 seconds
rsubtil Oct 3, 2024
65f3df5
Properly utilize surface information when creating pipelines and vert…
clayjohn Oct 3, 2024
1e1dbd8
Add `Auto width` behavior to ItemList
havi05 Jun 17, 2024
b2e38f3
Add unit tests for PhysicsMaterial
D0V4HKIIN Sep 20, 2024
62edb4e
Add filename filter field to FileDialog
vPumpking Feb 22, 2024
d6d8fb0
Merge pull request #97792 from clayjohn/RD-canvas-vertex-format
akien-mga Oct 4, 2024
e7d79f2
Merge pull request #77213 from aaronfranke/sort-dict
akien-mga Oct 4, 2024
a70402b
Merge pull request #88673 from vPumpking/FileDialog-Filter
akien-mga Oct 4, 2024
058f06c
Merge pull request #93270 from Gamemap/feature-itemlist-autowidth
akien-mga Oct 4, 2024
05b519f
Merge pull request #96230 from timothyqiu/per-domain-pseudolocalization
akien-mga Oct 4, 2024
b7ed7f7
Merge pull request #96850 from bruvzg/noto_cjk_lookup
akien-mga Oct 4, 2024
d5d014e
Merge pull request #97227 from D0V4HKIIN/master
akien-mga Oct 4, 2024
2d8bfab
Merge pull request #97255 from kitbdev/test-tabs
akien-mga Oct 4, 2024
8e6ade8
Merge pull request #97465 from DarioSamo/lock-free-rid
akien-mga Oct 4, 2024
84768ab
Merge pull request #97514 from bruvzg/font_contour_info
akien-mga Oct 4, 2024
783b150
Merge pull request #97585 from rsubtil/feature-dap_object_inspection
akien-mga Oct 4, 2024
6d9a797
Merge pull request #97624 from timothyqiu/atrn
akien-mga Oct 4, 2024
dedb2ff
Merge pull request #97678 from bruvzg/fix_nd_menu
akien-mga Oct 4, 2024
6e03910
Merge pull request #97719 from bruvzg/cross_dev_rename
akien-mga Oct 4, 2024
5ac62a6
Merge pull request #97743 from bruvzg/has_kbd
akien-mga Oct 4, 2024
34920b4
Merge pull request #97747 from adamscott/ux-sun-angle
akien-mga Oct 4, 2024
c28dd31
Merge pull request #97757 from bruvzg/max_move_screen
akien-mga Oct 4, 2024
32239d4
Merge pull request #97769 from dalexeev/gds-fix-gdscript-cache-path
akien-mga Oct 4, 2024
bac64b2
Merge branch 'godotengine:master' into master
Bioblaze Oct 4, 2024
f84f734
Expose `LineEdit` `edit` and `unedit` methods.
WhalesState Oct 4, 2024
de07df5
Merge pull request #85321 from Calinou/basis-universal-disable-unused…
akien-mga Oct 4, 2024
36837bf
Merge pull request #91487 from shatyuka/window-style
akien-mga Oct 4, 2024
f032af7
Merge pull request #97304 from kroketio/metal-return-logical-device-h…
akien-mga Oct 4, 2024
4c520e9
[iOS] Add support for dark and tinted icon versions.
bruvzg Oct 3, 2024
975e7c8
[GraphEdit] Only print warning for connection layer deletion when jus…
Geometror Oct 4, 2024
fa1aacb
Configure MSAA properly in canvas renderer's pipelines.
DarioSamo Oct 4, 2024
35b3999
Make the "Quick Open" dialog available via EditorInterface
ydeltastar Sep 30, 2024
d11f203
Merge pull request #97094 from WhalesState/expose-edit-unedit
akien-mga Oct 4, 2024
4dd812f
Merge pull request #97119 from dsnopek/gdextension-object-instance-id
akien-mga Oct 4, 2024
6c15d59
Merge pull request #97362 from reduz/make-unique-scene-id-deterministic
akien-mga Oct 4, 2024
c46d1e4
Merge pull request #97552 from dustdfg/drivers/use_dedicated_print_error
akien-mga Oct 4, 2024
428c4a6
Merge pull request #97633 from ydeltastar/quickly-quick-open
akien-mga Oct 4, 2024
3576e84
Merge pull request #97789 from bruvzg/ios_icons
akien-mga Oct 4, 2024
794920b
Partially revert 96780, remove warnings from project/editor settings …
bruvzg Oct 4, 2024
08af57f
Fix quick open background panel style
passivestar Oct 4, 2024
4a747bd
Add _resource_changed() helper method to EditorResourcePicker
KoBeWi Aug 31, 2024
2135346
Merge pull request #88511 from ryevdokimov/offset-drag-to-instantiate…
akien-mga Oct 4, 2024
aa40773
Merge pull request #94880 from KoBeWi/never-before-seen_way_to_restar…
akien-mga Oct 4, 2024
fe31ede
Merge pull request #95034 from KoBeWi/take_a_problem_and_make_it_wors…
akien-mga Oct 4, 2024
b08a3d8
Merge pull request #95149 from KoBeWi/inspector_mains
akien-mga Oct 4, 2024
0d1873d
Merge pull request #95544 from KoBeWi/clean_code™
akien-mga Oct 4, 2024
19081a8
Merge pull request #95889 from KoBeWi/tree_growing_sideways
akien-mga Oct 4, 2024
c36c153
Merge pull request #96379 from KoBeWi/wind_of_resource_changes
akien-mga Oct 4, 2024
0c3ff56
Merge pull request #96615 from KoBeWi/run_as_administrator
akien-mga Oct 4, 2024
14eee2b
Merge pull request #97240 from KoBeWi/wrong_number
akien-mga Oct 4, 2024
9108c62
Merge pull request #97291 from KoBeWi/visible_in_tree_was_a_billion_d…
akien-mga Oct 4, 2024
e5688f5
Merge pull request #97292 from KoBeWi/infinite_submenus_in_your_editor
akien-mga Oct 4, 2024
def5a04
Merge pull request #97543 from KoBeWi/to_edit_or_not_to_edit
akien-mga Oct 4, 2024
b0d5126
Merge pull request #97570 from dustdfg/ios_macos/print_warning_instea…
akien-mga Oct 4, 2024
f6dbc04
Merge pull request #97809 from Geometror/fix-ge-conn-layer-warning
akien-mga Oct 4, 2024
41c55f0
Merge pull request #97811 from DarioSamo/2d-msaa-fix
akien-mga Oct 4, 2024
aaffffc
Merge pull request #97817 from bruvzg/prop_warn_remove
akien-mga Oct 4, 2024
db66bd3
Merge pull request #97820 from passivestar/quick-open-bg
akien-mga Oct 4, 2024
01acc79
Update ISSUE__TEMPLATES to point to Redot-Engine repo instead of Godo…
SympleSynz Oct 4, 2024
d7acc23
Merge pull request #185 from godotengine/master
Bioblaze Oct 6, 2024
a2c29bd
[macOS] Update Vulkan SDK install script.
avondersaar-uphold Oct 9, 2024
b52811b
Merge pull request #626 from trashguy/macos_vulkan_install
Bioblaze Oct 9, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: Bug report
description: Report a bug in Godot
description: Report a bug in Redot

body:
- type: markdown
Expand All @@ -8,17 +8,17 @@ body:
When reporting bugs, please follow the guidelines in this template. This helps identify the problem precisely and thus enables contributors to fix it faster.
- Write a descriptive issue title above.
- The golden rule is to **always open *one* issue for *one* bug**. If you notice several bugs and want to report them, make sure to create one new issue for each of them.
- Search [open](https://github.com/godotengine/godot/issues) and [closed](https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aclosed) issues to ensure it has not already been reported. If you don't find a relevant match or if you're unsure, don't hesitate to **open a new issue**. The bugsquad will handle it from there if it's a duplicate.
- Verify that you are using a [supported Godot version](https://docs.godotengine.org/en/latest/about/release_policy.html). Please always check if your issue is reproducible in the latest version – it may already have been fixed!
- Search [open](https://github.com/Redot-Engine/redot-engine/issues) and [closed](https://github.com/Redot-Engine/redot-engine/issues?q=is%3Aissue+is%3Aclosed) issues to ensure it has not already been reported. If you don't find a relevant match or if you're unsure, don't hesitate to **open a new issue**. The bugsquad will handle it from there if it's a duplicate.
- Verify that you are using a [supported Godot version](https://docs.redotengine.org/en/latest/about/release_policy.html). Please always check if your issue is reproducible in the latest version – it may already have been fixed!
- If you use a custom build, please test if your issue is reproducible in official builds too. Likewise if you use any C++ modules, GDExtensions, or editor plugins, you should check if the bug is reproducible in a project without these.

- type: textarea
attributes:
label: Tested versions
description: |
To properly fix a bug, we need to identify if the bug was recently introduced in the engine, or if it was always present.
- Please specify the Godot version you found the issue in, including the **Git commit hash** if using a development or non-official build. The exact Godot version (including the commit hash) can be copied by clicking the version shown in the editor (bottom bar) or in the project manager (top bar).
- If you can, **please test earlier Godot versions** (previous stable branch, and development snapshots of the current feature release) and, if applicable, newer versions (development snapshots for the next feature release). Mention whether the bug is reproducible or not in the versions you tested. You can find all Godot releases in our [download archive](https://godotengine.org/download/archive/).
- Please specify the Redot version you found the issue in, including the **Git commit hash** if using a development or non-official build. The exact Redot version (including the commit hash) can be copied by clicking the version shown in the editor (bottom bar) or in the project manager (top bar).
- If you can, **please test earlier Redot versions** (previous stable branch, and development snapshots of the current feature release) and, if applicable, newer versions (development snapshots for the next feature release). Mention whether the bug is reproducible or not in the versions you tested. You can find all Redot releases in our [download archive](https://redotengine.org/download/archive/).
- The aim is for us to identify whether a bug is a **regression**, i.e. an issue that didn't exist in a previous version, but was introduced later on, breaking existing functionality. For example, if a bug is reproducible in 4.2.stable but not in 4.1.stable, we would like you to test intermediate 4.2 dev and beta snapshots to find which snapshot is the first one where the issue can be reproduced.
placeholder: |

Expand All @@ -35,8 +35,8 @@ body:
- For issues that are likely OS-specific and/or graphics-related, please specify the CPU model and architecture.
- For graphics-related issues, specify the GPU model, driver version, and the rendering backend (GLES2, GLES3, Vulkan).
- **Bug reports not including the required information may be closed at the maintainers' discretion.** If in doubt, always include all the requested information; it's better to include too much information than not enough information.
- **Starting from Godot 4.1, you can copy this information to your clipboard by using *Help > Copy System Info* at the top of the editor window.**
placeholder: Windows 10 - Godot v4.0.3.stable - Vulkan (Forward+) - dedicated NVIDIA GeForce GTX 970 (nvidia, 510.85.02) - Intel Core i7-10700KF CPU @ 3.80GHz (16 Threads)
- **Starting from Redot 4.1, you can copy this information to your clipboard by using *Help > Copy System Info* at the top of the editor window.**
placeholder: Windows 10 - Redot v4.0.3.stable - Vulkan (Forward+) - dedicated NVIDIA GeForce GTX 970 (nvidia, 510.85.02) - Intel Core i7-10700KF CPU @ 3.80GHz (16 Threads)
validations:
required: true

Expand All @@ -63,7 +63,7 @@ body:
attributes:
label: Minimal reproduction project (MRP)
description: |
- A small Godot project which reproduces the issue, with no unnecessary files included. Be sure to not include the `.godot` folder in the archive (but keep `project.godot`).
- A small Redot project which reproduces the issue, with no unnecessary files included. Be sure to not include the `.godot` folder in the archive (but keep `project.godot`).
- Having an MRP is very important for contributors to be able to reproduce the bug in the same way that you are experiencing it. When testing a potential fix for the issue, contributors will use the MRP to validate that the fix is working as intended.
- If the reproduction steps are not project dependent (e.g. the bug is visible in a brand new project), you can write "N/A" in the field.
- Drag and drop a ZIP archive to upload it (max 10 MB). **Do not select another field until the project is done uploading.**
Expand Down
16 changes: 8 additions & 8 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
blank_issues_enabled: false

contact_links:
- name: Godot proposals
url: https://github.com/godotengine/godot-proposals
about: Please submit feature proposals on the Godot proposals repository, not here.
- name: Redot proposals
url: https://github.com/Redot-Engine/redot-proposals
about: Please submit feature proposals on the Redot proposals repository, not here.

- name: Godot documentation repository
url: https://github.com/godotengine/godot-docs
about: Please report issues with documentation on the Godot documentation repository, not here.
- name: Redot documentation repository
url: https://github.com/Redot-Engine/redot-docs
about: Please report issues with documentation on the Redot documentation repository, not here.

- name: Godot community channels
url: https://godotengine.org/community
- name: Redot community channels
url: https://redotengine.org/community
about: Please ask for technical support on one of the other community channels, not here.
1 change: 0 additions & 1 deletion core/config/project_settings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -348,7 +348,6 @@ bool ProjectSettings::_get(const StringName &p_name, Variant &r_ret) const {
_THREAD_SAFE_METHOD_

if (!props.has(p_name)) {
WARN_PRINT("Property not found: " + String(p_name));
return false;
}
r_ret = props[p_name].variant;
Expand Down
9 changes: 9 additions & 0 deletions core/extension/gdextension_interface.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -507,6 +507,14 @@ static GDExtensionBool gdextension_variant_has_key(GDExtensionConstVariantPtr p_
return ret;
}

static GDObjectInstanceID gdextension_variant_get_object_instance_id(GDExtensionConstVariantPtr p_self) {
const Variant *self = (const Variant *)p_self;
if (likely(self->get_type() == Variant::OBJECT)) {
return self->operator ObjectID();
}
return 0;
}

static void gdextension_variant_get_type_name(GDExtensionVariantType p_type, GDExtensionUninitializedVariantPtr r_ret) {
String name = Variant::get_type_name((Variant::Type)p_type);
memnew_placement(r_ret, String(name));
Expand Down Expand Up @@ -1610,6 +1618,7 @@ void gdextension_setup_interface() {
REGISTER_INTERFACE_FUNC(variant_has_method);
REGISTER_INTERFACE_FUNC(variant_has_member);
REGISTER_INTERFACE_FUNC(variant_has_key);
REGISTER_INTERFACE_FUNC(variant_get_object_instance_id);
REGISTER_INTERFACE_FUNC(variant_get_type_name);
REGISTER_INTERFACE_FUNC(variant_can_convert);
REGISTER_INTERFACE_FUNC(variant_can_convert_strict);
Expand Down
15 changes: 15 additions & 0 deletions core/extension/gdextension_interface.h
Original file line number Diff line number Diff line change
Expand Up @@ -1307,6 +1307,21 @@ typedef GDExtensionBool (*GDExtensionInterfaceVariantHasMember)(GDExtensionVaria
*/
typedef GDExtensionBool (*GDExtensionInterfaceVariantHasKey)(GDExtensionConstVariantPtr p_self, GDExtensionConstVariantPtr p_key, GDExtensionBool *r_valid);

/**
* @name variant_get_object_instance_id
* @since 4.4
*
* Gets the object instance ID from a variant of type GDEXTENSION_VARIANT_TYPE_OBJECT.
*
* If the variant isn't of type GDEXTENSION_VARIANT_TYPE_OBJECT, then zero will be returned.
* The instance ID will be returned even if the object is no longer valid - use `object_get_instance_by_id()` to check if the object is still valid.
*
* @param p_self A pointer to the Variant.
*
* @return The instance ID for the contained object.
*/
typedef GDObjectInstanceID (*GDExtensionInterfaceVariantGetObjectInstanceId)(GDExtensionConstVariantPtr p_self);

/**
* @name variant_get_type_name
* @since 4.1
Expand Down
33 changes: 22 additions & 11 deletions core/io/resource.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -99,31 +99,42 @@ void Resource::set_path_cache(const String &p_path) {
GDVIRTUAL_CALL(_set_path_cache, p_path);
}

static thread_local RandomPCG unique_id_gen(0, RandomPCG::DEFAULT_INC);

void Resource::seed_scene_unique_id(uint32_t p_seed) {
unique_id_gen.seed(p_seed);
}

String Resource::generate_scene_unique_id() {
// Generate a unique enough hash, but still user-readable.
// If it's not unique it does not matter because the saver will try again.
OS::DateTime dt = OS::get_singleton()->get_datetime();
uint32_t hash = hash_murmur3_one_32(OS::get_singleton()->get_ticks_usec());
hash = hash_murmur3_one_32(dt.year, hash);
hash = hash_murmur3_one_32(dt.month, hash);
hash = hash_murmur3_one_32(dt.day, hash);
hash = hash_murmur3_one_32(dt.hour, hash);
hash = hash_murmur3_one_32(dt.minute, hash);
hash = hash_murmur3_one_32(dt.second, hash);
hash = hash_murmur3_one_32(Math::rand(), hash);
if (unique_id_gen.get_seed() == 0) {
OS::DateTime dt = OS::get_singleton()->get_datetime();
uint32_t hash = hash_murmur3_one_32(OS::get_singleton()->get_ticks_usec());
hash = hash_murmur3_one_32(dt.year, hash);
hash = hash_murmur3_one_32(dt.month, hash);
hash = hash_murmur3_one_32(dt.day, hash);
hash = hash_murmur3_one_32(dt.hour, hash);
hash = hash_murmur3_one_32(dt.minute, hash);
hash = hash_murmur3_one_32(dt.second, hash);
hash = hash_murmur3_one_32(Math::rand(), hash);
unique_id_gen.seed(hash);
}

uint32_t random_num = unique_id_gen.rand();

static constexpr uint32_t characters = 5;
static constexpr uint32_t char_count = ('z' - 'a');
static constexpr uint32_t base = char_count + ('9' - '0');
String id;
for (uint32_t i = 0; i < characters; i++) {
uint32_t c = hash % base;
uint32_t c = random_num % base;
if (c < char_count) {
id += String::chr('a' + c);
} else {
id += String::chr('0' + (c - char_count));
}
hash /= base;
random_num /= base;
}

return id;
Expand Down
1 change: 1 addition & 0 deletions core/io/resource.h
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ class Resource : public RefCounted {
virtual void set_path_cache(const String &p_path); // Set raw path without involving resource cache.
_FORCE_INLINE_ bool is_built_in() const { return path_cache.is_empty() || path_cache.contains("::") || path_cache.begins_with("local://"); }

static void seed_scene_unique_id(uint32_t p_seed);
static String generate_scene_unique_id();
void set_scene_unique_id(const String &p_id);
String get_scene_unique_id() const;
Expand Down
40 changes: 20 additions & 20 deletions core/io/resource_format_binary.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -845,29 +845,27 @@ Error ResourceLoaderBinary::load() {
}
}

if (ClassDB::has_property(res->get_class_name(), name)) {
if (value.get_type() == Variant::ARRAY) {
Array set_array = value;
bool is_get_valid = false;
Variant get_value = res->get(name, &is_get_valid);
if (is_get_valid && get_value.get_type() == Variant::ARRAY) {
Array get_array = get_value;
if (!set_array.is_same_typed(get_array)) {
value = Array(set_array, get_array.get_typed_builtin(), get_array.get_typed_class_name(), get_array.get_typed_script());
}
if (value.get_type() == Variant::ARRAY) {
Array set_array = value;
bool is_get_valid = false;
Variant get_value = res->get(name, &is_get_valid);
if (is_get_valid && get_value.get_type() == Variant::ARRAY) {
Array get_array = get_value;
if (!set_array.is_same_typed(get_array)) {
value = Array(set_array, get_array.get_typed_builtin(), get_array.get_typed_class_name(), get_array.get_typed_script());
}
}
}

if (value.get_type() == Variant::DICTIONARY) {
Dictionary set_dict = value;
bool is_get_valid = false;
Variant get_value = res->get(name, &is_get_valid);
if (is_get_valid && get_value.get_type() == Variant::DICTIONARY) {
Dictionary get_dict = get_value;
if (!set_dict.is_same_typed(get_dict)) {
value = Dictionary(set_dict, get_dict.get_typed_key_builtin(), get_dict.get_typed_key_class_name(), get_dict.get_typed_key_script(),
get_dict.get_typed_value_builtin(), get_dict.get_typed_value_class_name(), get_dict.get_typed_value_script());
}
if (value.get_type() == Variant::DICTIONARY) {
Dictionary set_dict = value;
bool is_get_valid = false;
Variant get_value = res->get(name, &is_get_valid);
if (is_get_valid && get_value.get_type() == Variant::DICTIONARY) {
Dictionary get_dict = get_value;
if (!set_dict.is_same_typed(get_dict)) {
value = Dictionary(set_dict, get_dict.get_typed_key_builtin(), get_dict.get_typed_key_class_name(), get_dict.get_typed_key_script(),
get_dict.get_typed_value_builtin(), get_dict.get_typed_value_class_name(), get_dict.get_typed_value_script());
}
}
}
Expand Down Expand Up @@ -2136,6 +2134,8 @@ static String _resource_get_class(Ref<Resource> p_resource) {
}

Error ResourceFormatSaverBinaryInstance::save(const String &p_path, const Ref<Resource> &p_resource, uint32_t p_flags) {
Resource::seed_scene_unique_id(p_path.hash());

Error err;
Ref<FileAccess> f;
if (p_flags & ResourceSaver::FLAG_COMPRESS) {
Expand Down
Loading
Loading