shader_type spatial;

uniform float ANIM_SPEED = 100.0;
uniform vec4 hot_color: hint_color = vec4(.9, .9, 9., .5);
uniform vec4 cold_color: hint_color = vec4(1., 1., 1., 0.);

uniform float power = 1.;

void vertex() {
	float distance = sqrt(pow(VERTEX.z, 2) + pow(VERTEX.x, 2));
	VERTEX.y = min(sin(VERTEX.x * TIME * ANIM_SPEED) * power / (distance * 10. + 1.), 0.);
	
	vec4 exhaust_color = mix(hot_color, cold_color, VERTEX.y / 5.8);
	COLOR = exhaust_color;
}

void fragment() {
	ALPHA = COLOR.a;
	ALBEDO = COLOR.rgb;
}