[gd_scene load_steps=24 format=2]

[ext_resource path="res://assets/entities/missile/missile.glb" type="PackedScene" id=1]
[ext_resource path="res://assets/entities/missile/missile_albedo.png" type="Texture" id=2]
[ext_resource path="res://scenes/entities/missile.gd" type="Script" id=3]
[ext_resource path="res://scenes/entities/missiles/missile_exhaust.gdshader" type="Shader" id=4]

[sub_resource type="SpatialMaterial" id=2]
albedo_texture = ExtResource( 2 )
metallic = 1.0
roughness = 0.41

[sub_resource type="CapsuleShape" id=1]
height = 10.1286

[sub_resource type="SphereMesh" id=9]
radius = 0.35
height = 0.5
radial_segments = 128
rings = 64

[sub_resource type="ShaderMaterial" id=14]
shader = ExtResource( 4 )
shader_param/ANIM_SPEED = 100.0
shader_param/power = 1.0

[sub_resource type="ParticlesMaterial" id=3]
emission_shape = 1
emission_sphere_radius = 0.25
gravity = Vector3( 0, 40, 0 )

[sub_resource type="Shader" id=5]
code = "shader_type spatial;
render_mode depth_draw_opaque, unshaded, shadows_disabled;

uniform float MIX = 1.;
uniform float particle_alpha: hint_range(0.0, 1.0) = 1.0;
uniform vec4 top_color: hint_color = vec4(.2, .5, .8, 0.3);
uniform vec4 bot_color: hint_color = vec4(.2, .5, .8, 1);

void fragment() {
	vec4 exhaust_color = mix(top_color, bot_color, .5);
	
	ALPHA = exhaust_color.a;
	ALBEDO = exhaust_color.rgb;
}
"

[sub_resource type="ShaderMaterial" id=6]
shader = SubResource( 5 )
shader_param/MIX = 1.0
shader_param/particle_alpha = 1.0
shader_param/top_color = Color( 0.2, 0.5, 0.8, 0.3 )
shader_param/bot_color = Color( 0.2, 0.5, 0.8, 1 )

[sub_resource type="SphereMesh" id=4]
material = SubResource( 6 )
radius = 0.025
height = 0.05
radial_segments = 32
rings = 16

[sub_resource type="ShaderMaterial" id=15]
shader = ExtResource( 4 )
shader_param/ANIM_SPEED = 100.0
shader_param/power = 1.0

[sub_resource type="ShaderMaterial" id=16]
shader = ExtResource( 4 )
shader_param/ANIM_SPEED = 100.0
shader_param/power = 1.0

[sub_resource type="ShaderMaterial" id=17]
shader = ExtResource( 4 )
shader_param/ANIM_SPEED = 100.0
shader_param/power = 1.0

[sub_resource type="ShaderMaterial" id=18]
shader = ExtResource( 4 )
shader_param/ANIM_SPEED = 100.0
shader_param/power = 1.0

[sub_resource type="ShaderMaterial" id=19]
shader = ExtResource( 4 )
shader_param/ANIM_SPEED = 100.0
shader_param/power = 1.0

[sub_resource type="ShaderMaterial" id=20]
shader = ExtResource( 4 )
shader_param/ANIM_SPEED = 100.0
shader_param/power = 1.0

[sub_resource type="ShaderMaterial" id=21]
shader = ExtResource( 4 )
shader_param/ANIM_SPEED = 100.0
shader_param/power = 1.0

[sub_resource type="ShaderMaterial" id=10]
shader = ExtResource( 4 )
shader_param/ANIM_SPEED = 100.0
shader_param/power = 1.0

[sub_resource type="ShaderMaterial" id=11]
shader = ExtResource( 4 )
shader_param/ANIM_SPEED = 100.0
shader_param/power = 1.0

[sub_resource type="ShaderMaterial" id=12]
shader = ExtResource( 4 )
shader_param/ANIM_SPEED = 100.0
shader_param/power = 1.0

