Improve resource load cache

-Added a new method in Resource: reset_state , used for reloading the same resource from disk
-Added a new cache mode "replace" in ResourceLoader, which reuses existing loaded sub-resources but resets their data from disk (or replaces them if they chaged type)
-Because the correct sub-resource paths are always loaded now, this fixes bugs with subresource folding or subresource ordering when saving.
This commit is contained in:
reduz 2021-02-11 14:18:45 -03:00
parent e5bb89cdd5
commit f8d03b98e7
83 changed files with 395 additions and 183 deletions

View file

@ -303,6 +303,14 @@ VisualScriptNodeInstance *VisualScriptFunction::instance(VisualScriptInstance *p
return instance;
}
void VisualScriptFunction::reset_state() {
arguments.clear();
stack_size = 256;
stack_less = false;
sequenced = true;
rpc_mode = MultiplayerAPI::RPC_MODE_DISABLED;
}
VisualScriptFunction::VisualScriptFunction() {
stack_size = 256;
stack_less = false;
@ -687,6 +695,13 @@ bool VisualScriptLists::is_sequenced() const {
return sequenced;
}
void VisualScriptLists::reset_state() {
inputports.clear();
outputports.clear();
sequenced = false;
flags = 0;
}
VisualScriptLists::VisualScriptLists() {
// initialize
sequenced = false;