diff options
author | Rémi Verschelde <remi@verschelde.fr> | 2021-02-21 08:53:58 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-21 08:53:58 +0100 |
commit | f6efa78173495e9e33bd5d3ebca91b55ab9f4587 (patch) | |
tree | eee820bf42d26735690731db23e6a7f3705aaa10 /scene/resources | |
parent | d4d753552495dda0eefcdd69228eb4ed4ddc5447 (diff) | |
parent | 4e14eefd94a4e211fb7d908fe8d74bddd5429c6f (diff) | |
download | redot-engine-f6efa78173495e9e33bd5d3ebca91b55ab9f4587.tar.gz |
Merge pull request #38565 from nekomatata/export-default-values
Fixed export var default value in PackedScene when script is not loaded in editor
Diffstat (limited to 'scene/resources')
-rw-r--r-- | scene/resources/packed_scene.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/scene/resources/packed_scene.cpp b/scene/resources/packed_scene.cpp index beb365d44e..5d351f51f7 100644 --- a/scene/resources/packed_scene.cpp +++ b/scene/resources/packed_scene.cpp @@ -469,6 +469,11 @@ Error SceneState::_parse_node(Node *p_owner, Node *p_node, int p_parent_idx, Map p_node->get_property_list(&plist); StringName type = p_node->get_class(); + Ref<Script> script = p_node->get_script(); + if (script.is_valid()) { + script->update_exports(); + } + for (List<PropertyInfo>::Element *E = plist.front(); E; E = E->next()) { if (!(E->get().usage & PROPERTY_USAGE_STORAGE)) { continue; @@ -484,7 +489,6 @@ Error SceneState::_parse_node(Node *p_owner, Node *p_node, int p_parent_idx, Map isdefault = bool(Variant::evaluate(Variant::OP_EQUAL, value, default_value)); } - Ref<Script> script = p_node->get_script(); if (!isdefault && script.is_valid() && script->get_property_default_value(name, default_value)) { isdefault = bool(Variant::evaluate(Variant::OP_EQUAL, value, default_value)); } |