Compare commits
10 Commits
ec16023158
...
56e8bdbdf0
| Author | SHA1 | Date | |
|---|---|---|---|
| 56e8bdbdf0 | |||
| ce0c116800 | |||
| 50123076de | |||
| 3367c19b9c | |||
| 7301a65acd | |||
| cac8c85dec | |||
| 10feabb9bf | |||
| 49dff3c8f1 | |||
| 396988aa9a | |||
| 178fa40c15 |
@@ -1,4 +1,4 @@
|
|||||||
[gd_resource type="Theme" load_steps=229 format=3 uid="uid://b8rk41gjual2b"]
|
[gd_resource type="Theme" load_steps=236 format=3 uid="uid://b8rk41gjual2b"]
|
||||||
|
|
||||||
[ext_resource type="FontFile" uid="uid://501bous51s3p" path="res://Assets/Fonts/Inter-Regular.ttf" id="1_a74l0"]
|
[ext_resource type="FontFile" uid="uid://501bous51s3p" path="res://Assets/Fonts/Inter-Regular.ttf" id="1_a74l0"]
|
||||||
[ext_resource type="Texture2D" uid="uid://blqywcg2e22in" path="res://Assets/Icons/checked.svg" id="2_jlkvh"]
|
[ext_resource type="Texture2D" uid="uid://blqywcg2e22in" path="res://Assets/Icons/checked.svg" id="2_jlkvh"]
|
||||||
@@ -115,13 +115,17 @@ content_margin_left = 4.0
|
|||||||
content_margin_top = 6.0
|
content_margin_top = 6.0
|
||||||
content_margin_right = 4.0
|
content_margin_right = 4.0
|
||||||
content_margin_bottom = 4.0
|
content_margin_bottom = 4.0
|
||||||
bg_color = Color(0.145098, 0.145098, 0.145098, 1)
|
bg_color = Color(0.14902, 0.14902, 0.14902, 1)
|
||||||
|
draw_center = false
|
||||||
border_color = Color(0.0870588, 0.0870588, 0.0870588, 1)
|
border_color = Color(0.0870588, 0.0870588, 0.0870588, 1)
|
||||||
corner_radius_bottom_right = 3
|
corner_radius_bottom_right = 3
|
||||||
corner_radius_bottom_left = 3
|
corner_radius_bottom_left = 3
|
||||||
corner_detail = 3
|
corner_detail = 3
|
||||||
anti_aliasing = false
|
anti_aliasing = false
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8loco"]
|
||||||
|
bg_color = Color(0.321569, 0.321569, 0.321569, 1)
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_jduyo"]
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_jduyo"]
|
||||||
content_margin_left = 5.0
|
content_margin_left = 5.0
|
||||||
content_margin_top = 4.0
|
content_margin_top = 4.0
|
||||||
@@ -1700,7 +1704,7 @@ corner_radius_bottom_left = 3
|
|||||||
corner_detail = 3
|
corner_detail = 3
|
||||||
anti_aliasing = false
|
anti_aliasing = false
|
||||||
|
|
||||||
[sub_resource type="Image" id="Image_8w8ju"]
|
[sub_resource type="Image" id="Image_hry0s"]
|
||||||
data = {
|
data = {
|
||||||
"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 3, 255, 255, 255, 41, 255, 255, 255, 67, 255, 255, 255, 67, 255, 255, 255, 40, 255, 255, 255, 3, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 41, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 40, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 67, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 67, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 67, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 67, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 40, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 40, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 3, 255, 255, 255, 40, 255, 255, 255, 67, 255, 255, 255, 67, 255, 255, 255, 40, 255, 255, 255, 3, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0),
|
"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 3, 255, 255, 255, 41, 255, 255, 255, 67, 255, 255, 255, 67, 255, 255, 255, 40, 255, 255, 255, 3, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 41, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 40, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 67, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 67, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 67, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 67, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 40, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 74, 255, 255, 255, 40, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 3, 255, 255, 255, 40, 255, 255, 255, 67, 255, 255, 255, 67, 255, 255, 255, 40, 255, 255, 255, 3, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0),
|
||||||
"format": "RGBA8",
|
"format": "RGBA8",
|
||||||
@@ -1710,7 +1714,7 @@ data = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="ImageTexture" id="ImageTexture_bk0hb"]
|
[sub_resource type="ImageTexture" id="ImageTexture_bk0hb"]
|
||||||
image = SubResource("Image_8w8ju")
|
image = SubResource("Image_hry0s")
|
||||||
|
|
||||||
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_0hke8"]
|
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_0hke8"]
|
||||||
content_margin_left = 7.0
|
content_margin_left = 7.0
|
||||||
@@ -1723,7 +1727,7 @@ texture_margin_top = 6.0
|
|||||||
texture_margin_right = 6.0
|
texture_margin_right = 6.0
|
||||||
texture_margin_bottom = 6.0
|
texture_margin_bottom = 6.0
|
||||||
|
|
||||||
[sub_resource type="Image" id="Image_tx7cq"]
|
[sub_resource type="Image" id="Image_4rrmf"]
|
||||||
data = {
|
data = {
|
||||||
"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 6, 248, 248, 248, 102, 249, 249, 249, 168, 249, 249, 249, 168, 248, 248, 248, 101, 213, 213, 213, 6, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 248, 248, 248, 102, 249, 249, 249, 186, 249, 249, 249, 186, 249, 249, 249, 186, 249, 249, 249, 186, 248, 248, 248, 101, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 249, 249, 249, 168, 249, 249, 249, 186, 249, 249, 249, 186, 249, 249, 249, 186, 249, 249, 249, 186, 249, 249, 249, 168, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 249, 249, 249, 168, 249, 249, 249, 186, 249, 249, 249, 186, 249, 249, 249, 186, 249, 249, 249, 186, 248, 248, 248, 168, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 248, 248, 248, 101, 249, 249, 249, 186, 249, 249, 249, 186, 249, 249, 249, 186, 249, 249, 249, 186, 250, 250, 250, 99, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 213, 213, 213, 6, 248, 248, 248, 101, 249, 249, 249, 168, 248, 248, 248, 168, 250, 250, 250, 99, 213, 213, 213, 6, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0),
|
"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 6, 248, 248, 248, 102, 249, 249, 249, 168, 249, 249, 249, 168, 248, 248, 248, 101, 213, 213, 213, 6, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 248, 248, 248, 102, 249, 249, 249, 186, 249, 249, 249, 186, 249, 249, 249, 186, 249, 249, 249, 186, 248, 248, 248, 101, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 249, 249, 249, 168, 249, 249, 249, 186, 249, 249, 249, 186, 249, 249, 249, 186, 249, 249, 249, 186, 249, 249, 249, 168, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 249, 249, 249, 168, 249, 249, 249, 186, 249, 249, 249, 186, 249, 249, 249, 186, 249, 249, 249, 186, 248, 248, 248, 168, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 248, 248, 248, 101, 249, 249, 249, 186, 249, 249, 249, 186, 249, 249, 249, 186, 249, 249, 249, 186, 250, 250, 250, 99, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 213, 213, 213, 6, 248, 248, 248, 101, 249, 249, 249, 168, 248, 248, 248, 168, 250, 250, 250, 99, 213, 213, 213, 6, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0),
|
||||||
"format": "RGBA8",
|
"format": "RGBA8",
|
||||||
@@ -1733,7 +1737,7 @@ data = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="ImageTexture" id="ImageTexture_uc42h"]
|
[sub_resource type="ImageTexture" id="ImageTexture_uc42h"]
|
||||||
image = SubResource("Image_tx7cq")
|
image = SubResource("Image_4rrmf")
|
||||||
|
|
||||||
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_asndq"]
|
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_asndq"]
|
||||||
content_margin_left = 6.0
|
content_margin_left = 6.0
|
||||||
@@ -1746,7 +1750,7 @@ texture_margin_top = 5.0
|
|||||||
texture_margin_right = 5.0
|
texture_margin_right = 5.0
|
||||||
texture_margin_bottom = 5.0
|
texture_margin_bottom = 5.0
|
||||||
|
|
||||||
[sub_resource type="Image" id="Image_8almr"]
|
[sub_resource type="Image" id="Image_xd5fw"]
|
||||||
data = {
|
data = {
|
||||||
"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 213, 213, 213, 6, 180, 180, 180, 102, 181, 181, 181, 168, 181, 181, 181, 168, 179, 179, 179, 101, 170, 170, 170, 6, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 180, 180, 180, 102, 180, 180, 180, 186, 180, 180, 180, 186, 180, 180, 180, 186, 180, 180, 180, 186, 179, 179, 179, 101, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 181, 181, 181, 168, 180, 180, 180, 186, 180, 180, 180, 186, 180, 180, 180, 186, 180, 180, 180, 186, 181, 181, 181, 168, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 181, 181, 181, 168, 180, 180, 180, 186, 180, 180, 180, 186, 180, 180, 180, 186, 180, 180, 180, 186, 179, 179, 179, 168, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 179, 179, 179, 101, 180, 180, 180, 186, 180, 180, 180, 186, 180, 180, 180, 186, 180, 180, 180, 186, 181, 181, 181, 99, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 170, 170, 170, 6, 179, 179, 179, 101, 181, 181, 181, 168, 179, 179, 179, 168, 181, 181, 181, 99, 170, 170, 170, 6, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0),
|
"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 213, 213, 213, 6, 180, 180, 180, 102, 181, 181, 181, 168, 181, 181, 181, 168, 179, 179, 179, 101, 170, 170, 170, 6, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 180, 180, 180, 102, 180, 180, 180, 186, 180, 180, 180, 186, 180, 180, 180, 186, 180, 180, 180, 186, 179, 179, 179, 101, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 181, 181, 181, 168, 180, 180, 180, 186, 180, 180, 180, 186, 180, 180, 180, 186, 180, 180, 180, 186, 181, 181, 181, 168, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 181, 181, 181, 168, 180, 180, 180, 186, 180, 180, 180, 186, 180, 180, 180, 186, 180, 180, 180, 186, 179, 179, 179, 168, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 179, 179, 179, 101, 180, 180, 180, 186, 180, 180, 180, 186, 180, 180, 180, 186, 180, 180, 180, 186, 181, 181, 181, 99, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 170, 170, 170, 6, 179, 179, 179, 101, 181, 181, 181, 168, 179, 179, 179, 168, 181, 181, 181, 99, 170, 170, 170, 6, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0),
|
||||||
"format": "RGBA8",
|
"format": "RGBA8",
|
||||||
@@ -1756,7 +1760,7 @@ data = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="ImageTexture" id="ImageTexture_y6fi8"]
|
[sub_resource type="ImageTexture" id="ImageTexture_y6fi8"]
|
||||||
image = SubResource("Image_8almr")
|
image = SubResource("Image_xd5fw")
|
||||||
|
|
||||||
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_7amsq"]
|
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_7amsq"]
|
||||||
content_margin_left = 7.0
|
content_margin_left = 7.0
|
||||||
@@ -1769,7 +1773,7 @@ texture_margin_top = 6.0
|
|||||||
texture_margin_right = 6.0
|
texture_margin_right = 6.0
|
||||||
texture_margin_bottom = 6.0
|
texture_margin_bottom = 6.0
|
||||||
|
|
||||||
[sub_resource type="Image" id="Image_kfbnc"]
|
[sub_resource type="Image" id="Image_jkmfx"]
|
||||||
data = {
|
data = {
|
||||||
"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 7, 255, 255, 255, 19, 255, 255, 255, 19, 255, 255, 255, 7, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 21, 255, 255, 255, 21, 255, 255, 255, 19, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 21, 255, 255, 255, 21, 255, 255, 255, 19, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 7, 255, 255, 255, 19, 255, 255, 255, 19, 255, 255, 255, 6, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0),
|
"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 7, 255, 255, 255, 19, 255, 255, 255, 19, 255, 255, 255, 7, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 21, 255, 255, 255, 21, 255, 255, 255, 19, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 21, 255, 255, 255, 21, 255, 255, 255, 19, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 7, 255, 255, 255, 19, 255, 255, 255, 19, 255, 255, 255, 6, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0),
|
||||||
"format": "RGBA8",
|
"format": "RGBA8",
|
||||||
@@ -1779,7 +1783,7 @@ data = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="ImageTexture" id="ImageTexture_lfhcu"]
|
[sub_resource type="ImageTexture" id="ImageTexture_lfhcu"]
|
||||||
image = SubResource("Image_kfbnc")
|
image = SubResource("Image_jkmfx")
|
||||||
|
|
||||||
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_tef5f"]
|
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_tef5f"]
|
||||||
content_margin_left = 0.0
|
content_margin_left = 0.0
|
||||||
@@ -1913,72 +1917,68 @@ corner_radius_top_right = 4
|
|||||||
corner_radius_bottom_right = 4
|
corner_radius_bottom_right = 4
|
||||||
corner_radius_bottom_left = 4
|
corner_radius_bottom_left = 4
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_0uu8j"]
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_uqdmw"]
|
||||||
content_margin_left = 6.0
|
content_margin_left = 8.0
|
||||||
content_margin_top = 5.0
|
content_margin_top = 4.0
|
||||||
content_margin_right = 6.0
|
content_margin_right = 8.0
|
||||||
content_margin_bottom = 5.0
|
content_margin_bottom = 4.0
|
||||||
bg_color = Color(0.130588, 0.130588, 0.130588, 1)
|
bg_color = Color(0.116078, 0.116078, 0.116078, 1)
|
||||||
border_color = Color(0.101569, 0.101569, 0.101569, 1)
|
border_color = Color(0.101569, 0.101569, 0.101569, 1)
|
||||||
corner_radius_top_left = 3
|
|
||||||
corner_radius_top_right = 3
|
|
||||||
corner_radius_bottom_right = 3
|
|
||||||
corner_radius_bottom_left = 3
|
|
||||||
corner_detail = 3
|
corner_detail = 3
|
||||||
anti_aliasing = false
|
anti_aliasing = false
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_40oom"]
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ru5vq"]
|
||||||
content_margin_left = 6.0
|
content_margin_left = 16.0
|
||||||
content_margin_top = 5.0
|
content_margin_top = 4.0
|
||||||
content_margin_right = 6.0
|
content_margin_right = 16.0
|
||||||
content_margin_bottom = 5.0
|
content_margin_bottom = 4.0
|
||||||
bg_color = Color(1, 1, 1, 0.11)
|
bg_color = Color(0.116078, 0.116078, 0.116078, 1)
|
||||||
border_color = Color(1, 1, 1, 0.05)
|
border_color = Color(0.101569, 0.101569, 0.101569, 1)
|
||||||
corner_radius_top_left = 3
|
|
||||||
corner_radius_top_right = 3
|
|
||||||
corner_radius_bottom_right = 3
|
|
||||||
corner_radius_bottom_left = 3
|
|
||||||
corner_detail = 3
|
corner_detail = 3
|
||||||
anti_aliasing = false
|
anti_aliasing = false
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_pe0jj"]
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_pe0jj"]
|
||||||
content_margin_left = 6.0
|
content_margin_left = 16.0
|
||||||
content_margin_top = 5.0
|
content_margin_top = 4.0
|
||||||
content_margin_right = 6.0
|
content_margin_right = 16.0
|
||||||
content_margin_bottom = 5.0
|
content_margin_bottom = 4.0
|
||||||
|
bg_color = Color(0.116078, 0.116078, 0.116078, 1)
|
||||||
|
border_width_bottom = 1
|
||||||
|
border_color = Color(1, 1, 1, 1)
|
||||||
|
corner_detail = 3
|
||||||
|
anti_aliasing = false
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_dyudt"]
|
||||||
|
content_margin_left = 16.0
|
||||||
|
content_margin_top = 4.0
|
||||||
|
content_margin_right = 16.0
|
||||||
|
content_margin_bottom = 4.0
|
||||||
bg_color = Color(0.116078, 0.116078, 0.116078, 1)
|
bg_color = Color(0.116078, 0.116078, 0.116078, 1)
|
||||||
border_color = Color(0.101569, 0.101569, 0.101569, 1)
|
border_color = Color(0.101569, 0.101569, 0.101569, 1)
|
||||||
corner_radius_top_left = 3
|
|
||||||
corner_radius_top_right = 3
|
|
||||||
corner_radius_bottom_right = 3
|
|
||||||
corner_radius_bottom_left = 3
|
|
||||||
corner_detail = 3
|
corner_detail = 3
|
||||||
anti_aliasing = false
|
anti_aliasing = false
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_tbd5c"]
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_sra54"]
|
||||||
content_margin_left = 6.0
|
bg_color = Color(0.14902, 0.14902, 0.14902, 1)
|
||||||
content_margin_top = 5.0
|
draw_center = false
|
||||||
content_margin_right = 6.0
|
border_width_bottom = 1
|
||||||
content_margin_bottom = 5.0
|
border_color = Color(0.223529, 0.223529, 0.223529, 1)
|
||||||
bg_color = Color(0.101569, 0.101569, 0.101569, 1)
|
|
||||||
border_color = Color(0.101569, 0.101569, 0.101569, 1)
|
|
||||||
corner_radius_top_left = 3
|
|
||||||
corner_radius_top_right = 3
|
|
||||||
corner_radius_bottom_right = 3
|
|
||||||
corner_radius_bottom_left = 3
|
|
||||||
corner_detail = 3
|
|
||||||
anti_aliasing = false
|
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_l5ore"]
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_l5ore"]
|
||||||
content_margin_left = 6.0
|
content_margin_left = 0.0
|
||||||
content_margin_top = 4.0
|
content_margin_top = 0.0
|
||||||
content_margin_right = 6.0
|
content_margin_right = 0.0
|
||||||
content_margin_bottom = 4.0
|
content_margin_bottom = 0.0
|
||||||
bg_color = Color(1, 1, 1, 0.0588235)
|
bg_color = Color(0.223529, 0.223529, 0.223529, 1)
|
||||||
corner_radius_top_left = 4
|
corner_detail = 4
|
||||||
corner_radius_top_right = 4
|
anti_aliasing = false
|
||||||
corner_radius_bottom_right = 4
|
|
||||||
corner_radius_bottom_left = 4
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_woj82"]
|
||||||
|
content_margin_left = 0.0
|
||||||
|
content_margin_top = 0.0
|
||||||
|
content_margin_right = 0.0
|
||||||
|
content_margin_bottom = 0.0
|
||||||
|
bg_color = Color(0.298039, 0.298039, 0.298039, 1)
|
||||||
corner_detail = 4
|
corner_detail = 4
|
||||||
anti_aliasing = false
|
anti_aliasing = false
|
||||||
|
|
||||||
@@ -2081,7 +2081,7 @@ content_margin_left = 6.0
|
|||||||
content_margin_top = 4.0
|
content_margin_top = 4.0
|
||||||
content_margin_right = 6.0
|
content_margin_right = 6.0
|
||||||
content_margin_bottom = 4.0
|
content_margin_bottom = 4.0
|
||||||
bg_color = Color(0.116078, 0.116078, 0.116078, 1)
|
bg_color = Color(0.0862745, 0.0862745, 0.0862745, 1)
|
||||||
corner_detail = 3
|
corner_detail = 3
|
||||||
anti_aliasing = false
|
anti_aliasing = false
|
||||||
|
|
||||||
@@ -2142,7 +2142,7 @@ corner_detail = 3
|
|||||||
anti_aliasing = false
|
anti_aliasing = false
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_wdhdm"]
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_wdhdm"]
|
||||||
bg_color = Color(0.116078, 0.116078, 0.116078, 1)
|
bg_color = Color(0.0862745, 0.0862745, 0.0862745, 1)
|
||||||
corner_detail = 3
|
corner_detail = 3
|
||||||
anti_aliasing = false
|
anti_aliasing = false
|
||||||
|
|
||||||
@@ -2159,11 +2159,7 @@ shadow_size = 3
|
|||||||
anti_aliasing = false
|
anti_aliasing = false
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_yg4d4"]
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_yg4d4"]
|
||||||
bg_color = Color(1, 1, 1, 0.0588235)
|
bg_color = Color(0.2, 0.2, 0.2, 1)
|
||||||
corner_radius_top_left = 4
|
|
||||||
corner_radius_top_right = 4
|
|
||||||
corner_radius_bottom_right = 4
|
|
||||||
corner_radius_bottom_left = 4
|
|
||||||
|
|
||||||
[sub_resource type="StyleBoxLine" id="StyleBoxLine_f3cpk"]
|
[sub_resource type="StyleBoxLine" id="StyleBoxLine_f3cpk"]
|
||||||
color = Color(1, 1, 1, 0.1)
|
color = Color(1, 1, 1, 0.1)
|
||||||
@@ -2174,14 +2170,14 @@ color = Color(1, 1, 1, 0.1)
|
|||||||
grow_end = 8.0
|
grow_end = 8.0
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_cbgao"]
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_cbgao"]
|
||||||
content_margin_left = 6.0
|
content_margin_left = 0.0
|
||||||
content_margin_top = 6.0
|
content_margin_top = 4.0
|
||||||
content_margin_right = 6.0
|
content_margin_right = 0.0
|
||||||
content_margin_bottom = 6.0
|
content_margin_bottom = 4.0
|
||||||
bg_color = Color(0.11, 0.11, 0.11, 1)
|
bg_color = Color(0.14902, 0.14902, 0.14902, 1)
|
||||||
|
|
||||||
[sub_resource type="StyleBoxLine" id="StyleBoxLine_rijeh"]
|
[sub_resource type="StyleBoxLine" id="StyleBoxLine_rijeh"]
|
||||||
color = Color(1, 1, 1, 0.0784314)
|
color = Color(0.223529, 0.223529, 0.223529, 1)
|
||||||
grow_begin = -6.0
|
grow_begin = -6.0
|
||||||
grow_end = -6.0
|
grow_end = -6.0
|
||||||
|
|
||||||
@@ -2312,23 +2308,20 @@ corner_detail = 3
|
|||||||
anti_aliasing = false
|
anti_aliasing = false
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_lgkqp"]
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_lgkqp"]
|
||||||
content_margin_left = 11.0
|
content_margin_left = 16.0
|
||||||
content_margin_top = 5.0
|
content_margin_right = 16.0
|
||||||
content_margin_right = 11.0
|
|
||||||
content_margin_bottom = 5.0
|
|
||||||
bg_color = Color(0.145098, 0.145098, 0.145098, 1)
|
bg_color = Color(0.145098, 0.145098, 0.145098, 1)
|
||||||
border_width_top = 2
|
draw_center = false
|
||||||
border_color = Color(0.278333, 0.490098, 0.775392, 1)
|
border_width_bottom = 1
|
||||||
|
border_color = Color(0.270588, 0.537255, 1, 1)
|
||||||
corner_detail = 3
|
corner_detail = 3
|
||||||
anti_aliasing = false
|
anti_aliasing = false
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_6fhxt"]
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_6fhxt"]
|
||||||
content_margin_left = 11.0
|
|
||||||
content_margin_top = 5.0
|
|
||||||
content_margin_right = 11.0
|
|
||||||
content_margin_bottom = 5.0
|
|
||||||
bg_color = Color(0.116078, 0.116078, 0.116078, 1)
|
bg_color = Color(0.116078, 0.116078, 0.116078, 1)
|
||||||
border_color = Color(0, 0, 0, 0)
|
draw_center = false
|
||||||
|
border_width_bottom = 1
|
||||||
|
border_color = Color(0.223529, 0.223529, 0.223529, 1)
|
||||||
corner_radius_top_left = 3
|
corner_radius_top_left = 3
|
||||||
corner_radius_top_right = 3
|
corner_radius_top_right = 3
|
||||||
corner_detail = 3
|
corner_detail = 3
|
||||||
@@ -2337,12 +2330,33 @@ anti_aliasing = false
|
|||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_kwdgv"]
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_kwdgv"]
|
||||||
bg_color = Color(1, 1, 1, 0)
|
bg_color = Color(1, 1, 1, 0)
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_4rrmf"]
|
||||||
|
content_margin_left = 16.0
|
||||||
|
content_margin_right = 16.0
|
||||||
|
bg_color = Color(0.145098, 0.145098, 0.145098, 1)
|
||||||
|
draw_center = false
|
||||||
|
border_width_bottom = 1
|
||||||
|
border_color = Color(0.321569, 0.321569, 0.321569, 1)
|
||||||
|
corner_detail = 3
|
||||||
|
anti_aliasing = false
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_xd5fw"]
|
||||||
|
content_margin_left = 16.0
|
||||||
|
content_margin_right = 16.0
|
||||||
|
bg_color = Color(0.145098, 0.145098, 0.145098, 1)
|
||||||
|
draw_center = false
|
||||||
|
border_width_bottom = 1
|
||||||
|
border_color = Color(0.223529, 0.223529, 0.223529, 1)
|
||||||
|
corner_detail = 3
|
||||||
|
anti_aliasing = false
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_o0sc5"]
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_o0sc5"]
|
||||||
content_margin_left = 0.0
|
content_margin_left = 0.0
|
||||||
content_margin_top = 0.0
|
content_margin_top = 0.0
|
||||||
content_margin_right = 0.0
|
content_margin_right = 0.0
|
||||||
content_margin_bottom = 0.0
|
content_margin_bottom = 0.0
|
||||||
bg_color = Color(0.116078, 0.116078, 0.116078, 1)
|
bg_color = Color(0.116078, 0.116078, 0.116078, 1)
|
||||||
|
draw_center = false
|
||||||
corner_radius_top_left = 3
|
corner_radius_top_left = 3
|
||||||
corner_radius_top_right = 3
|
corner_radius_top_right = 3
|
||||||
corner_detail = 3
|
corner_detail = 3
|
||||||
@@ -2442,7 +2456,7 @@ content_margin_left = 7.0
|
|||||||
content_margin_top = 2.0
|
content_margin_top = 2.0
|
||||||
content_margin_right = 7.0
|
content_margin_right = 7.0
|
||||||
content_margin_bottom = 2.0
|
content_margin_bottom = 2.0
|
||||||
bg_color = Color(0.101961, 0.101961, 0.101961, 1)
|
bg_color = Color(0.0862745, 0.0862745, 0.0862745, 1)
|
||||||
border_color = Color(0.101569, 0.101569, 0.101569, 1)
|
border_color = Color(0.101569, 0.101569, 0.101569, 1)
|
||||||
corner_radius_top_left = 4
|
corner_radius_top_left = 4
|
||||||
corner_radius_top_right = 4
|
corner_radius_top_right = 4
|
||||||
@@ -2454,8 +2468,10 @@ content_margin_left = 6.0
|
|||||||
content_margin_top = 4.0
|
content_margin_top = 4.0
|
||||||
content_margin_right = 6.0
|
content_margin_right = 6.0
|
||||||
content_margin_bottom = 4.0
|
content_margin_bottom = 4.0
|
||||||
bg_color = Color(0.06, 0.06, 0.06, 1)
|
bg_color = Color(0.14902, 0.14902, 0.14902, 1)
|
||||||
corner_detail = 3
|
draw_center = false
|
||||||
|
border_width_bottom = 1
|
||||||
|
border_color = Color(0.14902, 0.14902, 0.14902, 1)
|
||||||
anti_aliasing = false
|
anti_aliasing = false
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_qr21i"]
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_qr21i"]
|
||||||
@@ -2472,6 +2488,16 @@ corner_radius_bottom_left = 8
|
|||||||
corner_detail = 4
|
corner_detail = 4
|
||||||
anti_aliasing = false
|
anti_aliasing = false
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_jkmfx"]
|
||||||
|
bg_color = Color(0.14902, 0.14902, 0.14902, 1)
|
||||||
|
border_width_bottom = 1
|
||||||
|
border_color = Color(0.223529, 0.223529, 0.223529, 1)
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_hry0s"]
|
||||||
|
draw_center = false
|
||||||
|
border_width_bottom = 1
|
||||||
|
border_color = Color(0.223529, 0.223529, 0.223529, 1)
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_68sxm"]
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_68sxm"]
|
||||||
content_margin_left = 3.0
|
content_margin_left = 3.0
|
||||||
content_margin_right = 3.0
|
content_margin_right = 3.0
|
||||||
@@ -2677,8 +2703,10 @@ AssetLib/colors/status_color = Color(0.5, 0.5, 0.5, 1)
|
|||||||
AssetLib/icons/dismiss = null
|
AssetLib/icons/dismiss = null
|
||||||
AssetLib/styles/bg = SubResource("StyleBoxEmpty_6c8sw")
|
AssetLib/styles/bg = SubResource("StyleBoxEmpty_6c8sw")
|
||||||
AssetLib/styles/panel = SubResource("StyleBoxFlat_0c4py")
|
AssetLib/styles/panel = SubResource("StyleBoxFlat_0c4py")
|
||||||
|
AudioClip/base_type = &"Panel"
|
||||||
AudioClip/colors/deselected_modulate = Color(0.552941, 0.552941, 0.552941, 1)
|
AudioClip/colors/deselected_modulate = Color(0.552941, 0.552941, 0.552941, 1)
|
||||||
AudioClip/colors/selected_modulate = Color(1, 1, 1, 1)
|
AudioClip/colors/selected_modulate = Color(1, 1, 1, 1)
|
||||||
|
AudioClip/styles/panel = SubResource("StyleBoxFlat_8loco")
|
||||||
BottomPanelButton/styles/hover = SubResource("StyleBoxFlat_jduyo")
|
BottomPanelButton/styles/hover = SubResource("StyleBoxFlat_jduyo")
|
||||||
BottomPanelButton/styles/hover_pressed = SubResource("StyleBoxFlat_jduyo")
|
BottomPanelButton/styles/hover_pressed = SubResource("StyleBoxFlat_jduyo")
|
||||||
BottomPanelButton/styles/normal = SubResource("StyleBoxFlat_sxnkh")
|
BottomPanelButton/styles/normal = SubResource("StyleBoxFlat_sxnkh")
|
||||||
@@ -4250,10 +4278,12 @@ MenuBar/colors/icon_normal_color = Color(1, 1, 1, 1)
|
|||||||
MenuBar/colors/icon_pressed_color = Color(0.387843, 0.712549, 1.15, 1)
|
MenuBar/colors/icon_pressed_color = Color(0.387843, 0.712549, 1.15, 1)
|
||||||
MenuBar/constants/h_separation = 4
|
MenuBar/constants/h_separation = 4
|
||||||
MenuBar/constants/outline_size = 0
|
MenuBar/constants/outline_size = 0
|
||||||
MenuBar/styles/disabled = SubResource("StyleBoxFlat_0uu8j")
|
MenuBar/styles/disabled = SubResource("StyleBoxFlat_uqdmw")
|
||||||
MenuBar/styles/hover = SubResource("StyleBoxFlat_40oom")
|
MenuBar/styles/hover = SubResource("StyleBoxFlat_ru5vq")
|
||||||
MenuBar/styles/normal = SubResource("StyleBoxFlat_pe0jj")
|
MenuBar/styles/normal = SubResource("StyleBoxFlat_pe0jj")
|
||||||
MenuBar/styles/pressed = SubResource("StyleBoxFlat_tbd5c")
|
MenuBar/styles/pressed = SubResource("StyleBoxFlat_dyudt")
|
||||||
|
MenuBarPanel/base_type = &"Panel"
|
||||||
|
MenuBarPanel/styles/panel = SubResource("StyleBoxFlat_sra54")
|
||||||
MenuButton/colors/font_color = Color(0.786274, 0.786274, 0.786274, 1)
|
MenuButton/colors/font_color = Color(0.786274, 0.786274, 0.786274, 1)
|
||||||
MenuButton/colors/font_focus_color = Color(0.893137, 0.893137, 0.893137, 1)
|
MenuButton/colors/font_focus_color = Color(0.893137, 0.893137, 0.893137, 1)
|
||||||
MenuButton/colors/font_hover_color = Color(0.893137, 0.893137, 0.893137, 1)
|
MenuButton/colors/font_hover_color = Color(0.893137, 0.893137, 0.893137, 1)
|
||||||
@@ -4263,7 +4293,7 @@ MenuButton/constants/outline_size = 0
|
|||||||
MenuButton/styles/disabled = SubResource("StyleBoxFlat_l5ore")
|
MenuButton/styles/disabled = SubResource("StyleBoxFlat_l5ore")
|
||||||
MenuButton/styles/disabled_mirrored = SubResource("StyleBoxFlat_l5ore")
|
MenuButton/styles/disabled_mirrored = SubResource("StyleBoxFlat_l5ore")
|
||||||
MenuButton/styles/focus = SubResource("StyleBoxFlat_l5ore")
|
MenuButton/styles/focus = SubResource("StyleBoxFlat_l5ore")
|
||||||
MenuButton/styles/hover = SubResource("StyleBoxFlat_5kevk")
|
MenuButton/styles/hover = SubResource("StyleBoxFlat_woj82")
|
||||||
MenuButton/styles/hover_mirrored = SubResource("StyleBoxFlat_5kevk")
|
MenuButton/styles/hover_mirrored = SubResource("StyleBoxFlat_5kevk")
|
||||||
MenuButton/styles/hover_pressed = SubResource("StyleBoxFlat_jccna")
|
MenuButton/styles/hover_pressed = SubResource("StyleBoxFlat_jccna")
|
||||||
MenuButton/styles/hover_pressed_mirrored = SubResource("StyleBoxFlat_jccna")
|
MenuButton/styles/hover_pressed_mirrored = SubResource("StyleBoxFlat_jccna")
|
||||||
@@ -4398,10 +4428,10 @@ TabBar/styles/tab_hovered = SubResource("StyleBoxFlat_tmq75")
|
|||||||
TabBar/styles/tab_selected = SubResource("StyleBoxFlat_lgkqp")
|
TabBar/styles/tab_selected = SubResource("StyleBoxFlat_lgkqp")
|
||||||
TabBar/styles/tab_unselected = SubResource("StyleBoxFlat_6fhxt")
|
TabBar/styles/tab_unselected = SubResource("StyleBoxFlat_6fhxt")
|
||||||
TabContainer/colors/drop_mark_color = Color(0.278333, 0.490098, 0.775392, 1)
|
TabContainer/colors/drop_mark_color = Color(0.278333, 0.490098, 0.775392, 1)
|
||||||
TabContainer/colors/font_hovered_color = Color(0.786274, 0.786274, 0.786274, 1)
|
TabContainer/colors/font_hovered_color = Color(0.956863, 0.956863, 0.956863, 1)
|
||||||
TabContainer/colors/font_outline_color = Color(0, 0, 0, 0)
|
TabContainer/colors/font_outline_color = Color(0.96, 0.96, 0.96, 0)
|
||||||
TabContainer/colors/font_selected_color = Color(0.786274, 0.786274, 0.786274, 1)
|
TabContainer/colors/font_selected_color = Color(0.956863, 0.956863, 0.956863, 1)
|
||||||
TabContainer/colors/font_unselected_color = Color(1, 1, 1, 0.235294)
|
TabContainer/colors/font_unselected_color = Color(0.75, 0.75, 0.75, 1)
|
||||||
TabContainer/constants/outline_size = 0
|
TabContainer/constants/outline_size = 0
|
||||||
TabContainer/constants/side_margin = 0
|
TabContainer/constants/side_margin = 0
|
||||||
TabContainer/icons/decrement = null
|
TabContainer/icons/decrement = null
|
||||||
@@ -4414,9 +4444,9 @@ TabContainer/icons/menu_highlight = null
|
|||||||
TabContainer/styles/panel = SubResource("StyleBoxFlat_0c4py")
|
TabContainer/styles/panel = SubResource("StyleBoxFlat_0c4py")
|
||||||
TabContainer/styles/tab_disabled = SubResource("StyleBoxFlat_lrq1b")
|
TabContainer/styles/tab_disabled = SubResource("StyleBoxFlat_lrq1b")
|
||||||
TabContainer/styles/tab_focus = SubResource("StyleBoxFlat_kwdgv")
|
TabContainer/styles/tab_focus = SubResource("StyleBoxFlat_kwdgv")
|
||||||
TabContainer/styles/tab_hovered = SubResource("StyleBoxFlat_tmq75")
|
TabContainer/styles/tab_hovered = SubResource("StyleBoxFlat_4rrmf")
|
||||||
TabContainer/styles/tab_selected = SubResource("StyleBoxFlat_lgkqp")
|
TabContainer/styles/tab_selected = SubResource("StyleBoxFlat_lgkqp")
|
||||||
TabContainer/styles/tab_unselected = SubResource("StyleBoxFlat_6fhxt")
|
TabContainer/styles/tab_unselected = SubResource("StyleBoxFlat_xd5fw")
|
||||||
TabContainer/styles/tabbar_background = SubResource("StyleBoxFlat_o0sc5")
|
TabContainer/styles/tabbar_background = SubResource("StyleBoxFlat_o0sc5")
|
||||||
TabContainerOdd/styles/panel = SubResource("StyleBoxFlat_plrjc")
|
TabContainerOdd/styles/panel = SubResource("StyleBoxFlat_plrjc")
|
||||||
TabContainerOdd/styles/tab_selected = SubResource("StyleBoxFlat_ecmpj")
|
TabContainerOdd/styles/tab_selected = SubResource("StyleBoxFlat_ecmpj")
|
||||||
@@ -4438,8 +4468,8 @@ TextEdit/styles/read_only = SubResource("StyleBoxFlat_6ucq2")
|
|||||||
ThemeEditor/colors/preview_picker_overlay_color = Color(0.1, 0.1, 0.1, 0.25)
|
ThemeEditor/colors/preview_picker_overlay_color = Color(0.1, 0.1, 0.1, 0.25)
|
||||||
ThemeEditor/styles/preview_picker_label = SubResource("StyleBoxFlat_jtsa3")
|
ThemeEditor/styles/preview_picker_label = SubResource("StyleBoxFlat_jtsa3")
|
||||||
ThemeEditor/styles/preview_picker_overlay = SubResource("StyleBoxFlat_qixj3")
|
ThemeEditor/styles/preview_picker_overlay = SubResource("StyleBoxFlat_qixj3")
|
||||||
Timeline/colors/line_primary_color = Color(0.4, 0.4, 0.4, 1)
|
Timeline/colors/line_primary_color = Color(0.223529, 0.223529, 0.223529, 1)
|
||||||
Timeline/colors/line_secondary_color = Color(0.2, 0.2, 0.2, 1)
|
Timeline/colors/line_secondary_color = Color(0.14902, 0.14902, 0.14902, 1)
|
||||||
Timeline/constants/time_label_offset_x = 30
|
Timeline/constants/time_label_offset_x = 30
|
||||||
Timeline/constants/time_label_offset_y = 20
|
Timeline/constants/time_label_offset_y = 20
|
||||||
Timeline/styles/background = SubResource("StyleBoxFlat_k6s8r")
|
Timeline/styles/background = SubResource("StyleBoxFlat_k6s8r")
|
||||||
@@ -4449,6 +4479,10 @@ TooltipLabel/colors/font_shadow_color = Color(0, 0, 0, 0)
|
|||||||
TooltipPanel/styles/panel = SubResource("StyleBoxFlat_qr21i")
|
TooltipPanel/styles/panel = SubResource("StyleBoxFlat_qr21i")
|
||||||
TopBarOptionButton/font_sizes/font_size = 14
|
TopBarOptionButton/font_sizes/font_size = 14
|
||||||
TopBarOptionButton/fonts/font = ExtResource("1_a74l0")
|
TopBarOptionButton/fonts/font = ExtResource("1_a74l0")
|
||||||
|
Track/base_type = &"PanelContainer"
|
||||||
|
Track/styles/panel = SubResource("StyleBoxFlat_jkmfx")
|
||||||
|
Transport/base_type = &"PanelContainer"
|
||||||
|
Transport/styles/panel = SubResource("StyleBoxFlat_hry0s")
|
||||||
Tree/colors/children_hl_line_color = Color(1, 1, 1, 0.0196078)
|
Tree/colors/children_hl_line_color = Color(1, 1, 1, 0.0196078)
|
||||||
Tree/colors/custom_button_font_highlight = Color(0.893137, 0.893137, 0.893137, 1)
|
Tree/colors/custom_button_font_highlight = Color(0.893137, 0.893137, 0.893137, 1)
|
||||||
Tree/colors/drop_position_color = Color(1, 1, 1, 0.392157)
|
Tree/colors/drop_position_color = Color(1, 1, 1, 0.392157)
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ allow_system_fallback=true
|
|||||||
force_autohinter=false
|
force_autohinter=false
|
||||||
hinting=1
|
hinting=1
|
||||||
subpixel_positioning=1
|
subpixel_positioning=1
|
||||||
|
keep_rounding_remainders=true
|
||||||
oversampling=0.0
|
oversampling=0.0
|
||||||
Fallbacks=null
|
Fallbacks=null
|
||||||
fallbacks=[]
|
fallbacks=[]
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ allow_system_fallback=true
|
|||||||
force_autohinter=false
|
force_autohinter=false
|
||||||
hinting=1
|
hinting=1
|
||||||
subpixel_positioning=1
|
subpixel_positioning=1
|
||||||
|
keep_rounding_remainders=true
|
||||||
oversampling=0.0
|
oversampling=0.0
|
||||||
Fallbacks=null
|
Fallbacks=null
|
||||||
fallbacks=[]
|
fallbacks=[]
|
||||||
|
|||||||
1
Assets/Icons/audio_track_2.svg
Normal file
1
Assets/Icons/audio_track_2.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e8eaed"><path d="M560-131v-82q90-26 145-100t55-168q0-94-55-168T560-749v-82q124 28 202 125.5T840-481q0 127-78 224.5T560-131ZM120-360v-240h160l200-200v640L280-360H120Zm440 40v-322q47 22 73.5 66t26.5 96q0 51-26.5 94.5T560-320Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 331 B |
37
Assets/Icons/audio_track_2.svg.import
Normal file
37
Assets/Icons/audio_track_2.svg.import
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://doq1jqfntrjrc"
|
||||||
|
path="res://.godot/imported/audio_track_2.svg-73627df2be28a19ef8ff0e0571aff244.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Assets/Icons/audio_track_2.svg"
|
||||||
|
dest_files=["res://.godot/imported/audio_track_2.svg-73627df2be28a19ef8ff0e0571aff244.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=true
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
|
svg/scale=8.0
|
||||||
|
editor/scale_with_editor_scale=false
|
||||||
|
editor/convert_colors_with_editor_theme=false
|
||||||
@@ -1,8 +1,9 @@
|
|||||||
<Project Sdk="Godot.NET.Sdk/4.3.0">
|
<Project Sdk="Godot.NET.Sdk/4.4.1">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net6.0</TargetFramework>
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
<TargetFramework Condition=" '$(GodotTargetPlatform)' == 'android' ">net7.0</TargetFramework>
|
|
||||||
<TargetFramework Condition=" '$(GodotTargetPlatform)' == 'ios' ">net8.0</TargetFramework>
|
|
||||||
<EnableDynamicLoading>true</EnableDynamicLoading>
|
<EnableDynamicLoading>true</EnableDynamicLoading>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="NAudio" Version="2.2.1" />
|
||||||
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
11
AudioEditor.csproj.old
Normal file
11
AudioEditor.csproj.old
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<Project Sdk="Godot.NET.Sdk/4.3.0">
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net6.0</TargetFramework>
|
||||||
|
<TargetFramework Condition=" '$(GodotTargetPlatform)' == 'android' ">net7.0</TargetFramework>
|
||||||
|
<TargetFramework Condition=" '$(GodotTargetPlatform)' == 'ios' ">net8.0</TargetFramework>
|
||||||
|
<EnableDynamicLoading>true</EnableDynamicLoading>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="NAudio" Version="2.2.1" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
||||||
@@ -1,17 +1,11 @@
|
|||||||
[gd_scene load_steps=3 format=3 uid="uid://dmmgalpx4fcc7"]
|
[gd_scene load_steps=3 format=3 uid="uid://dmmgalpx4fcc7"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://Scripts/AudioClip.gd" id="1_iy5jd"]
|
[ext_resource type="Script" uid="uid://cxgi7wpdim7xs" path="res://Scripts/AudioClip.gd" id="1_iy5jd"]
|
||||||
|
[ext_resource type="Script" uid="uid://wrxkvb8fkmlp" path="res://Source/Waveform.cs" id="2_43oho"]
|
||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8tb17"]
|
|
||||||
border_width_left = 2
|
|
||||||
border_width_top = 2
|
|
||||||
border_width_right = 2
|
|
||||||
border_width_bottom = 2
|
|
||||||
border_color = Color(0.273873, 0.273873, 0.273873, 1)
|
|
||||||
border_blend = true
|
|
||||||
|
|
||||||
[node name="AudioClip" type="Panel"]
|
[node name="AudioClip" type="Panel"]
|
||||||
modulate = Color(0.552956, 0.552956, 0.552956, 1)
|
modulate = Color(0.552956, 0.552956, 0.552956, 1)
|
||||||
|
self_modulate = Color(1, 1, 1, 0.588235)
|
||||||
clip_contents = true
|
clip_contents = true
|
||||||
custom_minimum_size = Vector2(4, 64)
|
custom_minimum_size = Vector2(4, 64)
|
||||||
anchors_preset = -1
|
anchors_preset = -1
|
||||||
@@ -19,24 +13,61 @@ anchor_right = 0.104
|
|||||||
anchor_bottom = 0.059
|
anchor_bottom = 0.059
|
||||||
offset_right = 0.319992
|
offset_right = 0.319992
|
||||||
offset_bottom = 0.279995
|
offset_bottom = 0.279995
|
||||||
theme_override_styles/panel = SubResource("StyleBoxFlat_8tb17")
|
theme_type_variation = &"AudioClip"
|
||||||
script = ExtResource("1_iy5jd")
|
script = ExtResource("1_iy5jd")
|
||||||
|
|
||||||
[node name="Panel" type="Panel" parent="."]
|
[node name="Panel" type="Panel" parent="."]
|
||||||
custom_minimum_size = Vector2(0, 14)
|
custom_minimum_size = Vector2(0, 20)
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = 10
|
anchors_preset = -1
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 0.312
|
||||||
|
offset_bottom = 0.0319996
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="Panel"]
|
[node name="ClipName" type="Label" parent="Panel"]
|
||||||
|
unique_name_in_owner = true
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
theme_override_font_sizes/font_size = 8
|
theme_override_font_sizes/font_size = 10
|
||||||
text = "New Audio Clip"
|
text = "New Audio Clip"
|
||||||
vertical_alignment = 1
|
vertical_alignment = 1
|
||||||
text_overrun_behavior = 3
|
text_overrun_behavior = 3
|
||||||
|
|
||||||
|
[node name="Window" type="ConfirmationDialog" parent="."]
|
||||||
|
title = "\"New Audio Clip\" Properties"
|
||||||
|
size = Vector2i(400, 600)
|
||||||
|
|
||||||
|
[node name="Control" type="Control" parent="Window"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 0
|
||||||
|
offset_left = 8.0
|
||||||
|
offset_top = 8.0
|
||||||
|
offset_right = 92.0
|
||||||
|
offset_bottom = 51.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 3
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Window/Control"]
|
||||||
|
layout_mode = 0
|
||||||
|
offset_right = 40.0
|
||||||
|
offset_bottom = 23.0
|
||||||
|
text = "Clip properties!"
|
||||||
|
|
||||||
|
[node name="Waveform" type="Control" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
modulate = Color(0.779291, 0.779291, 0.779291, 1)
|
||||||
|
layout_mode = 1
|
||||||
|
anchor_top = 0.312
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
offset_top = 0.0319996
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
script = ExtResource("2_43oho")
|
||||||
|
|
||||||
|
[connection signal="on_double_click" from="." to="Window" method="popup_centered"]
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
[gd_scene load_steps=6 format=3 uid="uid://dlb5xpe1t8rrk"]
|
[gd_scene load_steps=7 format=3 uid="uid://dlb5xpe1t8rrk"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://c3kajrpp2ux7" path="res://Controls/Track.tscn" id="1_envsv"]
|
[ext_resource type="PackedScene" uid="uid://c3kajrpp2ux7" path="res://Controls/Track.tscn" id="1_envsv"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://doq1jqfntrjrc" path="res://Assets/Icons/audio_track_2.svg" id="2_g74u4"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cc0dy71y8shcx" path="res://Assets/Icons/record.svg" id="2_iwhga"]
|
[ext_resource type="Texture2D" uid="uid://cc0dy71y8shcx" path="res://Assets/Icons/record.svg" id="2_iwhga"]
|
||||||
[ext_resource type="Texture2D" uid="uid://c8napjmkltpr" path="res://Assets/Icons/slider_grabber.svg" id="3_y81l0"]
|
[ext_resource type="Texture2D" uid="uid://c8napjmkltpr" path="res://Assets/Icons/slider_grabber.svg" id="3_y81l0"]
|
||||||
|
|
||||||
@@ -34,6 +35,9 @@ layout_mode = 2
|
|||||||
toggle_mode = true
|
toggle_mode = true
|
||||||
text = "S"
|
text = "S"
|
||||||
|
|
||||||
|
[node name="TrackIcon" parent="PanelContainer/HBoxContainer/Body/HBoxContainer/NameIconControls/IconAndName" index="0"]
|
||||||
|
texture = ExtResource("2_g74u4")
|
||||||
|
|
||||||
[node name="Record" type="Button" parent="PanelContainer/HBoxContainer/Body/HBoxContainer/NameIconControls/IconAndName" index="2"]
|
[node name="Record" type="Button" parent="PanelContainer/HBoxContainer/Body/HBoxContainer/NameIconControls/IconAndName" index="2"]
|
||||||
self_modulate = Color(1, 0.373852, 0.504338, 1)
|
self_modulate = Color(1, 0.373852, 0.504338, 1)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
[gd_scene load_steps=5 format=3 uid="uid://c3kajrpp2ux7"]
|
[gd_scene load_steps=6 format=3 uid="uid://c3kajrpp2ux7"]
|
||||||
|
|
||||||
[ext_resource type="Theme" uid="uid://b8rk41gjual2b" path="res://Assets/DefaultTheme.tres" id="1_tbi88"]
|
[ext_resource type="Theme" uid="uid://b8rk41gjual2b" path="res://Assets/DefaultTheme.tres" id="1_tbi88"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bwfbs4jxbia3o" path="res://Assets/Icons/microphone_track.svg" id="2_r2pin"]
|
[ext_resource type="Texture2D" uid="uid://bwfbs4jxbia3o" path="res://Assets/Icons/microphone_track.svg" id="2_r2pin"]
|
||||||
|
[ext_resource type="Script" uid="uid://nq2n8r8tq3nt" path="res://Scripts/Track.gd" id="2_rsf0h"]
|
||||||
[ext_resource type="FontFile" uid="uid://ctw3g5gundhpj" path="res://Assets/Fonts/InterVariable.ttf" id="3_12y3l"]
|
[ext_resource type="FontFile" uid="uid://ctw3g5gundhpj" path="res://Assets/Fonts/InterVariable.ttf" id="3_12y3l"]
|
||||||
|
|
||||||
[sub_resource type="FontVariation" id="FontVariation_lbdn3"]
|
[sub_resource type="FontVariation" id="FontVariation_lbdn3"]
|
||||||
@@ -13,12 +14,13 @@ variation_opentype = {
|
|||||||
|
|
||||||
[node name="Track" type="Control"]
|
[node name="Track" type="Control"]
|
||||||
clip_children = 1
|
clip_children = 1
|
||||||
custom_minimum_size = Vector2(128, 74)
|
custom_minimum_size = Vector2(128, 64)
|
||||||
layout_mode = 3
|
layout_mode = 3
|
||||||
anchors_preset = 0
|
anchors_preset = 0
|
||||||
offset_right = 382.0
|
offset_right = 382.0
|
||||||
offset_bottom = 74.0
|
offset_bottom = 64.0
|
||||||
theme = ExtResource("1_tbi88")
|
theme = ExtResource("1_tbi88")
|
||||||
|
script = ExtResource("2_rsf0h")
|
||||||
|
|
||||||
[node name="PanelContainer" type="PanelContainer" parent="."]
|
[node name="PanelContainer" type="PanelContainer" parent="."]
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
@@ -27,6 +29,7 @@ anchor_right = 1.0
|
|||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
|
theme_type_variation = &"Track"
|
||||||
|
|
||||||
[node name="HBoxContainer" type="HBoxContainer" parent="PanelContainer"]
|
[node name="HBoxContainer" type="HBoxContainer" parent="PanelContainer"]
|
||||||
clip_children = 1
|
clip_children = 1
|
||||||
@@ -35,8 +38,9 @@ layout_mode = 2
|
|||||||
[node name="ColorStrip" type="ColorRect" parent="PanelContainer/HBoxContainer"]
|
[node name="ColorStrip" type="ColorRect" parent="PanelContainer/HBoxContainer"]
|
||||||
self_modulate = Color(0.699653, 0.699654, 0.699653, 1)
|
self_modulate = Color(0.699653, 0.699654, 0.699653, 1)
|
||||||
clip_contents = true
|
clip_contents = true
|
||||||
custom_minimum_size = Vector2(4, 0)
|
custom_minimum_size = Vector2(2, 0)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
color = Color(0.435294, 0.435294, 0.435294, 1)
|
||||||
|
|
||||||
[node name="Body" type="MarginContainer" parent="PanelContainer/HBoxContainer"]
|
[node name="Body" type="MarginContainer" parent="PanelContainer/HBoxContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|||||||
@@ -12,6 +12,8 @@ mouse_filter = 2
|
|||||||
|
|
||||||
[node name="HBoxContainer" type="HBoxContainer" parent="."]
|
[node name="HBoxContainer" type="HBoxContainer" parent="."]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
theme_override_constants/separation = 16
|
||||||
|
alignment = 1
|
||||||
|
|
||||||
[node name="Controls" type="MarginContainer" parent="HBoxContainer"]
|
[node name="Controls" type="MarginContainer" parent="HBoxContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
@@ -25,7 +27,7 @@ theme_override_constants/margin_bottom = 8
|
|||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 4
|
size_flags_horizontal = 4
|
||||||
size_flags_vertical = 4
|
size_flags_vertical = 4
|
||||||
theme_override_constants/separation = 8
|
theme_override_constants/separation = 0
|
||||||
|
|
||||||
[node name="Play" type="Button" parent="HBoxContainer/Controls/HBoxContainer"]
|
[node name="Play" type="Button" parent="HBoxContainer/Controls/HBoxContainer"]
|
||||||
modulate = Color(0.253333, 1, 0.2, 1)
|
modulate = Color(0.253333, 1, 0.2, 1)
|
||||||
|
|||||||
@@ -1,30 +1,45 @@
|
|||||||
class_name AudioClip
|
class_name AudioClip
|
||||||
extends Panel
|
extends Panel
|
||||||
|
|
||||||
|
@export var clip_name: String = "New Audio Clip"
|
||||||
@export var start_time: float = 0.0
|
@export var start_time: float = 0.0
|
||||||
@export var end_time: float = 0.0
|
@export var end_time: float = 0.0
|
||||||
@export var track_idx: int = 0
|
@export var track_idx: int = 0
|
||||||
|
|
||||||
|
signal on_selected
|
||||||
|
signal on_deselected
|
||||||
|
signal on_double_click
|
||||||
|
|
||||||
|
var clip_path: String
|
||||||
|
|
||||||
var timeline: Timeline
|
var timeline: Timeline
|
||||||
|
|
||||||
var dragging: bool
|
var dragging: bool
|
||||||
var selected: bool
|
var selected: bool
|
||||||
|
|
||||||
|
var accumulated_movement := 0.0
|
||||||
|
var was_snapping := false
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
timeline = get_parent()
|
timeline = get_parent()
|
||||||
|
%ClipName.text = clip_name
|
||||||
|
|
||||||
func _input(event):
|
func _input(event):
|
||||||
var rect = get_global_rect()
|
var rect = get_global_rect()
|
||||||
var mouse_position = get_global_mouse_position()
|
var mouse_position = get_global_mouse_position()
|
||||||
|
|
||||||
if event is InputEventMouseButton:
|
if event is InputEventMouseButton:
|
||||||
|
if selected and event.double_click:
|
||||||
|
print("double clicked!")
|
||||||
|
on_double_click.emit()
|
||||||
|
return
|
||||||
if event.pressed and event.button_mask == MOUSE_BUTTON_LEFT:
|
if event.pressed and event.button_mask == MOUSE_BUTTON_LEFT:
|
||||||
if selected:
|
if selected:
|
||||||
mouse_default_cursor_shape = CURSOR_MOVE
|
Input.set_default_cursor_shape(Input.CursorShape.CURSOR_MOVE)
|
||||||
dragging = true
|
dragging = true
|
||||||
else:
|
else:
|
||||||
dragging = false
|
dragging = false
|
||||||
mouse_default_cursor_shape = CURSOR_ARROW
|
Input.set_default_cursor_shape(Input.CursorShape.CURSOR_ARROW)
|
||||||
if rect.has_point(mouse_position):
|
if rect.has_point(mouse_position):
|
||||||
selected = true
|
selected = true
|
||||||
make_selected()
|
make_selected()
|
||||||
@@ -36,28 +51,59 @@ func _input(event):
|
|||||||
|
|
||||||
if !event.pressed and dragging:
|
if !event.pressed and dragging:
|
||||||
dragging = false
|
dragging = false
|
||||||
mouse_default_cursor_shape = CURSOR_ARROW
|
Input.set_default_cursor_shape(Input.CursorShape.CURSOR_ARROW)
|
||||||
|
|
||||||
if selected and dragging:
|
if selected and dragging:
|
||||||
if event is InputEventMouseMotion:
|
if event is InputEventMouseMotion:
|
||||||
var movement = event.relative.x / timeline.get_pixels_per_unit() * timeline.time_interval
|
var movement_time = event.relative.x / timeline.get_pixels_per_unit() * timeline.time_interval
|
||||||
|
|
||||||
start_time += movement
|
var track = timeline.get_track_idx_by_y(event.position.y)
|
||||||
end_time += movement
|
|
||||||
|
if track != -1:
|
||||||
|
track_idx = track
|
||||||
|
|
||||||
|
var clip_length = end_time - start_time
|
||||||
|
|
||||||
if event.is_command_or_control_pressed():
|
if event.is_command_or_control_pressed():
|
||||||
|
if not was_snapping:
|
||||||
start_time = snapped(start_time, timeline.time_interval)
|
start_time = snapped(start_time, timeline.time_interval)
|
||||||
end_time = snapped(end_time, timeline.time_interval)
|
end_time = start_time + clip_length
|
||||||
|
accumulated_movement = 0
|
||||||
|
was_snapping = true
|
||||||
|
|
||||||
|
accumulated_movement += movement_time
|
||||||
|
var snapped_movement = snapped(accumulated_movement, timeline.time_interval)
|
||||||
|
|
||||||
|
if snapped_movement != 0:
|
||||||
|
if start_time + snapped_movement < 0:
|
||||||
|
start_time = 0
|
||||||
|
end_time = start_time + clip_length
|
||||||
|
return
|
||||||
|
start_time += snapped_movement
|
||||||
|
end_time += snapped_movement
|
||||||
|
accumulated_movement -= snapped_movement
|
||||||
|
else:
|
||||||
|
if start_time + movement_time < 0:
|
||||||
|
start_time = 0
|
||||||
|
end_time = start_time + clip_length
|
||||||
|
return
|
||||||
|
start_time += movement_time
|
||||||
|
end_time += movement_time
|
||||||
|
was_snapping = false
|
||||||
|
|
||||||
timeline.queue_sort()
|
timeline.queue_sort()
|
||||||
pass
|
pass
|
||||||
|
|
||||||
func make_selected():
|
func make_selected():
|
||||||
|
on_selected.emit()
|
||||||
var color = get_theme_color("selected_modulate", "AudioClip")
|
var color = get_theme_color("selected_modulate", "AudioClip")
|
||||||
|
z_index = 1
|
||||||
modulate = color
|
modulate = color
|
||||||
pass
|
pass
|
||||||
|
|
||||||
func make_deselected():
|
func make_deselected():
|
||||||
|
on_deselected.emit()
|
||||||
var color = get_theme_color("deselected_modulate", "AudioClip")
|
var color = get_theme_color("deselected_modulate", "AudioClip")
|
||||||
|
z_index = 0
|
||||||
modulate = color
|
modulate = color
|
||||||
pass
|
pass
|
||||||
1
Scripts/AudioClip.gd.uid
Normal file
1
Scripts/AudioClip.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://cxgi7wpdim7xs
|
||||||
1
Scripts/NestablePopupMenu.gd.uid
Normal file
1
Scripts/NestablePopupMenu.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://cscqkg5w0nqaf
|
||||||
@@ -1,4 +1,3 @@
|
|||||||
@tool
|
|
||||||
class_name Timeline
|
class_name Timeline
|
||||||
extends Container
|
extends Container
|
||||||
|
|
||||||
@@ -9,7 +8,7 @@ extends Container
|
|||||||
@export var time_interval: float = 1000.0 # 1 second
|
@export var time_interval: float = 1000.0 # 1 second
|
||||||
@export var grid_space_ms: float = 250 # 0.25 seconds
|
@export var grid_space_ms: float = 250 # 0.25 seconds
|
||||||
@export var label_interval_ms: float = 1000.0 # 1 second
|
@export var label_interval_ms: float = 1000.0 # 1 second
|
||||||
@export var line_thickness: int = 1
|
@export var line_thickness: int = 2
|
||||||
@export var major_line_step: int = 4
|
@export var major_line_step: int = 4
|
||||||
@export var cursor_width: int = 8
|
@export var cursor_width: int = 8
|
||||||
@export var zoom: float = 1.0
|
@export var zoom: float = 1.0
|
||||||
@@ -19,6 +18,10 @@ extends Container
|
|||||||
|
|
||||||
@export var min_zoom: float = 0.1
|
@export var min_zoom: float = 0.1
|
||||||
|
|
||||||
|
@export var audio_clip_scene: PackedScene
|
||||||
|
|
||||||
|
signal clip_added(clip: Control)
|
||||||
|
|
||||||
func format_time_ms_hours(ms: float) -> String:
|
func format_time_ms_hours(ms: float) -> String:
|
||||||
var total_seconds = ms / 1000
|
var total_seconds = ms / 1000
|
||||||
var hours = int(total_seconds / 3600)
|
var hours = int(total_seconds / 3600)
|
||||||
@@ -34,6 +37,23 @@ func format_time_ms_minutes(ms: float) -> String:
|
|||||||
var milliseconds = fmod(ms, 1000.0)
|
var milliseconds = fmod(ms, 1000.0)
|
||||||
return "%02d:%02d.%03d" % [minutes, seconds, milliseconds]
|
return "%02d:%02d.%03d" % [minutes, seconds, milliseconds]
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
await get_tree().process_frame
|
||||||
|
queue_redraw()
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
func get_track_idx_by_y(y: float):
|
||||||
|
var idx = 0
|
||||||
|
for track in track_list.get_children():
|
||||||
|
if y >= track.global_position.y and y <= track.global_position.y + track.size.y:
|
||||||
|
return idx
|
||||||
|
idx += 1
|
||||||
|
pass
|
||||||
|
return -1
|
||||||
|
|
||||||
|
func get_track_by_idx(idx: int) -> Control:
|
||||||
|
return track_list.get_child(idx)
|
||||||
|
|
||||||
func get_pixels_per_unit() -> float:
|
func get_pixels_per_unit() -> float:
|
||||||
return 50.0 * zoom
|
return 50.0 * zoom
|
||||||
@@ -64,16 +84,23 @@ func _draw():
|
|||||||
var start := (time_offset / pixels_per_unit) - 1
|
var start := (time_offset / pixels_per_unit) - 1
|
||||||
var end := start + (screen_width / pixels_per_unit) + 2
|
var end := start + (screen_width / pixels_per_unit) + 2
|
||||||
|
|
||||||
|
# measure lines
|
||||||
for t in range(int(start), int(end) + 1):
|
for t in range(int(start), int(end) + 1):
|
||||||
var x := t * pixels_per_unit - time_offset
|
var x := t * pixels_per_unit - time_offset
|
||||||
|
|
||||||
if x >= 0 and x <= screen_width:
|
if x >= 0 and x <= screen_width:
|
||||||
if t % 4 == 0:
|
if t % 4 == 0:
|
||||||
draw_line(Vector2(x, 28.0), Vector2(x, size.y), primary_color, 2)
|
draw_line(Vector2(x, 28.0), Vector2(x, size.y), primary_color, line_thickness)
|
||||||
var time = t * int(time_interval)
|
var time = t * int(time_interval)
|
||||||
draw_string(font, Vector2(x - time_label_offset_x, time_label_offset_y), format_time_ms_minutes(time), HORIZONTAL_ALIGNMENT_CENTER, -1, font_size, primary_color)
|
draw_string(font, Vector2(x - time_label_offset_x, time_label_offset_y), format_time_ms_minutes(time), HORIZONTAL_ALIGNMENT_CENTER, -1, font_size, primary_color)
|
||||||
else:
|
else:
|
||||||
draw_line(Vector2(x, 28.0), Vector2(x, timeline_y), secondary_color, 1)
|
draw_line(Vector2(x, 28.0), Vector2(x, timeline_y), secondary_color, line_thickness)
|
||||||
|
pass
|
||||||
|
|
||||||
|
# track lines
|
||||||
|
for t in track_list.get_children():
|
||||||
|
draw_line(Vector2(0.0, t.global_position.y - global_position.y + t.size.y), Vector2(size.x, t.global_position.y - global_position.y + t.size.y), secondary_color, line_thickness)
|
||||||
|
pass
|
||||||
|
|
||||||
queue_sort()
|
queue_sort()
|
||||||
pass
|
pass
|
||||||
@@ -82,12 +109,17 @@ func _notification(what):
|
|||||||
if what == NOTIFICATION_SORT_CHILDREN:
|
if what == NOTIFICATION_SORT_CHILDREN:
|
||||||
for c in get_children():
|
for c in get_children():
|
||||||
if c is not AudioClip: continue
|
if c is not AudioClip: continue
|
||||||
|
|
||||||
|
var track = get_track_by_idx(c.track_idx)
|
||||||
|
|
||||||
|
if track == null: return
|
||||||
|
|
||||||
var pixels_per_unit := 50.0 * zoom
|
var pixels_per_unit := 50.0 * zoom
|
||||||
var start = ((c.start_time / time_interval) * pixels_per_unit) - time_offset
|
var start = ((c.start_time / time_interval) * pixels_per_unit) - time_offset
|
||||||
var width = (c.end_time - c.start_time) / time_interval * pixels_per_unit
|
var width = (c.end_time - c.start_time) / time_interval * pixels_per_unit
|
||||||
|
|
||||||
c.position = Vector2(start, 0.0)
|
c.position = Vector2(start, track.global_position.y - global_position.y)
|
||||||
c.size = Vector2(width, c.size.y)
|
c.size = Vector2(width, track.size.y)
|
||||||
|
|
||||||
func _gui_input(event):
|
func _gui_input(event):
|
||||||
var zoom_factor = 1.1
|
var zoom_factor = 1.1
|
||||||
@@ -106,3 +138,29 @@ func _gui_input(event):
|
|||||||
|
|
||||||
zoom = max(min_zoom, zoom)
|
zoom = max(min_zoom, zoom)
|
||||||
time_offset = max(0.0, time_offset)
|
time_offset = max(0.0, time_offset)
|
||||||
|
|
||||||
|
func local_x_to_timeline(x: float) -> float:
|
||||||
|
return (x + time_offset) / get_pixels_per_unit() * time_interval
|
||||||
|
|
||||||
|
|
||||||
|
func clip_dropped(at_position: Vector2, path: String, clip_name: String, clip_start_time: float, clip_end_time: float):
|
||||||
|
var local_position = at_position - global_position
|
||||||
|
var timeline_position = local_x_to_timeline(local_position.x)
|
||||||
|
|
||||||
|
var track_idx = get_track_idx_by_y(at_position.y)
|
||||||
|
add_audio_clip(path, clip_name, track_idx, timeline_position + clip_start_time, timeline_position + clip_end_time)
|
||||||
|
pass
|
||||||
|
|
||||||
|
func add_audio_clip(path: String, clip_name: String, track_idx: int, clip_start_time: float, clip_end_time: float):
|
||||||
|
var audio_clip = audio_clip_scene.instantiate() as AudioClip
|
||||||
|
audio_clip.clip_path = path
|
||||||
|
audio_clip.clip_name = clip_name
|
||||||
|
audio_clip.track_idx = track_idx
|
||||||
|
audio_clip.start_time = clip_start_time
|
||||||
|
audio_clip.end_time = clip_end_time
|
||||||
|
|
||||||
|
add_child(audio_clip)
|
||||||
|
|
||||||
|
clip_added.emit(audio_clip)
|
||||||
|
queue_redraw()
|
||||||
|
pass
|
||||||
1
Scripts/Timeline.gd.uid
Normal file
1
Scripts/Timeline.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://2t7cikq15q48
|
||||||
7
Scripts/Track.gd
Normal file
7
Scripts/Track.gd
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
class_name Track
|
||||||
|
extends Control
|
||||||
|
|
||||||
|
|
||||||
|
# Called when the node enters the scene tree for the first time.
|
||||||
|
func _ready():
|
||||||
|
pass # Replace with function body.
|
||||||
1
Scripts/Track.gd.uid
Normal file
1
Scripts/Track.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://nq2n8r8tq3nt
|
||||||
88
Source/AudioFileAnalyzer.cs
Normal file
88
Source/AudioFileAnalyzer.cs
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using Godot;
|
||||||
|
using NAudio.Wave;
|
||||||
|
|
||||||
|
namespace AudioEditor;
|
||||||
|
|
||||||
|
public partial class AudioFileAnalyzer : Node
|
||||||
|
{
|
||||||
|
public static AudioFileAnalyzer Instance { get; private set; }
|
||||||
|
|
||||||
|
public override void _Ready()
|
||||||
|
{
|
||||||
|
base._Ready();
|
||||||
|
Instance = this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void AnalyzeFile(string path, out WaveformInfo waveformInfo)
|
||||||
|
{
|
||||||
|
waveformInfo = new();
|
||||||
|
|
||||||
|
if (_waveformInfoCache.ContainsKey(path))
|
||||||
|
{
|
||||||
|
waveformInfo = _waveformInfoCache[path];
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var ext = Path.GetExtension(path);
|
||||||
|
|
||||||
|
switch (ext)
|
||||||
|
{
|
||||||
|
case ".wav":
|
||||||
|
GD.Print("Analyzing a WAV file...");
|
||||||
|
AnalyzeWav(path, out waveformInfo);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
GD.Print($"Format {ext} is not supported!");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
_waveformInfoCache.Add(path, waveformInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool TryGetFromCache(string path, out WaveformInfo waveformInfo)
|
||||||
|
{
|
||||||
|
return _waveformInfoCache.TryGetValue(path, out waveformInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void AnalyzeWav(string path, out WaveformInfo waveformInfo)
|
||||||
|
{
|
||||||
|
waveformInfo = new WaveformInfo();
|
||||||
|
using (var reader = new WaveFileReader(path))
|
||||||
|
{
|
||||||
|
waveformInfo.Length = reader.TotalTime;
|
||||||
|
waveformInfo.SampleRate = reader.WaveFormat.SampleRate;
|
||||||
|
|
||||||
|
long sampleCount = reader.Length / reader.WaveFormat.BlockAlign;
|
||||||
|
waveformInfo.Samples = new float[sampleCount];
|
||||||
|
|
||||||
|
// Render the waveform
|
||||||
|
byte[] buffer = new byte[reader.WaveFormat.BlockAlign];
|
||||||
|
for (int i = 0; i < sampleCount; i++)
|
||||||
|
{
|
||||||
|
int sampleIndex = i * reader.WaveFormat.BlockAlign;
|
||||||
|
while (reader.Position < reader.Length)
|
||||||
|
{
|
||||||
|
// Read the raw bytes for the current sample
|
||||||
|
reader.Read(buffer, 0, buffer.Length);
|
||||||
|
|
||||||
|
// Convert the byte array to a 16-bit sample (assuming 16-bit PCM)
|
||||||
|
short sample = BitConverter.ToInt16(buffer, 0); // Assuming 16-bit signed samples
|
||||||
|
|
||||||
|
waveformInfo.Samples[sampleIndex++] = (float)sample / short.MaxValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private Dictionary<string, WaveformInfo> _waveformInfoCache = new();
|
||||||
|
}
|
||||||
|
|
||||||
|
public class WaveformInfo
|
||||||
|
{
|
||||||
|
public int SampleRate { get; set; }
|
||||||
|
public TimeSpan Length { get; set; }
|
||||||
|
public float[] Samples { get; set; }
|
||||||
|
}
|
||||||
1
Source/AudioFileAnalyzer.cs.uid
Normal file
1
Source/AudioFileAnalyzer.cs.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://bhypae8nci75e
|
||||||
51
Source/ProjectController.cs
Normal file
51
Source/ProjectController.cs
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
using System.IO;
|
||||||
|
using Godot;
|
||||||
|
|
||||||
|
namespace AudioEditor;
|
||||||
|
|
||||||
|
[GlobalClass]
|
||||||
|
public partial class ProjectController : Node
|
||||||
|
{
|
||||||
|
[Signal] public delegate void AudioClipDroppedEventHandler(Vector2 atPosition, string path, string clipName, double startTime, double endTime);
|
||||||
|
|
||||||
|
public override void _Ready()
|
||||||
|
{
|
||||||
|
GetWindow().FilesDropped += FilesDropped;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void CreateAudioClipPreview(Control audioClip)
|
||||||
|
{
|
||||||
|
// GD.Print(audioClip.Clas());
|
||||||
|
var path = audioClip.Get("clip_path").AsString();
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(path))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!AudioFileAnalyzer.Instance.TryGetFromCache(path, out WaveformInfo waveformInfo))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (audioClip.HasNode("%Waveform"))
|
||||||
|
{
|
||||||
|
var waveform = audioClip.GetNode<Waveform>("%Waveform");
|
||||||
|
waveform.SetWaveformInfo(waveformInfo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void FilesDropped(string[] files)
|
||||||
|
{
|
||||||
|
var mousePosition = GetViewport().GetMousePosition();
|
||||||
|
|
||||||
|
var path = files[0];
|
||||||
|
var fileName = Path.GetFileName(path);
|
||||||
|
|
||||||
|
AudioFileAnalyzer.Instance.AnalyzeFile(path, out WaveformInfo waveformInfo);
|
||||||
|
|
||||||
|
GD.Print(path);
|
||||||
|
|
||||||
|
EmitSignal(SignalName.AudioClipDropped, mousePosition, path, fileName, 0, waveformInfo.Length.TotalMilliseconds);
|
||||||
|
}
|
||||||
|
}
|
||||||
1
Source/ProjectController.cs.uid
Normal file
1
Source/ProjectController.cs.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://dtomx04m445em
|
||||||
101
Source/Waveform.cs
Normal file
101
Source/Waveform.cs
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
using Godot;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace AudioEditor;
|
||||||
|
|
||||||
|
public partial class Waveform : Control
|
||||||
|
{
|
||||||
|
private WaveformInfo _waveform;
|
||||||
|
|
||||||
|
public void SetWaveformInfo(WaveformInfo waveform)
|
||||||
|
{
|
||||||
|
_waveform = waveform;
|
||||||
|
QueueRedraw();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _Draw()
|
||||||
|
{
|
||||||
|
if (_waveform == null) return;
|
||||||
|
base._Draw();
|
||||||
|
|
||||||
|
int width = (int)Size.X;
|
||||||
|
int height = (int)Size.Y;
|
||||||
|
|
||||||
|
// Downsample the waveform to get a reasonable number of peaks to draw
|
||||||
|
float[] averagePeaks = DownsampleToAveragePeaks(_waveform.Samples, width, _waveform.SampleRate);
|
||||||
|
|
||||||
|
// Begin drawing the waveform
|
||||||
|
for (int i = 0; i < width; i++)
|
||||||
|
{
|
||||||
|
float averagePeak = averagePeaks[i];
|
||||||
|
|
||||||
|
// Normalize the average peak to fit within the height of the control
|
||||||
|
int y = (int)(averagePeak * height / 2);
|
||||||
|
|
||||||
|
// Drawing the line in the positive and negative direction from the center
|
||||||
|
DrawLine(new Vector2(i, height / 2 - y), new Vector2(i, height / 2 + y), new Color(1, 1, 1, 0.7f)); // White with transparency
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private float[] DownsampleToAveragePeaks(float[] samples, int targetWidth, int sampleRate)
|
||||||
|
{
|
||||||
|
int totalSamples = samples.Length;
|
||||||
|
float durationInSeconds = totalSamples / (float)sampleRate; // Calculate the total duration in seconds
|
||||||
|
int stepSize = totalSamples / targetWidth; // Larger chunks for downsampling
|
||||||
|
|
||||||
|
// If stepSize is 0 (due to rounding), default to 1 to prevent division by zero
|
||||||
|
if (stepSize == 0) stepSize = 1;
|
||||||
|
|
||||||
|
float[] averagePeaks = new float[targetWidth];
|
||||||
|
|
||||||
|
for (int i = 0; i < targetWidth; i++)
|
||||||
|
{
|
||||||
|
int startIndex = i * stepSize;
|
||||||
|
int endIndex = Math.Min(startIndex + stepSize, totalSamples);
|
||||||
|
|
||||||
|
// Calculate the average or peak for this window (you can use GetPeak if needed)
|
||||||
|
averagePeaks[i] = GetAverage(samples, startIndex, endIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
return averagePeaks;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the average value of samples in the current window
|
||||||
|
private float GetAverage(float[] samples, int startIndex, int endIndex)
|
||||||
|
{
|
||||||
|
float sum = 0f;
|
||||||
|
int count = 0;
|
||||||
|
for (int i = startIndex; i < endIndex; i++)
|
||||||
|
{
|
||||||
|
sum += Math.Abs(samples[i]); // Use absolute values for consistency
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
return count > 0 ? sum / count : 0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Optional: You could use this method if you prefer showing the peak values
|
||||||
|
private float GetPeak(float[] samples, int startIndex, int endIndex)
|
||||||
|
{
|
||||||
|
float maxPeak = 0f;
|
||||||
|
for (int i = startIndex; i < endIndex; i++)
|
||||||
|
{
|
||||||
|
maxPeak = Math.Max(maxPeak, Math.Abs(samples[i]));
|
||||||
|
}
|
||||||
|
return maxPeak;
|
||||||
|
}
|
||||||
|
|
||||||
|
// This can be an alternative to GetAverage if you want to show average peak
|
||||||
|
private float GetAveragePeak(float[] samples, int startIndex, int endIndex)
|
||||||
|
{
|
||||||
|
float sum = 0f;
|
||||||
|
int count = 0;
|
||||||
|
|
||||||
|
for (int i = startIndex; i < endIndex; i++)
|
||||||
|
{
|
||||||
|
sum += Math.Abs(samples[i]); // Use absolute value for a more stable peak
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return count > 0 ? sum / count : 0f; // Return the average
|
||||||
|
}
|
||||||
|
}
|
||||||
1
Source/Waveform.cs.uid
Normal file
1
Source/Waveform.cs.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://wrxkvb8fkmlp
|
||||||
@@ -1,15 +1,16 @@
|
|||||||
[gd_scene load_steps=16 format=3 uid="uid://cr2f68sbsegai"]
|
[gd_scene load_steps=16 format=3 uid="uid://cr2f68sbsegai"]
|
||||||
|
|
||||||
[ext_resource type="Theme" uid="uid://b8rk41gjual2b" path="res://Assets/DefaultTheme.tres" id="1_s6hk6"]
|
[ext_resource type="Theme" uid="uid://b8rk41gjual2b" path="res://Assets/DefaultTheme.tres" id="1_s6hk6"]
|
||||||
[ext_resource type="Script" path="res://addons/dockable_container/dockable_container.gd" id="2_7b0h5"]
|
[ext_resource type="Script" uid="uid://mw1o44i8qxmk" path="res://addons/dockable_container/dockable_container.gd" id="2_7b0h5"]
|
||||||
[ext_resource type="Script" path="res://Scripts/NestablePopupMenu.gd" id="2_lsrne"]
|
[ext_resource type="Script" uid="uid://cscqkg5w0nqaf" path="res://Scripts/NestablePopupMenu.gd" id="2_lsrne"]
|
||||||
[ext_resource type="Texture2D" uid="uid://vd53o7va0tni" path="res://Assets/Icons/tracks.svg" id="2_nidjn"]
|
[ext_resource type="Texture2D" uid="uid://vd53o7va0tni" path="res://Assets/Icons/tracks.svg" id="2_nidjn"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dxl2qel0qbxrn" path="res://Assets/Icons/mixer.svg" id="3_4tblp"]
|
[ext_resource type="Texture2D" uid="uid://dxl2qel0qbxrn" path="res://Assets/Icons/mixer.svg" id="3_4tblp"]
|
||||||
[ext_resource type="Script" path="res://addons/dockable_container/layout_panel.gd" id="3_4twnq"]
|
[ext_resource type="Script" uid="uid://otsc040yabxa" path="res://addons/dockable_container/layout_panel.gd" id="3_4twnq"]
|
||||||
[ext_resource type="Script" path="res://addons/dockable_container/layout.gd" id="4_ixaqo"]
|
[ext_resource type="Script" uid="uid://sgl6svfbs2v6" path="res://addons/dockable_container/layout.gd" id="4_ixaqo"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bgh1og6p43lsp" path="res://Controls/Transport.tscn" id="5_aq6v8"]
|
[ext_resource type="PackedScene" uid="uid://bgh1og6p43lsp" path="res://Controls/Transport.tscn" id="5_aq6v8"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bpd6g2b3s7tqa" path="res://Views/TrackView.tscn" id="5_rgxdu"]
|
[ext_resource type="PackedScene" uid="uid://bpd6g2b3s7tqa" path="res://Views/TrackView.tscn" id="5_rgxdu"]
|
||||||
[ext_resource type="PackedScene" uid="uid://v4oljx3qrk5q" path="res://Views/Timeline.tscn" id="7_xu70y"]
|
[ext_resource type="PackedScene" uid="uid://v4oljx3qrk5q" path="res://Views/Timeline.tscn" id="7_xu70y"]
|
||||||
|
[ext_resource type="Script" uid="uid://dtomx04m445em" path="res://Source/ProjectController.cs" id="11_gc3ui"]
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_pfnfv"]
|
[sub_resource type="Resource" id="Resource_pfnfv"]
|
||||||
resource_name = "Tabs"
|
resource_name = "Tabs"
|
||||||
@@ -35,9 +36,6 @@ script = ExtResource("4_ixaqo")
|
|||||||
root = SubResource("Resource_xnlko")
|
root = SubResource("Resource_xnlko")
|
||||||
hidden_tabs = {}
|
hidden_tabs = {}
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_3f3qp"]
|
|
||||||
bg_color = Color(0.180005, 0.180005, 0.180005, 1)
|
|
||||||
|
|
||||||
[node name="MainView" type="Control"]
|
[node name="MainView" type="Control"]
|
||||||
layout_mode = 3
|
layout_mode = 3
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
@@ -58,12 +56,12 @@ grow_vertical = 2
|
|||||||
[node name="MenuBar" type="MenuBar" parent="VBoxContainer"]
|
[node name="MenuBar" type="MenuBar" parent="VBoxContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
theme_override_font_sizes/font_size = 13
|
|
||||||
flat = true
|
flat = true
|
||||||
|
|
||||||
[node name="File" type="PopupMenu" parent="VBoxContainer/MenuBar"]
|
[node name="File" type="PopupMenu" parent="VBoxContainer/MenuBar"]
|
||||||
item_count = 3
|
item_count = 3
|
||||||
item_0/text = "New..."
|
item_0/text = "New..."
|
||||||
|
item_0/id = 0
|
||||||
item_1/text = "Open..."
|
item_1/text = "Open..."
|
||||||
item_1/id = 1
|
item_1/id = 1
|
||||||
item_2/id = 2
|
item_2/id = 2
|
||||||
@@ -74,12 +72,14 @@ script = ExtResource("2_lsrne")
|
|||||||
auto_translate_mode = 1
|
auto_translate_mode = 1
|
||||||
item_count = 2
|
item_count = 2
|
||||||
item_0/text = "Audio Clip"
|
item_0/text = "Audio Clip"
|
||||||
|
item_0/id = 0
|
||||||
item_1/text = "Label Clip"
|
item_1/text = "Label Clip"
|
||||||
item_1/id = 1
|
item_1/id = 1
|
||||||
|
|
||||||
[node name="Export" type="PopupMenu" parent="VBoxContainer/MenuBar/File"]
|
[node name="Export" type="PopupMenu" parent="VBoxContainer/MenuBar/File"]
|
||||||
item_count = 2
|
item_count = 2
|
||||||
item_0/text = "Project"
|
item_0/text = "Project"
|
||||||
|
item_0/id = 0
|
||||||
item_1/text = "Region"
|
item_1/text = "Region"
|
||||||
item_1/id = 1
|
item_1/id = 1
|
||||||
|
|
||||||
@@ -87,6 +87,7 @@ item_1/id = 1
|
|||||||
auto_translate_mode = 1
|
auto_translate_mode = 1
|
||||||
item_count = 2
|
item_count = 2
|
||||||
item_0/text = "Add Audio Track"
|
item_0/text = "Add Audio Track"
|
||||||
|
item_0/id = 0
|
||||||
item_1/text = "Add Label Track"
|
item_1/text = "Add Label Track"
|
||||||
item_1/id = 1
|
item_1/id = 1
|
||||||
|
|
||||||
@@ -98,6 +99,7 @@ item_0/text = "Tracks"
|
|||||||
item_0/icon = ExtResource("2_nidjn")
|
item_0/icon = ExtResource("2_nidjn")
|
||||||
item_0/checkable = 1
|
item_0/checkable = 1
|
||||||
item_0/checked = true
|
item_0/checked = true
|
||||||
|
item_0/id = 0
|
||||||
item_1/text = "Mixer"
|
item_1/text = "Mixer"
|
||||||
item_1/icon = ExtResource("3_4tblp")
|
item_1/icon = ExtResource("3_4tblp")
|
||||||
item_1/checkable = 1
|
item_1/checkable = 1
|
||||||
@@ -109,6 +111,7 @@ auto_translate_mode = 1
|
|||||||
hide_on_checkable_item_selection = false
|
hide_on_checkable_item_selection = false
|
||||||
item_count = 2
|
item_count = 2
|
||||||
item_0/text = "Project Settings"
|
item_0/text = "Project Settings"
|
||||||
|
item_0/id = 0
|
||||||
item_1/text = "System Settings"
|
item_1/text = "System Settings"
|
||||||
item_1/id = 1
|
item_1/id = 1
|
||||||
|
|
||||||
@@ -121,6 +124,7 @@ anchor_bottom = 1.0
|
|||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
mouse_filter = 2
|
mouse_filter = 2
|
||||||
|
theme_type_variation = &"MenuBarPanel"
|
||||||
|
|
||||||
[node name="VSplitContainer" type="VSplitContainer" parent="VBoxContainer"]
|
[node name="VSplitContainer" type="VSplitContainer" parent="VBoxContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
@@ -128,6 +132,7 @@ size_flags_vertical = 3
|
|||||||
|
|
||||||
[node name="Transport" parent="VBoxContainer/VSplitContainer" instance=ExtResource("5_aq6v8")]
|
[node name="Transport" parent="VBoxContainer/VSplitContainer" instance=ExtResource("5_aq6v8")]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 1
|
||||||
|
|
||||||
[node name="HSplitContainer" type="HSplitContainer" parent="VBoxContainer/VSplitContainer"]
|
[node name="HSplitContainer" type="HSplitContainer" parent="VBoxContainer/VSplitContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
@@ -149,7 +154,6 @@ layout_mode = 2
|
|||||||
|
|
||||||
[node name="Timeline" parent="VBoxContainer/VSplitContainer/HSplitContainer" node_paths=PackedStringArray("track_list") instance=ExtResource("7_xu70y")]
|
[node name="Timeline" parent="VBoxContainer/VSplitContainer/HSplitContainer" node_paths=PackedStringArray("track_list") instance=ExtResource("7_xu70y")]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_vertical = 3
|
|
||||||
track_list = NodePath("../LeftDock/Tracks/VBoxContainer/TrackList")
|
track_list = NodePath("../LeftDock/Tracks/VBoxContainer/TrackList")
|
||||||
|
|
||||||
[node name="BottomDock" type="Container" parent="VBoxContainer/VSplitContainer"]
|
[node name="BottomDock" type="Container" parent="VBoxContainer/VSplitContainer"]
|
||||||
@@ -178,6 +182,9 @@ anchor_bottom = 1.0
|
|||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
mouse_filter = 2
|
mouse_filter = 2
|
||||||
theme_override_styles/panel = SubResource("StyleBoxFlat_3f3qp")
|
|
||||||
|
|
||||||
[editable path="VBoxContainer/VSplitContainer/HSplitContainer/LeftDock/Tracks"]
|
[node name="ProjectController" type="Node" parent="."]
|
||||||
|
script = ExtResource("11_gc3ui")
|
||||||
|
|
||||||
|
[connection signal="clip_added" from="VBoxContainer/VSplitContainer/HSplitContainer/Timeline" to="ProjectController" method="CreateAudioClipPreview"]
|
||||||
|
[connection signal="AudioClipDropped" from="ProjectController" to="VBoxContainer/VSplitContainer/HSplitContainer/Timeline" method="clip_dropped"]
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[gd_scene load_steps=3 format=3 uid="uid://v4oljx3qrk5q"]
|
[gd_scene load_steps=3 format=3 uid="uid://v4oljx3qrk5q"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://Scripts/Timeline.gd" id="1_h2mev"]
|
[ext_resource type="Script" uid="uid://2t7cikq15q48" path="res://Scripts/Timeline.gd" id="1_h2mev"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dmmgalpx4fcc7" path="res://Controls/AudioClip.tscn" id="2_an2hv"]
|
[ext_resource type="PackedScene" uid="uid://dmmgalpx4fcc7" path="res://Controls/AudioClip.tscn" id="2_an2hv"]
|
||||||
|
|
||||||
[node name="Timeline" type="Container"]
|
[node name="Timeline" type="Container"]
|
||||||
@@ -13,7 +13,9 @@ grow_vertical = 2
|
|||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
script = ExtResource("1_h2mev")
|
script = ExtResource("1_h2mev")
|
||||||
|
line_thickness = 1
|
||||||
end_time = 4000.0
|
end_time = 4000.0
|
||||||
|
audio_clip_scene = ExtResource("2_an2hv")
|
||||||
|
|
||||||
[node name="ScrollBar" type="HScrollBar" parent="."]
|
[node name="ScrollBar" type="HScrollBar" parent="."]
|
||||||
visible = false
|
visible = false
|
||||||
@@ -22,10 +24,10 @@ layout_mode = 2
|
|||||||
|
|
||||||
[node name="AudioClip" parent="." instance=ExtResource("2_an2hv")]
|
[node name="AudioClip" parent="." instance=ExtResource("2_an2hv")]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
start_time = 4000.0
|
end_time = 1000.0
|
||||||
end_time = 8000.0
|
|
||||||
|
|
||||||
[node name="AudioClip2" parent="." instance=ExtResource("2_an2hv")]
|
[node name="AudioClip2" parent="." instance=ExtResource("2_an2hv")]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
start_time = 8000.0
|
start_time = 3000.0
|
||||||
end_time = 12000.0
|
end_time = 10000.0
|
||||||
|
track_idx = 1
|
||||||
|
|||||||
@@ -26,16 +26,24 @@ layout_mode = 2
|
|||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
|
|
||||||
[node name="Track" parent="VBoxContainer/TrackList" instance=ExtResource("1_ueogm")]
|
[node name="Track" parent="VBoxContainer/TrackList" instance=ExtResource("1_ueogm")]
|
||||||
|
custom_minimum_size = Vector2(128, 74)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
script = null
|
||||||
|
|
||||||
[node name="Track2" parent="VBoxContainer/TrackList" instance=ExtResource("1_ueogm")]
|
[node name="Track2" parent="VBoxContainer/TrackList" instance=ExtResource("1_ueogm")]
|
||||||
|
custom_minimum_size = Vector2(128, 74)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
script = null
|
||||||
|
|
||||||
[node name="Track3" parent="VBoxContainer/TrackList" instance=ExtResource("1_ueogm")]
|
[node name="Track3" parent="VBoxContainer/TrackList" instance=ExtResource("1_ueogm")]
|
||||||
|
custom_minimum_size = Vector2(128, 74)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
script = null
|
||||||
|
|
||||||
[node name="Track4" parent="VBoxContainer/TrackList" instance=ExtResource("1_ueogm")]
|
[node name="Track4" parent="VBoxContainer/TrackList" instance=ExtResource("1_ueogm")]
|
||||||
|
custom_minimum_size = Vector2(128, 74)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
script = null
|
||||||
|
|
||||||
[node name="AddTrack" type="MenuButton" parent="VBoxContainer"]
|
[node name="AddTrack" type="MenuButton" parent="VBoxContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
@@ -44,5 +52,6 @@ flat = false
|
|||||||
icon_alignment = 1
|
icon_alignment = 1
|
||||||
item_count = 2
|
item_count = 2
|
||||||
popup/item_0/text = "Audio Track"
|
popup/item_0/text = "Audio Track"
|
||||||
|
popup/item_0/id = 0
|
||||||
popup/item_1/text = "Label Track"
|
popup/item_1/text = "Label Track"
|
||||||
popup/item_1/id = 1
|
popup/item_1/id = 1
|
||||||
|
|||||||
1
addons/dockable_container/dockable_container.gd.uid
Normal file
1
addons/dockable_container/dockable_container.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://mw1o44i8qxmk
|
||||||
1
addons/dockable_container/dockable_panel.gd.uid
Normal file
1
addons/dockable_container/dockable_panel.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://cvb3prw3wrl8y
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://c2aoiosenaiwf
|
||||||
1
addons/dockable_container/drag_n_drop_panel.gd.uid
Normal file
1
addons/dockable_container/drag_n_drop_panel.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://ivfobwd6lvm1
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://d1l3xaxj0w3vy
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://cbpxkf5rmukr3
|
||||||
1
addons/dockable_container/layout.gd.uid
Normal file
1
addons/dockable_container/layout.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://sgl6svfbs2v6
|
||||||
1
addons/dockable_container/layout_node.gd.uid
Normal file
1
addons/dockable_container/layout_node.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://8ooorbaky8jx
|
||||||
1
addons/dockable_container/layout_panel.gd.uid
Normal file
1
addons/dockable_container/layout_panel.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://otsc040yabxa
|
||||||
1
addons/dockable_container/layout_split.gd.uid
Normal file
1
addons/dockable_container/layout_split.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://dd7uypdhptv1n
|
||||||
1
addons/dockable_container/plugin.gd.uid
Normal file
1
addons/dockable_container/plugin.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://bb6danhejnf2o
|
||||||
1
addons/dockable_container/samples/TestScene.gd.uid
Normal file
1
addons/dockable_container/samples/TestScene.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://bwo33n0cfouad
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
[gd_scene load_steps=16 format=3 uid="uid://drlvhuchtk6if"]
|
[gd_scene load_steps=16 format=3 uid="uid://drlvhuchtk6if"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://addons/dockable_container/dockable_container.gd" id="1"]
|
[ext_resource type="Script" uid="uid://mw1o44i8qxmk" path="res://addons/dockable_container/dockable_container.gd" id="1"]
|
||||||
[ext_resource type="Script" path="res://addons/dockable_container/layout.gd" id="2"]
|
[ext_resource type="Script" uid="uid://sgl6svfbs2v6" path="res://addons/dockable_container/layout.gd" id="2"]
|
||||||
[ext_resource type="Script" path="res://addons/dockable_container/samples/TestScene.gd" id="4"]
|
[ext_resource type="Script" uid="uid://bwo33n0cfouad" path="res://addons/dockable_container/samples/TestScene.gd" id="4"]
|
||||||
[ext_resource type="Script" path="res://addons/dockable_container/layout_split.gd" id="4_yhgfb"]
|
[ext_resource type="Script" uid="uid://dd7uypdhptv1n" path="res://addons/dockable_container/layout_split.gd" id="4_yhgfb"]
|
||||||
[ext_resource type="Script" path="res://addons/dockable_container/layout_panel.gd" id="5"]
|
[ext_resource type="Script" uid="uid://otsc040yabxa" path="res://addons/dockable_container/layout_panel.gd" id="5"]
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_8aoc2"]
|
[sub_resource type="Resource" id="Resource_8aoc2"]
|
||||||
resource_name = "Tabs"
|
resource_name = "Tabs"
|
||||||
|
|||||||
1
addons/dockable_container/split_handle.gd.uid
Normal file
1
addons/dockable_container/split_handle.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://dkagjri75ub62
|
||||||
3
default_bus_layout.tres
Normal file
3
default_bus_layout.tres
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
[gd_resource type="AudioBusLayout" format=3 uid="uid://sgfaybyy2lvn"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
@@ -12,11 +12,19 @@ config_version=5
|
|||||||
|
|
||||||
config/name="AudioEditor"
|
config/name="AudioEditor"
|
||||||
run/main_scene="res://Views/MainView.tscn"
|
run/main_scene="res://Views/MainView.tscn"
|
||||||
config/features=PackedStringArray("4.3", "C#", "GL Compatibility")
|
config/features=PackedStringArray("4.4", "C#", "GL Compatibility")
|
||||||
run/low_processor_mode=true
|
run/low_processor_mode=true
|
||||||
boot_splash/show_image=false
|
boot_splash/show_image=false
|
||||||
config/icon="res://icon.svg"
|
config/icon="res://icon.svg"
|
||||||
|
|
||||||
|
[audio]
|
||||||
|
|
||||||
|
driver/driver="Dummy"
|
||||||
|
|
||||||
|
[autoload]
|
||||||
|
|
||||||
|
AudioFileAnalyzer="*res://Source/AudioFileAnalyzer.cs"
|
||||||
|
|
||||||
[display]
|
[display]
|
||||||
|
|
||||||
window/size/viewport_width=1920
|
window/size/viewport_width=1920
|
||||||
@@ -39,3 +47,4 @@ enabled=PackedStringArray("res://addons/dockable_container/plugin.cfg")
|
|||||||
|
|
||||||
renderer/rendering_method="gl_compatibility"
|
renderer/rendering_method="gl_compatibility"
|
||||||
renderer/rendering_method.mobile="gl_compatibility"
|
renderer/rendering_method.mobile="gl_compatibility"
|
||||||
|
environment/defaults/default_clear_color=Color(0.0862745, 0.0862745, 0.0862745, 1)
|
||||||
|
|||||||
Reference in New Issue
Block a user