[sub_resource type="ShaderMaterial" id=13]
shader = ExtResource( 4 )
shader_param/ANIM_SPEED = 100.0
shader_param/power = 1.0

[node name="missile" instance=ExtResource( 1 )]
script = ExtResource( 3 )

[node name="missile body" parent="." index="0"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.851097 )
material/0 = SubResource( 2 )

[node name="RigidBody" type="RigidBody" parent="." index="1"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.688615 )

[node name="CollisionShape" type="CollisionShape" parent="RigidBody" index="0"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.371096 )
shape = SubResource( 1 )

[node name="Exhaust" type="Spatial" parent="." index="2"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -5.74946 )

[node name="Main" type="Spatial" parent="Exhaust" index="0"]

[node name="MainThrusterTL" type="MeshInstance" parent="Exhaust/Main" index="0"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0.5, 0.5, 0.0999999 )
mesh = SubResource( 9 )
skeleton = NodePath("../..")
material/0 = SubResource( 14 )

[node name="Particles" type="Particles" parent="Exhaust/Main/MainThrusterTL" index="0"]
transform = Transform( 1, 0, 0, 0, -1, 8.74228e-08, 0, -8.74228e-08, -1, 0, 0, 0 )
cast_shadow = 0
emitting = false
amount = 50
lifetime = 3.0
visibility_aabb = AABB( nan, 0.05694, -7.38708, 0.867362, 0.904675, 14.7742 )
process_material = SubResource( 3 )
draw_pass_1 = SubResource( 4 )

[node name="MainThrusterTR" type="MeshInstance" parent="Exhaust/Main" index="1"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, -0.5, 0.5, 0.0999999 )
mesh = SubResource( 9 )
skeleton = NodePath(".")
material/0 = SubResource( 15 )

[node name="Particles" type="Particles" parent="Exhaust/Main/MainThrusterTR" index="0"]
transform = Transform( 1, 0, 0, 0, -1, 8.74228e-08, 0, -8.74228e-08, -1, 0, 0, 0 )
cast_shadow = 0
emitting = false
amount = 50
lifetime = 3.0
visibility_aabb = AABB( nan, 0.05694, -7.38708, 0.867362, 0.904675, 14.7742 )
process_material = SubResource( 3 )
draw_pass_1 = SubResource( 4 )

[node name="MainThrusterBL" type="MeshInstance" parent="Exhaust/Main" index="2"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0.5, -0.5, 0.0999999 )
mesh = SubResource( 9 )
skeleton = NodePath(".")
material/0 = SubResource( 16 )

[node name="Particles" type="Particles" parent="Exhaust/Main/MainThrusterBL" index="0"]
transform = Transform( 1, 0, 0, 0, -1, 8.74228e-08, 0, -8.74228e-08, -1, 0, 0, 0 )
cast_shadow = 0
emitting = false
amount = 50
lifetime = 3.0
visibility_aabb = AABB( nan, 0.05694, -7.38708, 0.867362, 0.904675, 14.7742 )
process_material = SubResource( 3 )
draw_pass_1 = SubResource( 4 )

[node name="MainThrusterBR" type="MeshInstance" parent="Exhaust/Main" index="3"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, -0.5, -0.5, 0.0999999 )
mesh = SubResource( 9 )
skeleton = NodePath(".")
material/0 = SubResource( 17 )

[node name="Particles" type="Particles" parent="Exhaust/Main/MainThrusterBR" index="0"]
transform = Transform( 1, 0, 0, 0, -1, 8.74228e-08, 0, -8.74228e-08, -1, 0, 0, 0 )
cast_shadow = 0
emitting = false
amount = 50
lifetime = 3.0
visibility_aabb = AABB( nan, 0.05694, -7.38708, 0.867362, 0.904675, 14.7742 )
process_material = SubResource( 3 )
draw_pass_1 = SubResource( 4 )

