mirror of
https://github.com/godotengine/godot-visual-script.git
synced 2026-01-04 18:10:07 +03:00
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:
@@ -1506,6 +1506,19 @@ VisualScriptNodeInstance *VisualScriptExpression::instance(VisualScriptInstance
|
|||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void VisualScriptExpression::reset_state() {
|
||||||
|
if (nodes) {
|
||||||
|
memdelete(nodes);
|
||||||
|
nodes = nullptr;
|
||||||
|
root = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
error_str = String();
|
||||||
|
error_set = false;
|
||||||
|
str_ofs = 0;
|
||||||
|
inputs.clear();
|
||||||
|
}
|
||||||
|
|
||||||
VisualScriptExpression::VisualScriptExpression() {
|
VisualScriptExpression::VisualScriptExpression() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -256,6 +256,8 @@ protected:
|
|||||||
void _get_property_list(List<PropertyInfo> *p_list) const;
|
void _get_property_list(List<PropertyInfo> *p_list) const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
virtual void reset_state() override;
|
||||||
|
|
||||||
virtual int get_output_sequence_port_count() const override;
|
virtual int get_output_sequence_port_count() const override;
|
||||||
virtual bool has_input_sequence_port() const override;
|
virtual bool has_input_sequence_port() const override;
|
||||||
|
|
||||||
|
|||||||
@@ -677,6 +677,10 @@ void VisualScriptSwitch::_get_property_list(List<PropertyInfo> *p_list) const {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void VisualScriptSwitch::reset_state() {
|
||||||
|
case_values.clear();
|
||||||
|
}
|
||||||
|
|
||||||
void VisualScriptSwitch::_bind_methods() {
|
void VisualScriptSwitch::_bind_methods() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -202,6 +202,8 @@ protected:
|
|||||||
static void _bind_methods();
|
static void _bind_methods();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
virtual void reset_state() override;
|
||||||
|
|
||||||
virtual int get_output_sequence_port_count() const override;
|
virtual int get_output_sequence_port_count() const override;
|
||||||
virtual bool has_input_sequence_port() const override;
|
virtual bool has_input_sequence_port() const override;
|
||||||
|
|
||||||
|
|||||||
@@ -303,6 +303,14 @@ VisualScriptNodeInstance *VisualScriptFunction::instance(VisualScriptInstance *p
|
|||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void VisualScriptFunction::reset_state() {
|
||||||
|
arguments.clear();
|
||||||
|
stack_size = 256;
|
||||||
|
stack_less = false;
|
||||||
|
sequenced = true;
|
||||||
|
rpc_mode = MultiplayerAPI::RPC_MODE_DISABLED;
|
||||||
|
}
|
||||||
|
|
||||||
VisualScriptFunction::VisualScriptFunction() {
|
VisualScriptFunction::VisualScriptFunction() {
|
||||||
stack_size = 256;
|
stack_size = 256;
|
||||||
stack_less = false;
|
stack_less = false;
|
||||||
@@ -687,6 +695,13 @@ bool VisualScriptLists::is_sequenced() const {
|
|||||||
return sequenced;
|
return sequenced;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void VisualScriptLists::reset_state() {
|
||||||
|
inputports.clear();
|
||||||
|
outputports.clear();
|
||||||
|
sequenced = false;
|
||||||
|
flags = 0;
|
||||||
|
}
|
||||||
|
|
||||||
VisualScriptLists::VisualScriptLists() {
|
VisualScriptLists::VisualScriptLists() {
|
||||||
// initialize
|
// initialize
|
||||||
sequenced = false;
|
sequenced = false;
|
||||||
|
|||||||
@@ -99,6 +99,8 @@ public:
|
|||||||
|
|
||||||
virtual VisualScriptNodeInstance *instance(VisualScriptInstance *p_instance) override;
|
virtual VisualScriptNodeInstance *instance(VisualScriptInstance *p_instance) override;
|
||||||
|
|
||||||
|
virtual void reset_state() override;
|
||||||
|
|
||||||
VisualScriptFunction();
|
VisualScriptFunction();
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -134,6 +136,8 @@ protected:
|
|||||||
static void _bind_methods();
|
static void _bind_methods();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
virtual void reset_state() override;
|
||||||
|
|
||||||
virtual bool is_output_port_editable() const;
|
virtual bool is_output_port_editable() const;
|
||||||
virtual bool is_output_port_name_editable() const;
|
virtual bool is_output_port_name_editable() const;
|
||||||
virtual bool is_output_port_type_editable() const;
|
virtual bool is_output_port_type_editable() const;
|
||||||
|
|||||||
Reference in New Issue
Block a user