2
0
Эх сурвалжийг харах

Added missed limiters for Visual Shader node enums

Yuri Roubinsky 4 жил өмнө
parent
commit
e537a1f10e
29 өөрчлөгдсөн 421 нэмэгдсэн , 126 устгасан
  1. 3 0
      doc/classes/VisualShaderNodeColorFunc.xml
  2. 3 0
      doc/classes/VisualShaderNodeColorOp.xml
  3. 9 0
      doc/classes/VisualShaderNodeCompare.xml
  4. 6 0
      doc/classes/VisualShaderNodeCubemap.xml
  5. 3 0
      doc/classes/VisualShaderNodeFloatFunc.xml
  6. 3 0
      doc/classes/VisualShaderNodeFloatOp.xml
  7. 3 0
      doc/classes/VisualShaderNodeFloatUniform.xml
  8. 3 0
      doc/classes/VisualShaderNodeIntFunc.xml
  9. 3 0
      doc/classes/VisualShaderNodeIntOp.xml
  10. 3 0
      doc/classes/VisualShaderNodeIntUniform.xml
  11. 3 0
      doc/classes/VisualShaderNodeIs.xml
  12. 1 0
      doc/classes/VisualShaderNodeParticleAccelerator.xml
  13. 1 0
      doc/classes/VisualShaderNodeParticleRandomness.xml
  14. 3 0
      doc/classes/VisualShaderNodeSample3D.xml
  15. 3 0
      doc/classes/VisualShaderNodeScalarDerivativeFunc.xml
  16. 6 0
      doc/classes/VisualShaderNodeTexture.xml
  17. 6 0
      doc/classes/VisualShaderNodeTextureUniform.xml
  18. 3 0
      doc/classes/VisualShaderNodeTransformFunc.xml
  19. 1 1
      doc/classes/VisualShaderNodeTransformOp.xml
  20. 3 0
      doc/classes/VisualShaderNodeTransformVecMult.xml
  21. 3 0
      doc/classes/VisualShaderNodeUniform.xml
  22. 3 0
      doc/classes/VisualShaderNodeVectorDerivativeFunc.xml
  23. 3 0
      doc/classes/VisualShaderNodeVectorFunc.xml
  24. 3 0
      doc/classes/VisualShaderNodeVectorOp.xml
  25. 19 2
      scene/resources/visual_shader.cpp
  26. 1 0
      scene/resources/visual_shader.h
  27. 245 76
      scene/resources/visual_shader_nodes.cpp
  28. 61 36
      scene/resources/visual_shader_nodes.h
  29. 14 11
      scene/resources/visual_shader_particle_nodes.cpp

+ 3 - 0
doc/classes/VisualShaderNodeColorFunc.xml

@@ -36,5 +36,8 @@
 			return vec3(r, g, b);
 			[/codeblock]
 		</constant>
+		<constant name="FUNC_MAX" value="2" enum="Function">
+			Represents the size of the [enum Function] enum.
+		</constant>
 	</constants>
 </class>

+ 3 - 0
doc/classes/VisualShaderNodeColorOp.xml

@@ -94,5 +94,8 @@
 			}
 			[/codeblock]
 		</constant>
+		<constant name="OP_MAX" value="9" enum="Operator">
+			Represents the size of the [enum Operator] enum.
+		</constant>
 	</constants>
 </class>

+ 9 - 0
doc/classes/VisualShaderNodeCompare.xml

@@ -37,6 +37,9 @@
 		<constant name="CTYPE_TRANSFORM" value="4" enum="ComparisonType">
 			A transform ([code]mat4[/code]) type.
 		</constant>
+		<constant name="CTYPE_MAX" value="5" enum="ComparisonType">
+			Represents the size of the [enum ComparisonType] enum.
+		</constant>
 		<constant name="FUNC_EQUAL" value="0" enum="Function">
 			Comparison for equality ([code]a == b[/code]).
 		</constant>
@@ -55,11 +58,17 @@
 		<constant name="FUNC_LESS_THAN_EQUAL" value="5" enum="Function">
 			Comparison for less than or equal ([code]a &lt;= b[/code]). Cannot be used if [member type] set to [constant CTYPE_BOOLEAN] or [constant CTYPE_TRANSFORM].
 		</constant>
+		<constant name="FUNC_MAX" value="6" enum="Function">
+			Represents the size of the [enum Function] enum.
+		</constant>
 		<constant name="COND_ALL" value="0" enum="Condition">
 			The result will be true if all of component in vector satisfy the comparison condition.
 		</constant>
 		<constant name="COND_ANY" value="1" enum="Condition">
 			The result will be true if any of component in vector satisfy the comparison condition.
 		</constant>