[node name="RearThrusters" type="Spatial" parent="Exhaust" index="1"]

[node name="ThrusterLeft" type="MeshInstance" parent="Exhaust/RearThrusters" index="0"]
transform = Transform( -8.74228e-09, -0.2, 0, 0.2, -8.74228e-09, 0, 0, 0, 0.2, 1.02839, 0, 2.9246 )
mesh = SubResource( 9 )
skeleton = NodePath("../../Main/MainThrusterTL")
material/0 = SubResource( 18 )

[node name="Particles" type="Particles" parent="Exhaust/RearThrusters/ThrusterLeft" index="0"]
transform = Transform( 1, 0, 0, 0, -1, 8.74228e-08, 0, -8.74228e-08, -1, 0, 0, 0 )
cast_shadow = 0
emitting = false
amount = 50
lifetime = 3.0
visibility_aabb = AABB( nan, 0.05694, -7.38708, 0.867362, 0.904675, 14.7742 )
process_material = SubResource( 3 )
draw_pass_1 = SubResource( 4 )

[node name="ThrusterRight" type="MeshInstance" parent="Exhaust/RearThrusters" index="1"]
transform = Transform( -8.74228e-09, 0.2, 0, -0.2, -8.74228e-09, 0, 0, 0, 0.2, -1.028, 0, 2.925 )
mesh = SubResource( 9 )
skeleton = NodePath("../../Main/MainThrusterTL")
material/0 = SubResource( 19 )

[node name="Particles" type="Particles" parent="Exhaust/RearThrusters/ThrusterRight" index="0"]
transform = Transform( 1, 0, 0, 0, -1, 8.74228e-08, 0, -8.74228e-08, -1, 0, 0, 0 )
cast_shadow = 0
emitting = false
amount = 50
lifetime = 3.0
visibility_aabb = AABB( nan, 0.05694, -7.38708, 0.867362, 0.904675, 14.7742 )
process_material = SubResource( 3 )
draw_pass_1 = SubResource( 4 )

[node name="ThrusterTop" type="MeshInstance" parent="Exhaust/RearThrusters" index="2"]
transform = Transform( -0.2, -1.74846e-08, 0, 1.74846e-08, -0.2, 0, 0, 0, 0.2, 0, 1.028, 2.925 )
mesh = SubResource( 9 )
skeleton = NodePath("../../Main/MainThrusterTL")
material/0 = SubResource( 20 )

[node name="Particles" type="Particles" parent="Exhaust/RearThrusters/ThrusterTop" index="0"]
transform = Transform( 1, 0, 0, 0, -1, 8.74228e-08, 0, -8.74228e-08, -1, 0, 0, 0 )
cast_shadow = 0
emitting = false
amount = 50
lifetime = 3.0
visibility_aabb = AABB( nan, 0.05694, -7.38708, 0.867362, 0.904675, 14.7742 )
process_material = SubResource( 3 )
draw_pass_1 = SubResource( 4 )

[node name="ThrusterBottom" type="MeshInstance" parent="Exhaust/RearThrusters" index="3"]
transform = Transform( 0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, -1.028, 2.925 )
mesh = SubResource( 9 )
skeleton = NodePath("../../Main/MainThrusterTL")
material/0 = SubResource( 21 )

[node name="Particles" type="Particles" parent="Exhaust/RearThrusters/ThrusterBottom" index="0"]
transform = Transform( 1, 0, 0, 0, -1, 8.74228e-08, 0, -8.74228e-08, -1, 0, 0, 0 )
cast_shadow = 0
emitting = false
amount = 50
lifetime = 3.0
visibility_aabb = AABB( nan, 0.05694, -7.38708, 0.867362, 0.904675, 14.7742 )
process_material = SubResource( 3 )
draw_pass_1 = SubResource( 4 )

