|
@@ -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 {
|