+		<constant name="COND_MAX" value="2" enum="Condition">
+			Represents the size of the [enum Condition] enum.
+		</constant>
 	</constants>
 </class>

+ 6 - 0
doc/classes/VisualShaderNodeCubemap.xml

@@ -28,6 +28,9 @@
 		<constant name="SOURCE_PORT" value="1" enum="Source">
 			Use the [Cubemap] sampler reference passed via the [code]samplerCube[/code] port. If this is set to [member source], the [member cube_map] texture is ignored.
 		</constant>
+		<constant name="SOURCE_MAX" value="2" enum="Source">
+			Represents the size of the [enum Source] enum.
+		</constant>
 		<constant name="TYPE_DATA" value="0" enum="TextureType">
 			No hints are added to the uniform declaration.
 		</constant>
@@ -37,5 +40,8 @@
 		<constant name="TYPE_NORMAL_MAP" value="2" enum="TextureType">
 			Adds [code]hint_normal[/code] as hint to the uniform declaration, which internally converts the texture for proper usage as normal map.
 		</constant>
+		<constant name="TYPE_MAX" value="3" enum="TextureType">
+			Represents the size of the [enum TextureType] enum.
+		</constant>
 	</constants>
 </class>

+ 3 - 0
doc/classes/VisualShaderNodeFloatFunc.xml

@@ -112,5 +112,8 @@
 		<constant name="FUNC_ONEMINUS" value="31" enum="Function">
 			Subtracts scalar [code]x[/code] from 1 (i.e. [code]1 - x[/code]).
 		</constant>
+		<constant name="FUNC_MAX" value="32" enum="Function">
+			Represents the size of the [enum Function] enum.
+		</constant>
 	</constants>
 </class>

+ 3 - 0
doc/classes/VisualShaderNodeFloatOp.xml

@@ -46,5 +46,8 @@
 		<constant name="OP_STEP" value="9" enum="Operator">
 			Generates a step function by comparing [code]b[/code](x) to [code]a[/code](edge). Returns 0.0 if [code]x[/code] is smaller than [code]edge[/code] and otherwise 1.0. Translates to [code]step(a, b)[/code] in the Godot Shader Language.
 		</constant>
+		<constant name="OP_ENUM_SIZE" value="10" enum="Operator">
+			Represents the size of the [enum Operator] enum.
+		</constant>
 	</constants>
 </class>

+ 3 - 0
doc/classes/VisualShaderNodeFloatUniform.xml

@@ -40,5 +40,8 @@
 		<constant name="HINT_RANGE_STEP" value="2" enum="Hint">
 			A range hint for scalar value with step, which limits possible input values between [member min] and [member max], with a step (increment) of [member step]). Translated to [code]hint_range(min, max, step)[/code] in shader code.
 		</constant>
+		<constant name="HINT_MAX" value="3" enum="Hint">
+			Represents the size of the [enum Hint] enum.
+		</constant>
 	</constants>
 </class>

+ 3 - 0
doc/classes/VisualShaderNodeIntFunc.xml

@@ -25,5 +25,8 @@
 		<constant name="FUNC_SIGN" value="2" enum="Function">
 			Extracts the sign of the parameter. Translates to [code]sign(x)[/code] in the Godot Shader Language.
 		</constant>
+		<constant name="FUNC_MAX" value="3" enum="Function">
+			Represents the size of the [enum Function] enum.
+		</constant>
 	</constants>
 </class>

+ 3 - 0
doc/classes/VisualShaderNodeIntOp.xml

@@ -37,5 +37,8 @@
 		<constant name="OP_MIN" value="6" enum="Operator">
 			Returns the lesser of two numbers. Translates to [code]max(a, b)[/code] in the Godot Shader Language.
 		</constant>
+		<constant name="OP_ENUM_SIZE" value="7" enum="Operator">
+			Represents the size of the [enum Operator] enum.
+		</constant>
 	</constants>
 </class>

+ 3 - 0
doc/classes/VisualShaderNodeIntUniform.xml

@@ -40,5 +40,8 @@
 		<constant name="HINT_RANGE_STEP" value="2" enum="Hint">
 			A range hint for scalar value with step, which limits possible input values between [member min] and [member max], with a step (increment) of [member step]). Translated to [code]hint_range(min, max, step)[/code] in shader code.
 		</constant>
+		<constant name="HINT_MAX" value="3" enum="Hint">
+			Represents the size of the [enum Hint] enum.
+		</constant>
 	</constants>
 </class>

+ 3 - 0
doc/classes/VisualShaderNodeIs.xml

@@ -22,5 +22,8 @@
 		<constant name="FUNC_IS_NAN" value="1" enum="Function">
 			Comparison with [code]NaN[/code] (Not a Number; denotes invalid numeric results, e.g. division by zero).
 		</constant>
