summaryrefslogtreecommitdiff
path: root/objects
diff options
context:
space:
mode:
Diffstat (limited to 'objects')
-rw-r--r--objects/BorderIndicator.tscn46
-rw-r--r--objects/HexSpace.tscn178
-rw-r--r--objects/Plane.tscn136
-rw-r--r--objects/PlaneControlBoard.tscn292
4 files changed, 652 insertions, 0 deletions
diff --git a/objects/BorderIndicator.tscn b/objects/BorderIndicator.tscn
new file mode 100644
index 0000000..77535f4
--- /dev/null
+++ b/objects/BorderIndicator.tscn
@@ -0,0 +1,46 @@
+[gd_scene load_steps=6 format=2]
+
+[ext_resource path="res://textures/gradient_transparent.png" type="Texture" id=1]
+
+[sub_resource type="SpatialMaterial" id=1]
+flags_transparent = true
+params_cull_mode = 2
+albedo_color = Color( 1, 0.956863, 0, 1 )
+albedo_texture = ExtResource( 1 )
+emission_enabled = true
+emission = Color( 1, 1, 0, 1 )
+emission_energy = 1.0
+emission_operator = 0
+emission_on_uv2 = false
+uv1_scale = Vector3( 1, 0.9, 1 )
+uv1_offset = Vector3( 0, 0.1, 0 )
+
+[sub_resource type="QuadMesh" id=2]
+material = SubResource( 1 )
+size = Vector2( 0.577, 0.15 )
+
+[sub_resource type="SpatialMaterial" id=3]
+flags_transparent = true
+params_cull_mode = 2
+albedo_color = Color( 1, 0.956863, 0, 0.486275 )
+emission_enabled = true
+emission = Color( 1, 1, 0, 1 )
+emission_energy = 1.0
+emission_operator = 0
+emission_on_uv2 = false
+uv1_scale = Vector3( 1, 0.9, 1 )
+uv1_offset = Vector3( 0, 0.1, 0 )
+
+[sub_resource type="QuadMesh" id=4]
+material = SubResource( 3 )
+size = Vector2( 0.577, 0.04 )
+
+[node name="BorderIndicator" type="Spatial"]
+
+[node name="MeshInstance" type="MeshInstance" parent="."]
+transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0537032, 0 )
+mesh = SubResource( 2 )
+
+[node name="MeshInstance3" type="MeshInstance" parent="."]
+transform = Transform( 1, 4.37114e-08, 4.37114e-08, -4.37114e-08, -4.37114e-08, 1, 4.37114e-08, -1, -4.37114e-08, 0, 0, 0 )
+mesh = SubResource( 4 )
diff --git a/objects/HexSpace.tscn b/objects/HexSpace.tscn
new file mode 100644
index 0000000..121a5a9
--- /dev/null
+++ b/objects/HexSpace.tscn
@@ -0,0 +1,178 @@
+[gd_scene load_steps=22 format=2]
+
+[ext_resource path="res://scripts/HexSpace.gd" type="Script" id=1]
+[ext_resource path="res://resources/fonts/cochineal_bold_billboard.tres" type="DynamicFont" id=2]
+
+[sub_resource type="SpatialMaterial" id=5]
+albedo_color = Color( 0.101961, 0.427451, 0.0235294, 1 )
+
+[sub_resource type="CylinderMesh" id=1]
+material = SubResource( 5 )
+top_radius = 0.577
+bottom_radius = 0.577
+height = 0.5
+radial_segments = 6
+rings = 1
+
+[sub_resource type="ConvexPolygonShape" id=2]
+points = PoolVector3Array( 0.499697, 0.25, 0.2885, 0, 0.25, 0.577, 0.499697, -0.25, 0.2885, 0.499697, 0.25, -0.2885, 0, -0.25, 0.577, -0.499697, 0.25, 0.2885, 0.499697, -0.25, -0.2885, 0, 0.25, -0.577, -0.499697, -0.25, 0.2885, -0.499697, 0.25, -0.2885, 0, -0.25, -0.577, -0.499697, -0.25, -0.2885 )
+
+[sub_resource type="SpatialMaterial" id=18]
+albedo_color = Color( 0.470588, 0.470588, 0.470588, 1 )
+
+[sub_resource type="CubeMesh" id=19]
+material = SubResource( 18 )
+size = Vector3( 0.2, 0.2, 0.2 )
+
+[sub_resource type="SpatialMaterial" id=6]
+albedo_color = Color( 0.658824, 0.658824, 0.658824, 1 )
+metallic_specular = 0.0
+
+[sub_resource type="QuadMesh" id=7]
+material = SubResource( 6 )
+size = Vector2( 0.15, 0.9 )
+
+[sub_resource type="SpatialMaterial" id=8]
+albedo_color = Color( 0.47451, 0.47451, 0.47451, 1 )
+metallic_specular = 0.0
+
+[sub_resource type="QuadMesh" id=9]
+material = SubResource( 8 )
+size = Vector2( 0.15, 0.9 )
+
+[sub_resource type="SpatialMaterial" id=10]
+albedo_color = Color( 0.27451, 0.27451, 0.27451, 1 )
+metallic_specular = 0.0
+
+[sub_resource type="QuadMesh" id=11]
+material = SubResource( 10 )
+size = Vector2( 0.15, 0.9 )
+
+[sub_resource type="SpatialMaterial" id=12]
+albedo_color = Color( 0.988235, 0.780392, 0.156863, 1 )
+
+[sub_resource type="CylinderMesh" id=13]
+material = SubResource( 12 )
+top_radius = 0.07
+bottom_radius = 0.07
+height = 0.25
+radial_segments = 6
+
+[sub_resource type="SpatialMaterial" id=14]
+albedo_color = Color( 0.113725, 0.113725, 0.113725, 1 )
+
+[sub_resource type="CylinderMesh" id=15]
+material = SubResource( 14 )
+top_radius = 0.05
+bottom_radius = 0.05
+height = 0.1
+radial_segments = 6
+
+[sub_resource type="SpatialMaterial" id=16]
+albedo_color = Color( 0.682353, 0, 0, 1 )
+
+[sub_resource type="PrismMesh" id=17]
+material = SubResource( 16 )
+size = Vector3( 0.15, 0.15, 0.2 )
+
+[sub_resource type="SpatialMaterial" id=20]
+albedo_color = Color( 0.360784, 0.360784, 0.360784, 1 )
+
+[sub_resource type="CubeMesh" id=21]
+material = SubResource( 20 )
+size = Vector3( 0.5, 0.5, 0.5 )
+
+[node name="HexSpace" type="StaticBody"]
+script = ExtResource( 1 )
+
+[node name="BaseMesh" type="MeshInstance" parent="."]
+mesh = SubResource( 1 )
+
+[node name="CollisionShape" type="CollisionShape" parent="."]
+shape = SubResource( 2 )
+
+[node name="Hills" type="Spatial" parent="."]
+transform = Transform( 1.5, 0, 0, 0, 3, 0, 0, 0, 1.5, 0, 0, 0 )
+visible = false
+
+[node name="Hill1" type="MeshInstance" parent="Hills"]
+transform = Transform( 0.572221, -0.735731, 0.362302, 0.453934, 0.652079, 0.607237, -0.683013, -0.183013, 0.707107, -0.136769, 0.00248935, -0.0678155 )
+mesh = SubResource( 19 )
+
+[node name="Hill2" type="MeshInstance" parent="Hills"]
+transform = Transform( 0.128026, -0.722156, 0.679779, 0.453934, 0.652079, 0.607237, -0.88179, 0.230833, 0.411294, 0.112486, -0.0176367, 0.0223942 )
+mesh = SubResource( 19 )
+
+[node name="Hill3" type="MeshInstance" parent="Hills"]
+transform = Transform( -0.672034, -0.196937, 0.713853, 0.453934, 0.652079, 0.607237, -0.585076, 0.732127, -0.348823, 0.0607607, -0.0176367, 0.146304 )
+mesh = SubResource( 19 )
+
+[node name="Mtn4" type="MeshInstance" parent="Hills"]
+transform = Transform( 0.0943905, -0.712853, 0.694933, 0.453934, 0.652079, 0.607237, -0.886021, 0.258136, 0.385138, 0.0280236, 0.0174877, -0.12019 )
+mesh = SubResource( 19 )
+
+[node name="Mtn5" type="MeshInstance" parent="Hills"]
+transform = Transform( -0.602414, -0.086159, 0.805447, 0.479476, 0.657607, 0.576965, -0.579378, 0.733764, -0.35484, 0.195652, -0.00499119, 0.0690676 )
+mesh = SubResource( 19 )
+
+[node name="Mtn6" type="MeshInstance" parent="Hills"]
+transform = Transform( 0.762554, -0.636833, 0.113821, 0.453934, 0.652079, 0.607237, -0.460929, -0.411384, 0.786325, -0.0791655, 0.0010101, 0.116248 )
+mesh = SubResource( 19 )
+
+[node name="Airport" type="Spatial" parent="."]
+visible = false
+
+[node name="MediumRunway" type="MeshInstance" parent="Airport"]
+transform = Transform( 0.866025, 0.5, -6.55671e-08, 0, 1.31134e-07, 1, 0.5, -0.866025, 1.13566e-07, 0, 0.251, 0 )
+mesh = SubResource( 7 )
+
+[node name="HardRunway" type="MeshInstance" parent="Airport"]
+transform = Transform( -5.96046e-08, 1, -1.31134e-07, 0, 1.31134e-07, 1, 1, 5.96046e-08, -7.10543e-15, 0, 0.252, 0 )
+mesh = SubResource( 9 )
+
+[node name="EasyRunway" type="MeshInstance" parent="Airport"]
+transform = Transform( -0.866025, 0.5, -6.55671e-08, 0, 1.31134e-07, 1, 0.5, 0.866025, -1.13566e-07, 0, 0.253, 0 )
+mesh = SubResource( 11 )
+
+[node name="ATCTowerBase" type="MeshInstance" parent="Airport"]
+transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0212696, 0.378614, 0.362361 )
+mesh = SubResource( 13 )
+
+[node name="ATCTowerTop" type="MeshInstance" parent="Airport"]
+transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0212696, 0.547252, 0.362361 )
+mesh = SubResource( 15 )
+
+[node name="MeshInstance" type="MeshInstance" parent="Airport"]
+transform = Transform( 0.866025, 0, -0.5, 0, 1, 0, 0.5, 0, 0.866025, 0.0160618, 0.319395, -0.39729 )
+mesh = SubResource( 17 )
+
+[node name="AirportName" type="Label3D" parent="Airport"]
+transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.971102, 0 )
+visible = false
+pixel_size = 0.001
+billboard = 1
+fixed_size = true
+text = "AIRPORT NAME"
+font = ExtResource( 2 )
+
+[node name="AirportIcon" type="Sprite3D" parent="Airport"]
+transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.366498, 0.366924, 0.20708 )
+pixel_size = 0.0035
+billboard = 1
+transparent = false
+
+[node name="Mountain" type="Spatial" parent="."]
+transform = Transform( 1, 0, 0, 0, 5, 0, 0, 0, 1, 0, -0.838121, 0 )
+visible = false
+
+[node name="Mtn1" type="MeshInstance" parent="Mountain"]
+transform = Transform( 0.702638, 0.466574, 0.537224, -0.711548, 0.460731, 0.530496, 0, -0.755007, 0.655716, 0.15039, 0, 0.227606 )
+mesh = SubResource( 21 )
+
+[node name="Mtn2" type="MeshInstance" parent="Mountain"]
+transform = Transform( 0.663538, 0.192264, 0.723016, -0.711548, 0.460731, 0.530496, -0.23112, -0.866465, 0.442518, -0.128441, 0.0223821, 0.00454938 )
+mesh = SubResource( 21 )
+
+[node name="Mtn3" type="MeshInstance" parent="Mountain"]
+transform = Transform( -0.365966, -0.887525, 0.279942, -0.711548, 0.460731, 0.530496, -0.599807, -0.00504872, -0.800129, 0.0776231, -0.0221244, -0.135642 )
+mesh = SubResource( 21 )
diff --git a/objects/Plane.tscn b/objects/Plane.tscn
new file mode 100644
index 0000000..21ce972
--- /dev/null
+++ b/objects/Plane.tscn
@@ -0,0 +1,136 @@
+[gd_scene load_steps=15 format=2]
+
+[ext_resource path="res://scripts/Plane.gd" type="Script" id=1]
+[ext_resource path="res://resources/fonts/Cochineal-Bold.otf" type="DynamicFontData" id=2]
+[ext_resource path="res://textures/plane_action_indicator_board.png" type="Texture" id=3]
+[ext_resource path="res://textures/gradient_transparent.png" type="Texture" id=4]
+[ext_resource path="res://resources/blank_plane_material.material" type="Material" id=5]
+
+[sub_resource type="CylinderMesh" id=1]
+material = ExtResource( 5 )
+top_radius = 0.1
+bottom_radius = 0.1
+height = 0.4
+
+[sub_resource type="PrismMesh" id=2]
+left_to_right = 0.2
+size = Vector3( 0.18, 0.18, 0.18 )
+
+[sub_resource type="CubeMesh" id=3]
+size = Vector3( 0.1, 0.05, 0.6 )
+
+[sub_resource type="CubeMesh" id=4]
+size = Vector3( 0.1, 0.05, 0.3 )
+
+[sub_resource type="CylinderShape" id=5]
+height = 0.2
+radius = 0.35
+
+[sub_resource type="DynamicFont" id=6]
+size = 100
+outline_size = 2
+outline_color = Color( 0, 0, 0, 1 )
+font_data = ExtResource( 2 )
+
+[sub_resource type="ViewportTexture" id=7]
+viewport_path = NodePath("ActionIndicatorViewport")
+
+[sub_resource type="SpatialMaterial" id=8]
+flags_transparent = true
+flags_unshaded = true
+params_cull_mode = 2
+albedo_color = Color( 0.945098, 1, 0, 0.439216 )
+albedo_texture = ExtResource( 4 )
+uv1_offset = Vector3( 0, 0.498, 0 )
+
+[sub_resource type="CylinderMesh" id=9]
+material = SubResource( 8 )
+top_radius = 0.4
+bottom_radius = 0.4
+height = 0.3
+radial_segments = 20
+
+[node name="Plane" type="Area"]
+script = ExtResource( 1 )
+
+[node name="Fuselage" type="MeshInstance" parent="."]
+transform = Transform( -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, 0, 0, 0 )
+mesh = SubResource( 1 )
+
+[node name="Cone" type="MeshInstance" parent="."]
+transform = Transform( -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, -0.287144, 0.0157076, 0 )
+mesh = SubResource( 2 )
+
+[node name="Wings" type="MeshInstance" parent="."]
+transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0623346, 0.0405034, 0 )
+mesh = SubResource( 3 )
+
+[node name="Tail" type="MeshInstance" parent="."]
+transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.19327, 0.0606151, 0 )
+mesh = SubResource( 4 )
+
+[node name="CollisionShape" type="CollisionShape" parent="."]
+transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0276226, 0.0342902, 0 )
+shape = SubResource( 5 )
+
+[node name="UnsetIndicator" type="Label3D" parent="."]
+transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.280024, 0 )
+visible = false
+pixel_size = 0.001
+billboard = 1
+fixed_size = true
+text = "!"
+font = SubResource( 6 )
+
+[node name="ActionIndicator" type="Sprite3D" parent="."]
+transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.00816703, 0 )
+visible = false
+centered = false
+pixel_size = 0.0015
+billboard = 1
+double_sided = false
+no_depth_test = true
+fixed_size = true
+texture = SubResource( 7 )
+
+[node name="SelectionIndicator" type="MeshInstance" parent="."]
+transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.071805, 0 )
+visible = false
+mesh = SubResource( 9 )
+
+[node name="ActionIndicatorViewport" type="Viewport" parent="."]
+size = Vector2( 320, 64 )
+transparent_bg = true
+disable_3d = true
+usage = 1
+
+[node name="FlightInfo" type="Node2D" parent="ActionIndicatorViewport"]
+
+[node name="Background" type="Sprite" parent="ActionIndicatorViewport/FlightInfo"]
+position = Vector2( 192, 32 )
+z_index = -1
+texture = ExtResource( 3 )
+
+[node name="Action1" type="Sprite" parent="ActionIndicatorViewport/FlightInfo"]
+position = Vector2( 95, 32 )
+scale = Vector2( 0.625, 0.625 )
+
+[node name="Action2" type="Sprite" parent="ActionIndicatorViewport/FlightInfo"]
+position = Vector2( 144, 32 )
+scale = Vector2( 0.625, 0.625 )
+
+[node name="Action3" type="Sprite" parent="ActionIndicatorViewport/FlightInfo"]
+position = Vector2( 193, 32 )
+scale = Vector2( 0.625, 0.625 )
+
+[node name="Action4" type="Sprite" parent="ActionIndicatorViewport/FlightInfo"]
+position = Vector2( 242, 32 )
+scale = Vector2( 0.625, 0.625 )
+
+[node name="Action5" type="Sprite" parent="ActionIndicatorViewport/FlightInfo"]
+position = Vector2( 291, 32 )
+scale = Vector2( 0.625, 0.625 )
+
+[connection signal="input_event" from="." to="." method="_on_Plane_input_event"]
+[connection signal="mouse_entered" from="." to="." method="_on_Plane_mouse_entered"]
+[connection signal="mouse_exited" from="." to="." method="_on_Plane_mouse_exited"]
diff --git a/objects/PlaneControlBoard.tscn b/objects/PlaneControlBoard.tscn
new file mode 100644
index 0000000..4c58d5d
--- /dev/null
+++ b/objects/PlaneControlBoard.tscn
@@ -0,0 +1,292 @@
+[gd_scene load_steps=7 format=2]
+
+[ext_resource path="res://resources/PlaneControlBoard.theme" type="Theme" id=1]
+[ext_resource path="res://scripts/PlaneControlBoard.gd" type="Script" id=2]
+[ext_resource path="res://textures/airport_indicator_2.png" type="Texture" id=3]
+[ext_resource path="res://textures/airport_indicator_3.png" type="Texture" id=4]
+[ext_resource path="res://textures/airport_indicator_1.png" type="Texture" id=5]
+
+[sub_resource type="GDScript" id=3]
+resource_name = "action_func"
+script/source = "extends VBoxContainer
+
+var move_first = true
+
+# 0 = nothing, 1 = forward, 2 = CCW, 3 = CW, 4 = ascend, 5 = descend
+func get_action():
+ var action = [$ActionOption.get_selected_id()]
+ if move_first:
+ action.push_front(1)
+ else:
+ action.push_back(1)
+
+func reset():
+ $ActionOption.select(0)
+ $MoveFirstButton.text = \"\"
+ $MoveLastButton.text = \"\"
+
+func disable():
+ $MoveFirstButton.disabled = true
+ $MoveLastButton.disabled = true
+ $ActionOption.disabled = true
+
+func enable():
+ reset()
+ set_move_first()
+ $MoveFirstButton.disabled = false
+ $MoveLastButton.disabled = false
+ $ActionOption.disabled = false
+
+func set_move_first(first = true):
+ if first:
+ move_first = true
+ $MoveFirstButton.text = \">>\"
+ $MoveLastButton.text = \"\"
+ else:
+ move_first = false
+ $MoveFirstButton.text = \"\"
+ $MoveLastButton.text = \">>\"
+"
+
+[node name="PlaneControlBoard" type="ColorRect"]
+margin_right = 400.0
+margin_bottom = 250.0
+size_flags_horizontal = 0
+size_flags_vertical = 0
+color = Color( 0.988235, 0.984314, 0.972549, 1 )
+script = ExtResource( 2 )
+
+[node name="DestinationHBOX" type="HBoxContainer" parent="."]
+anchor_left = 0.05
+anchor_top = 0.3
+anchor_right = 0.941
+anchor_bottom = 0.3
+margin_left = -2.0
+margin_top = -70.0
+margin_right = -2.0
+margin_bottom = -6.0
+
+[node name="Label" type="Label" parent="DestinationHBOX"]
+margin_top = 24.0
+margin_right = 111.0
+margin_bottom = 40.0
+theme = ExtResource( 1 )
+custom_colors/font_color = Color( 0, 0, 0, 1 )
+text = "DESTINATION: "
+
+[node name="DestinationIcon" type="TextureRect" parent="DestinationHBOX"]
+margin_left = 115.0
+margin_right = 179.0
+margin_bottom = 64.0
+texture = ExtResource( 5 )
+
+[node name="AltitudeHBox" type="HBoxContainer" parent="."]
+anchor_left = 0.05
+anchor_top = 0.3
+anchor_right = 0.941
+anchor_bottom = 0.3
+
+[node name="Label" type="Label" parent="AltitudeHBox"]
+margin_top = 24.0
+margin_right = 109.0
+margin_bottom = 40.0
+theme = ExtResource( 1 )
+custom_colors/font_color = Color( 0, 0, 0, 1 )
+text = "ALTITUDE: "
+
+[node name="Altitude1" type="TextureRect" parent="AltitudeHBox"]
+margin_left = 113.0
+margin_right = 177.0
+margin_bottom = 64.0
+texture = ExtResource( 5 )
+
+[node name="Altitude2" type="TextureRect" parent="AltitudeHBox"]
+modulate = Color( 0.3, 0.3, 0.3, 1 )
+margin_left = 181.0
+margin_right = 245.0
+margin_bottom = 64.0
+texture = ExtResource( 3 )
+
+[node name="Altitude3" type="TextureRect" parent="AltitudeHBox"]
+modulate = Color( 0.3, 0.3, 0.3, 1 )
+margin_left = 249.0
+margin_right = 313.0
+margin_bottom = 64.0
+size_flags_horizontal = 0
+size_flags_vertical = 0
+texture = ExtResource( 4 )
+
+[node name="ActionHBox" type="HBoxContainer" parent="."]
+anchor_left = 0.05
+anchor_top = 0.647
+anchor_right = 0.95
+anchor_bottom = 0.9
+
+[node name="ActionSquare1" type="VBoxContainer" parent="ActionHBox"]
+margin_right = 50.0
+margin_bottom = 74.0
+script = SubResource( 3 )
+
+[node name="MoveFirstButton" type="Button" parent="ActionHBox/ActionSquare1"]
+margin_right = 50.0
+margin_bottom = 22.0
+theme = ExtResource( 1 )
+text = ">>"
+
+[node name="ActionOption" type="OptionButton" parent="ActionHBox/ActionSquare1"]
+margin_top = 26.0
+margin_right = 50.0
+margin_bottom = 48.0
+rect_min_size = Vector2( 50, 0 )
+theme = ExtResource( 1 )
+items = [ "", null, false, 0, null, "←", null, false, 2, null, "→", null, false, 3, null, "↑", null, false, 4, null, "↓", null, false, 5, null ]
+selected = 0
+
+[node name="MoveLastButton" type="Button" parent="ActionHBox/ActionSquare1"]
+margin_top = 52.0
+margin_right = 50.0
+margin_bottom = 74.0
+theme = ExtResource( 1 )
+
+[node name="Spacer1" type="Control" parent="ActionHBox"]
+margin_left = 54.0
+margin_right = 73.0
+margin_bottom = 74.0
+size_flags_horizontal = 3
+
+[node name="ActionSquare2" type="VBoxContainer" parent="ActionHBox"]
+margin_left = 77.0
+margin_right = 127.0
+margin_bottom = 74.0
+script = SubResource( 3 )
+
+[node name="MoveFirstButton" type="Button" parent="ActionHBox/ActionSquare2"]
+margin_right = 50.0
+margin_bottom = 22.0
+theme = ExtResource( 1 )
+text = ">>"
+
+[node name="ActionOption" type="OptionButton" parent="ActionHBox/ActionSquare2"]
+margin_top = 26.0
+margin_right = 50.0
+margin_bottom = 48.0
+rect_min_size = Vector2( 50, 0 )
+theme = ExtResource( 1 )
+items = [ "", null, false, 0, null, "←", null, false, 2, null, "→", null, false, 3, null, "↑", null, false, 4, null, "↓", null, false, 5, null ]
+selected = 0
+
+[node name="MoveLastButton" type="Button" parent="ActionHBox/ActionSquare2"]
+margin_top = 52.0
+margin_right = 50.0
+margin_bottom = 74.0
+theme = ExtResource( 1 )
+
+[node name="Spacer2" type="Control" parent="ActionHBox"]
+margin_left = 131.0
+margin_right = 151.0
+margin_bottom = 74.0
+size_flags_horizontal = 3
+
+[node name="ActionSquare3" type="VBoxContainer" parent="ActionHBox"]
+margin_left = 155.0
+margin_right = 205.0
+margin_bottom = 74.0
+script = SubResource( 3 )
+
+[node name="MoveFirstButton" type="Button" parent="ActionHBox/ActionSquare3"]
+margin_right = 50.0
+margin_bottom = 22.0
+theme = ExtResource( 1 )
+text = ">>"
+
+[node name="ActionOption" type="OptionButton" parent="ActionHBox/ActionSquare3"]
+margin_top = 26.0
+margin_right = 50.0
+margin_bottom = 48.0
+rect_min_size = Vector2( 50, 0 )
+theme = ExtResource( 1 )
+items = [ "", null, false, 0, null, "←", null, false, 2, null, "→", null, false, 3, null, "↑", null, false, 4, null, "↓", null, false, 5, null ]
+selected = 0
+
+[node name="MoveLastButton" type="Button" parent="ActionHBox/ActionSquare3"]
+margin_top = 52.0
+margin_right = 50.0
+margin_bottom = 74.0
+theme = ExtResource( 1 )
+
+[node name="Spacer3" type="Control" parent="ActionHBox"]
+margin_left = 209.0
+margin_right = 228.0
+margin_bottom = 74.0
+size_flags_horizontal = 3
+
+[node name="ActionSquare4" type="VBoxContainer" parent="ActionHBox"]
+margin_left = 232.0
+margin_right = 282.0
+margin_bottom = 74.0
+script = SubResource( 3 )
+
+[node name="MoveFirstButton" type="Button" parent="ActionHBox/ActionSquare4"]
+margin_right = 50.0
+margin_bottom = 22.0
+theme = ExtResource( 1 )
+text = ">>"
+
+[node name="ActionOption" type="OptionButton" parent="ActionHBox/ActionSquare4"]
+margin_top = 26.0
+margin_right = 50.0
+margin_bottom = 48.0
+rect_min_size = Vector2( 50, 0 )
+theme = ExtResource( 1 )
+items = [ "", null, false, 0, null, "←", null, false, 2, null, "→", null, false, 3, null, "↑", null, false, 4, null, "↓", null, false, 5, null ]
+selected = 0
+
+[node name="MoveLastButton" type="Button" parent="ActionHBox/ActionSquare4"]
+margin_top = 52.0
+margin_right = 50.0
+margin_bottom = 74.0
+theme = ExtResource( 1 )
+
+[node name="Spacer4" type="Control" parent="ActionHBox"]
+margin_left = 286.0
+margin_right = 306.0
+margin_bottom = 74.0
+size_flags_horizontal = 3
+
+[node name="ActionSquare5" type="VBoxContainer" parent="ActionHBox"]
+margin_left = 310.0
+margin_right = 360.0
+margin_bottom = 74.0
+script = SubResource( 3 )
+
+[node name="MoveFirstButton" type="Button" parent="ActionHBox/ActionSquare5"]
+margin_right = 50.0
+margin_bottom = 22.0
+theme = ExtResource( 1 )
+text = ">>"
+
+[node name="ActionOption" type="OptionButton" parent="ActionHBox/ActionSquare5"]
+margin_top = 26.0
+margin_right = 50.0
+margin_bottom = 48.0
+rect_min_size = Vector2( 50, 0 )
+theme = ExtResource( 1 )
+items = [ "", null, false, 0, null, "←", null, false, 2, null, "→", null, false, 3, null, "↑", null, false, 4, null, "↓", null, false, 5, null ]
+selected = 0
+
+[node name="MoveLastButton" type="Button" parent="ActionHBox/ActionSquare5"]
+margin_top = 52.0
+margin_right = 50.0
+margin_bottom = 74.0
+theme = ExtResource( 1 )
+
+[connection signal="pressed" from="ActionHBox/ActionSquare1/MoveFirstButton" to="ActionHBox/ActionSquare1" method="set_move_first" binds= [ true ]]
+[connection signal="pressed" from="ActionHBox/ActionSquare1/MoveLastButton" to="ActionHBox/ActionSquare1" method="set_move_first" binds= [ false ]]
+[connection signal="pressed" from="ActionHBox/ActionSquare2/MoveFirstButton" to="ActionHBox/ActionSquare2" method="set_move_first" binds= [ true ]]
+[connection signal="pressed" from="ActionHBox/ActionSquare2/MoveLastButton" to="ActionHBox/ActionSquare2" method="set_move_first" binds= [ false ]]
+[connection signal="pressed" from="ActionHBox/ActionSquare3/MoveFirstButton" to="ActionHBox/ActionSquare3" method="set_move_first" binds= [ true ]]
+[connection signal="pressed" from="ActionHBox/ActionSquare3/MoveLastButton" to="ActionHBox/ActionSquare3" method="set_move_first" binds= [ false ]]
+[connection signal="pressed" from="ActionHBox/ActionSquare4/MoveFirstButton" to="ActionHBox/ActionSquare4" method="set_move_first" binds= [ true ]]
+[connection signal="pressed" from="ActionHBox/ActionSquare4/MoveLastButton" to="ActionHBox/ActionSquare4" method="set_move_first" binds= [ false ]]
+[connection signal="pressed" from="ActionHBox/ActionSquare5/MoveFirstButton" to="ActionHBox/ActionSquare5" method="set_move_first" binds= [ true ]]
+[connection signal="pressed" from="ActionHBox/ActionSquare5/MoveLastButton" to="ActionHBox/ActionSquare5" method="set_move_first" binds= [ false ]]