[node name="FrontThrusters" type="Spatial" parent="Exhaust" index="2"]

[node name="ThrusterLeft" type="MeshInstance" parent="Exhaust/FrontThrusters" index="0"]
transform = Transform( -8.74228e-09, -0.2, 0, 0.2, -8.74228e-09, 0, 0, 0, 0.2, 0.631258, 0, 8.90092 )
mesh = SubResource( 9 )
skeleton = NodePath("../../Main/MainThrusterTL")
material/0 = SubResource( 10 )

[node name="Particles" type="Particles" parent="Exhaust/FrontThrusters/ThrusterLeft" index="0"]
transform = Transform( 1, 0, 0, 0, -1, 8.74228e-08, 0, -8.74228e-08, -1, 0, 0, 0 )
cast_shadow = 0
emitting = false
amount = 50
lifetime = 3.0
visibility_aabb = AABB( nan, 0.05694, -7.38708, 0.867362, 0.904675, 14.7742 )
process_material = SubResource( 3 )
draw_pass_1 = SubResource( 4 )

[node name="ThrusterRight" type="MeshInstance" parent="Exhaust/FrontThrusters" index="1"]
transform = Transform( -8.74228e-09, 0.2, 0, -0.2, -8.74228e-09, 0, 0, 0, 0.2, -0.631, 0, 8.901 )
mesh = SubResource( 9 )
skeleton = NodePath("../../Main/MainThrusterTL")
material/0 = SubResource( 11 )

[node name="Particles" type="Particles" parent="Exhaust/FrontThrusters/ThrusterRight" index="0"]
transform = Transform( 1, 0, 0, 0, -1, 8.74228e-08, 0, -8.74228e-08, -1, 0, 0, 0 )
cast_shadow = 0
emitting = false
amount = 50
lifetime = 3.0
visibility_aabb = AABB( nan, 0.05694, -7.38708, 0.867362, 0.904675, 14.7742 )
process_material = SubResource( 3 )
draw_pass_1 = SubResource( 4 )

[node name="ThrusterBottom" type="MeshInstance" parent="Exhaust/FrontThrusters" index="2"]
transform = Transform( 0.2, -3.49691e-08, 0, 3.49691e-08, 0.2, 0, 0, 0, 0.2, 0, -0.631, 8.901 )
mesh = SubResource( 9 )
skeleton = NodePath("../../Main/MainThrusterTL")
material/0 = SubResource( 12 )

[node name="Particles" type="Particles" parent="Exhaust/FrontThrusters/ThrusterBottom" index="0"]
transform = Transform( 1, 0, 0, 0, -1, 8.74228e-08, 0, -8.74228e-08, -1, 0, 0, 0 )
cast_shadow = 0
emitting = false
amount = 50
lifetime = 3.0
visibility_aabb = AABB( nan, 0.05694, -7.38708, 0.867362, 0.904675, 14.7742 )
process_material = SubResource( 3 )
draw_pass_1 = SubResource( 4 )

[node name="ThrusterTop" type="MeshInstance" parent="Exhaust/FrontThrusters" index="3"]
transform = Transform( -0.2, 1.74846e-08, 0, -1.74846e-08, -0.2, 0, 0, 0, 0.2, 0, 0.631, 8.901 )
mesh = SubResource( 9 )
skeleton = NodePath("../../Main/MainThrusterTL")
material/0 = SubResource( 13 )

[node name="Particles" type="Particles" parent="Exhaust/FrontThrusters/ThrusterTop" index="0"]
transform = Transform( 1, 0, 0, 0, -1, 8.74228e-08, 0, -8.74228e-08, -1, 0, 0, 0 )
cast_shadow = 0
emitting = false
amount = 50
lifetime = 3.0
visibility_aabb = AABB( nan, 0.05694, -7.38708, 0.867362, 0.904675, 14.7742 )
process_material = SubResource( 3 )
draw_pass_1 = SubResource( 4 )