+		<constant name="FUNC_MAX" value="2" enum="Function">
+			Represents the size of the [enum Function] enum.
+		</constant>
 	</constants>
 </class>

+ 1 - 0
doc/classes/VisualShaderNodeParticleAccelerator.xml

@@ -20,6 +20,7 @@
 		<constant name="MODE_TANGENTIAL" value="2" enum="Mode">
 		</constant>
 		<constant name="MODE_MAX" value="3" enum="Mode">
+			Represents the size of the [enum Mode] enum.
 		</constant>
 	</constants>
 </class>

+ 1 - 0
doc/classes/VisualShaderNodeParticleRandomness.xml

@@ -18,6 +18,7 @@
 		<constant name="OP_TYPE_VECTOR" value="1" enum="OpType">
 		</constant>
 		<constant name="OP_TYPE_MAX" value="2" enum="OpType">
+			Represents the size of the [enum OpType] enum.
 		</constant>
 	</constants>
 </class>

+ 3 - 0
doc/classes/VisualShaderNodeSample3D.xml

@@ -22,5 +22,8 @@
 		<constant name="SOURCE_PORT" value="1" enum="Source">
 			Use the uniform texture from sampler port.
 		</constant>
+		<constant name="SOURCE_MAX" value="2" enum="Source">
+			Represents the size of the [enum Source] enum.
+		</constant>
 	</constants>
 </class>

+ 3 - 0
doc/classes/VisualShaderNodeScalarDerivativeFunc.xml

@@ -25,5 +25,8 @@
 		<constant name="FUNC_Y" value="2" enum="Function">
 			Derivative in [code]y[/code] using local differencing.
 		</constant>
+		<constant name="FUNC_MAX" value="3" enum="Function">
+			Represents the size of the [enum Function] enum.
+		</constant>
 	</constants>
 </class>

+ 6 - 0
doc/classes/VisualShaderNodeTexture.xml

@@ -40,6 +40,9 @@
 		<constant name="SOURCE_PORT" value="5" enum="Source">
 			Use the texture provided in the input port for this function.
 		</constant>
+		<constant name="SOURCE_MAX" value="6" enum="Source">
+			Represents the size of the [enum Source] enum.
+		</constant>
 		<constant name="TYPE_DATA" value="0" enum="TextureType">
 			No hints are added to the uniform declaration.
 		</constant>
@@ -49,5 +52,8 @@
 		<constant name="TYPE_NORMAL_MAP" value="2" enum="TextureType">
 			Adds [code]hint_normal[/code] as hint to the uniform declaration, which internally converts the texture for proper usage as normal map.
 		</constant>
+		<constant name="TYPE_MAX" value="3" enum="TextureType">
+			Represents the size of the [enum TextureType] enum.
+		</constant>
 	</constants>
 </class>

+ 6 - 0
doc/classes/VisualShaderNodeTextureUniform.xml

@@ -31,11 +31,17 @@
 		<constant name="TYPE_ANISO" value="3" enum="TextureType">
 			Adds [code]hint_aniso[/code] as hint to the uniform declaration to use for a flowmap.
 		</constant>
+		<constant name="TYPE_MAX" value="4" enum="TextureType">
+			Represents the size of the [enum TextureType] enum.
+		</constant>
 		<constant name="COLOR_DEFAULT_WHITE" value="0" enum="ColorDefault">
 			Defaults to white color.
 		</constant>
 		<constant name="COLOR_DEFAULT_BLACK" value="1" enum="ColorDefault">
 			Defaults to black color.
 		</constant>
+		<constant name="COLOR_DEFAULT_MAX" value="2" enum="ColorDefault">
+			Represents the size of the [enum ColorDefault] enum.
+		</constant>
 	</constants>
 </class>

+ 3 - 0
doc/classes/VisualShaderNodeTransformFunc.xml

@@ -22,5 +22,8 @@
 		<constant name="FUNC_TRANSPOSE" value="1" enum="Function">
 			Perform the transpose operation on the [Transform3D] matrix.
 		</constant>
+		<constant name="FUNC_MAX" value="2" enum="Function">
+			Represents the size of the [enum Function] enum.
+		</constant>
 	</constants>
 </class>

+ 1 - 1
doc/classes/VisualShaderNodeTransformOp.xml

@@ -43,7 +43,7 @@
 		<constant name="OP_B_DIV_A" value="8" enum="Operator">
 			Divides the transform [code]b[/code] by the transform [code]a[/code].
 		</constant>
-		<constant name="OP_LIMITER" value="9" enum="Operator">
+		<constant name="OP_MAX" value="9" enum="Operator">
 			Represents the size of the [enum Operator] enum.
 		</constant>
 	</constants>

