Merge pull request #45549 from flyingpimonster/graphnode-icon
GraphNode: Add properties for custom icons
This commit is contained in:
commit
c4811ab525
@ -71,6 +71,8 @@ bool GraphNode::_set(const StringName &p_name, const Variant &p_value) {
|
|||||||
si.enable_left = p_value;
|
si.enable_left = p_value;
|
||||||
} else if (what == "left_type") {
|
} else if (what == "left_type") {
|
||||||
si.type_left = p_value;
|
si.type_left = p_value;
|
||||||
|
} else if (what == "left_icon") {
|
||||||
|
si.custom_slot_left = p_value;
|
||||||
} else if (what == "left_color") {
|
} else if (what == "left_color") {
|
||||||
si.color_left = p_value;
|
si.color_left = p_value;
|
||||||
} else if (what == "right_enabled") {
|
} else if (what == "right_enabled") {
|
||||||
@ -79,11 +81,13 @@ bool GraphNode::_set(const StringName &p_name, const Variant &p_value) {
|
|||||||
si.type_right = p_value;
|
si.type_right = p_value;
|
||||||
} else if (what == "right_color") {
|
} else if (what == "right_color") {
|
||||||
si.color_right = p_value;
|
si.color_right = p_value;
|
||||||
|
} else if (what == "right_icon") {
|
||||||
|
si.custom_slot_right = p_value;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
set_slot(idx, si.enable_left, si.type_left, si.color_left, si.enable_right, si.type_right, si.color_right);
|
set_slot(idx, si.enable_left, si.type_left, si.color_left, si.enable_right, si.type_right, si.color_right, si.custom_slot_left, si.custom_slot_right);
|
||||||
update();
|
update();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -120,12 +124,16 @@ bool GraphNode::_get(const StringName &p_name, Variant &r_ret) const {
|
|||||||
r_ret = si.type_left;
|
r_ret = si.type_left;
|
||||||
} else if (what == "left_color") {
|
} else if (what == "left_color") {
|
||||||
r_ret = si.color_left;
|
r_ret = si.color_left;
|
||||||
|
} else if (what == "left_icon") {
|
||||||
|
r_ret = si.custom_slot_left;
|
||||||
} else if (what == "right_enabled") {
|
} else if (what == "right_enabled") {
|
||||||
r_ret = si.enable_right;
|
r_ret = si.enable_right;
|
||||||
} else if (what == "right_type") {
|
} else if (what == "right_type") {
|
||||||
r_ret = si.type_right;
|
r_ret = si.type_right;
|
||||||
} else if (what == "right_color") {
|
} else if (what == "right_color") {
|
||||||
r_ret = si.color_right;
|
r_ret = si.color_right;
|
||||||
|
} else if (what == "right_icon") {
|
||||||
|
r_ret = si.custom_slot_right;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -152,9 +160,11 @@ void GraphNode::_get_property_list(List<PropertyInfo> *p_list) const {
|
|||||||
p_list->push_back(PropertyInfo(Variant::BOOL, base + "left_enabled"));
|
p_list->push_back(PropertyInfo(Variant::BOOL, base + "left_enabled"));
|
||||||
p_list->push_back(PropertyInfo(Variant::INT, base + "left_type"));
|
p_list->push_back(PropertyInfo(Variant::INT, base + "left_type"));
|
||||||
p_list->push_back(PropertyInfo(Variant::COLOR, base + "left_color"));
|
p_list->push_back(PropertyInfo(Variant::COLOR, base + "left_color"));
|
||||||
|
p_list->push_back(PropertyInfo(Variant::OBJECT, base + "left_icon", PROPERTY_HINT_RESOURCE_TYPE, "Texture2D", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_STORE_IF_NULL));
|
||||||
p_list->push_back(PropertyInfo(Variant::BOOL, base + "right_enabled"));
|
p_list->push_back(PropertyInfo(Variant::BOOL, base + "right_enabled"));
|
||||||
p_list->push_back(PropertyInfo(Variant::INT, base + "right_type"));
|
p_list->push_back(PropertyInfo(Variant::INT, base + "right_type"));
|
||||||
p_list->push_back(PropertyInfo(Variant::COLOR, base + "right_color"));
|
p_list->push_back(PropertyInfo(Variant::COLOR, base + "right_color"));
|
||||||
|
p_list->push_back(PropertyInfo(Variant::OBJECT, base + "right_icon", PROPERTY_HINT_RESOURCE_TYPE, "Texture2D", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_STORE_IF_NULL));
|
||||||
|
|
||||||
idx++;
|
idx++;
|
||||||
}
|
}
|
||||||
@ -355,7 +365,9 @@ void GraphNode::_shape() {
|
|||||||
void GraphNode::set_slot(int p_idx, bool p_enable_left, int p_type_left, const Color &p_color_left, bool p_enable_right, int p_type_right, const Color &p_color_right, const Ref<Texture2D> &p_custom_left, const Ref<Texture2D> &p_custom_right) {
|
void GraphNode::set_slot(int p_idx, bool p_enable_left, int p_type_left, const Color &p_color_left, bool p_enable_right, int p_type_right, const Color &p_color_right, const Ref<Texture2D> &p_custom_left, const Ref<Texture2D> &p_custom_right) {
|
||||||
ERR_FAIL_COND(p_idx < 0);
|
ERR_FAIL_COND(p_idx < 0);
|
||||||
|
|
||||||
if (!p_enable_left && p_type_left == 0 && p_color_left == Color(1, 1, 1, 1) && !p_enable_right && p_type_right == 0 && p_color_right == Color(1, 1, 1, 1)) {
|
if (!p_enable_left && p_type_left == 0 && p_color_left == Color(1, 1, 1, 1) &&
|
||||||
|
!p_enable_right && p_type_right == 0 && p_color_right == Color(1, 1, 1, 1) &&
|
||||||
|
!p_custom_left.is_valid() && !p_custom_right.is_valid()) {
|
||||||
slot_info.erase(p_idx);
|
slot_info.erase(p_idx);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user