You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-22 15:06:45 +00:00
Add convert options between constants and uniforms in visual shaders
This commit is contained in:
@@ -486,6 +486,21 @@ void VisualShader::remove_node(Type p_type, int p_id) {
|
||||
_queue_update();
|
||||
}
|
||||
|
||||
void VisualShader::replace_node(Type p_type, int p_id, const StringName &p_new_class) {
|
||||
ERR_FAIL_INDEX(p_type, TYPE_MAX);
|
||||
ERR_FAIL_COND(p_id < 2);
|
||||
Graph *g = &graph[p_type];
|
||||
ERR_FAIL_COND(!g->nodes.has(p_id));
|
||||
|
||||
if (g->nodes[p_id].node->get_class_name() == p_new_class) {
|
||||
return;
|
||||
}
|
||||
VisualShaderNode *vsn = Object::cast_to<VisualShaderNode>(ClassDB::instance(p_new_class));
|
||||
g->nodes[p_id].node = Ref<VisualShaderNode>(vsn);
|
||||
|
||||
_queue_update();
|
||||
}
|
||||
|
||||
bool VisualShader::is_node_connection(Type p_type, int p_from_node, int p_from_port, int p_to_node, int p_to_port) const {
|
||||
ERR_FAIL_INDEX_V(p_type, TYPE_MAX, false);
|
||||
const Graph *g = &graph[p_type];
|
||||
@@ -1605,6 +1620,7 @@ void VisualShader::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("get_valid_node_id", "type"), &VisualShader::get_valid_node_id);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("remove_node", "type", "id"), &VisualShader::remove_node);
|
||||
ClassDB::bind_method(D_METHOD("replace_node", "type", "id", "new_class"), &VisualShader::replace_node);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("is_node_connection", "type", "from_node", "from_port", "to_node", "to_port"), &VisualShader::is_node_connection);
|
||||
ClassDB::bind_method(D_METHOD("can_connect_nodes", "type", "from_node", "from_port", "to_node", "to_port"), &VisualShader::can_connect_nodes);
|
||||
|
||||
Reference in New Issue
Block a user