+ 3 - 0
doc/classes/VisualShaderNodeTransformVecMult.xml

@@ -28,5 +28,8 @@
 		<constant name="OP_3x3_BxA" value="3" enum="Operator">
 			Multiplies vector [code]b[/code] by the transform [code]a[/code], skipping the last row and column of the transform.
 		</constant>
+		<constant name="OP_MAX" value="4" enum="Operator">
+			Represents the size of the [enum Operator] enum.
+		</constant>
 	</constants>
 </class>

+ 3 - 0
doc/classes/VisualShaderNodeUniform.xml

@@ -24,5 +24,8 @@
 		</constant>
 		<constant name="QUAL_INSTANCE" value="2" enum="Qualifier">
 		</constant>
+		<constant name="QUAL_MAX" value="3" enum="Qualifier">
+			Represents the size of the [enum Qualifier] enum.
+		</constant>
 	</constants>
 </class>

+ 3 - 0
doc/classes/VisualShaderNodeVectorDerivativeFunc.xml

@@ -25,5 +25,8 @@
 		<constant name="FUNC_Y" value="2" enum="Function">
 			Derivative in [code]y[/code] using local differencing.
 		</constant>
+		<constant name="FUNC_MAX" value="3" enum="Function">
+			Represents the size of the [enum Function] enum.
+		</constant>
 	</constants>
 </class>

+ 3 - 0
doc/classes/VisualShaderNodeVectorFunc.xml

@@ -121,5 +121,8 @@
 		<constant name="FUNC_ONEMINUS" value="34" enum="Function">
 			Returns [code]1.0 - vector[/code].
 		</constant>
+		<constant name="FUNC_MAX" value="35" enum="Function">
+			Represents the size of the [enum Function] enum.
+		</constant>
 	</constants>
 </class>

+ 3 - 0
doc/classes/VisualShaderNodeVectorOp.xml

@@ -52,5 +52,8 @@
 		<constant name="OP_STEP" value="11" enum="Operator">
 			Vector step operator. Returns [code]0.0[/code] if [code]a[/code] is smaller than [code]b[/code] and [code]1.0[/code] otherwise.
 		</constant>
+		<constant name="OP_ENUM_SIZE" value="12" enum="Operator">
+			Represents the size of the [enum Operator] enum.
+		</constant>
 	</constants>
 </class>

+ 19 - 2
scene/resources/visual_shader.cpp

@@ -3032,6 +3032,10 @@ String VisualShaderNodeUniform::get_uniform_name() const {
 }
 
 void VisualShaderNodeUniform::set_qualifier(VisualShaderNodeUniform::Qualifier p_qual) {
+	ERR_FAIL_INDEX(int(p_qual), int(QUAL_MAX));
+	if (qualifier == p_qual) {
+		return;
+	}
 	qualifier = p_qual;
 	emit_changed();
 }
@@ -3061,6 +3065,7 @@ void VisualShaderNodeUniform::_bind_methods() {
 	BIND_ENUM_CONSTANT(QUAL_NONE);
 	BIND_ENUM_CONSTANT(QUAL_GLOBAL);
 	BIND_ENUM_CONSTANT(QUAL_INSTANCE);
+	BIND_ENUM_CONSTANT(QUAL_MAX);
 }
 
 String VisualShaderNodeUniform::_get_qual_str() const {
@@ -3072,6 +3077,8 @@ String VisualShaderNodeUniform::_get_qual_str() const {
 				return "global ";
 			case QUAL_INSTANCE:
 				return "instance ";
+			default:
+				break;
 		}
 	}
 	return String();
