diff --git a/scenes/status_light.tscn b/scenes/status_light.tscn new file mode 100644 index 0000000..e9d2eba --- /dev/null +++ b/scenes/status_light.tscn @@ -0,0 +1,185 @@ +[gd_scene load_steps=8 format=2] + +[ext_resource path="res://scripts/status_light.gd" type="Script" id=1] + +[sub_resource type="Animation" id=1] +length = 0.001 +tracks/0/type = "value" +tracks/0/path = NodePath(".:light_color") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 1 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:light_energy") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 1.0 ] +} + +[sub_resource type="Animation" id=2] +resource_name = "activate" +length = 0.6 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:light_color") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Color( 0.0313726, 1, 0, 1 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:light_energy") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 0.3, 0.6 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ 1.0, 0.1, 1.0 ] +} + +[sub_resource type="Animation" id=6] +resource_name = "fail" +length = 0.001 +tracks/0/type = "value" +tracks/0/path = NodePath(".:light_color") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Color( 1, 0, 0, 1 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:light_energy") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 1.0 ] +} + +[sub_resource type="Animation" id=3] +resource_name = "idle" +length = 0.001 +tracks/0/type = "value" +tracks/0/path = NodePath(".:light_color") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 1 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:light_energy") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 1.0 ] +} + +[sub_resource type="Animation" id=4] +resource_name = "prime" +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:light_color") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 1 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:light_energy") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 0.5, 1 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ 1.0, 0.1, 1.0 ] +} + +[sub_resource type="Animation" id=5] +resource_name = "warn" +length = 0.001 +tracks/0/type = "value" +tracks/0/path = NodePath(".:light_color") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Color( 1, 0.960784, 0, 1 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:light_energy") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 0.5 ] +} + +[node name="status_light" type="OmniLight"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.400717, 0.897655 ) +omni_range = 1.03219 +omni_attenuation = 0.120742 +script = ExtResource( 1 ) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +anims/RESET = SubResource( 1 ) +anims/activate = SubResource( 2 ) +anims/fail = SubResource( 6 ) +anims/idle = SubResource( 3 ) +anims/prime = SubResource( 4 ) +anims/warn = SubResource( 5 ) diff --git a/scripts/status_light.gd b/scripts/status_light.gd new file mode 100644 index 0000000..1e81bfc --- /dev/null +++ b/scripts/status_light.gd @@ -0,0 +1,19 @@ +extends OmniLight + +func _ready(): + idle() + +func idle(): + $AnimationPlayer.play("idle") + +func prime(): + $AnimationPlayer.play("prime") + +func activate(): + $AnimationPlayer.play("activate") + +func warn(): + $AnimationPlayer.play("warn") + +func fail(): + $AnimationPlayer.play("fail")