You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-07 12:30:27 +00:00
Some improvements for Switch node in visual shaders
This commit is contained in:
@@ -3227,7 +3227,7 @@ VisualShaderNodeIf::VisualShaderNodeIf() {
|
||||
////////////// Switch
|
||||
|
||||
String VisualShaderNodeSwitch::get_caption() const {
|
||||
return "Switch";
|
||||
return "VectorSwitch";
|
||||
}
|
||||
|
||||
int VisualShaderNodeSwitch::get_input_port_count() const {
|
||||
@@ -3269,7 +3269,15 @@ String VisualShaderNodeSwitch::get_output_port_name(int p_port) const {
|
||||
String VisualShaderNodeSwitch::generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview) const {
|
||||
|
||||
String code;
|
||||
code += "\tif(" + p_input_vars[0] + ")\n";
|
||||
if (p_input_vars[0] == String()) {
|
||||
if ((bool)get_input_port_default_value(0)) {
|
||||
code += "\tif(true)\n";
|
||||
} else {
|
||||
code += "\tif(false)\n";
|
||||
}
|
||||
} else {
|
||||
code += "\tif(" + p_input_vars[0] + ")\n";
|
||||
}
|
||||
code += "\t{\n";
|
||||
code += "\t\t" + p_output_vars[0] + "=" + p_input_vars[1] + ";\n";
|
||||
code += "\t}\n";
|
||||
@@ -3282,10 +3290,33 @@ String VisualShaderNodeSwitch::generate_code(Shader::Mode p_mode, VisualShader::
|
||||
|
||||
VisualShaderNodeSwitch::VisualShaderNodeSwitch() {
|
||||
set_input_port_default_value(0, false);
|
||||
set_input_port_default_value(1, Vector3(0.0, 0.0, 0.0));
|
||||
set_input_port_default_value(1, Vector3(1.0, 1.0, 1.0));
|
||||
set_input_port_default_value(2, Vector3(0.0, 0.0, 0.0));
|
||||
}
|
||||
|
||||
////////////// Switch(scalar)
|
||||
|
||||
String VisualShaderNodeScalarSwitch::get_caption() const {
|
||||
return "ScalarSwitch";
|
||||
}
|
||||
|
||||
VisualShaderNodeScalarSwitch::PortType VisualShaderNodeScalarSwitch::get_input_port_type(int p_port) const {
|
||||
if (p_port == 0) {
|
||||
return PORT_TYPE_BOOLEAN;
|
||||
}
|
||||
return PORT_TYPE_SCALAR;
|
||||
}
|
||||
|
||||
VisualShaderNodeScalarSwitch::PortType VisualShaderNodeScalarSwitch::get_output_port_type(int p_port) const {
|
||||
return PORT_TYPE_SCALAR;
|
||||
}
|
||||
|
||||
VisualShaderNodeScalarSwitch::VisualShaderNodeScalarSwitch() {
|
||||
set_input_port_default_value(0, false);
|
||||
set_input_port_default_value(1, 1.0);
|
||||
set_input_port_default_value(2, 0.0);
|
||||
}
|
||||
|
||||
////////////// Fresnel
|
||||
|
||||
String VisualShaderNodeFresnel::get_caption() const {
|
||||
|
||||
Reference in New Issue
Block a user