@@ -3094,6 +3101,8 @@ String VisualShaderNodeUniform::get_warning(Shader::Mode p_mode, VisualShader::T
 			case QUAL_INSTANCE:
 				qualifier_str = "instance";
 				break;
+			default:
+				break;
 		}
 		return vformat(TTR("This uniform type does not support the '%s' qualifier."), qualifier_str);
 	} else if (qualifier == Qualifier::QUAL_GLOBAL) {
@@ -3350,6 +3359,10 @@ bool VisualShaderNodeGroupBase::is_valid_port_name(const String &p_name) const {
 }
 
 void VisualShaderNodeGroupBase::add_input_port(int p_id, int p_type, const String &p_name) {
+	ERR_FAIL_COND(has_input_port(p_id));
+	ERR_FAIL_INDEX(p_type, int(PORT_TYPE_MAX));
+	ERR_FAIL_COND(!is_valid_port_name(p_name));
+
 	String str = itos(p_id) + "," + itos(p_type) + "," + p_name + ";";
 	Vector<String> inputs_strings = inputs.split(";", false);
 	int index = 0;
@@ -3422,6 +3435,10 @@ bool VisualShaderNodeGroupBase::has_input_port(int p_id) const {
 }
 
 void VisualShaderNodeGroupBase::add_output_port(int p_id, int p_type, const String &p_name) {
+	ERR_FAIL_COND(has_output_port(p_id));
+	ERR_FAIL_INDEX(p_type, int(PORT_TYPE_MAX));
+	ERR_FAIL_COND(!is_valid_port_name(p_name));
+
 	String str = itos(p_id) + "," + itos(p_type) + "," + p_name + ";";
 	Vector<String> outputs_strings = outputs.split(";", false);
 	int index = 0;
@@ -3503,7 +3520,7 @@ void VisualShaderNodeGroupBase::clear_output_ports() {
 
 void VisualShaderNodeGroupBase::set_input_port_type(int p_id, int p_type) {
 	ERR_FAIL_COND(!has_input_port(p_id));
-	ERR_FAIL_COND(p_type < 0 || p_type >= PORT_TYPE_MAX);
+	ERR_FAIL_INDEX(p_type, int(PORT_TYPE_MAX));
 
 	if (input_ports[p_id].type == p_type) {
 		return;
@@ -3575,7 +3592,7 @@ String VisualShaderNodeGroupBase::get_input_port_name(int p_id) const {
 
 void VisualShaderNodeGroupBase::set_output_port_type(int p_id, int p_type) {
 	ERR_FAIL_COND(!has_output_port(p_id));
-	ERR_FAIL_COND(p_type < 0 || p_type >= PORT_TYPE_MAX);
+	ERR_FAIL_INDEX(p_type, int(PORT_TYPE_MAX));
 
 	if (output_ports[p_id].type == p_type) {
 		return;

+ 1 - 0
scene/resources/visual_shader.h

@@ -435,6 +435,7 @@ public:
 		QUAL_NONE,
 		QUAL_GLOBAL,
 		QUAL_INSTANCE,
+		QUAL_MAX,
 	};
 
 private:

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 245 - 76
scene/resources/visual_shader_nodes.cpp


+ 61 - 36
scene/resources/visual_shader_nodes.h

@@ -76,7 +76,7 @@ public:
 
 	virtual String 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 = false) const override;
 
-	void set_constant(float p_value);
+	void set_constant(float p_constant);
 	float get_constant() const;
 
 	virtual Vector<StringName> get_editable_properties() const override;
@@ -106,7 +106,7 @@ public:
 
 	virtual String 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 = false) const override;
 
-	void set_constant(int p_value);
+	void set_constant(int p_constant);
 	int get_constant() const;
 
 	virtual Vector<StringName> get_editable_properties() const override;
@@ -136,7 +136,7 @@ public:
 
 	virtual String 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 = false) const override;
 
-	void set_constant(bool p_value);
+	void set_constant(bool p_constant);
 	bool get_constant() const;
 
 	virtual Vector<StringName> get_editable_properties() const override;
@@ -167,7 +167,7 @@ public:
 
 	virtual String 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 = false) const override;
 
-	void set_constant(Color p_value);
+	void set_constant(const Color &p_constant);
 	Color get_constant() const;
 
 	virtual Vector<StringName> get_editable_properties() const override;
@@ -197,7 +197,7 @@ public:
 
 	virtual String 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 = false) const override;
 
-	void set_constant(Vector3 p_value);
+	void set_constant(const Vector3 &p_constant);
 	Vector3 get_constant() const;
 
 	virtual Vector<StringName> get_editable_properties() const override;
@@ -227,7 +227,7 @@ public:
 
 	virtual String 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 = false) const override;
 
-	void set_constant(Transform3D p_value);
+	void set_constant(const Transform3D &p_constant);
 	Transform3D get_constant() const;
 
 	virtual Vector<StringName> get_editable_properties() const override;
@@ -251,12 +251,14 @@ public:
 		SOURCE_2D_NORMAL,
 		SOURCE_DEPTH,
 		SOURCE_PORT,
+		SOURCE_MAX,
 	};
 
 	enum TextureType {
 		TYPE_DATA,
 		TYPE_COLOR,
 		TYPE_NORMAL_MAP,
+		TYPE_MAX,
 	};
 
 private:
@@ -287,10 +289,10 @@ public:
 	void set_source(Source p_source);
 	Source get_source() const;
 
-	void set_texture(Ref<Texture2D> p_value);
+	void set_texture(Ref<Texture2D> p_texture);
 	Ref<Texture2D> get_texture() const;
 
-	void set_texture_type(TextureType p_type);
+	void set_texture_type(TextureType p_texture_type);
 	TextureType get_texture_type() const;
 
 	virtual Vector<StringName> get_editable_properties() const override;
@@ -327,7 +329,7 @@ public:
 	virtual String generate_global(Shader::Mode p_mode, VisualShader::Type p_type, int p_id) const override;
 	virtual String 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 = false) const override;
 
