diff options
| -rw-r--r-- | doc/classes/CPUParticles.xml | 3 | ||||
| -rw-r--r-- | doc/classes/CPUParticles2D.xml | 3 | ||||
| -rw-r--r-- | doc/classes/Light.xml | 2 | ||||
| -rw-r--r-- | doc/classes/ParticlesMaterial.xml | 3 | ||||
| -rw-r--r-- | modules/websocket/doc_classes/WebSocketServer.xml | 2 | ||||
| -rw-r--r-- | scene/2d/cpu_particles_2d.cpp | 6 | ||||
| -rw-r--r-- | scene/2d/cpu_particles_2d.h | 1 | ||||
| -rw-r--r-- | scene/3d/cpu_particles.cpp | 6 | ||||
| -rw-r--r-- | scene/3d/cpu_particles.h | 1 | ||||
| -rw-r--r-- | scene/resources/particles_material.cpp | 13 | ||||
| -rw-r--r-- | scene/resources/particles_material.h | 1 | 
11 files changed, 34 insertions, 7 deletions
diff --git a/doc/classes/CPUParticles.xml b/doc/classes/CPUParticles.xml index e68b0feb2d..cef0ee7587 100644 --- a/doc/classes/CPUParticles.xml +++ b/doc/classes/CPUParticles.xml @@ -367,5 +367,8 @@  		<constant name="EMISSION_SHAPE_DIRECTED_POINTS" value="4" enum="EmissionShape">  			Particles will be emitted at a position chosen randomly among [member emission_points]. Particle velocity and rotation will be set based on [member emission_normals]. Particle color will be modulated by [member emission_colors].  		</constant> +		<constant name="EMISSION_SHAPE_MAX" value="5" enum="EmissionShape"> +			Represents the size of the [enum EmissionShape] enum. +		</constant>  	</constants>  </class> diff --git a/doc/classes/CPUParticles2D.xml b/doc/classes/CPUParticles2D.xml index c8dbffb4cb..dac00051a9 100644 --- a/doc/classes/CPUParticles2D.xml +++ b/doc/classes/CPUParticles2D.xml @@ -360,5 +360,8 @@  		<constant name="EMISSION_SHAPE_DIRECTED_POINTS" value="4" enum="EmissionShape">  			Particles will be emitted at a position chosen randomly among [member emission_points]. Particle velocity and rotation will be set based on [member emission_normals]. Particle color will be modulated by [member emission_colors].  		</constant> +		<constant name="EMISSION_SHAPE_MAX" value="5" enum="EmissionShape"> +                        Represents the size of the [enum EmissionShape] enum. +		</constant>  	</constants>  </class> diff --git a/doc/classes/Light.xml b/doc/classes/Light.xml index fde25ef2c5..ae5bba4f06 100644 --- a/doc/classes/Light.xml +++ b/doc/classes/Light.xml @@ -80,7 +80,7 @@  			Constant for accessing [member light_indirect_energy].  		</constant>  		<constant name="PARAM_SPECULAR" value="2" enum="Param"> -			Constant for accessing [member light_specular].	 +			Constant for accessing [member light_specular].  		</constant>  		<constant name="PARAM_RANGE" value="3" enum="Param">  			Constant for accessing [member OmniLight.omni_range] or [member SpotLight.spot_range]. diff --git a/doc/classes/ParticlesMaterial.xml b/doc/classes/ParticlesMaterial.xml index 187ad1688d..1f23649b75 100644 --- a/doc/classes/ParticlesMaterial.xml +++ b/doc/classes/ParticlesMaterial.xml @@ -321,5 +321,8 @@  		<constant name="EMISSION_SHAPE_DIRECTED_POINTS" value="4" enum="EmissionShape">  			Particles will be emitted at a position determined by sampling a random point on the [member emission_point_texture]. Particle velocity and rotation will be set based on [member emission_normal_texture]. Particle color will be modulated by [member emission_color_texture].  		</constant> +		<constant name="EMISSION_SHAPE_MAX" value="5" enum="EmissionShape"> +			Represents the size of the [enum EmissionShape] enum. +		</constant>  	</constants>  </class> diff --git a/modules/websocket/doc_classes/WebSocketServer.xml b/modules/websocket/doc_classes/WebSocketServer.xml index cd47c10f80..2074a10fa9 100644 --- a/modules/websocket/doc_classes/WebSocketServer.xml +++ b/modules/websocket/doc_classes/WebSocketServer.xml @@ -83,7 +83,7 @@  		</method>  	</methods>  	<members> -		<member name="bind_ip" type="String" setter="set_bind_ip" getter="get_bind_ip"> +		<member name="bind_ip" type="String" setter="set_bind_ip" getter="get_bind_ip" default=""*"">  			When not set to [code]*[/code] will restrict incoming connections to the specified IP address. Setting [code]bind_ip[/code] to [code]127.0.0.1[/code] will cause the server to listen only to the local host.  		</member>  		<member name="ca_chain" type="X509Certificate" setter="set_ca_chain" getter="get_ca_chain"> diff --git a/scene/2d/cpu_particles_2d.cpp b/scene/2d/cpu_particles_2d.cpp index 8296f35739..c325de00b8 100644 --- a/scene/2d/cpu_particles_2d.cpp +++ b/scene/2d/cpu_particles_2d.cpp @@ -422,7 +422,7 @@ bool CPUParticles2D::get_particle_flag(Flags p_flag) const {  }  void CPUParticles2D::set_emission_shape(EmissionShape p_shape) { - +	ERR_FAIL_INDEX(p_shape, EMISSION_SHAPE_MAX);  	emission_shape = p_shape;  	_change_notify();  } @@ -772,6 +772,9 @@ void CPUParticles2D::_particles_process(float p_delta) {  						p.base_color = emission_colors.get(random_idx);  					}  				} break; +				case EMISSION_SHAPE_MAX: { // Max value for validity check. +					break; +				}  			}  			if (!local_coords) { @@ -1416,6 +1419,7 @@ void CPUParticles2D::_bind_methods() {  	BIND_ENUM_CONSTANT(EMISSION_SHAPE_RECTANGLE);  	BIND_ENUM_CONSTANT(EMISSION_SHAPE_POINTS);  	BIND_ENUM_CONSTANT(EMISSION_SHAPE_DIRECTED_POINTS); +	BIND_ENUM_CONSTANT(EMISSION_SHAPE_MAX);  }  CPUParticles2D::CPUParticles2D() { diff --git a/scene/2d/cpu_particles_2d.h b/scene/2d/cpu_particles_2d.h index 6ffa1f0e97..cbaff70c2a 100644 --- a/scene/2d/cpu_particles_2d.h +++ b/scene/2d/cpu_particles_2d.h @@ -75,6 +75,7 @@ public:  		EMISSION_SHAPE_RECTANGLE,  		EMISSION_SHAPE_POINTS,  		EMISSION_SHAPE_DIRECTED_POINTS, +		EMISSION_SHAPE_MAX  	};  private: diff --git a/scene/3d/cpu_particles.cpp b/scene/3d/cpu_particles.cpp index 0ac424b09e..aa7a413548 100644 --- a/scene/3d/cpu_particles.cpp +++ b/scene/3d/cpu_particles.cpp @@ -405,7 +405,7 @@ bool CPUParticles::get_particle_flag(Flags p_flag) const {  }  void CPUParticles::set_emission_shape(EmissionShape p_shape) { - +	ERR_FAIL_INDEX(p_shape, EMISSION_SHAPE_MAX);  	emission_shape = p_shape;  } @@ -784,6 +784,9 @@ void CPUParticles::_particles_process(float p_delta) {  						p.base_color = emission_colors.get(random_idx);  					}  				} break; +				case EMISSION_SHAPE_MAX: { // Max value for validity check. +					break; +				}  			}  			if (!local_coords) { @@ -1488,6 +1491,7 @@ void CPUParticles::_bind_methods() {  	BIND_ENUM_CONSTANT(EMISSION_SHAPE_BOX);  	BIND_ENUM_CONSTANT(EMISSION_SHAPE_POINTS);  	BIND_ENUM_CONSTANT(EMISSION_SHAPE_DIRECTED_POINTS); +	BIND_ENUM_CONSTANT(EMISSION_SHAPE_MAX);  }  CPUParticles::CPUParticles() { diff --git a/scene/3d/cpu_particles.h b/scene/3d/cpu_particles.h index 18f9718e70..d5a549b976 100644 --- a/scene/3d/cpu_particles.h +++ b/scene/3d/cpu_particles.h @@ -75,6 +75,7 @@ public:  		EMISSION_SHAPE_BOX,  		EMISSION_SHAPE_POINTS,  		EMISSION_SHAPE_DIRECTED_POINTS, +		EMISSION_SHAPE_MAX  	};  private: diff --git a/scene/resources/particles_material.cpp b/scene/resources/particles_material.cpp index a058f42cb2..412b5c259c 100644 --- a/scene/resources/particles_material.cpp +++ b/scene/resources/particles_material.cpp @@ -198,6 +198,9 @@ void ParticlesMaterial::_update_shader() {  				code += "uniform sampler2D emission_texture_color : hint_white;\n";  			}  		} break; +		case EMISSION_SHAPE_MAX: { // Max value for validity check. +			break; +		}  	}  	code += "uniform vec4 color_value : hint_color;\n"; @@ -283,7 +286,7 @@ void ParticlesMaterial::_update_shader() {  	code += "	float degree_to_rad = pi / 180.0;\n";  	code += "\n"; -	if (emission_shape >= EMISSION_SHAPE_POINTS) { +	if (emission_shape == EMISSION_SHAPE_POINTS || emission_shape == EMISSION_SHAPE_DIRECTED_POINTS) {  		code += "	int point = min(emission_texture_point_count - 1, int(rand_from_seed(alt_seed) * float(emission_texture_point_count)));\n";  		code += "	ivec2 emission_tex_size = textureSize(emission_texture_points, 0);\n";  		code += "	ivec2 emission_tex_ofs = ivec2(point % emission_tex_size.x, point / emission_tex_size.x);\n"; @@ -368,6 +371,9 @@ void ParticlesMaterial::_update_shader() {  				}  			}  		} break; +		case EMISSION_SHAPE_MAX: { // Max value for validity check. +			break; +		}  	}  	code += "		VELOCITY = (EMISSION_TRANSFORM * vec4(VELOCITY, 0.0)).xyz;\n";  	code += "		TRANSFORM = EMISSION_TRANSFORM * TRANSFORM;\n"; @@ -515,7 +521,7 @@ void ParticlesMaterial::_update_shader() {  	} else {  		code += "	COLOR = hue_rot_mat * color_value;\n";  	} -	if (emission_color_texture.is_valid() && emission_shape >= EMISSION_SHAPE_POINTS) { +	if (emission_color_texture.is_valid() && (emission_shape == EMISSION_SHAPE_POINTS || emission_shape == EMISSION_SHAPE_DIRECTED_POINTS)) {  		code += "	COLOR *= texelFetch(emission_texture_color, emission_tex_ofs, 0);\n";  	}  	if (trail_color_modifier.is_valid()) { @@ -894,7 +900,7 @@ bool ParticlesMaterial::get_flag(Flags p_flag) const {  }  void ParticlesMaterial::set_emission_shape(EmissionShape p_shape) { - +	ERR_FAIL_INDEX(p_shape, EMISSION_SHAPE_MAX);  	emission_shape = p_shape;  	_change_notify();  	_queue_shader_change(); @@ -1242,6 +1248,7 @@ void ParticlesMaterial::_bind_methods() {  	BIND_ENUM_CONSTANT(EMISSION_SHAPE_BOX);  	BIND_ENUM_CONSTANT(EMISSION_SHAPE_POINTS);  	BIND_ENUM_CONSTANT(EMISSION_SHAPE_DIRECTED_POINTS); +	BIND_ENUM_CONSTANT(EMISSION_SHAPE_MAX);  }  ParticlesMaterial::ParticlesMaterial() : diff --git a/scene/resources/particles_material.h b/scene/resources/particles_material.h index 643c2cb10e..cc860b3812 100644 --- a/scene/resources/particles_material.h +++ b/scene/resources/particles_material.h @@ -69,6 +69,7 @@ public:  		EMISSION_SHAPE_BOX,  		EMISSION_SHAPE_POINTS,  		EMISSION_SHAPE_DIRECTED_POINTS, +		EMISSION_SHAPE_MAX  	};  private:  |