1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-06 12:20:30 +00:00

Fix default values not being read correctly in VisualScript

Fixes #25889
This commit is contained in:
Bojidar Marinov
2019-03-04 20:41:50 +02:00
parent f173f8625d
commit 4b3db1de3d
2 changed files with 6 additions and 16 deletions

View File

@@ -48,22 +48,12 @@ bool VisualScriptNode::is_breakpoint() const {
void VisualScriptNode::_notification(int p_what) { void VisualScriptNode::_notification(int p_what) {
if (p_what == NOTIFICATION_POSTINITIALIZE) { if (p_what == NOTIFICATION_POSTINITIALIZE) {
_update_input_ports(); validate_input_default_values();
}
}
void VisualScriptNode::_update_input_ports() {
default_input_values.resize(MAX(default_input_values.size(), get_input_value_port_count())); //let it grow as big as possible, we don't want to lose values on resize
int port_count = get_input_value_port_count();
for (int i = 0; i < port_count; i++) {
Variant::Type expected = get_input_value_port_info(i).type;
Variant::CallError ce;
set_default_input_value(i, Variant::construct(expected, NULL, 0, ce, false));
} }
} }
void VisualScriptNode::ports_changed_notify() { void VisualScriptNode::ports_changed_notify() {
_update_input_ports(); validate_input_default_values();
emit_signal("ports_changed"); emit_signal("ports_changed");
} }
@@ -92,8 +82,7 @@ void VisualScriptNode::_set_default_input_values(Array p_values) {
} }
void VisualScriptNode::validate_input_default_values() { void VisualScriptNode::validate_input_default_values() {
default_input_values.resize(MAX(default_input_values.size(), get_input_value_port_count())); //let it grow as big as possible, we don't want to lose values on resize
default_input_values.resize(get_input_value_port_count());
//actually validate on save //actually validate on save
for (int i = 0; i < get_input_value_port_count(); i++) { for (int i = 0; i < get_input_value_port_count(); i++) {
@@ -119,8 +108,10 @@ void VisualScriptNode::validate_input_default_values() {
Array VisualScriptNode::_get_default_input_values() const { Array VisualScriptNode::_get_default_input_values() const {
//validate on save, since on load there is little info about this //validate on save, since on load there is little info about this
Array values = default_input_values;
values.resize(get_input_value_port_count());
return default_input_values; return values;
} }
String VisualScriptNode::get_text() const { String VisualScriptNode::get_text() const {

View File

@@ -52,7 +52,6 @@ class VisualScriptNode : public Resource {
Array _get_default_input_values() const; Array _get_default_input_values() const;
void validate_input_default_values(); void validate_input_default_values();
void _update_input_ports();
protected: protected:
void _notification(int p_what); void _notification(int p_what);