-	void set_texture(Ref<CurveTexture> p_value);
+	void set_texture(Ref<CurveTexture> p_texture);
 	Ref<CurveTexture> get_texture() const;
 
 	virtual Vector<StringName> get_editable_properties() const override;
@@ -360,7 +362,7 @@ public:
 	virtual String generate_global(Shader::Mode p_mode, VisualShader::Type p_type, int p_id) const override;
 	virtual String 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 = false) const override;
 
-	void set_texture(Ref<CurveXYZTexture> p_value);
+	void set_texture(Ref<CurveXYZTexture> p_texture);
 	Ref<CurveXYZTexture> get_texture() const;
 
 	virtual Vector<StringName> get_editable_properties() const override;
@@ -378,6 +380,7 @@ public:
 	enum Source {
 		SOURCE_TEXTURE,
 		SOURCE_PORT,
+		SOURCE_MAX,
 	};
 
 protected:
@@ -410,7 +413,7 @@ VARIANT_ENUM_CAST(VisualShaderNodeSample3D::Source)
 
 class VisualShaderNodeTexture2DArray : public VisualShaderNodeSample3D {
 	GDCLASS(VisualShaderNodeTexture2DArray, VisualShaderNodeSample3D);
-	Ref<Texture2DArray> texture;
+	Ref<Texture2DArray> texture_array;
 
 protected:
 	static void _bind_methods();
@@ -423,7 +426,7 @@ public:
 	virtual Vector<VisualShader::DefaultTextureParam> get_default_texture_parameters(VisualShader::Type p_type, int p_id) const override;
 	virtual String generate_global(Shader::Mode p_mode, VisualShader::Type p_type, int p_id) const override;
 
-	void set_texture_array(Ref<Texture2DArray> p_value);
+	void set_texture_array(Ref<Texture2DArray> p_texture_array);
 	Ref<Texture2DArray> get_texture_array() const;
 
 	virtual Vector<StringName> get_editable_properties() const override;
@@ -446,7 +449,7 @@ public:
 	virtual Vector<VisualShader::DefaultTextureParam> get_default_texture_parameters(VisualShader::Type p_type, int p_id) const override;
 	virtual String generate_global(Shader::Mode p_mode, VisualShader::Type p_type, int p_id) const override;
 
-	void set_texture(Ref<Texture3D> p_value);
+	void set_texture(Ref<Texture3D> p_texture);
 	Ref<Texture3D> get_texture() const;
 
 	virtual Vector<StringName> get_editable_properties() const override;
@@ -461,13 +464,15 @@ class VisualShaderNodeCubemap : public VisualShaderNode {
 public:
 	enum Source {
 		SOURCE_TEXTURE,
-		SOURCE_PORT
+		SOURCE_PORT,
+		SOURCE_MAX,
 	};
 
 	enum TextureType {
 		TYPE_DATA,
 		TYPE_COLOR,
-		TYPE_NORMAL_MAP
+		TYPE_NORMAL_MAP,
+		TYPE_MAX,
 	};
 
 private:
@@ -497,10 +502,10 @@ public:
 	void set_source(Source p_source);
 	Source get_source() const;
 
-	void set_cube_map(Ref<Cubemap> p_value);
+	void set_cube_map(Ref<Cubemap> p_cube_map);
 	Ref<Cubemap> get_cube_map() const;
 
-	void set_texture_type(TextureType p_type);
+	void set_texture_type(TextureType p_texture_type);
 	TextureType get_texture_type() const;
 
 	virtual Vector<StringName> get_editable_properties() const override;
@@ -530,7 +535,8 @@ public:
 		OP_MAX,
 		OP_MIN,
 		OP_ATAN2,
-		OP_STEP
+		OP_STEP,
+		OP_ENUM_SIZE,
 	};
 
 protected:
@@ -573,6 +579,7 @@ public:
 		OP_MOD,
 		OP_MAX,
 		OP_MIN,
+		OP_ENUM_SIZE,
 	};
 
 protected:
@@ -619,7 +626,8 @@ public:
 		OP_CROSS,
 		OP_ATAN2,
 		OP_REFLECT,
-		OP_STEP
+		OP_STEP,
+		OP_ENUM_SIZE,
 	};
 
 protected:
@@ -665,7 +673,8 @@ public:
 		OP_DODGE,
 		OP_BURN,
 		OP_SOFT_LIGHT,
-		OP_HARD_LIGHT
+		OP_HARD_LIGHT,
+		OP_MAX,
 	};
 
 protected:
