[gd_scene load_steps=15 format=2]

[ext_resource path="res://Graphics/tgstation/computer-screens.png" type="Texture" id=1]
[ext_resource path="res://Graphics/tgstation/computer.png" type="Texture" id=2]
[ext_resource path="res://Actors/Objects/Computer/Computer.gd" type="Script" id=3]
[ext_resource path="res://Actors/Objects/Computer/UI/ControlComp.tscn" type="PackedScene" id=4]
[ext_resource path="res://Graphics/light_shadow_light.png" type="Texture" id=5]
[ext_resource path="res://Actors/Components/ActivationRange.gd" type="Script" id=6]
[ext_resource path="res://Actors/Components/PowerManager.gd" type="Script" id=7]

[sub_resource type="RectangleShape2D" id=1]
extents = Vector2( 16, 16 )

[sub_resource type="CanvasItemMaterial" id=2]
blend_mode = 1

[sub_resource type="Animation" id=3]
loop = true
tracks/0/type = "value"
tracks/0/path = NodePath("computer/screen:modulate")
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, 0, 0, 1 ) ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("computer/screen/Light2D:enabled")
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": 1,
"values": [ false ]
}

[sub_resource type="Animation" id=4]
length = 5.5
loop = true
step = 0.0
tracks/0/type = "value"
tracks/0/path = NodePath("computer/screen:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0, 0.63955, 0.93955, 2.44742, 2.74742, 4.94041, 4.98068, 5.01527, 5.0544, 5.08947 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ),
"update": 0,
"values": [ Color( 1, 1, 1, 1 ), Color( 0.682353, 0.682353, 0.682353, 1 ), Color( 1, 1, 1, 1 ), Color( 0.682353, 0.682353, 0.682353, 1 ), Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 1 ), Color( 0.584314, 0.584314, 0.584314, 1 ), Color( 1, 1, 1, 1 ), Color( 0.584314, 0.584314, 0.584314, 1 ), Color( 1, 1, 1, 1 ) ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("computer/screen/Light2D:enabled")
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": 1,
"values": [ true ]
}

[sub_resource type="Animation" id=5]
length = 0.2
step = 0.05
tracks/0/type = "value"
tracks/0/path = NodePath("Control:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0, 0.2 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 0,
"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ]
}
tracks/1/type = "bezier"
tracks/1/path = NodePath("Control:position:y")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"points": PoolRealArray( 10, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0 ),
"times": PoolRealArray( 0, 0.2 )
}

[sub_resource type="Animation" id=6]
length = 0.2
tracks/0/type = "value"
tracks/0/path = NodePath("Control:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0, 0.2 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 0,
"values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ) ]
}
tracks/1/type = "bezier"
tracks/1/path = NodePath("Control:position:y")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"points": PoolRealArray( 0, -0.25, 0, 0.25, 0, 10, -0.25, 0, 0.25, 0 ),
"times": PoolRealArray( 0, 0.2 )
}

[sub_resource type="RectangleShape2D" id=7]
extents = Vector2( 48, 48 )

[node name="Computer" type="StaticBody2D"]
input_pickable = true
script = ExtResource( 3 )

[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2( 16, 16 )
shape = SubResource( 1 )

[node name="computer" type="Sprite" parent="."]
texture = ExtResource( 2 )
centered = false
region_enabled = true
region_rect = Rect2( 0, 0, 32, 32 )

[node name="screen" type="Sprite" parent="computer"]
modulate = Color( 0, 0, 0, 1 )
material = SubResource( 2 )
texture = ExtResource( 1 )
centered = false
region_enabled = true
region_rect = Rect2( 0, 0, 32, 32 )

[node name="Light2D" type="Light2D" parent="computer/screen"]
visible = false
position = Vector2( 16, 16 )
enabled = false
texture = ExtResource( 5 )
texture_scale = 0.5
energy = 0.5

[node name="ScreenAnimation" type="AnimationPlayer" parent="."]
autoplay = "off"
anims/off = SubResource( 3 )
anims/on = SubResource( 4 )

[node name="UIAnimation" type="AnimationPlayer" parent="."]
anims/fadein = SubResource( 5 )
anims/fadeout = SubResource( 6 )

[node name="Control" type="Node2D" parent="."]
modulate = Color( 1, 1, 1, 0 )
position = Vector2( 0, 10 )
z_index = 999

[node name="ControlComp" parent="Control" instance=ExtResource( 4 )]
visible = false
margin_left = -47.0
margin_top = -81.0
margin_right = 208.0
margin_bottom = 66.0
rect_scale = Vector2( 0.5, 0.5 )

[node name="ActivationRange" type="Area2D" parent="."]
visible = false
script = ExtResource( 6 )

[node name="CollisionShape2D" type="CollisionShape2D" parent="ActivationRange"]
position = Vector2( 16, 16 )
shape = SubResource( 7 )

[node name="PowerManager" type="Node" parent="."]
script = ExtResource( 7 )
power_usage = 20.0
[connection signal="animation_finished" from="UIAnimation" to="." method="_ui_fade_completed"]
[connection signal="mouse_entered" from="Control/ControlComp" to="." method="_ui_focus_changed" binds= [ true ]]
[connection signal="mouse_exited" from="Control/ControlComp" to="." method="_ui_focus_changed" binds= [ false ]]
[connection signal="player_left" from="ActivationRange" to="." method="_force_close_ui"]
[connection signal="power_connected" from="PowerManager" to="." method="_power_status_changed" binds= [ true ]]
[connection signal="power_disconnected" from="PowerManager" to="." method="_power_status_changed" binds= [ false ]]