@@ -714,7 +723,7 @@ public:
 		OP_B_MINUS_A,
 		OP_A_DIV_B,
 		OP_B_DIV_A,
-		OP_LIMITER,
+		OP_MAX,
 	};
 
 protected:
@@ -758,6 +767,7 @@ public:
 		OP_BxA,
 		OP_3x3_AxB,
 		OP_3x3_BxA,
+		OP_MAX,
 	};
 
 protected:
@@ -828,7 +838,8 @@ public:
 		FUNC_RECIPROCAL,
 		FUNC_ROUNDEVEN,
 		FUNC_TRUNC,
-		FUNC_ONEMINUS
+		FUNC_ONEMINUS,
+		FUNC_MAX,
 	};
 
 protected:
@@ -871,6 +882,7 @@ public:
 		FUNC_ABS,
 		FUNC_NEGATE,
 		FUNC_SIGN,
+		FUNC_MAX,
 	};
 
 protected:
@@ -944,7 +956,8 @@ public:
 		FUNC_TAN,
 		FUNC_TANH,
 		FUNC_TRUNC,
-		FUNC_ONEMINUS
+		FUNC_ONEMINUS,
+		FUNC_MAX,
 	};
 
 protected:
@@ -985,7 +998,8 @@ class VisualShaderNodeColorFunc : public VisualShaderNode {
 public:
 	enum Function {
 		FUNC_GRAYSCALE,
-		FUNC_SEPIA
+		FUNC_SEPIA,
+		FUNC_MAX,
 	};
 
 protected:
@@ -1026,7 +1040,8 @@ class VisualShaderNodeTransformFunc : public VisualShaderNode {
 public:
 	enum Function {
 		FUNC_INVERSE,
-		FUNC_TRANSPOSE
+		FUNC_TRANSPOSE,
+		FUNC_MAX,
 	};
 
 protected:
@@ -1092,7 +1107,7 @@ public:
 
 	virtual String 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 = false) const override;
 
-	void set_function(Function p_op);
+	void set_function(Function p_func);
 	Function get_function() const;
 
 	virtual Vector<StringName> get_editable_properties() const override;
@@ -1201,7 +1216,7 @@ public:
 	virtual PortType get_output_port_type(int p_port) const override;
 	virtual String get_output_port_name(int p_port) const override;
 
-	void set_op_type(OpType p_type);
+	void set_op_type(OpType p_op_type);
 	OpType get_op_type() const;
 
 	virtual Vector<StringName> get_editable_properties() const override;
@@ -1224,7 +1239,8 @@ public:
 	enum Function {
 		FUNC_SUM,
 		FUNC_X,
-		FUNC_Y
+		FUNC_Y,
+		FUNC_MAX,
 	};
 
 protected:
@@ -1264,7 +1280,8 @@ public:
 	enum Function {
 		FUNC_SUM,
 		FUNC_X,
-		FUNC_Y
+		FUNC_Y,
+		FUNC_MAX,
 	};
 
 protected:
@@ -1371,7 +1388,7 @@ public:
 	virtual PortType get_output_port_type(int p_port) const override;
 	virtual String get_output_port_name(int p_port) const override;
 
-	void set_op_type(OpType p_type);
+	void set_op_type(OpType p_op_type);
 	OpType get_op_type() const;
 
 	virtual Vector<StringName> get_editable_properties() const override;
@@ -1413,7 +1430,7 @@ public:
 	virtual PortType get_output_port_type(int p_port) const override;
 	virtual String get_output_port_name(int p_port) const override;
 
-	void set_op_type(OpType p_type);
+	void set_op_type(OpType p_op_type);
 	OpType get_op_type() const;
 
 	virtual Vector<StringName> get_editable_properties() const override;
@@ -1501,7 +1518,7 @@ public:
 	virtual PortType get_output_port_type(int p_port) const override;
 	virtual String get_output_port_name(int p_port) const override;
 
-	void set_op_type(OpType p_type);
+	void set_op_type(OpType p_op_type);
 	OpType get_op_type() const;
 
 	virtual Vector<StringName> get_editable_properties() const override;
@@ -1613,6 +1630,7 @@ public:
 		HINT_NONE,
 		HINT_RANGE,
 		HINT_RANGE_STEP,
+		HINT_MAX,
 	};
 
 private:
@@ -1679,6 +1697,7 @@ public:
 		HINT_NONE,
 		HINT_RANGE,
 		HINT_RANGE_STEP,
+		HINT_MAX,
 	};
 
 private:
@@ -1919,11 +1938,13 @@ public:
 		TYPE_COLOR,
 		TYPE_NORMAL_MAP,
 		TYPE_ANISO,
+		TYPE_MAX,
 	};
 
 	enum ColorDefault {
 		COLOR_DEFAULT_WHITE,
-		COLOR_DEFAULT_BLACK
+		COLOR_DEFAULT_BLACK,
+		COLOR_DEFAULT_MAX,
 	};
 
 protected:
@@ -2113,7 +2134,7 @@ public:
 	virtual PortType get_output_port_type(int p_port) const override;
 	virtual String get_output_port_name(int p_port) const override;
 
-	void set_op_type(OpType p_type);
+	void set_op_type(OpType p_op_type);
 	OpType get_op_type() const;
 
 	virtual Vector<StringName> get_editable_properties() const override;
@@ -2161,6 +2182,7 @@ public:
 	enum Function {
 		FUNC_IS_INF,
 		FUNC_IS_NAN,
+		FUNC_MAX,
 	};
 
 protected:
@@ -2206,6 +2228,7 @@ public:
 		CTYPE_VECTOR,
 		CTYPE_BOOLEAN,
 		CTYPE_TRANSFORM,
+		CTYPE_MAX,
 	};
 
 	enum Function {
@@ -2215,15 +2238,17 @@ public:
 		FUNC_GREATER_THAN_EQUAL,
 		FUNC_LESS_THAN,
 		FUNC_LESS_THAN_EQUAL,
+		FUNC_MAX,
 	};
 
 	enum Condition {
 		COND_ALL,
 		COND_ANY,
+		COND_MAX,
 	};
 
 protected:
-	ComparisonType ctype = CTYPE_SCALAR;
+	ComparisonType comparison_type = CTYPE_SCALAR;
 	Function func = FUNC_EQUAL;
 	Condition condition = COND_ALL;
 
@@ -2291,7 +2316,7 @@ public:
 
 	virtual String 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 = false) const override;
 
-	void set_op_type(OpType p_type);
+	void set_op_type(OpType p_op_type);
 	OpType get_op_type() const;
 
 	virtual Vector<StringName> get_editable_properties() const override;

+ 14 - 11
scene/resources/visual_shader_particle_nodes.cpp

@@ -402,15 +402,16 @@ String VisualShaderNodeParticleRandomness::generate_code(Shader::Mode p_mode, Vi
 }
 
 void VisualShaderNodeParticleRandomness::set_op_type(OpType p_op_type) {
-	ERR_FAIL_INDEX((int)p_op_type, OP_TYPE_MAX);
-	if (p_op_type != op_type) {
-		if (p_op_type == OP_TYPE_SCALAR) {
-			set_input_port_default_value(0, 0.0);
-			set_input_port_default_value(1, 1.0);
-		} else {
-			set_input_port_default_value(0, Vector3(-1.0, -1.0, -1.0));
-			set_input_port_default_value(1, Vector3(1.0, 1.0, 1.0));
-		}
+	ERR_FAIL_INDEX(int(p_op_type), int(OP_TYPE_MAX));
+	if (op_type == p_op_type) {
+		return;
+	}
+	if (p_op_type == OP_TYPE_SCALAR) {
+		set_input_port_default_value(0, 0.0);
+		set_input_port_default_value(1, 1.0);
+	} else {
+		set_input_port_default_value(0, Vector3(-1.0, -1.0, -1.0));
+		set_input_port_default_value(1, Vector3(1.0, 1.0, 1.0));
 	}
 	op_type = p_op_type;
 	emit_changed();
@@ -500,8 +501,6 @@ String VisualShaderNodeParticleAccelerator::generate_code(Shader::Mode p_mode, V
 			code += "	__vec3_buff1 = cross(__ndiff, normalize(" + (p_input_vars[2].is_empty() ? "vec3" + (String)get_input_port_default_value(2) : p_input_vars[2]) + "));\n";
 			code += "	" + p_output_vars[0] + " = length(__vec3_buff1) > 0.0 ? normalize(__vec3_buff1) * (" + (p_input_vars[0].is_empty() ? "vec3" + (String)get_input_port_default_value(0) : p_input_vars[0]) + " * mix(1.0, __rand_from_seed(__seed), " + (p_input_vars[1].is_empty() ? (String)get_input_port_default_value(1) : p_input_vars[1]) + ")) : vec3(0.0);\n";
 			break;
-		case MODE_MAX:
-			break;
 		default:
 			break;
 	}
@@ -510,6 +509,10 @@ String VisualShaderNodeParticleAccelerator::generate_code(Shader::Mode p_mode, V
 }
 
 void VisualShaderNodeParticleAccelerator::set_mode(Mode p_mode) {
+	ERR_FAIL_INDEX(int(p_mode), int(MODE_MAX));
+	if (mode == p_mode) {
+		return;
+	}
 	mode = p_mode;
 	emit_changed();
 }

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно