commit 21b101e2bbed87a86dd8706cd5567135632762e1 Author: dnesov Date: Sat Feb 15 22:57:49 2025 +0100 Initial commit, layout mockup diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..8ad74f7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Normalize EOL for all files that Git considers text files. +* text=auto eol=lf diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0af181c --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +# Godot 4+ specific ignores +.godot/ +/android/ diff --git a/Assets/DefaultTheme.tres b/Assets/DefaultTheme.tres new file mode 100644 index 0000000..78c5c0c --- /dev/null +++ b/Assets/DefaultTheme.tres @@ -0,0 +1,4527 @@ +[gd_resource type="Theme" load_steps=227 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="Texture2D" uid="uid://blqywcg2e22in" path="res://Assets/Icons/checked.svg" id="2_jlkvh"] +[ext_resource type="Texture2D" uid="uid://wx4uqiy4qp5c" path="res://Assets/Icons/unchecked.svg" id="3_hpuls"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_xxpoi"] +content_margin_left = 9.0 +content_margin_top = 9.0 +content_margin_right = 9.0 +content_margin_bottom = 9.0 +bg_color = Color(0.145098, 0.145098, 0.145098, 1) +border_color = Color(0.145098, 0.145098, 0.145098, 1) +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +expand_margin_bottom = 2.0 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_503jw"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(1, 1, 1, 0.117647) +border_color = Color(1, 1, 1, 0.196078) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 +corner_detail = 4 +anti_aliasing_size = 0.5 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_yu7sd"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(0, 0, 0, 0.313726) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 +corner_detail = 4 +shadow_color = Color(0, 0, 0, 0.0941176) +shadow_offset = Vector2(2.08165e-12, 5) +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rdfw0"] +content_margin_left = 5.0 +content_margin_top = 4.0 +content_margin_right = 5.0 +content_margin_bottom = 4.0 +bg_color = Color(0.101569, 0.101569, 0.101569, 1) +draw_center = false +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(1, 1, 1, 0.0588235) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 +corner_detail = 4 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_xd1kb"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(0.5, 0.5, 0.5, 0.1) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 +corner_detail = 4 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_l0xtq"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(0.5, 0.5, 0.5, 0.05) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 +corner_detail = 4 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_h2xx7"] +content_margin_left = 9.0 +content_margin_top = 3.0 +content_margin_right = 0.0 +content_margin_bottom = 3.0 +bg_color = Color(0, 0, 0, 0.156863) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 +corner_detail = 4 +anti_aliasing = false + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_6c8sw"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_0c4py"] +content_margin_left = 4.0 +content_margin_top = 6.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.145098, 0.145098, 0.145098, 1) +border_color = Color(0.0870588, 0.0870588, 0.0870588, 1) +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_jduyo"] +content_margin_left = 5.0 +content_margin_top = 4.0 +content_margin_right = 5.0 +content_margin_bottom = 4.0 +bg_color = Color(1, 1, 1, 0.0784314) +border_color = Color(0.0980394, 0.107843, 0.112745, 1) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_sxnkh"] +content_margin_left = 5.0 +content_margin_top = 4.0 +content_margin_right = 5.0 +content_margin_bottom = 4.0 +bg_color = Color(1, 1, 1, 0) +border_color = Color(0.0980394, 0.107843, 0.112745, 1) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_1pq5m"] +content_margin_left = 5.0 +content_margin_top = 4.0 +content_margin_right = 5.0 +content_margin_bottom = 4.0 +bg_color = Color(1, 1, 1, 0.0784314) +border_color = Color(0.0980394, 0.107843, 0.112745, 1) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_s11c6"] +content_margin_left = 6.0 +content_margin_top = 4.0 +content_margin_right = 6.0 +content_margin_bottom = 4.0 +bg_color = Color(1, 1, 1, 0.0313726) +border_color = Color(1, 1, 1, 0.0784314) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_wapt7"] +content_margin_left = 6.0 +content_margin_top = 4.0 +content_margin_right = 6.0 +content_margin_bottom = 4.0 +bg_color = Color(1, 1, 1, 0.0392157) +border_color = Color(1, 1, 1, 0.0509804) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_cupx2"] +content_margin_left = 6.0 +content_margin_top = 4.0 +content_margin_right = 6.0 +content_margin_bottom = 4.0 +bg_color = Color(1, 1, 1, 0.117647) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(1, 1, 1, 0.117647) +border_blend = true + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_6tiqf"] +content_margin_left = 6.0 +content_margin_top = 4.0 +content_margin_right = 6.0 +content_margin_bottom = 4.0 +bg_color = Color(1, 1, 1, 0.156863) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(1, 1, 1, 0.117647) +border_blend = true + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ubyga"] +content_margin_left = 6.0 +content_margin_top = 4.0 +content_margin_right = 6.0 +content_margin_bottom = 4.0 +bg_color = Color(1, 1, 1, 0.0784314) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(1, 1, 1, 0.117647) +border_blend = true + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_dpijl"] +content_margin_left = 6.0 +content_margin_top = 4.0 +content_margin_right = 6.0 +content_margin_bottom = 4.0 +bg_color = Color(1, 1, 1, 0.156863) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(1, 1, 1, 0.117647) +border_blend = true + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_o05gk"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.116078, 0.116078, 0.116078, 1) +draw_center = false +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_16230"] +content_margin_left = 6.0 +content_margin_top = 5.0 +content_margin_right = 6.0 +content_margin_bottom = 5.0 +bg_color = Color(0.116078, 0.116078, 0.116078, 1) +draw_center = false +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="StyleBoxEmpty" id="StyleBoxEmpty_kwn3x"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_u1xj0"] +content_margin_left = 6.0 +content_margin_top = 5.0 +content_margin_right = 6.0 +content_margin_bottom = 5.0 +bg_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_j5ymm"] +content_margin_left = 2.0 +content_margin_top = 2.0 +content_margin_right = 2.0 +content_margin_bottom = 2.0 +bg_color = Color(1, 1, 1, 1) +corner_radius_top_left = 2 +corner_radius_top_right = 2 +corner_radius_bottom_right = 2 +corner_radius_bottom_left = 2 +corner_detail = 2 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8i78e"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.145098, 0.145098, 0.145098, 1) +border_color = Color(0.401569, 0.401569, 0.401569, 1) +corner_detail = 3 +shadow_color = Color(0, 0, 0, 0.3) +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_qridr"] +content_margin_left = 9.0 +content_margin_top = 9.0 +content_margin_right = 9.0 +content_margin_bottom = 9.0 +bg_color = Color(0.101569, 0.101569, 0.101569, 1) +border_width_top = 24 +border_color = Color(0.101569, 0.101569, 0.101569, 1) +corner_detail = 3 +expand_margin_top = 24.0 +shadow_color = Color(0, 0, 0, 0.3) +shadow_size = 4 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_24s1k"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.101569, 0.101569, 0.101569, 1) +border_color = Color(0.0870588, 0.0870588, 0.0870588, 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_2305v"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0, 0, 0, 0.156863) +border_color = Color(0.0580392, 0.0580392, 0.0580392, 1) +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 +corner_detail = 4 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_erijh"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0, 0, 0, 0.235294) +border_color = Color(0.0957176, 0.0957176, 0.0957176, 1) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_detail = 4 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_cm6fs"] +content_margin_top = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(1, 1, 1, 0.0392157) +border_color = Color(1, 1, 1, 0.709804) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_q100y"] +content_margin_left = 2.0 +content_margin_top = 0.0 +content_margin_right = 2.0 +content_margin_bottom = 0.0 +bg_color = Color(0.337255, 0.619608, 1, 0.2) +corner_detail = 1 +anti_aliasing = false + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ajvab"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_6vu5l"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.337255, 0.619608, 1, 0.1) +border_color = Color(0.145098, 0.145098, 0.145098, 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_lx8tr"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(1, 1, 1, 0.0196078) +border_color = Color(0.16, 0.16, 0.16, 1) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_piki4"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0, 0, 0, 0.235294) +border_color = Color(0.160784, 0.160784, 0.160784, 1) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_mw5o7"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0, 0, 0, 0.235294) +border_color = Color(0.14902, 0.14902, 0.14902, 1) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 +corner_detail = 4 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ai5ix"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.101569, 0.101569, 0.101569, 1) +corner_detail = 1 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_sbjgo"] +content_margin_left = 4.0 +content_margin_top = 6.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.145098, 0.145098, 0.145098, 1) +border_color = Color(0.0870588, 0.0870588, 0.0870588, 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_22giw"] +content_margin_left = 4.0 +content_margin_top = 0.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.145098, 0.145098, 0.145098, 1) +border_color = Color(0.0870588, 0.0870588, 0.0870588, 1) +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +expand_margin_top = -36.0 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_hbod7"] +content_margin_left = 0.0 +content_margin_top = 4.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(0.145098, 0.145098, 0.145098, 1) +border_color = Color(0.0870588, 0.0870588, 0.0870588, 1) +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_304i5"] +content_margin_bottom = 0.0 +bg_color = Color(0.337255, 0.619608, 1, 0.1) +border_width_bottom = 2 +border_color = Color(0.337255, 0.619608, 1, 1) +expand_margin_left = 4.0 +expand_margin_top = 2.0 +expand_margin_right = 4.0 +expand_margin_bottom = 4.0 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_psdik"] +content_margin_left = 4.0 +content_margin_top = 6.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.145098, 0.145098, 0.145098, 1) +border_color = Color(0.0870588, 0.0870588, 0.0870588, 1) +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_lh6g3"] +content_margin_left = 0.0 +content_margin_top = 4.0 +content_margin_right = 0.0 +content_margin_bottom = 4.0 +bg_color = Color(0.169114, 0.169114, 0.169114, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +expand_margin_left = 2.0 +expand_margin_right = 2.0 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_tv2r2"] +content_margin_left = 0.0 +content_margin_top = 4.0 +content_margin_right = 0.0 +content_margin_bottom = 4.0 +bg_color = Color(0.107074, 0.129663, 0.160094, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +expand_margin_left = 2.0 +expand_margin_right = 2.0 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_qloop"] +content_margin_left = 0.0 +content_margin_top = 4.0 +content_margin_right = 0.0 +content_margin_bottom = 4.0 +bg_color = Color(0.119957, 0.112722, 0.160094, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +expand_margin_left = 2.0 +expand_margin_right = 2.0 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_lmha0"] +content_margin_left = 0.0 +content_margin_top = 4.0 +content_margin_right = 0.0 +content_margin_bottom = 4.0 +bg_color = Color(0.146839, 0.112722, 0.157153, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +expand_margin_left = 2.0 +expand_margin_right = 2.0 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_km0xn"] +content_margin_left = 0.0 +content_margin_top = 4.0 +content_margin_right = 0.0 +content_margin_bottom = 4.0 +bg_color = Color(0.146839, 0.112722, 0.127329, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +expand_margin_left = 2.0 +expand_margin_right = 2.0 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_l06tg"] +content_margin_left = 0.0 +content_margin_top = 4.0 +content_margin_right = 0.0 +content_margin_bottom = 4.0 +bg_color = Color(0.146839, 0.135545, 0.120329, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +expand_margin_left = 2.0 +expand_margin_right = 2.0 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_roa5n"] +content_margin_left = 0.0 +content_margin_top = 4.0 +content_margin_right = 0.0 +content_margin_bottom = 4.0 +bg_color = Color(0.133957, 0.152486, 0.120329, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +expand_margin_left = 2.0 +expand_margin_right = 2.0 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_lqctr"] +content_margin_left = 0.0 +content_margin_top = 4.0 +content_margin_right = 0.0 +content_margin_bottom = 4.0 +bg_color = Color(0.107074, 0.152486, 0.123271, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +expand_margin_left = 2.0 +expand_margin_right = 2.0 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_pckwj"] +content_margin_left = 0.0 +content_margin_top = 4.0 +content_margin_right = 0.0 +content_margin_bottom = 4.0 +bg_color = Color(0.107074, 0.152486, 0.153094, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +expand_margin_left = 2.0 +expand_margin_right = 2.0 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_tw4gk"] +content_margin_left = 0.0 +content_margin_top = 4.0 +content_margin_right = 0.0 +content_margin_bottom = 4.0 +bg_color = Color(0.119957, 0.112722, 0.160094, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +expand_margin_left = 2.0 +expand_margin_right = 2.0 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_k8lmo"] +content_margin_left = 0.0 +content_margin_top = 4.0 +content_margin_right = 0.0 +content_margin_bottom = 4.0 +bg_color = Color(0.146839, 0.112722, 0.157153, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +expand_margin_left = 2.0 +expand_margin_right = 2.0 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_m4g3j"] +content_margin_left = 0.0 +content_margin_top = 4.0 +content_margin_right = 0.0 +content_margin_bottom = 4.0 +bg_color = Color(0.146839, 0.112722, 0.127329, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +expand_margin_left = 2.0 +expand_margin_right = 2.0 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_0mg14"] +content_margin_left = 0.0 +content_margin_top = 4.0 +content_margin_right = 0.0 +content_margin_bottom = 4.0 +bg_color = Color(0.146839, 0.135545, 0.120329, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +expand_margin_left = 2.0 +expand_margin_right = 2.0 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_kr103"] +content_margin_left = 0.0 +content_margin_top = 4.0 +content_margin_right = 0.0 +content_margin_bottom = 4.0 +bg_color = Color(0.133957, 0.152486, 0.120329, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +expand_margin_left = 2.0 +expand_margin_right = 2.0 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_vy6in"] +content_margin_left = 0.0 +content_margin_top = 4.0 +content_margin_right = 0.0 +content_margin_bottom = 4.0 +bg_color = Color(0.107074, 0.152486, 0.123271, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +expand_margin_left = 2.0 +expand_margin_right = 2.0 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_wfga8"] +content_margin_left = 0.0 +content_margin_top = 4.0 +content_margin_right = 0.0 +content_margin_bottom = 4.0 +bg_color = Color(0.107074, 0.152486, 0.153094, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +expand_margin_left = 2.0 +expand_margin_right = 2.0 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_n376n"] +content_margin_left = 0.0 +content_margin_top = 4.0 +content_margin_right = 0.0 +content_margin_bottom = 4.0 +bg_color = Color(0.107074, 0.129663, 0.160094, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +expand_margin_left = 2.0 +expand_margin_right = 2.0 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_kmrbm"] +content_margin_left = 6.0 +content_margin_top = 5.0 +content_margin_right = 6.0 +content_margin_bottom = 5.0 +bg_color = Color(0.116078, 0.116078, 0.116078, 1) +draw_center = false +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.337255, 0.619608, 1, 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="StyleBoxEmpty" id="StyleBoxEmpty_bvpax"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_2p74x"] +content_margin_left = 6.0 +content_margin_top = 4.0 +content_margin_right = 6.0 +content_margin_bottom = 4.0 +bg_color = Color(0, 0, 0, 0.313726) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_0ujr6"] +content_margin_left = 1.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(1, 1, 1, 0.0392157) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(1, 1, 1, 0.117647) +border_blend = true +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 +corner_detail = 4 +expand_margin_left = 1.0 +expand_margin_top = 1.0 +expand_margin_right = 1.0 +expand_margin_bottom = 1.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_txmfc"] +content_margin_left = 1.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(0, 0, 0, 0) +draw_center = false +border_color = Color(0, 0, 0, 0) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 +corner_detail = 4 +anti_aliasing = false + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_7d3c2"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_0v8w3"] +bg_color = Color(1, 1, 1, 0.117647) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_uwlh8"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.145098, 0.145098, 0.145098, 1) +border_color = Color(0.145098, 0.145098, 0.145098, 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="StyleBoxEmpty" id="StyleBoxEmpty_eukws"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_bhbgm"] +content_margin_left = 4.0 +content_margin_top = 0.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_4mb85"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_1h8pl"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(0.108823, 0.108823, 0.108823, 1) +border_color = Color(0.0870588, 0.0870588, 0.0870588, 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="StyleBoxEmpty" id="StyleBoxEmpty_6akyq"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_nij6o"] +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) +border_color = Color(0, 0, 0, 0) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_detail = 3 +expand_margin_bottom = 2.0 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_s44c7"] +content_margin_left = 11.0 +content_margin_top = 5.0 +content_margin_right = 11.0 +content_margin_bottom = 5.0 +bg_color = Color(0.130588, 0.130588, 0.130588, 1) +border_width_top = 2 +border_color = Color(0.278333, 0.490098, 0.775392, 1) +corner_detail = 3 +expand_margin_bottom = 5.0 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_g35nl"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(1, 1, 1, 0) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.149255, 0.191608, 0.248667, 1) +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_kpluo"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.133773, 0.156361, 0.186792, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.236079, 0.433726, 0.7, 0.8) +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rbply"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.146655, 0.13942, 0.186792, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.348799, 0.28549, 0.7, 0.8) +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_q0mah"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.173537, 0.13942, 0.183851, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.58402, 0.28549, 0.674265, 0.8) +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_y5f53"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.173537, 0.13942, 0.154027, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.58402, 0.28549, 0.413309, 0.8) +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_nnlcc"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.173537, 0.162243, 0.147027, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.58402, 0.485196, 0.352059, 0.8) +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_2orfn"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.160655, 0.179184, 0.147027, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.471299, 0.633431, 0.352059, 0.8) +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8epfx"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.133773, 0.179184, 0.149969, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.236079, 0.633431, 0.377794, 0.8) +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_wa0n3"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.133773, 0.179184, 0.179792, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.236079, 0.633431, 0.63875, 0.8) +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_xjhxj"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.146655, 0.13942, 0.186792, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.348799, 0.28549, 0.7, 0.8) +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ktbb6"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.173537, 0.13942, 0.183851, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.58402, 0.28549, 0.674265, 0.8) +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_45ct7"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.173537, 0.13942, 0.154027, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.58402, 0.28549, 0.413309, 0.8) +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_4tl1l"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.173537, 0.162243, 0.147027, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.58402, 0.485196, 0.352059, 0.8) +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_4cdti"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.160655, 0.179184, 0.147027, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.471299, 0.633431, 0.352059, 0.8) +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_f21g6"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.133773, 0.179184, 0.149969, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.236079, 0.633431, 0.377794, 0.8) +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_m3y8q"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.133773, 0.179184, 0.179792, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.236079, 0.633431, 0.63875, 0.8) +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_jshcj"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.133773, 0.156361, 0.186792, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.236079, 0.433726, 0.7, 0.8) +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5r6dc"] +content_margin_left = 2.0 +content_margin_top = 2.0 +content_margin_right = 2.0 +content_margin_bottom = 2.0 +bg_color = Color(0.0993921, 0.0993921, 0.0993921, 1) +border_color = Color(0.145098, 0.145098, 0.145098, 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_x2ah7"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(0.149255, 0.191608, 0.248667, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_1xudn"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(0.236079, 0.433726, 0.7, 0.8) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ryds7"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(0.348799, 0.28549, 0.7, 0.8) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_v3s8k"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(0.58402, 0.28549, 0.674265, 0.8) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_duyfv"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(0.58402, 0.28549, 0.413309, 0.8) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_wfi6l"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(0.58402, 0.485196, 0.352059, 0.8) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_p8rbx"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(0.471299, 0.633431, 0.352059, 0.8) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_bx4sl"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(0.236079, 0.633431, 0.377794, 0.8) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ftsex"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(0.236079, 0.633431, 0.63875, 0.8) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_x1pko"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(0.348799, 0.28549, 0.7, 0.8) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_xfxwo"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(0.58402, 0.28549, 0.674265, 0.8) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_hq80t"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(0.58402, 0.28549, 0.413309, 0.8) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_dfaf4"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(0.58402, 0.485196, 0.352059, 0.8) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_kspmp"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(0.471299, 0.633431, 0.352059, 0.8) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_4d12b"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(0.236079, 0.633431, 0.377794, 0.8) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_38nlj"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(0.236079, 0.633431, 0.63875, 0.8) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_0k4ef"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(0.236079, 0.433726, 0.7, 0.8) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_s04qc"] +content_margin_left = 3.0 +content_margin_top = 3.0 +content_margin_right = 3.0 +content_margin_bottom = 3.0 +bg_color = Color(0, 0, 0, 0.235294) +border_color = Color(0.0580392, 0.0580392, 0.0580392, 1) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 +corner_detail = 4 +anti_aliasing = false + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_65mu5"] +content_margin_left = 5.0 +content_margin_top = 4.0 +content_margin_right = 5.0 +content_margin_bottom = 4.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_a4v87"] +content_margin_left = 5.0 +content_margin_top = 4.0 +content_margin_right = 5.0 +content_margin_bottom = 4.0 +bg_color = Color(1, 1, 1, 0.0784314) +border_color = Color(0.0980394, 0.107843, 0.112745, 1) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_fkpl4"] +content_margin_left = 5.0 +content_margin_top = 4.0 +content_margin_right = 5.0 +content_margin_bottom = 4.0 +bg_color = Color(1, 1, 1, 0.0784314) +border_color = Color(0.0980394, 0.107843, 0.112745, 1) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_n6oly"] +content_margin_left = 4.0 +content_margin_top = 2.0 +content_margin_right = 4.0 +content_margin_bottom = 2.0 +bg_color = Color(0.116078, 0.116078, 0.116078, 0.6) +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_tat3o"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.108823, 0.108823, 0.108823, 1) +border_color = Color(0.0870588, 0.0870588, 0.0870588, 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_h4xsf"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(0.65, 0.65, 0.65, 0.2) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(0.65, 0.65, 0.65, 0.45) +corner_detail = 1 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_7k6m1"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(1, 1, 1, 1) +corner_detail = 1 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_osg82"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(0.116078, 0.116078, 0.116078, 1) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(0.0870588, 0.0870588, 0.0870588, 1) +corner_detail = 1 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_v0q16"] +content_margin_left = 2.0 +content_margin_top = 2.0 +content_margin_right = 2.0 +content_margin_bottom = 2.0 +bg_color = Color(0.0935882, 0.0935882, 0.0935882, 1) +border_width_left = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.0609412, 0.0609412, 0.0609412, 1) +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_k24kx"] +content_margin_left = 2.0 +content_margin_top = 2.0 +content_margin_right = 2.0 +content_margin_bottom = 2.0 +bg_color = Color(0.224, 0.224, 0.224, 1) +border_width_left = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(1, 1, 1, 1) +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_cw47s"] +content_margin_left = 12.0 +content_margin_top = 8.0 +content_margin_right = 12.0 +content_margin_bottom = 8.0 +bg_color = Color(0.0870588, 0.0870588, 0.0870588, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_color = Color(0.0609412, 0.0609412, 0.0609412, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_detail = 3 +expand_margin_top = 2.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_2ctxv"] +content_margin_left = 12.0 +content_margin_top = 8.0 +content_margin_right = 12.0 +content_margin_bottom = 8.0 +bg_color = Color(0.0870588, 0.0870588, 0.0870588, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_color = Color(1, 1, 1, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_detail = 3 +expand_margin_top = 2.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_4wdoq"] +content_margin_left = 2.0 +content_margin_top = 2.0 +content_margin_right = 2.0 +content_margin_bottom = 2.0 +bg_color = Color(0, 0, 0, 0.2) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.0609412, 0.0609412, 0.0609412, 1) +corner_radius_top_left = 7 +corner_radius_top_right = 7 +corner_radius_bottom_right = 7 +corner_radius_bottom_left = 7 +corner_detail = 6 +expand_margin_top = 38.0 +shadow_color = Color(0, 0, 0, 0.075) +shadow_size = 8 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_cnlc4"] +content_margin_left = 2.0 +content_margin_top = 2.0 +content_margin_right = 2.0 +content_margin_bottom = 2.0 +bg_color = Color(0, 0, 0, 0.2) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(1, 1, 1, 1) +corner_radius_top_left = 7 +corner_radius_top_right = 7 +corner_radius_bottom_right = 7 +corner_radius_bottom_left = 7 +corner_detail = 6 +expand_margin_top = 38.0 +shadow_color = Color(0, 0, 0, 0.075) +shadow_size = 8 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_sbwjv"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_7bpfr"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_cphar"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_jokne"] +content_margin_left = 12.0 +content_margin_top = 0.0 +content_margin_right = 12.0 +content_margin_bottom = 0.0 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_te4q8"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rkw5f"] +content_margin_left = 10.0 +content_margin_top = 24.0 +content_margin_right = 10.0 +content_margin_bottom = 2.0 +bg_color = Color(0.0870588, 0.0870588, 0.0870588, 0.7) +border_color = Color(0.0870588, 0.0870588, 0.0870588, 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_busvx"] +content_margin_left = 10.0 +content_margin_top = 24.0 +content_margin_right = 10.0 +content_margin_bottom = 2.0 +bg_color = Color(0.0870588, 0.0870588, 0.0870588, 0.7) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(1, 0.47, 0.42, 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_nmxfc"] +content_margin_left = 10.0 +content_margin_top = 24.0 +content_margin_right = 10.0 +content_margin_bottom = 2.0 +bg_color = Color(0.0870588, 0.0870588, 0.0870588, 0.9) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(1, 0.87, 0.4, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +shadow_color = Color(1, 0.87, 0.4, 0.2) +shadow_size = 8 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_dq48x"] +content_margin_left = 10.0 +content_margin_top = 24.0 +content_margin_right = 10.0 +content_margin_bottom = 2.0 +bg_color = Color(0.0870588, 0.0870588, 0.0870588, 0.9) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.337255, 0.619608, 1, 0.9) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +shadow_color = Color(0, 0, 0, 0.3) +shadow_size = 8 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_kga1q"] +content_margin_left = 10.0 +content_margin_top = 24.0 +content_margin_right = 10.0 +content_margin_bottom = 2.0 +bg_color = Color(0.0870588, 0.0870588, 0.0870588, 0.7) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(0.582, 0.962, 0.62, 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="Image" id="Image_3ih7l"] +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), +"format": "RGBA8", +"height": 12, +"mipmaps": false, +"width": 12 +} + +[sub_resource type="ImageTexture" id="ImageTexture_bk0hb"] +image = SubResource("Image_3ih7l") + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_0hke8"] +content_margin_left = 7.0 +content_margin_top = 7.0 +content_margin_right = 7.0 +content_margin_bottom = 7.0 +texture = SubResource("ImageTexture_bk0hb") +texture_margin_left = 6.0 +texture_margin_top = 6.0 +texture_margin_right = 6.0 +texture_margin_bottom = 6.0 + +[sub_resource type="Image" id="Image_1xahl"] +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), +"format": "RGBA8", +"height": 12, +"mipmaps": false, +"width": 12 +} + +[sub_resource type="ImageTexture" id="ImageTexture_uc42h"] +image = SubResource("Image_1xahl") + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_asndq"] +content_margin_left = 6.0 +content_margin_top = 6.0 +content_margin_right = 6.0 +content_margin_bottom = 6.0 +texture = SubResource("ImageTexture_uc42h") +texture_margin_left = 5.0 +texture_margin_top = 5.0 +texture_margin_right = 5.0 +texture_margin_bottom = 5.0 + +[sub_resource type="Image" id="Image_pbefk"] +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), +"format": "RGBA8", +"height": 12, +"mipmaps": false, +"width": 12 +} + +[sub_resource type="ImageTexture" id="ImageTexture_y6fi8"] +image = SubResource("Image_pbefk") + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_7amsq"] +content_margin_left = 7.0 +content_margin_top = 7.0 +content_margin_right = 7.0 +content_margin_bottom = 7.0 +texture = SubResource("ImageTexture_y6fi8") +texture_margin_left = 6.0 +texture_margin_top = 6.0 +texture_margin_right = 6.0 +texture_margin_bottom = 6.0 + +[sub_resource type="Image" id="Image_gf5m0"] +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), +"format": "RGBA8", +"height": 12, +"mipmaps": false, +"width": 12 +} + +[sub_resource type="ImageTexture" id="ImageTexture_lfhcu"] +image = SubResource("Image_gf5m0") + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_tef5f"] +content_margin_left = 0.0 +content_margin_top = 6.0 +content_margin_right = 0.0 +content_margin_bottom = 6.0 +texture = SubResource("ImageTexture_lfhcu") +texture_margin_left = 5.0 +texture_margin_top = 5.0 +texture_margin_right = 5.0 +texture_margin_bottom = 5.0 + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_88wkm"] +content_margin_left = 6.0 +content_margin_top = 6.0 +content_margin_right = 6.0 +content_margin_bottom = 6.0 +texture = SubResource("ImageTexture_lfhcu") +texture_margin_left = 5.0 +texture_margin_top = 5.0 +texture_margin_right = 5.0 +texture_margin_bottom = 5.0 + +[sub_resource type="StyleBoxLine" id="StyleBoxLine_20r55"] +color = Color(1, 1, 1, 0.1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_jiatm"] +content_margin_left = 0.0 +content_margin_top = 2.0 +content_margin_right = 0.0 +content_margin_bottom = 2.0 +bg_color = Color(0.401569, 0.401569, 0.401569, 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_fxko6"] +content_margin_left = 0.0 +content_margin_top = 2.0 +content_margin_right = 0.0 +content_margin_bottom = 2.0 +bg_color = Color(0.401569, 0.401569, 0.401569, 1) +corner_detail = 1 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_vec6b"] +content_margin_left = 0.0 +content_margin_top = 2.0 +content_margin_right = 0.0 +content_margin_bottom = 2.0 +bg_color = Color(0.0870588, 0.0870588, 0.0870588, 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_m3jjh"] +bg_color = Color(1, 1, 1, 0.0392157) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_20eiv"] +bg_color = Color(1, 1, 1, 0) +draw_center = false +border_color = Color(1, 1, 1, 0) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_32au3"] +bg_color = Color(1, 1, 1, 0.0392157) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_8atl4"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_pgp2j"] +content_margin_left = 4.0 +content_margin_top = 3.0 +content_margin_right = 4.0 +content_margin_bottom = 3.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_cfx35"] +content_margin_left = 7.0 +content_margin_top = 2.0 +content_margin_right = 7.0 +content_margin_bottom = 2.0 +bg_color = Color(0.101961, 0.101961, 0.101961, 1) +border_color = Color(0.101569, 0.101569, 0.101569, 1) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_0nfa3"] +content_margin_left = 7.0 +content_margin_top = 2.0 +content_margin_right = 7.0 +content_margin_bottom = 2.0 +bg_color = Color(0, 0, 0, 0.196078) +border_color = Color(1, 1, 1, 0.117647) +border_blend = true +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_fdq0g"] +content_margin_left = 7.0 +content_margin_top = 2.0 +content_margin_right = 7.0 +content_margin_bottom = 2.0 +bg_color = Color(0, 0, 0, 0) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(1, 1, 1, 0.117647) +border_blend = true +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_0uu8j"] +content_margin_left = 6.0 +content_margin_top = 5.0 +content_margin_right = 6.0 +content_margin_bottom = 5.0 +bg_color = Color(0.130588, 0.130588, 0.130588, 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_40oom"] +content_margin_left = 6.0 +content_margin_top = 5.0 +content_margin_right = 6.0 +content_margin_bottom = 5.0 +bg_color = Color(1, 1, 1, 0.11) +border_color = Color(1, 1, 1, 0.05) +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_pe0jj"] +content_margin_left = 6.0 +content_margin_top = 5.0 +content_margin_right = 6.0 +content_margin_bottom = 5.0 +bg_color = Color(0.116078, 0.116078, 0.116078, 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_tbd5c"] +content_margin_left = 6.0 +content_margin_top = 5.0 +content_margin_right = 6.0 +content_margin_bottom = 5.0 +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"] +content_margin_left = 6.0 +content_margin_top = 4.0 +content_margin_right = 6.0 +content_margin_bottom = 4.0 +bg_color = Color(1, 1, 1, 0.0588235) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 +corner_detail = 4 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5kevk"] +content_margin_left = 6.0 +content_margin_top = 4.0 +content_margin_right = 6.0 +content_margin_bottom = 4.0 +bg_color = Color(1, 1, 1, 0.117647) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(1, 1, 1, 0.117647) +border_blend = true +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 +corner_detail = 4 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_jccna"] +content_margin_left = 6.0 +content_margin_top = 4.0 +content_margin_right = 6.0 +content_margin_bottom = 4.0 +bg_color = Color(1, 1, 1, 0.117647) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(1, 1, 1, 0.117647) +border_blend = true +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 +corner_detail = 4 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_tj0ge"] +content_margin_left = 5.0 +bg_color = Color(1, 1, 1, 0.0392157) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(1, 1, 1, 0.117647) +border_blend = true +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ohale"] +content_margin_left = 5.0 +bg_color = Color(1, 1, 1, 0.117647) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(1, 1, 1, 0.117647) +border_blend = true +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_if3jf"] +content_margin_left = 5.0 +bg_color = Color(1, 1, 1, 0.0784314) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(1, 1, 1, 0.117647) +border_blend = true +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_4355j"] +content_margin_left = 5.0 +bg_color = Color(1, 1, 1, 0.156863) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(1, 1, 1, 0.117647) +border_blend = true +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_12lhu"] +content_margin_left = 6.0 +content_margin_top = 4.0 +content_margin_right = 6.0 +content_margin_bottom = 4.0 +bg_color = Color(0.116078, 0.116078, 0.116078, 1) +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_gvbrn"] +content_margin_left = 6.0 +content_margin_top = 5.0 +content_margin_right = 6.0 +content_margin_bottom = 5.0 +bg_color = Color(0.130588, 0.130588, 0.130588, 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_algsk"] +content_margin_left = 6.0 +content_margin_top = 5.0 +content_margin_right = 6.0 +content_margin_bottom = 5.0 +bg_color = Color(0.281882, 0.281882, 0.281882, 1) +border_color = Color(1, 1, 1, 0.05) +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_lq87k"] +content_margin_left = 6.0 +content_margin_top = 5.0 +content_margin_right = 6.0 +content_margin_bottom = 5.0 +bg_color = Color(0.21349, 0.21349, 0.21349, 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_46kg0"] +content_margin_left = 6.0 +content_margin_top = 5.0 +content_margin_right = 6.0 +content_margin_bottom = 5.0 +bg_color = Color(0.316078, 0.316078, 0.316078, 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_wdhdm"] +bg_color = Color(0.116078, 0.116078, 0.116078, 1) +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_4725m"] +content_margin_left = 9.0 +content_margin_top = 9.0 +content_margin_right = 9.0 +content_margin_bottom = 9.0 +bg_color = Color(0.145098, 0.145098, 0.145098, 1) +border_color = Color(0.401569, 0.401569, 0.401569, 1) +corner_detail = 4 +shadow_color = Color(0, 0, 0, 0.3) +shadow_size = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_yg4d4"] +bg_color = Color(1, 1, 1, 0.0588235) +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"] +color = Color(1, 1, 1, 0.1) +grow_begin = 8.0 + +[sub_resource type="StyleBoxLine" id="StyleBoxLine_7ikmc"] +color = Color(1, 1, 1, 0.1) +grow_end = 8.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_cbgao"] +content_margin_left = 6.0 +content_margin_top = 6.0 +content_margin_right = 6.0 +content_margin_bottom = 6.0 +bg_color = Color(0.11, 0.11, 0.11, 1) + +[sub_resource type="StyleBoxLine" id="StyleBoxLine_rijeh"] +color = Color(1, 1, 1, 0.0784314) +grow_begin = -6.0 +grow_end = -6.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5sp0q"] +content_margin_left = 7.0 +content_margin_top = 7.0 +content_margin_right = 7.0 +content_margin_bottom = 7.0 +bg_color = Color(0.109804, 0.109804, 0.109804, 1) +border_color = Color(0.401569, 0.401569, 0.401569, 1) +corner_detail = 4 +shadow_color = Color(0, 0, 0, 0.3) +shadow_size = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ghpck"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_twhwf"] +content_margin_left = 2.0 +content_margin_top = 2.0 +content_margin_right = 2.0 +content_margin_bottom = 2.0 +bg_color = Color(0.101961, 0.101961, 0.101961, 0.588235) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 +expand_margin_top = 2.0 +expand_margin_bottom = 2.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_xdk0w"] +content_margin_left = 2.0 +content_margin_top = 2.0 +content_margin_right = 2.0 +content_margin_bottom = 2.0 +bg_color = Color(1, 1, 1, 0.196078) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 +expand_margin_top = 2.0 +expand_margin_bottom = 2.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_yfblk"] +content_margin_left = 6.0 +content_margin_top = 5.0 +content_margin_right = 6.0 +content_margin_bottom = 5.0 +bg_color = Color(1, 1, 1, 0.11) +border_color = Color(1, 1, 1, 0.05) +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_an6mv"] +content_margin_left = 6.0 +content_margin_top = 5.0 +content_margin_right = 6.0 +content_margin_bottom = 5.0 +bg_color = Color(0.292863, 0.292863, 0.292863, 1) +border_color = Color(0.101569, 0.101569, 0.101569, 1) +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_umheu"] +content_margin_left = 6.0 +content_margin_top = 5.0 +content_margin_right = 6.0 +content_margin_bottom = 5.0 +bg_color = Color(0.101569, 0.101569, 0.101569, 1) +border_color = Color(0.101569, 0.101569, 0.101569, 1) +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_tx2dl"] +content_margin_left = 5.0 +content_margin_top = 5.0 +content_margin_right = 5.0 +content_margin_bottom = 5.0 +bg_color = Color(0, 0, 0, 0.117647) +border_color = Color(0.072549, 0.072549, 0.072549, 1) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_o6jmd"] +content_margin_left = 6.0 +content_margin_top = 5.0 +content_margin_right = 6.0 +content_margin_bottom = 5.0 +bg_color = Color(1, 1, 1, 0) +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_lrq1b"] +content_margin_left = 11.0 +content_margin_top = 5.0 +content_margin_right = 11.0 +content_margin_bottom = 5.0 +bg_color = Color(0.130588, 0.130588, 0.130588, 1) +border_color = Color(0.130588, 0.130588, 0.130588, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_fejrw"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_tmq75"] +content_margin_left = 11.0 +content_margin_top = 5.0 +content_margin_right = 11.0 +content_margin_bottom = 5.0 +bg_color = Color(0.127686, 0.127686, 0.127686, 1) +border_color = Color(0.101569, 0.101569, 0.101569, 1) +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_lgkqp"] +content_margin_left = 11.0 +content_margin_top = 5.0 +content_margin_right = 11.0 +content_margin_bottom = 5.0 +bg_color = Color(0.145098, 0.145098, 0.145098, 1) +border_width_top = 2 +border_color = Color(0.278333, 0.490098, 0.775392, 1) +corner_detail = 3 +anti_aliasing = false + +[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) +border_color = Color(0, 0, 0, 0) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_kwdgv"] +bg_color = Color(1, 1, 1, 0) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_o0sc5"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(0.116078, 0.116078, 0.116078, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_plrjc"] +content_margin_left = 4.0 +content_margin_top = 6.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.130588, 0.130588, 0.130588, 1) +border_color = Color(0.0870588, 0.0870588, 0.0870588, 1) +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ecmpj"] +content_margin_left = 11.0 +content_margin_top = 5.0 +content_margin_right = 11.0 +content_margin_bottom = 5.0 +bg_color = Color(0.130588, 0.130588, 0.130588, 1) +border_width_top = 2 +border_color = Color(0.278333, 0.490098, 0.775392, 1) +corner_detail = 3 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_62kny"] +content_margin_left = 6.0 +content_margin_top = 2.0 +content_margin_right = 6.0 +content_margin_bottom = 2.0 +bg_color = Color(0, 0, 0, 0.0392157) +draw_center = false +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(1, 1, 1, 0) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 +expand_margin_left = 1.0 +expand_margin_top = 1.0 +expand_margin_right = 1.0 +expand_margin_bottom = 1.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_t7304"] +content_margin_left = 6.0 +content_margin_top = 2.0 +content_margin_right = 6.0 +content_margin_bottom = 2.0 +bg_color = Color(0, 0, 0, 0.156863) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_6ucq2"] +content_margin_left = 6.0 +content_margin_top = 2.0 +content_margin_right = 6.0 +content_margin_bottom = 2.0 +bg_color = Color(0, 0, 0, 0.0784314) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_jtsa3"] +content_margin_left = 4.0 +content_margin_top = 1.0 +content_margin_right = 4.0 +content_margin_bottom = 3.0 +bg_color = Color(0.168628, 0.309804, 0.5, 1) +corner_detail = 1 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_qixj3"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(0.337255, 0.619608, 1, 0.2) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(0.337255, 0.619608, 1, 1) +corner_detail = 1 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_qr21i"] +content_margin_left = 12.0 +content_margin_top = 6.0 +content_margin_right = 12.0 +content_margin_bottom = 6.0 +bg_color = Color(0.08, 0.08, 0.08, 1) +border_color = Color(0.401569, 0.401569, 0.401569, 1) +corner_radius_top_left = 8 +corner_radius_top_right = 8 +corner_radius_bottom_right = 8 +corner_radius_bottom_left = 8 +corner_detail = 4 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_68sxm"] +content_margin_left = 3.0 +content_margin_right = 3.0 +bg_color = Color(1, 1, 1, 0.117647) +border_color = Color(0.145098, 0.145098, 0.145098, 1) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 +anti_aliasing = false + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_s32q2"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_v3yhk"] +content_margin_left = 3.0 +content_margin_top = 3.0 +content_margin_right = 3.0 +content_margin_bottom = 3.0 +bg_color = Color(1, 1, 1, 0.0392157) +border_color = Color(0.145098, 0.145098, 0.145098, 1) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_h3su5"] +content_margin_left = 6.0 +content_margin_top = 4.0 +content_margin_right = 6.0 +content_margin_bottom = 4.0 +bg_color = Color(0, 0, 0, 0.235294) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_wb8as"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_25rjl"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_33c1j"] +content_margin_left = 16.0 +content_margin_top = 16.0 +content_margin_right = 16.0 +content_margin_bottom = 16.0 + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_6gcbt"] +content_margin_left = 7.0 +content_margin_top = 7.0 +content_margin_right = 7.0 +content_margin_bottom = 7.0 +texture = SubResource("ImageTexture_bk0hb") +texture_margin_left = 6.0 +texture_margin_top = 6.0 +texture_margin_right = 6.0 +texture_margin_bottom = 6.0 + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_egk4k"] +content_margin_left = 6.0 +content_margin_top = 6.0 +content_margin_right = 6.0 +content_margin_bottom = 6.0 +texture = SubResource("ImageTexture_uc42h") +texture_margin_left = 5.0 +texture_margin_top = 5.0 +texture_margin_right = 5.0 +texture_margin_bottom = 5.0 + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_yo0p2"] +content_margin_left = 7.0 +content_margin_top = 7.0 +content_margin_right = 7.0 +content_margin_bottom = 7.0 +texture = SubResource("ImageTexture_y6fi8") +texture_margin_left = 6.0 +texture_margin_top = 6.0 +texture_margin_right = 6.0 +texture_margin_bottom = 6.0 + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_8aevd"] +content_margin_left = 6.0 +content_margin_top = 0.0 +content_margin_right = 6.0 +content_margin_bottom = 0.0 +texture = SubResource("ImageTexture_lfhcu") +texture_margin_left = 5.0 +texture_margin_top = 5.0 +texture_margin_right = 5.0 +texture_margin_bottom = 5.0 + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_rhpfa"] +content_margin_left = 6.0 +content_margin_top = 6.0 +content_margin_right = 6.0 +content_margin_bottom = 6.0 +texture = SubResource("ImageTexture_lfhcu") +texture_margin_left = 5.0 +texture_margin_top = 5.0 +texture_margin_right = 5.0 +texture_margin_bottom = 5.0 + +[sub_resource type="StyleBoxLine" id="StyleBoxLine_0cexm"] +color = Color(1, 1, 1, 0.1) +grow_begin = 0.0 +grow_end = 0.0 +vertical = true + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_l0nso"] +content_margin_left = 4.0 +content_margin_top = 6.0 +content_margin_right = 4.0 +content_margin_bottom = 6.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_04g3o"] +content_margin_left = 2.0 +content_margin_top = 0.0 +content_margin_right = 2.0 +content_margin_bottom = 0.0 +bg_color = Color(0.401569, 0.401569, 0.401569, 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_kkf5r"] +content_margin_left = 2.0 +content_margin_top = 0.0 +content_margin_right = 2.0 +content_margin_bottom = 0.0 +bg_color = Color(0.401569, 0.401569, 0.401569, 1) +corner_detail = 1 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_m2hrg"] +content_margin_left = 2.0 +content_margin_top = 0.0 +content_margin_right = 2.0 +content_margin_bottom = 0.0 +bg_color = Color(0.0870588, 0.0870588, 0.0870588, 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_kqda4"] +content_margin_left = 9.0 +content_margin_top = 9.0 +content_margin_right = 9.0 +content_margin_bottom = 9.0 +bg_color = Color(0.145098, 0.145098, 0.145098, 1) +border_width_top = 24 +border_color = Color(0.145098, 0.145098, 0.145098, 1) +corner_detail = 3 +expand_margin_top = 24.0 +shadow_color = Color(0, 0, 0, 0.3) +shadow_size = 4 +anti_aliasing = false + +[resource] +default_font = ExtResource("1_a74l0") +default_font_size = 14 +AcceptDialog/constants/buttons_min_height = 34 +AcceptDialog/constants/buttons_min_width = 105 +AcceptDialog/constants/buttons_separation = 8 +AcceptDialog/styles/panel = SubResource("StyleBoxFlat_xxpoi") +AnimationBezierTrackEdit/colors/focus_color = Color(0.91, 0.91, 0.91, 0) +AnimationBezierTrackEdit/colors/h_line_color = Color(1, 1, 1, 0.117647) +AnimationBezierTrackEdit/colors/track_focus_color = Color(1, 1, 1, 0.0980392) +AnimationBezierTrackEdit/colors/v_line_color = Color(1, 1, 1, 0) +AnimationTimelineEdit/colors/font_primary_color = Color(1, 1, 1, 0.705882) +AnimationTimelineEdit/colors/font_secondary_color = Color(0.79, 0.79, 0.79, 0.156863) +AnimationTimelineEdit/colors/h_line_color = Color(1, 1, 1, 0) +AnimationTimelineEdit/colors/time_available_bg_color = Color(1, 1, 1, 0.117647) +AnimationTimelineEdit/colors/time_unavailable_bg_color = Color(0, 0, 0, 0.196078) +AnimationTimelineEdit/colors/v_line_primary_color = Color(1, 1, 1, 0.392157) +AnimationTimelineEdit/colors/v_line_secondary_color = Color(1, 1, 1, 0.0784314) +AnimationTimelineEdit/constants/text_primary_margin = 4 +AnimationTimelineEdit/constants/text_secondary_margin = 1 +AnimationTimelineEdit/constants/v_line_primary_margin = 4 +AnimationTimelineEdit/constants/v_line_primary_width = 2 +AnimationTimelineEdit/constants/v_line_secondary_margin = 6 +AnimationTimelineEdit/constants/v_line_secondary_width = 1 +AnimationTimelineEdit/styles/time_available = SubResource("StyleBoxFlat_503jw") +AnimationTimelineEdit/styles/time_unavailable = SubResource("StyleBoxFlat_yu7sd") +AnimationTrackEdit/colors/h_line_color = Color(0.79, 0.79, 0.79, 0) +AnimationTrackEdit/constants/h_separation = 6 +AnimationTrackEdit/styles/focus = SubResource("StyleBoxFlat_rdfw0") +AnimationTrackEdit/styles/hover = SubResource("StyleBoxFlat_xd1kb") +AnimationTrackEdit/styles/odd = SubResource("StyleBoxFlat_l0xtq") +AnimationTrackEditGroup/colors/bg_color = Color(0, 0, 0, 0.0784314) +AnimationTrackEditGroup/colors/h_line_color = Color(0.79, 0.79, 0.79, 0) +AnimationTrackEditGroup/colors/v_line_color = Color(0.79, 0.79, 0.79, 0) +AnimationTrackEditGroup/constants/h_separation = 5 +AnimationTrackEditGroup/styles/header = SubResource("StyleBoxFlat_h2xx7") +AnimationTrackEditor/constants/timeline_v_separation = 3 +AnimationTrackEditor/constants/track_v_separation = 3 +AssetLib/colors/status_color = Color(0.5, 0.5, 0.5, 1) +AssetLib/icons/dismiss = null +AssetLib/styles/bg = SubResource("StyleBoxEmpty_6c8sw") +AssetLib/styles/panel = SubResource("StyleBoxFlat_0c4py") +BottomPanelButton/styles/hover = SubResource("StyleBoxFlat_jduyo") +BottomPanelButton/styles/hover_pressed = SubResource("StyleBoxFlat_jduyo") +BottomPanelButton/styles/normal = SubResource("StyleBoxFlat_sxnkh") +BottomPanelButton/styles/pressed = SubResource("StyleBoxFlat_1pq5m") +BoxContainer/constants/separation = 4 +Button/colors/font_color = Color(1, 1, 1, 0.705882) +Button/colors/font_disabled_color = Color(0.88, 0.88, 0.88, 0.313726) +Button/colors/font_focus_color = Color(0.95, 0.95, 0.95, 1) +Button/colors/font_hover_color = Color(0.95, 0.95, 0.95, 1) +Button/colors/font_hover_pressed_color = Color(1, 1, 1, 1) +Button/colors/font_outline_color = Color(0, 0, 0, 0) +Button/colors/font_pressed_color = Color(1, 1, 1, 1) +Button/colors/icon_disabled_color = Color(1, 1, 1, 0.313726) +Button/colors/icon_focus_color = Color(1.15, 1.15, 1.15, 1) +Button/colors/icon_hover_color = Color(1.15, 1.15, 1.15, 1) +Button/colors/icon_hover_pressed_color = Color(0.387843, 0.712549, 1.15, 1) +Button/colors/icon_normal_color = Color(1, 1, 1, 0.705882) +Button/colors/icon_pressed_color = Color(0.387843, 0.712549, 1.15, 1) +Button/constants/align_to_largest_stylebox = 1 +Button/constants/h_separation = 4 +Button/constants/outline_size = 0 +Button/styles/disabled = SubResource("StyleBoxFlat_s11c6") +Button/styles/disabled_mirrored = SubResource("StyleBoxFlat_s11c6") +Button/styles/focus = SubResource("StyleBoxFlat_wapt7") +Button/styles/hover = SubResource("StyleBoxFlat_cupx2") +Button/styles/hover_mirrored = SubResource("StyleBoxFlat_cupx2") +Button/styles/hover_pressed = SubResource("StyleBoxFlat_6tiqf") +Button/styles/hover_pressed_mirrored = SubResource("StyleBoxFlat_6tiqf") +Button/styles/normal = SubResource("StyleBoxFlat_ubyga") +Button/styles/normal_mirrored = SubResource("StyleBoxFlat_ubyga") +Button/styles/pressed = SubResource("StyleBoxFlat_dpijl") +Button/styles/pressed_mirrored = SubResource("StyleBoxFlat_dpijl") +CheckBox/colors/font_color = Color(0.786274, 0.786274, 0.786274, 1) +CheckBox/colors/font_disabled_color = Color(1, 1, 1, 0.35) +CheckBox/colors/font_focus_color = Color(0.893137, 0.893137, 0.893137, 1) +CheckBox/colors/font_hover_color = Color(0.893137, 0.893137, 0.893137, 1) +CheckBox/colors/font_hover_pressed_color = Color(0.481784, 0.690726, 0.972216, 1) +CheckBox/colors/font_outline_color = Color(0, 0, 0, 0) +CheckBox/colors/font_pressed_color = Color(0.337255, 0.619608, 1, 1) +CheckBox/colors/icon_disabled_color = Color(1, 1, 1, 0.4) +CheckBox/colors/icon_focus_color = Color(1.15, 1.15, 1.15, 1) +CheckBox/colors/icon_hover_color = Color(1.15, 1.15, 1.15, 1) +CheckBox/colors/icon_normal_color = Color(1, 1, 1, 1) +CheckBox/colors/icon_pressed_color = Color(0.387843, 0.712549, 1.15, 1) +CheckBox/constants/check_v_offset = 0 +CheckBox/constants/h_separation = 8 +CheckBox/constants/outline_size = 0 +CheckBox/icons/checked = null +CheckBox/icons/checked_disabled = null +CheckBox/icons/radio_checked = null +CheckBox/icons/radio_checked_disabled = null +CheckBox/icons/radio_unchecked = null +CheckBox/icons/radio_unchecked_disabled = null +CheckBox/icons/unchecked = null +CheckBox/icons/unchecked_disabled = null +CheckBox/styles/disabled = SubResource("StyleBoxFlat_o05gk") +CheckBox/styles/hover = SubResource("StyleBoxFlat_o05gk") +CheckBox/styles/hover_pressed = SubResource("StyleBoxFlat_o05gk") +CheckBox/styles/normal = SubResource("StyleBoxFlat_o05gk") +CheckBox/styles/pressed = SubResource("StyleBoxFlat_o05gk") +CheckButton/colors/font_color = Color(0.786274, 0.786274, 0.786274, 1) +CheckButton/colors/font_disabled_color = Color(1, 1, 1, 0.35) +CheckButton/colors/font_focus_color = Color(0.893137, 0.893137, 0.893137, 1) +CheckButton/colors/font_hover_color = Color(0.893137, 0.893137, 0.893137, 1) +CheckButton/colors/font_hover_pressed_color = Color(0.481784, 0.690726, 0.972216, 1) +CheckButton/colors/font_outline_color = Color(0, 0, 0, 0) +CheckButton/colors/font_pressed_color = Color(0.337255, 0.619608, 1, 1) +CheckButton/colors/icon_disabled_color = Color(1, 1, 1, 0.4) +CheckButton/colors/icon_focus_color = Color(1.15, 1.15, 1.15, 1) +CheckButton/colors/icon_hover_color = Color(1.15, 1.15, 1.15, 1) +CheckButton/colors/icon_normal_color = Color(1, 1, 1, 1) +CheckButton/colors/icon_pressed_color = Color(0.387843, 0.712549, 1.15, 1) +CheckButton/constants/check_v_offset = 0 +CheckButton/constants/h_separation = 8 +CheckButton/constants/outline_size = 0 +CheckButton/icons/checked = null +CheckButton/icons/checked_disabled = null +CheckButton/icons/checked_disabled_mirrored = null +CheckButton/icons/checked_mirrored = null +CheckButton/icons/unchecked = null +CheckButton/icons/unchecked_disabled = null +CheckButton/icons/unchecked_disabled_mirrored = null +CheckButton/icons/unchecked_mirrored = null +CheckButton/styles/disabled = SubResource("StyleBoxFlat_16230") +CheckButton/styles/hover = SubResource("StyleBoxFlat_16230") +CheckButton/styles/hover_pressed = SubResource("StyleBoxFlat_16230") +CheckButton/styles/normal = SubResource("StyleBoxFlat_16230") +CheckButton/styles/pressed = SubResource("StyleBoxFlat_16230") +CodeEdit/colors/background_color = Color(0, 0, 0, 0) +CodeEdit/colors/bookmark_color = Color(0.08, 0.49, 0.98, 1) +CodeEdit/colors/brace_mismatch_color = Color(1, 0.47, 0.42, 1) +CodeEdit/colors/breakpoint_color = Color(1, 0.47, 0.42, 1) +CodeEdit/colors/caret_color = Color(1, 1, 1, 1) +CodeEdit/colors/code_folding_color = Color(1, 1, 1, 0.27) +CodeEdit/colors/completion_background_color = Color(0.145098, 0.145098, 0.145098, 1) +CodeEdit/colors/completion_existing_color = Color(1, 1, 1, 0.14) +CodeEdit/colors/completion_scroll_color = Color(1, 1, 1, 0.29) +CodeEdit/colors/completion_scroll_hovered_color = Color(1, 1, 1, 0.4) +CodeEdit/colors/completion_selected_color = Color(1, 1, 1, 0.07) +CodeEdit/colors/current_line_color = Color(1, 1, 1, 0.07) +CodeEdit/colors/executing_line_color = Color(0.98, 0.89, 0.27, 1) +CodeEdit/colors/folded_code_region_color = Color(0.68, 0.46, 0.77, 0.2) +CodeEdit/colors/font_color = Color(0.786274, 0.786274, 0.786274, 1) +CodeEdit/colors/font_selected_color = Color(0, 0, 0, 0) +CodeEdit/colors/line_length_guideline_color = Color(0.145098, 0.145098, 0.145098, 1) +CodeEdit/colors/line_number_color = Color(0.786274, 0.786274, 0.786274, 0.5) +CodeEdit/colors/search_result_border_color = Color(0.41, 0.61, 0.91, 0.38) +CodeEdit/colors/search_result_color = Color(1, 1, 1, 0.07) +CodeEdit/colors/selection_color = Color(0.337255, 0.619608, 1, 0.4) +CodeEdit/colors/word_highlighted_color = Color(1, 1, 1, 0.07) +CodeEdit/constants/line_spacing = 4 +CodeEdit/font_sizes/font_size = 14 +CodeEdit/fonts/font = ExtResource("1_a74l0") +CodeEdit/icons/breakpoint = null +CodeEdit/icons/can_fold = null +CodeEdit/icons/can_fold_code_region = null +CodeEdit/icons/executing_line = null +CodeEdit/icons/folded = null +CodeEdit/icons/folded_code_region = null +CodeEdit/icons/space = null +CodeEdit/icons/tab = null +CodeEdit/styles/focus = SubResource("StyleBoxEmpty_kwn3x") +CodeEdit/styles/normal = SubResource("StyleBoxFlat_u1xj0") +CodeEdit/styles/read_only = SubResource("StyleBoxFlat_u1xj0") +ColorPicker/constants/center_slider_grabbers = 1 +ColorPicker/constants/h_width = 30 +ColorPicker/constants/label_width = 10 +ColorPicker/constants/margin = 4 +ColorPicker/constants/sv_height = 256 +ColorPicker/constants/sv_width = 256 +ColorPicker/icons/add_preset = null +ColorPicker/icons/bar_arrow = null +ColorPicker/icons/overbright_indicator = null +ColorPicker/icons/picker_cursor = null +ColorPicker/icons/sample_bg = null +ColorPicker/icons/sample_revert = null +ColorPicker/icons/screen_picker = null +ColorPicker/icons/shape_circle = null +ColorPicker/icons/shape_rect = null +ColorPicker/icons/shape_rect_wheel = null +ColorPickerButton/icons/bg = null +ColorPresetButton/icons/overbright_indicator = null +ColorPresetButton/icons/preset_bg = null +ColorPresetButton/styles/preset_fg = SubResource("StyleBoxFlat_j5ymm") +ControlEditorPopupPanel/styles/panel = SubResource("StyleBoxFlat_8i78e") +Editor/colors/accent_color = Color(0.337255, 0.619608, 1, 1) +Editor/colors/axis_w_color = Color(0.55, 0.55, 0.55, 1) +Editor/colors/axis_x_color = Color(0.96, 0.2, 0.32, 1) +Editor/colors/axis_y_color = Color(0.53, 0.84, 0.01, 1) +Editor/colors/axis_z_color = Color(0.16, 0.55, 0.96, 1) +Editor/colors/background = Color(0.1, 0.1, 0.1, 1) +Editor/colors/base_color = Color(0.145098, 0.145098, 0.145098, 1) +Editor/colors/box_selection_fill_color = Color(1, 1, 1, 0.117647) +Editor/colors/box_selection_stroke_color = Color(1, 1, 1, 0.352941) +Editor/colors/contrast_color_1 = Color(0.401569, 0.401569, 0.401569, 1) +Editor/colors/contrast_color_2 = Color(0.529804, 0.529804, 0.529804, 1) +Editor/colors/dark_color_1 = Color(0.116078, 0.116078, 0.116078, 1) +Editor/colors/dark_color_2 = Color(0, 0, 0, 0.196078) +Editor/colors/dark_color_3 = Color(0.0870588, 0.0870588, 0.0870588, 1) +Editor/colors/disabled_bg_color = Color(0.130588, 0.130588, 0.130588, 1) +Editor/colors/disabled_border_color = Color(0.101569, 0.101569, 0.101569, 1) +Editor/colors/disabled_font_color = Color(1, 1, 1, 0.35) +Editor/colors/disabled_highlight_color = Color(0.168628, 0.309804, 0.5, 0.6375) +Editor/colors/error_color = Color(1, 0.47, 0.42, 1) +Editor/colors/extra_border_color_1 = Color(0.5, 0.5, 0.5, 1) +Editor/colors/extra_border_color_2 = Color(0.3, 0.3, 0.3, 1) +Editor/colors/font_color = Color(0.786274, 0.786274, 0.786274, 1) +Editor/colors/font_disabled_color = Color(1, 1, 1, 0.35) +Editor/colors/font_focus_color = Color(0.893137, 0.893137, 0.893137, 1) +Editor/colors/font_hover_color = Color(0.893137, 0.893137, 0.893137, 1) +Editor/colors/font_hover_pressed_color = Color(0.481784, 0.690726, 0.972216, 1) +Editor/colors/font_outline_color = Color(0, 0, 0, 0) +Editor/colors/font_placeholder_color = Color(1, 1, 1, 0.6) +Editor/colors/font_pressed_color = Color(0.337255, 0.619608, 1, 1) +Editor/colors/font_readonly_color = Color(1, 1, 1, 0.65) +Editor/colors/forward_plus_color = Color(0.54902, 0.752941, 0.392157, 1) +Editor/colors/gl_compatibility_color = Color(0.447059, 0.698039, 0.890196, 1) +Editor/colors/highend_color = Color(1, 0, 0, 1) +Editor/colors/highlight_color = Color(0.337255, 0.619608, 1, 0.275) +Editor/colors/highlight_disabled_color = Color(0.168628, 0.309804, 0.5, 0.6375) +Editor/colors/highlighted_font_color = Color(0.893137, 0.893137, 0.893137, 1) +Editor/colors/icon_disabled_color = Color(1, 1, 1, 0.4) +Editor/colors/icon_focus_color = Color(1.15, 1.15, 1.15, 1) +Editor/colors/icon_hover_color = Color(1.15, 1.15, 1.15, 1) +Editor/colors/icon_normal_color = Color(1, 1, 1, 1) +Editor/colors/icon_pressed_color = Color(0.387843, 0.712549, 1.15, 1) +Editor/colors/icon_saturation = Color(1, 1, 1, 1) +Editor/colors/mobile_color = Color(0.862745, 0.482353, 0.584314, 1) +Editor/colors/mono_color = Color(1, 1, 1, 1) +Editor/colors/prop_category = Color(0.222149, 0.222149, 0.222149, 1) +Editor/colors/prop_section = Color(0.195631, 0.195631, 0.195631, 1) +Editor/colors/prop_subsection = Color(1, 1, 1, 0) +Editor/colors/property_color = Color(0.222149, 0.222149, 0.222149, 1) +Editor/colors/property_color_w = Color(0.989803, 0.898963, 0.738366, 1) +Editor/colors/property_color_x = Color(0.98, 0.5586, 0.649903, 1) +Editor/colors/property_color_y = Color(0.5978, 0.98, 0.69972, 1) +Editor/colors/property_color_z = Color(0.5358, 0.79853, 0.94, 1) +Editor/colors/readonly_color = Color(1, 1, 1, 0.65) +Editor/colors/readonly_font_color = Color(1, 1, 1, 0.65) +Editor/colors/selection_color = Color(0.337255, 0.619608, 1, 0.4) +Editor/colors/separator_color = Color(1, 1, 1, 0.1) +Editor/colors/success_color = Color(0.45, 0.95, 0.5, 1) +Editor/colors/warning_color = Color(0.77, 0.66528, 0.3773, 1) +Editor/constants/base_margin = 4 +Editor/constants/class_icon_size = 16 +Editor/constants/color_picker_button_height = 28 +Editor/constants/dark_theme = 1 +Editor/constants/gizmo_handle_scale = 1 +Editor/constants/increased_margin = 4 +Editor/constants/inspector_margin = 12 +Editor/constants/scale = 1 +Editor/constants/thumb_size = 64 +Editor/constants/top_bar_separation = 3 +Editor/constants/window_border_margin = 4 +EditorAbout/styles/panel = SubResource("StyleBoxFlat_qridr") +EditorFonts/font_sizes/bold_size = 14 +EditorFonts/font_sizes/doc_keyboard_size = 14 +EditorFonts/font_sizes/doc_size = 14 +EditorFonts/font_sizes/doc_source_size = 14 +EditorFonts/font_sizes/doc_title_size = 14 +EditorFonts/font_sizes/expression_size = 14 +EditorFonts/font_sizes/italic_size = 14 +EditorFonts/font_sizes/main_size = 14 +EditorFonts/font_sizes/output_source_size = 14 +EditorFonts/font_sizes/rotation_control_size = 14 +EditorFonts/font_sizes/rulers_size = 14 +EditorFonts/font_sizes/source_size = 14 +EditorFonts/font_sizes/status_source_size = 14 +EditorFonts/font_sizes/title_size = 14 +EditorFonts/fonts/bold = ExtResource("1_a74l0") +EditorFonts/fonts/doc = ExtResource("1_a74l0") +EditorFonts/fonts/doc_bold = ExtResource("1_a74l0") +EditorFonts/fonts/doc_italic = ExtResource("1_a74l0") +EditorFonts/fonts/doc_keyboard = ExtResource("1_a74l0") +EditorFonts/fonts/doc_source = ExtResource("1_a74l0") +EditorFonts/fonts/doc_title = ExtResource("1_a74l0") +EditorFonts/fonts/expression = ExtResource("1_a74l0") +EditorFonts/fonts/italic = ExtResource("1_a74l0") +EditorFonts/fonts/main = ExtResource("1_a74l0") +EditorFonts/fonts/main_bold_msdf = ExtResource("1_a74l0") +EditorFonts/fonts/main_msdf = ExtResource("1_a74l0") +EditorFonts/fonts/output_source = ExtResource("1_a74l0") +EditorFonts/fonts/output_source_bold = ExtResource("1_a74l0") +EditorFonts/fonts/output_source_bold_italic = ExtResource("1_a74l0") +EditorFonts/fonts/output_source_italic = ExtResource("1_a74l0") +EditorFonts/fonts/output_source_mono = ExtResource("1_a74l0") +EditorFonts/fonts/rotation_control = ExtResource("1_a74l0") +EditorFonts/fonts/rulers = ExtResource("1_a74l0") +EditorFonts/fonts/source = ExtResource("1_a74l0") +EditorFonts/fonts/status_source = ExtResource("1_a74l0") +EditorFonts/fonts/title = ExtResource("1_a74l0") +EditorHelp/colors/code_bg_color = Color(0.0870588, 0.0870588, 0.0870588, 1) +EditorHelp/colors/code_color = Color(0.734902, 0.847843, 1, 1) +EditorHelp/colors/comment_color = Color(0.786274, 0.786274, 0.786274, 0.6) +EditorHelp/colors/headline_color = Color(1, 1, 1, 1) +EditorHelp/colors/kbd_bg_color = Color(0.116078, 0.116078, 0.116078, 1) +EditorHelp/colors/kbd_color = Color(0.520784, 0.633726, 0.785882, 1) +EditorHelp/colors/link_color = Color(0.867451, 0.923922, 1, 1) +EditorHelp/colors/override_color = Color(1, 0.87, 0.4, 1) +EditorHelp/colors/param_bg_color = Color(0.116078, 0.116078, 0.116078, 1) +EditorHelp/colors/qualifier_color = Color(0.786274, 0.786274, 0.786274, 0.8) +EditorHelp/colors/selection_color = Color(0.337255, 0.619608, 1, 0.4) +EditorHelp/colors/symbol_color = Color(0.786274, 0.786274, 0.786274, 0.6) +EditorHelp/colors/text_color = Color(0.786274, 0.786274, 0.786274, 1) +EditorHelp/colors/title_color = Color(0.337255, 0.619608, 1, 1) +EditorHelp/colors/type_color = Color(0.561765, 0.702941, 0.893137, 1) +EditorHelp/colors/value_color = Color(0.786274, 0.786274, 0.786274, 0.6) +EditorHelp/constants/line_separation = 6 +EditorHelp/constants/table_h_separation = 16 +EditorHelp/constants/table_v_separation = 6 +EditorHelp/constants/text_highlight_h_padding = 1 +EditorHelp/constants/text_highlight_v_padding = 2 +EditorHelp/styles/background = SubResource("StyleBoxFlat_24s1k") +EditorHelpBitContent/styles/normal = SubResource("StyleBoxFlat_2305v") +EditorHelpBitTitle/styles/normal = SubResource("StyleBoxFlat_erijh") +EditorIcons/icons/2D = null +EditorIcons/icons/3D = null +EditorIcons/icons/AABB = null +EditorIcons/icons/AcceptDialog = null +EditorIcons/icons/ActionCopy = null +EditorIcons/icons/ActionCut = null +EditorIcons/icons/ActionPaste = null +EditorIcons/icons/Add = null +EditorIcons/icons/Anchor = null +EditorIcons/icons/AnimatableBody2D = null +EditorIcons/icons/AnimatableBody3D = null +EditorIcons/icons/AnimatedSprite2D = null +EditorIcons/icons/AnimatedSprite3D = null +EditorIcons/icons/AnimatedTexture = null +EditorIcons/icons/Animation = null +EditorIcons/icons/AnimationAutoFit = null +EditorIcons/icons/AnimationAutoFitBezier = null +EditorIcons/icons/AnimationFilter = null +EditorIcons/icons/AnimationLibrary = null +EditorIcons/icons/AnimationMixer = null +EditorIcons/icons/AnimationPlayer = null +EditorIcons/icons/AnimationTrackGroup = null +EditorIcons/icons/AnimationTrackList = null +EditorIcons/icons/AnimationTree = null +EditorIcons/icons/Area2D = null +EditorIcons/icons/Area3D = null +EditorIcons/icons/Array = null +EditorIcons/icons/ArrayMesh = null +EditorIcons/icons/ArrayOccluder3D = null +EditorIcons/icons/ArrowDown = null +EditorIcons/icons/ArrowLeft = null +EditorIcons/icons/ArrowRight = null +EditorIcons/icons/ArrowUp = null +EditorIcons/icons/AspectRatioContainer = null +EditorIcons/icons/AssetLib = null +EditorIcons/icons/AtlasTexture = null +EditorIcons/icons/AudioBusBypass = null +EditorIcons/icons/AudioBusLayout = null +EditorIcons/icons/AudioBusMute = null +EditorIcons/icons/AudioBusSolo = null +EditorIcons/icons/AudioListener2D = null +EditorIcons/icons/AudioListener3D = null +EditorIcons/icons/AudioStream = null +EditorIcons/icons/AudioStreamGenerator = null +EditorIcons/icons/AudioStreamMP3 = null +EditorIcons/icons/AudioStreamMicrophone = null +EditorIcons/icons/AudioStreamOggVorbis = null +EditorIcons/icons/AudioStreamPlayer = null +EditorIcons/icons/AudioStreamPlayer2D = null +EditorIcons/icons/AudioStreamPlayer3D = null +EditorIcons/icons/AudioStreamPolyphonic = null +EditorIcons/icons/AudioStreamRandomizer = null +EditorIcons/icons/AudioStreamWAV = null +EditorIcons/icons/AutoEnd = null +EditorIcons/icons/AutoKey = null +EditorIcons/icons/AutoPlay = null +EditorIcons/icons/AutoTriangle = null +EditorIcons/icons/Back = null +EditorIcons/icons/BackBufferCopy = null +EditorIcons/icons/Bake = null +EditorIcons/icons/BaseButton = null +EditorIcons/icons/Basis = null +EditorIcons/icons/BezierHandlesBalanced = null +EditorIcons/icons/BezierHandlesFree = null +EditorIcons/icons/BezierHandlesLinear = null +EditorIcons/icons/BezierHandlesMirror = null +EditorIcons/icons/BitMap = null +EditorIcons/icons/Blend = null +EditorIcons/icons/Bone = null +EditorIcons/icons/Bone2D = null +EditorIcons/icons/BoneAttachment3D = null +EditorIcons/icons/BoneMapHumanBody = null +EditorIcons/icons/BoneMapHumanFace = null +EditorIcons/icons/BoneMapHumanLeftHand = null +EditorIcons/icons/BoneMapHumanRightHand = null +EditorIcons/icons/BoneMapperHandle = null +EditorIcons/icons/BoneMapperHandleCircle = null +EditorIcons/icons/BoneMapperHandleSelected = null +EditorIcons/icons/BoxContainer = null +EditorIcons/icons/BoxMesh = null +EditorIcons/icons/BoxOccluder3D = null +EditorIcons/icons/BoxShape3D = null +EditorIcons/icons/Breakpoint = null +EditorIcons/icons/Bucket = null +EditorIcons/icons/BuildCSharp = null +EditorIcons/icons/BusVuActive = null +EditorIcons/icons/BusVuFrozen = null +EditorIcons/icons/Button = null +EditorIcons/icons/ButtonGroup = null +EditorIcons/icons/CPUParticles2D = null +EditorIcons/icons/CPUParticles3D = null +EditorIcons/icons/CSGBox3D = null +EditorIcons/icons/CSGCapsule3D = null +EditorIcons/icons/CSGCombiner3D = null +EditorIcons/icons/CSGCylinder3D = null +EditorIcons/icons/CSGMesh3D = null +EditorIcons/icons/CSGPolygon3D = null +EditorIcons/icons/CSGSphere3D = null +EditorIcons/icons/CSGTorus3D = null +EditorIcons/icons/CSharpScript = null +EditorIcons/icons/Callable = null +EditorIcons/icons/Camera2D = null +EditorIcons/icons/Camera3D = null +EditorIcons/icons/CameraAttributes = null +EditorIcons/icons/CameraAttributesPhysical = null +EditorIcons/icons/CameraAttributesPractical = null +EditorIcons/icons/CameraTexture = null +EditorIcons/icons/CanvasGroup = null +EditorIcons/icons/CanvasItem = null +EditorIcons/icons/CanvasItemMaterial = null +EditorIcons/icons/CanvasLayer = null +EditorIcons/icons/CanvasModulate = null +EditorIcons/icons/CanvasTexture = null +EditorIcons/icons/CapsuleMesh = null +EditorIcons/icons/CapsuleShape2D = null +EditorIcons/icons/CapsuleShape3D = null +EditorIcons/icons/CenterContainer = null +EditorIcons/icons/CenterView = null +EditorIcons/icons/CharacterBody2D = null +EditorIcons/icons/CharacterBody3D = null +EditorIcons/icons/CheckBox = null +EditorIcons/icons/CheckButton = null +EditorIcons/icons/Checkerboard = null +EditorIcons/icons/CircleShape2D = null +EditorIcons/icons/ClassList = null +EditorIcons/icons/Clear = null +EditorIcons/icons/Close = null +EditorIcons/icons/CodeEdit = null +EditorIcons/icons/CodeFoldDownArrow = null +EditorIcons/icons/CodeFoldedRightArrow = null +EditorIcons/icons/CodeHighlighter = null +EditorIcons/icons/CodeRegionFoldDownArrow = null +EditorIcons/icons/CodeRegionFoldedRightArrow = null +EditorIcons/icons/Collapse = null +EditorIcons/icons/CollapseTree = null +EditorIcons/icons/CollisionPolygon2D = null +EditorIcons/icons/CollisionPolygon3D = null +EditorIcons/icons/CollisionShape2D = null +EditorIcons/icons/CollisionShape3D = null +EditorIcons/icons/Color = null +EditorIcons/icons/ColorPick = null +EditorIcons/icons/ColorPicker = null +EditorIcons/icons/ColorPickerBarArrow = null +EditorIcons/icons/ColorPickerButton = null +EditorIcons/icons/ColorRect = null +EditorIcons/icons/ColorTrackVu = null +EditorIcons/icons/CombineLines = null +EditorIcons/icons/CompressedTexture2D = null +EditorIcons/icons/CompressedTexture3D = null +EditorIcons/icons/ConcavePolygonShape2D = null +EditorIcons/icons/ConcavePolygonShape3D = null +EditorIcons/icons/ConeTwistJoint3D = null +EditorIcons/icons/ConfirmationDialog = null +EditorIcons/icons/Container = null +EditorIcons/icons/ContainerLayout = null +EditorIcons/icons/Control = null +EditorIcons/icons/ControlAlignBottomLeft = null +EditorIcons/icons/ControlAlignBottomRight = null +EditorIcons/icons/ControlAlignBottomWide = null +EditorIcons/icons/ControlAlignCenter = null +EditorIcons/icons/ControlAlignCenterBottom = null +EditorIcons/icons/ControlAlignCenterLeft = null +EditorIcons/icons/ControlAlignCenterRight = null +EditorIcons/icons/ControlAlignCenterTop = null +EditorIcons/icons/ControlAlignFullRect = null +EditorIcons/icons/ControlAlignHCenterWide = null +EditorIcons/icons/ControlAlignLeftWide = null +EditorIcons/icons/ControlAlignRightWide = null +EditorIcons/icons/ControlAlignTopLeft = null +EditorIcons/icons/ControlAlignTopRight = null +EditorIcons/icons/ControlAlignTopWide = null +EditorIcons/icons/ControlAlignVCenterWide = null +EditorIcons/icons/ControlLayout = null +EditorIcons/icons/ConvexPolygonShape2D = null +EditorIcons/icons/ConvexPolygonShape3D = null +EditorIcons/icons/CopyNodePath = null +EditorIcons/icons/CreateNewSceneFrom = null +EditorIcons/icons/CryptoKey = null +EditorIcons/icons/Cubemap = null +EditorIcons/icons/CubemapArray = null +EditorIcons/icons/Curve = null +EditorIcons/icons/Curve2D = null +EditorIcons/icons/Curve3D = null +EditorIcons/icons/CurveClose = null +EditorIcons/icons/CurveConstant = null +EditorIcons/icons/CurveCreate = null +EditorIcons/icons/CurveCurve = null +EditorIcons/icons/CurveDelete = null +EditorIcons/icons/CurveEdit = null +EditorIcons/icons/CurveIn = null +EditorIcons/icons/CurveInOut = null +EditorIcons/icons/CurveLinear = null +EditorIcons/icons/CurveOut = null +EditorIcons/icons/CurveOutIn = null +EditorIcons/icons/CurveTexture = null +EditorIcons/icons/CurveTilt = null +EditorIcons/icons/CurveXYZTexture = null +EditorIcons/icons/CylinderMesh = null +EditorIcons/icons/CylinderShape3D = null +EditorIcons/icons/DampedSpringJoint2D = null +EditorIcons/icons/Debug = null +EditorIcons/icons/DebugContinue = null +EditorIcons/icons/DebugNext = null +EditorIcons/icons/DebugSkipBreakpointsOff = null +EditorIcons/icons/DebugSkipBreakpointsOn = null +EditorIcons/icons/DebugStep = null +EditorIcons/icons/Decal = null +EditorIcons/icons/DefaultProjectIcon = null +EditorIcons/icons/Dictionary = null +EditorIcons/icons/DirAccess = null +EditorIcons/icons/DirectionalLight2D = null +EditorIcons/icons/DirectionalLight3D = null +EditorIcons/icons/DistractionFree = null +EditorIcons/icons/Duplicate = null +EditorIcons/icons/Edit = null +EditorIcons/icons/EditAddRemove = null +EditorIcons/icons/EditBezier = null +EditorIcons/icons/EditInternal = null +EditorIcons/icons/EditKey = null +EditorIcons/icons/EditPivot = null +EditorIcons/icons/Editor3DHandle = null +EditorIcons/icons/EditorBoneHandle = null +EditorIcons/icons/EditorControlAnchor = null +EditorIcons/icons/EditorCurveHandle = null +EditorIcons/icons/EditorFileDialog = null +EditorIcons/icons/EditorHandle = null +EditorIcons/icons/EditorHandleAdd = null +EditorIcons/icons/EditorHandleDisabled = null +EditorIcons/icons/EditorPathSharpHandle = null +EditorIcons/icons/EditorPathSmoothHandle = null +EditorIcons/icons/EditorPivot = null +EditorIcons/icons/EditorPlugin = null +EditorIcons/icons/EditorPosition = null +EditorIcons/icons/EditorPositionPrevious = null +EditorIcons/icons/EditorPositionUnselected = null +EditorIcons/icons/Enum = null +EditorIcons/icons/Environment = null +EditorIcons/icons/Eraser = null +EditorIcons/icons/Error = null +EditorIcons/icons/ErrorWarning = null +EditorIcons/icons/ExpandBottomDock = null +EditorIcons/icons/ExpandTree = null +EditorIcons/icons/ExternalLink = null +EditorIcons/icons/FadeCross = null +EditorIcons/icons/FadeDisabled = null +EditorIcons/icons/FadeIn = null +EditorIcons/icons/FadeOut = null +EditorIcons/icons/Favorites = null +EditorIcons/icons/File = null +EditorIcons/icons/FileAccess = null +EditorIcons/icons/FileBigThumb = null +EditorIcons/icons/FileBroken = null +EditorIcons/icons/FileBrokenBigThumb = null +EditorIcons/icons/FileBrowse = null +EditorIcons/icons/FileDead = null +EditorIcons/icons/FileDeadBigThumb = null +EditorIcons/icons/FileDeadMediumThumb = null +EditorIcons/icons/FileDialog = null +EditorIcons/icons/FileList = null +EditorIcons/icons/FileMediumThumb = null +EditorIcons/icons/FileThumbnail = null +EditorIcons/icons/FileTree = null +EditorIcons/icons/Filesystem = null +EditorIcons/icons/FlowContainer = null +EditorIcons/icons/FogMaterial = null +EditorIcons/icons/FogVolume = null +EditorIcons/icons/Folder = null +EditorIcons/icons/FolderBigThumb = null +EditorIcons/icons/FolderBrowse = null +EditorIcons/icons/FolderCreate = null +EditorIcons/icons/FolderMediumThumb = null +EditorIcons/icons/Font = null +EditorIcons/icons/FontFile = null +EditorIcons/icons/FontItem = null +EditorIcons/icons/FontSize = null +EditorIcons/icons/FontVariation = null +EditorIcons/icons/Forward = null +EditorIcons/icons/GDScript = null +EditorIcons/icons/GDScriptInternal = null +EditorIcons/icons/GPUParticles2D = null +EditorIcons/icons/GPUParticles3D = null +EditorIcons/icons/GPUParticlesAttractorBox3D = null +EditorIcons/icons/GPUParticlesAttractorSphere3D = null +EditorIcons/icons/GPUParticlesAttractorVectorField3D = null +EditorIcons/icons/GPUParticlesCollisionBox3D = null +EditorIcons/icons/GPUParticlesCollisionHeightField3D = null +EditorIcons/icons/GPUParticlesCollisionSDF3D = null +EditorIcons/icons/GPUParticlesCollisionSphere3D = null +EditorIcons/icons/Generic6DOFJoint3D = null +EditorIcons/icons/GeometryInstance3D = null +EditorIcons/icons/Gizmo3DSamplePlayer = null +EditorIcons/icons/GizmoAudioListener3D = null +EditorIcons/icons/GizmoCPUParticles3D = null +EditorIcons/icons/GizmoCamera3D = null +EditorIcons/icons/GizmoDecal = null +EditorIcons/icons/GizmoDirectionalLight = null +EditorIcons/icons/GizmoFogVolume = null +EditorIcons/icons/GizmoGPUParticles3D = null +EditorIcons/icons/GizmoLight = null +EditorIcons/icons/GizmoLightmapGI = null +EditorIcons/icons/GizmoLightmapProbe = null +EditorIcons/icons/GizmoReflectionProbe = null +EditorIcons/icons/GizmoSpotLight = null +EditorIcons/icons/GizmoVoxelGI = null +EditorIcons/icons/Godot = null +EditorIcons/icons/GodotFile = null +EditorIcons/icons/GodotMonochrome = null +EditorIcons/icons/Gradient = null +EditorIcons/icons/GradientTexture1D = null +EditorIcons/icons/GradientTexture2D = null +EditorIcons/icons/GraphEdit = null +EditorIcons/icons/GraphElement = null +EditorIcons/icons/GraphFrame = null +EditorIcons/icons/GraphNode = null +EditorIcons/icons/Grid = null +EditorIcons/icons/GridContainer = null +EditorIcons/icons/GridLayout = null +EditorIcons/icons/GridMap = null +EditorIcons/icons/GridMinimap = null +EditorIcons/icons/GridToggle = null +EditorIcons/icons/GrooveJoint2D = null +EditorIcons/icons/Group = null +EditorIcons/icons/GroupViewport = null +EditorIcons/icons/Groups = null +EditorIcons/icons/GuiChecked = null +EditorIcons/icons/GuiCheckedDisabled = null +EditorIcons/icons/GuiClose = null +EditorIcons/icons/GuiDropdown = null +EditorIcons/icons/GuiEllipsis = null +EditorIcons/icons/GuiGraphNodePort = null +EditorIcons/icons/GuiHsplitter = null +EditorIcons/icons/GuiIndeterminate = null +EditorIcons/icons/GuiIndeterminateDisabled = null +EditorIcons/icons/GuiMiniCheckerboard = null +EditorIcons/icons/GuiOptionArrow = null +EditorIcons/icons/GuiProgressBar = null +EditorIcons/icons/GuiProgressFill = null +EditorIcons/icons/GuiRadioChecked = null +EditorIcons/icons/GuiRadioCheckedDisabled = null +EditorIcons/icons/GuiRadioUnchecked = null +EditorIcons/icons/GuiRadioUncheckedDisabled = null +EditorIcons/icons/GuiResizer = null +EditorIcons/icons/GuiResizerTopLeft = null +EditorIcons/icons/GuiScrollArrowLeft = null +EditorIcons/icons/GuiScrollArrowLeftHl = null +EditorIcons/icons/GuiScrollArrowRight = null +EditorIcons/icons/GuiScrollArrowRightHl = null +EditorIcons/icons/GuiScrollBg = null +EditorIcons/icons/GuiScrollGrabber = null +EditorIcons/icons/GuiScrollGrabberHl = null +EditorIcons/icons/GuiScrollGrabberPressed = null +EditorIcons/icons/GuiSliderGrabber = null +EditorIcons/icons/GuiSliderGrabberHl = null +EditorIcons/icons/GuiSpace = null +EditorIcons/icons/GuiSpinboxUpdown = null +EditorIcons/icons/GuiSpinboxUpdownDisabled = null +EditorIcons/icons/GuiTab = null +EditorIcons/icons/GuiTabDropMark = null +EditorIcons/icons/GuiTabMenu = null +EditorIcons/icons/GuiTabMenuHl = null +EditorIcons/icons/GuiToggleOff = null +EditorIcons/icons/GuiToggleOffDisabled = null +EditorIcons/icons/GuiToggleOffDisabledMirrored = null +EditorIcons/icons/GuiToggleOffMirrored = null +EditorIcons/icons/GuiToggleOn = null +EditorIcons/icons/GuiToggleOnDisabled = null +EditorIcons/icons/GuiToggleOnDisabledMirrored = null +EditorIcons/icons/GuiToggleOnMirrored = null +EditorIcons/icons/GuiTreeArrowDown = null +EditorIcons/icons/GuiTreeArrowLeft = null +EditorIcons/icons/GuiTreeArrowRight = null +EditorIcons/icons/GuiTreeUpdown = null +EditorIcons/icons/GuiUnchecked = null +EditorIcons/icons/GuiUncheckedDisabled = null +EditorIcons/icons/GuiViewportHdiagsplitter = null +EditorIcons/icons/GuiViewportVdiagsplitter = null +EditorIcons/icons/GuiViewportVhsplitter = null +EditorIcons/icons/GuiVisibilityHidden = null +EditorIcons/icons/GuiVisibilityVisible = null +EditorIcons/icons/GuiVisibilityXray = null +EditorIcons/icons/GuiVsplitter = null +EditorIcons/icons/HBoxContainer = null +EditorIcons/icons/HFlowContainer = null +EditorIcons/icons/HScrollBar = null +EditorIcons/icons/HSeparator = null +EditorIcons/icons/HSlider = null +EditorIcons/icons/HSplitContainer = null +EditorIcons/icons/HTTPRequest = null +EditorIcons/icons/Heart = null +EditorIcons/icons/HeightMapShape3D = null +EditorIcons/icons/Help = null +EditorIcons/icons/HelpSearch = null +EditorIcons/icons/HingeJoint3D = null +EditorIcons/icons/History = null +EditorIcons/icons/Hsize = null +EditorIcons/icons/IOSDeviceWired = null +EditorIcons/icons/IOSDeviceWireless = null +EditorIcons/icons/IOSSimulator = null +EditorIcons/icons/Image = null +EditorIcons/icons/ImageTexture = null +EditorIcons/icons/ImageTexture3D = null +EditorIcons/icons/ImmediateMesh = null +EditorIcons/icons/ImportCheck = null +EditorIcons/icons/ImportFail = null +EditorIcons/icons/ImporterMeshInstance3D = null +EditorIcons/icons/Info = null +EditorIcons/icons/InputEventAction = null +EditorIcons/icons/InputEventJoypadButton = null +EditorIcons/icons/InputEventJoypadMotion = null +EditorIcons/icons/InputEventKey = null +EditorIcons/icons/InputEventMIDI = null +EditorIcons/icons/InputEventMagnifyGesture = null +EditorIcons/icons/InputEventMouseButton = null +EditorIcons/icons/InputEventMouseMotion = null +EditorIcons/icons/InputEventPanGesture = null +EditorIcons/icons/InputEventScreenDrag = null +EditorIcons/icons/InputEventScreenTouch = null +EditorIcons/icons/InputEventShortcut = null +EditorIcons/icons/InsertAfter = null +EditorIcons/icons/InsertBefore = null +EditorIcons/icons/Instance = null +EditorIcons/icons/InstanceOptions = null +EditorIcons/icons/InterpCubic = null +EditorIcons/icons/InterpCubicAngle = null +EditorIcons/icons/InterpLinear = null +EditorIcons/icons/InterpLinearAngle = null +EditorIcons/icons/InterpRaw = null +EditorIcons/icons/InterpWrapClamp = null +EditorIcons/icons/InterpWrapLoop = null +EditorIcons/icons/ItemList = null +EditorIcons/icons/JoyAxis = null +EditorIcons/icons/JoyButton = null +EditorIcons/icons/Joypad = null +EditorIcons/icons/Key = null +EditorIcons/icons/KeyAnimation = null +EditorIcons/icons/KeyAudio = null +EditorIcons/icons/KeyBezier = null +EditorIcons/icons/KeyBezierHandle = null +EditorIcons/icons/KeyBezierPoint = null +EditorIcons/icons/KeyBezierSelected = null +EditorIcons/icons/KeyBlendShape = null +EditorIcons/icons/KeyCall = null +EditorIcons/icons/KeyEasedSelected = null +EditorIcons/icons/KeyInvalid = null +EditorIcons/icons/KeyNext = null +EditorIcons/icons/KeyPosition = null +EditorIcons/icons/KeyRotation = null +EditorIcons/icons/KeyScale = null +EditorIcons/icons/KeySelected = null +EditorIcons/icons/KeyTrackBlendShape = null +EditorIcons/icons/KeyTrackPosition = null +EditorIcons/icons/KeyTrackRotation = null +EditorIcons/icons/KeyTrackScale = null +EditorIcons/icons/KeyValue = null +EditorIcons/icons/KeyValueEased = null +EditorIcons/icons/KeyXPosition = null +EditorIcons/icons/KeyXRotation = null +EditorIcons/icons/KeyXScale = null +EditorIcons/icons/Keyboard = null +EditorIcons/icons/KeyboardError = null +EditorIcons/icons/KeyboardLabel = null +EditorIcons/icons/KeyboardPhysical = null +EditorIcons/icons/Label = null +EditorIcons/icons/Label3D = null +EditorIcons/icons/LabelSettings = null +EditorIcons/icons/LightOccluder2D = null +EditorIcons/icons/LightmapGI = null +EditorIcons/icons/LightmapGIData = null +EditorIcons/icons/LightmapProbe = null +EditorIcons/icons/Line = null +EditorIcons/icons/Line2D = null +EditorIcons/icons/LineEdit = null +EditorIcons/icons/LinkButton = null +EditorIcons/icons/ListSelect = null +EditorIcons/icons/Load = null +EditorIcons/icons/Lock = null +EditorIcons/icons/LockViewport = null +EditorIcons/icons/Logo = null +EditorIcons/icons/Loop = null +EditorIcons/icons/MainMovieWrite = null +EditorIcons/icons/MainPlay = null +EditorIcons/icons/MakeFloating = null +EditorIcons/icons/MarginContainer = null +EditorIcons/icons/Marker2D = null +EditorIcons/icons/Marker3D = null +EditorIcons/icons/MatchCase = null +EditorIcons/icons/MaterialPreviewCube = null +EditorIcons/icons/MaterialPreviewLight1 = null +EditorIcons/icons/MaterialPreviewLight2 = null +EditorIcons/icons/MaterialPreviewSphere = null +EditorIcons/icons/MemberAnnotation = null +EditorIcons/icons/MemberConstant = null +EditorIcons/icons/MemberMethod = null +EditorIcons/icons/MemberProperty = null +EditorIcons/icons/MemberSignal = null +EditorIcons/icons/MemberTheme = null +EditorIcons/icons/MenuBar = null +EditorIcons/icons/MenuButton = null +EditorIcons/icons/Mesh = null +EditorIcons/icons/MeshInstance2D = null +EditorIcons/icons/MeshInstance3D = null +EditorIcons/icons/MeshItem = null +EditorIcons/icons/MeshLibrary = null +EditorIcons/icons/MeshTexture = null +EditorIcons/icons/MethodOverride = null +EditorIcons/icons/MethodOverrideAndSlot = null +EditorIcons/icons/MiniObject = null +EditorIcons/icons/MirrorX = null +EditorIcons/icons/MirrorY = null +EditorIcons/icons/MissingNode = null +EditorIcons/icons/MissingResource = null +EditorIcons/icons/Mouse = null +EditorIcons/icons/MoveDown = null +EditorIcons/icons/MoveLeft = null +EditorIcons/icons/MovePoint = null +EditorIcons/icons/MoveRight = null +EditorIcons/icons/MoveUp = null +EditorIcons/icons/MultiMesh = null +EditorIcons/icons/MultiMeshInstance2D = null +EditorIcons/icons/MultiMeshInstance3D = null +EditorIcons/icons/MultiplayerSpawner = null +EditorIcons/icons/MultiplayerSynchronizer = null +EditorIcons/icons/NavigationAgent2D = null +EditorIcons/icons/NavigationAgent3D = null +EditorIcons/icons/NavigationLink2D = null +EditorIcons/icons/NavigationLink3D = null +EditorIcons/icons/NavigationMesh = null +EditorIcons/icons/NavigationObstacle2D = null +EditorIcons/icons/NavigationObstacle3D = null +EditorIcons/icons/NavigationPolygon = null +EditorIcons/icons/NavigationRegion2D = null +EditorIcons/icons/NavigationRegion3D = null +EditorIcons/icons/New = null +EditorIcons/icons/NewKey = null +EditorIcons/icons/NewRoot = null +EditorIcons/icons/Nil = null +EditorIcons/icons/NinePatchRect = null +EditorIcons/icons/Node = null +EditorIcons/icons/Node2D = null +EditorIcons/icons/Node3D = null +EditorIcons/icons/NodeDisabled = null +EditorIcons/icons/NodeInfo = null +EditorIcons/icons/NodePath = null +EditorIcons/icons/NodeWarning = null +EditorIcons/icons/NodeWarnings2 = null +EditorIcons/icons/NodeWarnings3 = null +EditorIcons/icons/NodeWarnings4Plus = null +EditorIcons/icons/NoiseTexture2D = null +EditorIcons/icons/NoiseTexture3D = null +EditorIcons/icons/NonFavorite = null +EditorIcons/icons/Notification = null +EditorIcons/icons/NotificationDisabled = null +EditorIcons/icons/ORMMaterial3D = null +EditorIcons/icons/Object = null +EditorIcons/icons/ObjectDisabled = null +EditorIcons/icons/Occluder3D = null +EditorIcons/icons/OccluderInstance3D = null +EditorIcons/icons/OccluderPolygon2D = null +EditorIcons/icons/OmniLight3D = null +EditorIcons/icons/OneWayTile = null +EditorIcons/icons/Onion = null +EditorIcons/icons/OptionButton = null +EditorIcons/icons/OverbrightIndicator = null +EditorIcons/icons/Override = null +EditorIcons/icons/PackedByteArray = null +EditorIcons/icons/PackedColorArray = null +EditorIcons/icons/PackedDataContainer = null +EditorIcons/icons/PackedFloat32Array = null +EditorIcons/icons/PackedFloat64Array = null +EditorIcons/icons/PackedInt32Array = null +EditorIcons/icons/PackedInt64Array = null +EditorIcons/icons/PackedScene = null +EditorIcons/icons/PackedStringArray = null +EditorIcons/icons/PackedVector2Array = null +EditorIcons/icons/PackedVector3Array = null +EditorIcons/icons/PackedVector4Array = null +EditorIcons/icons/PageFirst = null +EditorIcons/icons/PageLast = null +EditorIcons/icons/PageNext = null +EditorIcons/icons/PagePrevious = null +EditorIcons/icons/Paint = null +EditorIcons/icons/Panel = null +EditorIcons/icons/PanelContainer = null +EditorIcons/icons/Panels1 = null +EditorIcons/icons/Panels2 = null +EditorIcons/icons/Panels2Alt = null +EditorIcons/icons/Panels3 = null +EditorIcons/icons/Panels3Alt = null +EditorIcons/icons/Panels4 = null +EditorIcons/icons/PanoramaSkyMaterial = null +EditorIcons/icons/Parallax2D = null +EditorIcons/icons/ParallaxBackground = null +EditorIcons/icons/ParallaxLayer = null +EditorIcons/icons/ParticleProcessMaterial = null +EditorIcons/icons/Path2D = null +EditorIcons/icons/Path3D = null +EditorIcons/icons/PathFollow2D = null +EditorIcons/icons/PathFollow3D = null +EditorIcons/icons/Pause = null +EditorIcons/icons/Performance = null +EditorIcons/icons/PhysicalBone2D = null +EditorIcons/icons/PhysicalBone3D = null +EditorIcons/icons/PhysicalBoneSimulator3D = null +EditorIcons/icons/PhysicalSkyMaterial = null +EditorIcons/icons/PhysicsMaterial = null +EditorIcons/icons/PickerCursor = null +EditorIcons/icons/PickerShapeCircle = null +EditorIcons/icons/PickerShapeRectangle = null +EditorIcons/icons/PickerShapeRectangleWheel = null +EditorIcons/icons/Pin = null +EditorIcons/icons/PinJoint2D = null +EditorIcons/icons/PinJoint3D = null +EditorIcons/icons/PinPressed = null +EditorIcons/icons/PingPongLoop = null +EditorIcons/icons/PlaceholderMaterial = null +EditorIcons/icons/PlaceholderMesh = null +EditorIcons/icons/PlaceholderTexture2D = null +EditorIcons/icons/PlaceholderTexture3D = null +EditorIcons/icons/Plane = null +EditorIcons/icons/PlaneMesh = null +EditorIcons/icons/Play = null +EditorIcons/icons/PlayBackwards = null +EditorIcons/icons/PlayCustom = null +EditorIcons/icons/PlayOverlay = null +EditorIcons/icons/PlayRemote = null +EditorIcons/icons/PlayScene = null +EditorIcons/icons/PlayStart = null +EditorIcons/icons/PlayStartBackwards = null +EditorIcons/icons/PlayTravel = null +EditorIcons/icons/PluginScript = null +EditorIcons/icons/PointLight2D = null +EditorIcons/icons/PointMesh = null +EditorIcons/icons/Polygon2D = null +EditorIcons/icons/PolygonOccluder3D = null +EditorIcons/icons/PolygonPathFinder = null +EditorIcons/icons/Popup = null +EditorIcons/icons/PopupMenu = null +EditorIcons/icons/PopupPanel = null +EditorIcons/icons/PortableCompressedTexture2D = null +EditorIcons/icons/PreviewEnvironment = null +EditorIcons/icons/PreviewRotate = null +EditorIcons/icons/PreviewSun = null +EditorIcons/icons/PrismMesh = null +EditorIcons/icons/ProceduralSkyMaterial = null +EditorIcons/icons/Progress1 = null +EditorIcons/icons/Progress2 = null +EditorIcons/icons/Progress3 = null +EditorIcons/icons/Progress4 = null +EditorIcons/icons/Progress5 = null +EditorIcons/icons/Progress6 = null +EditorIcons/icons/Progress7 = null +EditorIcons/icons/Progress8 = null +EditorIcons/icons/ProgressBar = null +EditorIcons/icons/ProjectIconLoading = null +EditorIcons/icons/ProjectList = null +EditorIcons/icons/Projection = null +EditorIcons/icons/Quad = null +EditorIcons/icons/QuadMesh = null +EditorIcons/icons/QuadOccluder3D = null +EditorIcons/icons/Quaternion = null +EditorIcons/icons/RID = null +EditorIcons/icons/RandomNumberGenerator = null +EditorIcons/icons/Range = null +EditorIcons/icons/RangeSliderLeft = null +EditorIcons/icons/RangeSliderRight = null +EditorIcons/icons/RayCast2D = null +EditorIcons/icons/RayCast3D = null +EditorIcons/icons/Rect2 = null +EditorIcons/icons/Rect2i = null +EditorIcons/icons/Rectangle = null +EditorIcons/icons/RectangleShape2D = null +EditorIcons/icons/ReferenceRect = null +EditorIcons/icons/ReflectionProbe = null +EditorIcons/icons/RegEx = null +EditorIcons/icons/RegExMatch = null +EditorIcons/icons/RegionEdit = null +EditorIcons/icons/Reload = null +EditorIcons/icons/ReloadSmall = null +EditorIcons/icons/RemoteTransform2D = null +EditorIcons/icons/RemoteTransform3D = null +EditorIcons/icons/Remove = null +EditorIcons/icons/RemoveInternal = null +EditorIcons/icons/Rename = null +EditorIcons/icons/Reparent = null +EditorIcons/icons/ReparentToNewNode = null +EditorIcons/icons/ResourcePreloader = null +EditorIcons/icons/ReverseGradient = null +EditorIcons/icons/RibbonTrailMesh = null +EditorIcons/icons/RichTextEffect = null +EditorIcons/icons/RichTextLabel = null +EditorIcons/icons/RigidBody2D = null +EditorIcons/icons/RigidBody3D = null +EditorIcons/icons/RootMotionView = null +EditorIcons/icons/RotateLeft = null +EditorIcons/icons/RotateRight = null +EditorIcons/icons/Ruler = null +EditorIcons/icons/SampleLibrary = null +EditorIcons/icons/Save = null +EditorIcons/icons/SceneUniqueName = null +EditorIcons/icons/Script = null +EditorIcons/icons/ScriptCreate = null +EditorIcons/icons/ScriptCreateDialog = null +EditorIcons/icons/ScriptExtend = null +EditorIcons/icons/ScriptRemove = null +EditorIcons/icons/ScrollContainer = null +EditorIcons/icons/Search = null +EditorIcons/icons/SegmentShape2D = null +EditorIcons/icons/SeparationRayShape2D = null +EditorIcons/icons/SeparationRayShape3D = null +EditorIcons/icons/Shader = null +EditorIcons/icons/ShaderGlobalsOverride = null +EditorIcons/icons/ShaderInclude = null +EditorIcons/icons/ShaderMaterial = null +EditorIcons/icons/ShapeCast2D = null +EditorIcons/icons/ShapeCast3D = null +EditorIcons/icons/Shortcut = null +EditorIcons/icons/ShowInFileSystem = null +EditorIcons/icons/Signal = null +EditorIcons/icons/Signals = null +EditorIcons/icons/SignalsAndGroups = null +EditorIcons/icons/Skeleton2D = null +EditorIcons/icons/Skeleton3D = null +EditorIcons/icons/SkeletonIK3D = null +EditorIcons/icons/SkeletonModifier3D = null +EditorIcons/icons/Sky = null +EditorIcons/icons/SliderJoint3D = null +EditorIcons/icons/Slot = null +EditorIcons/icons/Snap = null +EditorIcons/icons/SnapDisable = null +EditorIcons/icons/SnapGrid = null +EditorIcons/icons/SoftBody3D = null +EditorIcons/icons/Sort = null +EditorIcons/icons/SphereMesh = null +EditorIcons/icons/SphereOccluder3D = null +EditorIcons/icons/SphereShape3D = null +EditorIcons/icons/SpinBox = null +EditorIcons/icons/SplitContainer = null +EditorIcons/icons/SpotLight3D = null +EditorIcons/icons/SpringArm3D = null +EditorIcons/icons/Sprite2D = null +EditorIcons/icons/Sprite3D = null +EditorIcons/icons/SpriteFrames = null +EditorIcons/icons/SpriteSheet = null +EditorIcons/icons/StandardMaterial3D = null +EditorIcons/icons/StaticBody2D = null +EditorIcons/icons/StaticBody3D = null +EditorIcons/icons/StatusError = null +EditorIcons/icons/StatusIndicator = null +EditorIcons/icons/StatusSuccess = null +EditorIcons/icons/StatusWarning = null +EditorIcons/icons/Stop = null +EditorIcons/icons/String = null +EditorIcons/icons/StringName = null +EditorIcons/icons/StyleBoxEmpty = null +EditorIcons/icons/StyleBoxFlat = null +EditorIcons/icons/StyleBoxGrid = null +EditorIcons/icons/StyleBoxLine = null +EditorIcons/icons/StyleBoxTexture = null +EditorIcons/icons/SubViewport = null +EditorIcons/icons/SubViewportContainer = null +EditorIcons/icons/SyntaxHighlighter = null +EditorIcons/icons/SystemFont = null +EditorIcons/icons/TabBar = null +EditorIcons/icons/TabContainer = null +EditorIcons/icons/Terminal = null +EditorIcons/icons/TerrainConnect = null +EditorIcons/icons/TerrainMatchCorners = null +EditorIcons/icons/TerrainMatchCornersAndSides = null +EditorIcons/icons/TerrainMatchSides = null +EditorIcons/icons/TerrainPath = null +EditorIcons/icons/TextEdit = null +EditorIcons/icons/TextEditorPlay = null +EditorIcons/icons/TextFile = null +EditorIcons/icons/TextMesh = null +EditorIcons/icons/Texture2D = null +EditorIcons/icons/Texture2DArray = null +EditorIcons/icons/Texture3D = null +EditorIcons/icons/TextureButton = null +EditorIcons/icons/TextureProgressBar = null +EditorIcons/icons/TextureRect = null +EditorIcons/icons/Theme = null +EditorIcons/icons/ThemeDeselectAll = null +EditorIcons/icons/ThemeRemoveAllItems = null +EditorIcons/icons/ThemeRemoveCustomItems = null +EditorIcons/icons/ThemeSelectAll = null +EditorIcons/icons/ThemeSelectFull = null +EditorIcons/icons/ThumbnailWait = null +EditorIcons/icons/TileChecked = null +EditorIcons/icons/TileMap = null +EditorIcons/icons/TileMapHighlightSelected = null +EditorIcons/icons/TileMapLayer = null +EditorIcons/icons/TileSelection = null +EditorIcons/icons/TileSet = null +EditorIcons/icons/TileUnchecked = null +EditorIcons/icons/Time = null +EditorIcons/icons/TimelineIndicator = null +EditorIcons/icons/Timer = null +EditorIcons/icons/TitleBarLogo = null +EditorIcons/icons/ToolAddNode = null +EditorIcons/icons/ToolBoneSelect = null +EditorIcons/icons/ToolConnect = null +EditorIcons/icons/ToolMove = null +EditorIcons/icons/ToolPan = null +EditorIcons/icons/ToolRotate = null +EditorIcons/icons/ToolScale = null +EditorIcons/icons/ToolSelect = null +EditorIcons/icons/ToolTriangle = null +EditorIcons/icons/Tools = null +EditorIcons/icons/TorusMesh = null +EditorIcons/icons/TouchScreenButton = null +EditorIcons/icons/TrackCapture = null +EditorIcons/icons/TrackColor = null +EditorIcons/icons/TrackContinuous = null +EditorIcons/icons/TrackDiscrete = null +EditorIcons/icons/Transform2D = null +EditorIcons/icons/Transform3D = null +EditorIcons/icons/TransitionEnd = null +EditorIcons/icons/TransitionEndAuto = null +EditorIcons/icons/TransitionEndAutoBig = null +EditorIcons/icons/TransitionEndBig = null +EditorIcons/icons/TransitionImmediate = null +EditorIcons/icons/TransitionImmediateAuto = null +EditorIcons/icons/TransitionImmediateAutoBig = null +EditorIcons/icons/TransitionImmediateBig = null +EditorIcons/icons/TransitionSync = null +EditorIcons/icons/TransitionSyncAuto = null +EditorIcons/icons/TransitionSyncAutoBig = null +EditorIcons/icons/TransitionSyncBig = null +EditorIcons/icons/Translation = null +EditorIcons/icons/Tree = null +EditorIcons/icons/TripleBar = null +EditorIcons/icons/TubeTrailMesh = null +EditorIcons/icons/Tween = null +EditorIcons/icons/UndoRedo = null +EditorIcons/icons/Ungroup = null +EditorIcons/icons/Unlinked = null +EditorIcons/icons/Unlock = null +EditorIcons/icons/UseBlendDisable = null +EditorIcons/icons/UseBlendEnable = null +EditorIcons/icons/Uv = null +EditorIcons/icons/VBoxContainer = null +EditorIcons/icons/VFlowContainer = null +EditorIcons/icons/VScrollBar = null +EditorIcons/icons/VSeparator = null +EditorIcons/icons/VSlider = null +EditorIcons/icons/VSplitContainer = null +EditorIcons/icons/Variant = null +EditorIcons/icons/VcsBranches = null +EditorIcons/icons/Vector2 = null +EditorIcons/icons/Vector2i = null +EditorIcons/icons/Vector3 = null +EditorIcons/icons/Vector3i = null +EditorIcons/icons/Vector4 = null +EditorIcons/icons/Vector4i = null +EditorIcons/icons/VehicleBody3D = null +EditorIcons/icons/VehicleWheel3D = null +EditorIcons/icons/VideoStream = null +EditorIcons/icons/VideoStreamPlayer = null +EditorIcons/icons/VideoStreamTheora = null +EditorIcons/icons/Viewport = null +EditorIcons/icons/ViewportSpeed = null +EditorIcons/icons/ViewportTexture = null +EditorIcons/icons/ViewportZoom = null +EditorIcons/icons/VisibleOnScreenEnabler2D = null +EditorIcons/icons/VisibleOnScreenEnabler3D = null +EditorIcons/icons/VisibleOnScreenNotifier2D = null +EditorIcons/icons/VisibleOnScreenNotifier3D = null +EditorIcons/icons/VisualInstance3D = null +EditorIcons/icons/VisualShader = null +EditorIcons/icons/VisualShaderGraphTextureUniform = null +EditorIcons/icons/VisualShaderNodeBooleanUniform = null +EditorIcons/icons/VisualShaderNodeColorConstant = null +EditorIcons/icons/VisualShaderNodeColorOp = null +EditorIcons/icons/VisualShaderNodeColorUniform = null +EditorIcons/icons/VisualShaderNodeComment = null +EditorIcons/icons/VisualShaderNodeCubemap = null +EditorIcons/icons/VisualShaderNodeCubemapUniform = null +EditorIcons/icons/VisualShaderNodeCurveTexture = null +EditorIcons/icons/VisualShaderNodeCurveXYZTexture = null +EditorIcons/icons/VisualShaderNodeExpression = null +EditorIcons/icons/VisualShaderNodeFloatFunc = null +EditorIcons/icons/VisualShaderNodeFloatOp = null +EditorIcons/icons/VisualShaderNodeFloatUniform = null +EditorIcons/icons/VisualShaderNodeGlobalExpression = null +EditorIcons/icons/VisualShaderNodeInput = null +EditorIcons/icons/VisualShaderNodeIntFunc = null +EditorIcons/icons/VisualShaderNodeIntOp = null +EditorIcons/icons/VisualShaderNodeIntUniform = null +EditorIcons/icons/VisualShaderNodeTexture2DArrayUniform = null +EditorIcons/icons/VisualShaderNodeTexture3DUniform = null +EditorIcons/icons/VisualShaderNodeTextureUniform = null +EditorIcons/icons/VisualShaderNodeTextureUniformTriplanar = null +EditorIcons/icons/VisualShaderNodeTransformCompose = null +EditorIcons/icons/VisualShaderNodeTransformDecompose = null +EditorIcons/icons/VisualShaderNodeTransformUniform = null +EditorIcons/icons/VisualShaderNodeTransformVecMult = null +EditorIcons/icons/VisualShaderNodeVec3Uniform = null +EditorIcons/icons/VisualShaderNodeVectorCompose = null +EditorIcons/icons/VisualShaderNodeVectorDecompose = null +EditorIcons/icons/VisualShaderNodeVectorDistance = null +EditorIcons/icons/VisualShaderNodeVectorFunc = null +EditorIcons/icons/VisualShaderNodeVectorLen = null +EditorIcons/icons/VisualShaderPort = null +EditorIcons/icons/VoxelGI = null +EditorIcons/icons/VoxelGIData = null +EditorIcons/icons/Warning = null +EditorIcons/icons/WarningPattern = null +EditorIcons/icons/Window = null +EditorIcons/icons/World2D = null +EditorIcons/icons/World3D = null +EditorIcons/icons/WorldBoundaryShape2D = null +EditorIcons/icons/WorldBoundaryShape3D = null +EditorIcons/icons/WorldEnvironment = null +EditorIcons/icons/X509Certificate = null +EditorIcons/icons/XRAnchor3D = null +EditorIcons/icons/XRBodyModifier3D = null +EditorIcons/icons/XRCamera3D = null +EditorIcons/icons/XRController3D = null +EditorIcons/icons/XRFaceModifier3D = null +EditorIcons/icons/XRHandModifier3D = null +EditorIcons/icons/XRNode3D = null +EditorIcons/icons/XROrigin3D = null +EditorIcons/icons/YSort = null +EditorIcons/icons/Zoom = null +EditorIcons/icons/ZoomLess = null +EditorIcons/icons/ZoomMore = null +EditorIcons/icons/ZoomReset = null +EditorIcons/icons/bool = null +EditorIcons/icons/float = null +EditorIcons/icons/int = null +EditorIcons/icons/uint = null +EditorInspector/constants/v_separation = 3 +EditorInspectorCategory/styles/bg = SubResource("StyleBoxFlat_cm6fs") +EditorInspectorSection/colors/font_color = Color(0.686078, 0.686078, 0.686078, 1) +EditorInspectorSection/constants/h_separation = 3 +EditorInspectorSection/constants/indent_size = 6 +EditorInspectorSection/styles/indent_box = SubResource("StyleBoxFlat_q100y") +EditorLogFilterButton/colors/icon_hover_color = Color(1.15, 1.15, 1.15, 1) +EditorLogFilterButton/colors/icon_normal_color = Color(1, 1, 1, 0.4) +EditorLogFilterButton/colors/icon_pressed_color = Color(1, 1, 1, 1) +EditorLogFilterButton/styles/hover = SubResource("StyleBoxFlat_jduyo") +EditorLogFilterButton/styles/normal = SubResource("StyleBoxFlat_sxnkh") +EditorLogFilterButton/styles/pressed = SubResource("StyleBoxFlat_1pq5m") +EditorProperty/colors/property_color = Color(0.643137, 0.643137, 0.643137, 1) +EditorProperty/colors/readonly_color = Color(0.482353, 0.482353, 0.482353, 1) +EditorProperty/colors/readonly_warning_color = Color(0.75, 0.3525, 0.315, 1) +EditorProperty/colors/warning_color = Color(1, 0.87, 0.4, 1) +EditorProperty/constants/font_offset = 8 +EditorProperty/constants/v_separation = 4 +EditorProperty/styles/bg = SubResource("StyleBoxEmpty_ajvab") +EditorProperty/styles/bg_group_note = SubResource("StyleBoxFlat_6vu5l") +EditorProperty/styles/bg_selected = SubResource("StyleBoxFlat_lx8tr") +EditorProperty/styles/child_bg = SubResource("StyleBoxFlat_piki4") +EditorSettingsDialog/styles/panel = SubResource("StyleBoxFlat_qridr") +EditorSpinSlider/colors/label_color = Color(0.786274, 0.786274, 0.786274, 1) +EditorSpinSlider/colors/read_only_label_color = Color(1, 1, 1, 0.65) +EditorSpinSlider/styles/label_bg = SubResource("StyleBoxFlat_mw5o7") +EditorStyles/colors/movie_writer_icon_hover = Color(1, 1, 1, 0.823529) +EditorStyles/colors/movie_writer_icon_hover_pressed = Color(1, 1, 1, 0.823529) +EditorStyles/colors/movie_writer_icon_normal = Color(1, 1, 1, 0.7) +EditorStyles/colors/movie_writer_icon_pressed = Color(1, 1, 1, 0.941176) +EditorStyles/colors/sub_inspector_property_color = Color(1, 1, 1, 1) +EditorStyles/styles/Background = SubResource("StyleBoxFlat_ai5ix") +EditorStyles/styles/BottomPanel = SubResource("StyleBoxFlat_sbjgo") +EditorStyles/styles/BottomPanelDebuggerOverride = SubResource("StyleBoxFlat_22giw") +EditorStyles/styles/Content = SubResource("StyleBoxFlat_hbod7") +EditorStyles/styles/ContextualToolbar = SubResource("StyleBoxFlat_304i5") +EditorStyles/styles/DebuggerPanel = SubResource("StyleBoxFlat_psdik") +EditorStyles/styles/DictionaryAddItem0 = SubResource("StyleBoxFlat_lh6g3") +EditorStyles/styles/DictionaryAddItem1 = SubResource("StyleBoxFlat_tv2r2") +EditorStyles/styles/DictionaryAddItem10 = SubResource("StyleBoxFlat_qloop") +EditorStyles/styles/DictionaryAddItem11 = SubResource("StyleBoxFlat_lmha0") +EditorStyles/styles/DictionaryAddItem12 = SubResource("StyleBoxFlat_km0xn") +EditorStyles/styles/DictionaryAddItem13 = SubResource("StyleBoxFlat_l06tg") +EditorStyles/styles/DictionaryAddItem14 = SubResource("StyleBoxFlat_roa5n") +EditorStyles/styles/DictionaryAddItem15 = SubResource("StyleBoxFlat_lqctr") +EditorStyles/styles/DictionaryAddItem16 = SubResource("StyleBoxFlat_pckwj") +EditorStyles/styles/DictionaryAddItem2 = SubResource("StyleBoxFlat_tw4gk") +EditorStyles/styles/DictionaryAddItem3 = SubResource("StyleBoxFlat_k8lmo") +EditorStyles/styles/DictionaryAddItem4 = SubResource("StyleBoxFlat_m4g3j") +EditorStyles/styles/DictionaryAddItem5 = SubResource("StyleBoxFlat_0mg14") +EditorStyles/styles/DictionaryAddItem6 = SubResource("StyleBoxFlat_kr103") +EditorStyles/styles/DictionaryAddItem7 = SubResource("StyleBoxFlat_vy6in") +EditorStyles/styles/DictionaryAddItem8 = SubResource("StyleBoxFlat_wfga8") +EditorStyles/styles/DictionaryAddItem9 = SubResource("StyleBoxFlat_n376n") +EditorStyles/styles/Focus = SubResource("StyleBoxFlat_kmrbm") +EditorStyles/styles/FocusViewport = SubResource("StyleBoxEmpty_bvpax") +EditorStyles/styles/Information3dViewport = SubResource("StyleBoxFlat_2p74x") +EditorStyles/styles/LaunchPadMovieMode = SubResource("StyleBoxFlat_0ujr6") +EditorStyles/styles/LaunchPadNormal = SubResource("StyleBoxFlat_txmfc") +EditorStyles/styles/MovieWriterButtonNormal = SubResource("StyleBoxEmpty_7d3c2") +EditorStyles/styles/MovieWriterButtonPressed = SubResource("StyleBoxFlat_0v8w3") +EditorStyles/styles/PanelForeground = SubResource("StyleBoxFlat_uwlh8") +EditorStyles/styles/ScriptEditor = SubResource("StyleBoxEmpty_eukws") +EditorStyles/styles/ScriptEditorPanel = SubResource("StyleBoxEmpty_bhbgm") +EditorStyles/styles/ScriptEditorPanelFloating = SubResource("StyleBoxEmpty_4mb85") +EditorStyles/styles/TextureRegionPreviewBG = SubResource("StyleBoxFlat_1h8pl") +EditorStyles/styles/TextureRegionPreviewFG = SubResource("StyleBoxEmpty_6akyq") +EditorStyles/styles/ThemeEditorPreviewBG = SubResource("StyleBoxFlat_nij6o") +EditorStyles/styles/ThemeEditorPreviewFG = SubResource("StyleBoxFlat_s44c7") +EditorStyles/styles/sub_inspector_bg0 = SubResource("StyleBoxFlat_g35nl") +EditorStyles/styles/sub_inspector_bg1 = SubResource("StyleBoxFlat_kpluo") +EditorStyles/styles/sub_inspector_bg10 = SubResource("StyleBoxFlat_rbply") +EditorStyles/styles/sub_inspector_bg11 = SubResource("StyleBoxFlat_q0mah") +EditorStyles/styles/sub_inspector_bg12 = SubResource("StyleBoxFlat_y5f53") +EditorStyles/styles/sub_inspector_bg13 = SubResource("StyleBoxFlat_nnlcc") +EditorStyles/styles/sub_inspector_bg14 = SubResource("StyleBoxFlat_2orfn") +EditorStyles/styles/sub_inspector_bg15 = SubResource("StyleBoxFlat_8epfx") +EditorStyles/styles/sub_inspector_bg16 = SubResource("StyleBoxFlat_wa0n3") +EditorStyles/styles/sub_inspector_bg2 = SubResource("StyleBoxFlat_xjhxj") +EditorStyles/styles/sub_inspector_bg3 = SubResource("StyleBoxFlat_ktbb6") +EditorStyles/styles/sub_inspector_bg4 = SubResource("StyleBoxFlat_45ct7") +EditorStyles/styles/sub_inspector_bg5 = SubResource("StyleBoxFlat_4tl1l") +EditorStyles/styles/sub_inspector_bg6 = SubResource("StyleBoxFlat_4cdti") +EditorStyles/styles/sub_inspector_bg7 = SubResource("StyleBoxFlat_f21g6") +EditorStyles/styles/sub_inspector_bg8 = SubResource("StyleBoxFlat_m3y8q") +EditorStyles/styles/sub_inspector_bg9 = SubResource("StyleBoxFlat_jshcj") +EditorStyles/styles/sub_inspector_bg_no_border = SubResource("StyleBoxFlat_5r6dc") +EditorStyles/styles/sub_inspector_property_bg0 = SubResource("StyleBoxFlat_x2ah7") +EditorStyles/styles/sub_inspector_property_bg1 = SubResource("StyleBoxFlat_1xudn") +EditorStyles/styles/sub_inspector_property_bg10 = SubResource("StyleBoxFlat_ryds7") +EditorStyles/styles/sub_inspector_property_bg11 = SubResource("StyleBoxFlat_v3s8k") +EditorStyles/styles/sub_inspector_property_bg12 = SubResource("StyleBoxFlat_duyfv") +EditorStyles/styles/sub_inspector_property_bg13 = SubResource("StyleBoxFlat_wfi6l") +EditorStyles/styles/sub_inspector_property_bg14 = SubResource("StyleBoxFlat_p8rbx") +EditorStyles/styles/sub_inspector_property_bg15 = SubResource("StyleBoxFlat_bx4sl") +EditorStyles/styles/sub_inspector_property_bg16 = SubResource("StyleBoxFlat_ftsex") +EditorStyles/styles/sub_inspector_property_bg2 = SubResource("StyleBoxFlat_x1pko") +EditorStyles/styles/sub_inspector_property_bg3 = SubResource("StyleBoxFlat_xfxwo") +EditorStyles/styles/sub_inspector_property_bg4 = SubResource("StyleBoxFlat_hq80t") +EditorStyles/styles/sub_inspector_property_bg5 = SubResource("StyleBoxFlat_dfaf4") +EditorStyles/styles/sub_inspector_property_bg6 = SubResource("StyleBoxFlat_kspmp") +EditorStyles/styles/sub_inspector_property_bg7 = SubResource("StyleBoxFlat_4d12b") +EditorStyles/styles/sub_inspector_property_bg8 = SubResource("StyleBoxFlat_38nlj") +EditorStyles/styles/sub_inspector_property_bg9 = SubResource("StyleBoxFlat_0k4ef") +EditorValidationPanel/styles/panel = SubResource("StyleBoxFlat_s04qc") +FileDialog/colors/file_disabled_color = Color(1, 1, 1, 0.35) +FileDialog/colors/folder_icon_color = Color(0.536079, 0.733726, 1, 1) +FileDialog/icons/back_folder = null +FileDialog/icons/create_folder = null +FileDialog/icons/folder = null +FileDialog/icons/forward_folder = null +FileDialog/icons/parent_folder = null +FileDialog/icons/reload = null +FileDialog/icons/toggle_hidden = null +FlatButton/colors/font_color = Color(1, 1, 1, 0.501961) +FlatButton/colors/font_disabled_color = Color(0.88, 0.88, 0.88, 0.313726) +FlatButton/colors/font_focus_color = Color(0.95, 0.95, 0.95, 1) +FlatButton/colors/font_hover_color = Color(0.95, 0.95, 0.95, 1) +FlatButton/colors/font_hover_pressed_color = Color(1, 1, 1, 1) +FlatButton/colors/font_pressed_color = Color(1, 1, 1, 1) +FlatButton/colors/icon_disabled_color = Color(1, 1, 1, 0.313726) +FlatButton/colors/icon_normal_color = Color(1, 1, 1, 0.705882) +FlatButton/styles/disabled = SubResource("StyleBoxEmpty_65mu5") +FlatButton/styles/disabled_mirrored = SubResource("StyleBoxEmpty_65mu5") +FlatButton/styles/hover = SubResource("StyleBoxFlat_jduyo") +FlatButton/styles/hover_mirrored = SubResource("StyleBoxFlat_jduyo") +FlatButton/styles/hover_pressed = SubResource("StyleBoxFlat_jduyo") +FlatButton/styles/hover_pressed_mirrored = SubResource("StyleBoxFlat_jduyo") +FlatButton/styles/normal = SubResource("StyleBoxFlat_sxnkh") +FlatButton/styles/normal_mirrored = SubResource("StyleBoxFlat_sxnkh") +FlatButton/styles/pressed = SubResource("StyleBoxFlat_1pq5m") +FlatButton/styles/pressed_mirrored = SubResource("StyleBoxFlat_1pq5m") +FlatMenuButton/colors/font_color = Color(1, 1, 1, 0.501961) +FlatMenuButton/colors/font_disabled_color = Color(0.88, 0.88, 0.88, 0.313726) +FlatMenuButton/colors/font_focus_color = Color(0.95, 0.95, 0.95, 1) +FlatMenuButton/colors/font_hover_color = Color(0.95, 0.95, 0.95, 1) +FlatMenuButton/colors/font_hover_pressed_color = Color(1, 1, 1, 1) +FlatMenuButton/colors/font_pressed_color = Color(1, 1, 1, 1) +FlatMenuButton/colors/icon_disabled_color = Color(1, 1, 1, 0.313726) +FlatMenuButton/colors/icon_normal_color = Color(1, 1, 1, 0.705882) +FlatMenuButton/styles/disabled = SubResource("StyleBoxEmpty_65mu5") +FlatMenuButton/styles/disabled_mirrored = SubResource("StyleBoxEmpty_65mu5") +FlatMenuButton/styles/focus = SubResource("StyleBoxFlat_sxnkh") +FlatMenuButton/styles/hover = SubResource("StyleBoxFlat_a4v87") +FlatMenuButton/styles/hover_mirrored = SubResource("StyleBoxFlat_a4v87") +FlatMenuButton/styles/hover_pressed = SubResource("StyleBoxFlat_fkpl4") +FlatMenuButton/styles/hover_pressed_mirrored = SubResource("StyleBoxFlat_fkpl4") +FlatMenuButton/styles/normal = SubResource("StyleBoxFlat_sxnkh") +FlatMenuButton/styles/normal_mirrored = SubResource("StyleBoxFlat_sxnkh") +FlatMenuButton/styles/pressed = SubResource("StyleBoxFlat_fkpl4") +FlatMenuButton/styles/pressed_mirrored = SubResource("StyleBoxFlat_fkpl4") +FlowContainer/constants/h_separation = 4 +FlowContainer/constants/v_separation = 4 +GraphEdit/colors/activity = Color(1, 1, 1, 1) +GraphEdit/colors/connection_hover_tint_color = Color(0, 0, 0, 0.3) +GraphEdit/colors/connection_rim_color = Color(0.108823, 0.108823, 0.108823, 1) +GraphEdit/colors/connection_valid_target_tint_color = Color(1, 1, 1, 0.4) +GraphEdit/colors/grid_major = Color(1, 1, 1, 0.07) +GraphEdit/colors/grid_minor = Color(1, 1, 1, 0.07) +GraphEdit/colors/selection_fill = Color(0.337255, 0.619608, 1, 0.3) +GraphEdit/colors/selection_stroke = Color(0.337255, 0.619608, 1, 0.8) +GraphEdit/icons/grid_toggle = null +GraphEdit/icons/layout = null +GraphEdit/icons/minimap_toggle = null +GraphEdit/icons/snapping_toggle = null +GraphEdit/icons/zoom_in = null +GraphEdit/icons/zoom_out = null +GraphEdit/icons/zoom_reset = null +GraphEdit/styles/menu_panel = SubResource("StyleBoxFlat_n6oly") +GraphEdit/styles/panel = SubResource("StyleBoxFlat_tat3o") +GraphEditMinimap/colors/resizer_color = Color(1, 1, 1, 0.65) +GraphEditMinimap/icons/resizer = null +GraphEditMinimap/styles/camera = SubResource("StyleBoxFlat_h4xsf") +GraphEditMinimap/styles/node = SubResource("StyleBoxFlat_7k6m1") +GraphEditMinimap/styles/panel = SubResource("StyleBoxFlat_osg82") +GraphElement/colors/resizer_color = Color(0.883922, 0.883922, 0.883922, 1) +GraphElement/icons/resizer = null +GraphElement/styles/panel = SubResource("StyleBoxFlat_v0q16") +GraphElement/styles/panel_selected = SubResource("StyleBoxFlat_k24kx") +GraphElement/styles/titlebar = SubResource("StyleBoxFlat_cw47s") +GraphElement/styles/titlebar_selected = SubResource("StyleBoxFlat_2ctxv") +GraphFrame/colors/resizer_color = Color(0.883922, 0.883922, 0.883922, 1) +GraphFrame/styles/panel = SubResource("StyleBoxFlat_4wdoq") +GraphFrame/styles/panel_selected = SubResource("StyleBoxFlat_cnlc4") +GraphFrame/styles/titlebar = SubResource("StyleBoxEmpty_sbwjv") +GraphFrame/styles/titlebar_selected = SubResource("StyleBoxEmpty_7bpfr") +GraphFrameTitleLabel/colors/font_color = Color(1, 1, 1, 1) +GraphFrameTitleLabel/colors/font_outline_color = Color(1, 1, 1, 1) +GraphFrameTitleLabel/colors/font_shadow_color = Color(0, 0, 0, 0) +GraphFrameTitleLabel/constants/line_spacing = 3 +GraphFrameTitleLabel/constants/outline_size = 0 +GraphFrameTitleLabel/constants/shadow_offset_x = 1 +GraphFrameTitleLabel/constants/shadow_offset_y = 1 +GraphFrameTitleLabel/constants/shadow_outline_size = 1 +GraphFrameTitleLabel/font_sizes/font_size = 14 +GraphFrameTitleLabel/styles/normal = SubResource("StyleBoxEmpty_cphar") +GraphNode/colors/resizer_color = Color(0.883922, 0.883922, 0.883922, 1) +GraphNode/constants/port_h_offset = 1 +GraphNode/constants/separation = 1 +GraphNode/icons/port = null +GraphNode/styles/panel = SubResource("StyleBoxFlat_v0q16") +GraphNode/styles/panel_selected = SubResource("StyleBoxFlat_k24kx") +GraphNode/styles/slot = SubResource("StyleBoxEmpty_jokne") +GraphNode/styles/titlebar = SubResource("StyleBoxFlat_cw47s") +GraphNode/styles/titlebar_selected = SubResource("StyleBoxFlat_2ctxv") +GraphNodeTitleLabel/colors/font_color = Color(0.786274, 0.786274, 0.786274, 1) +GraphNodeTitleLabel/colors/font_shadow_color = Color(0, 0, 0, 0.35) +GraphNodeTitleLabel/constants/line_spacing = 3 +GraphNodeTitleLabel/constants/shadow_offset_x = 0 +GraphNodeTitleLabel/constants/shadow_offset_y = 1 +GraphNodeTitleLabel/constants/shadow_outline_size = 4 +GraphNodeTitleLabel/styles/normal = SubResource("StyleBoxEmpty_te4q8") +GraphStateMachine/colors/error_color = Color(1, 0.47, 0.42, 1) +GraphStateMachine/colors/guideline_color = Color(0.786274, 0.786274, 0.786274, 0.3) +GraphStateMachine/colors/highlight_color = Color(0.337255, 0.619608, 1, 1) +GraphStateMachine/colors/highlight_disabled_color = Color(0.337255, 0.619608, 1, 0.6) +GraphStateMachine/colors/node_title_font_color = Color(0.786274, 0.786274, 0.786274, 1) +GraphStateMachine/colors/playback_background_color = Color(0.786274, 0.786274, 0.786274, 0.3) +GraphStateMachine/colors/playback_color = Color(0.786274, 0.786274, 0.786274, 1) +GraphStateMachine/colors/transition_color = Color(0.786274, 0.786274, 0.786274, 1) +GraphStateMachine/colors/transition_disabled_color = Color(0.786274, 0.786274, 0.786274, 0.2) +GraphStateMachine/colors/transition_icon_color = Color(1, 1, 1, 1) +GraphStateMachine/colors/transition_icon_disabled_color = Color(1, 1, 1, 0.2) +GraphStateMachine/font_sizes/node_title_font_size = 14 +GraphStateMachine/fonts/node_title_font = ExtResource("1_a74l0") +GraphStateMachine/styles/error_panel = SubResource("StyleBoxFlat_tat3o") +GraphStateMachine/styles/node_frame = SubResource("StyleBoxFlat_rkw5f") +GraphStateMachine/styles/node_frame_end = SubResource("StyleBoxFlat_busvx") +GraphStateMachine/styles/node_frame_playing = SubResource("StyleBoxFlat_nmxfc") +GraphStateMachine/styles/node_frame_selected = SubResource("StyleBoxFlat_dq48x") +GraphStateMachine/styles/node_frame_start = SubResource("StyleBoxFlat_kga1q") +GraphStateMachine/styles/panel = SubResource("StyleBoxFlat_tat3o") +GridContainer/constants/h_separation = 4 +GridContainer/constants/v_separation = 3 +HBoxContainer/constants/separation = 2 +HFlowContainer/constants/h_separation = 4 +HFlowContainer/constants/v_separation = 4 +HScrollBar/icons/decrement = null +HScrollBar/icons/decrement_highlight = null +HScrollBar/icons/decrement_pressed = null +HScrollBar/icons/increment = null +HScrollBar/icons/increment_highlight = null +HScrollBar/icons/increment_pressed = null +HScrollBar/styles/grabber = SubResource("StyleBoxTexture_0hke8") +HScrollBar/styles/grabber_highlight = SubResource("StyleBoxTexture_asndq") +HScrollBar/styles/grabber_pressed = SubResource("StyleBoxTexture_7amsq") +HScrollBar/styles/scroll = SubResource("StyleBoxTexture_tef5f") +HScrollBar/styles/scroll_focus = SubResource("StyleBoxTexture_88wkm") +HSeparator/styles/separator = SubResource("StyleBoxLine_20r55") +HSlider/constants/center_grabber = 0 +HSlider/constants/grabber_offset = 0 +HSlider/icons/grabber = null +HSlider/icons/grabber_highlight = null +HSlider/styles/grabber_area = SubResource("StyleBoxFlat_jiatm") +HSlider/styles/grabber_area_highlight = SubResource("StyleBoxFlat_fxko6") +HSlider/styles/slider = SubResource("StyleBoxFlat_vec6b") +HSplitContainer/constants/autohide = 1 +HSplitContainer/constants/minimum_grab_thickness = 12 +HSplitContainer/constants/separation = 4 +HSplitContainer/icons/grabber = null +HeaderLarge/font_sizes/font_size = 14 +HeaderLarge/fonts/font = ExtResource("1_a74l0") +HeaderMedium/font_sizes/font_size = 14 +HeaderMedium/fonts/font = ExtResource("1_a74l0") +HeaderSmall/font_sizes/font_size = 14 +HeaderSmall/fonts/font = ExtResource("1_a74l0") +HeaderSmallLink/font_sizes/font_size = 14 +HeaderSmallLink/fonts/font = ExtResource("1_a74l0") +InspectorActionButton/constants/h_separation = 5 +InspectorActionButton/styles/disabled = SubResource("StyleBoxFlat_s11c6") +InspectorActionButton/styles/disabled_mirrored = SubResource("StyleBoxFlat_s11c6") +InspectorActionButton/styles/hover = SubResource("StyleBoxFlat_cupx2") +InspectorActionButton/styles/hover_mirrored = SubResource("StyleBoxFlat_cupx2") +InspectorActionButton/styles/normal = SubResource("StyleBoxFlat_ubyga") +InspectorActionButton/styles/normal_mirrored = SubResource("StyleBoxFlat_ubyga") +InspectorActionButton/styles/pressed = SubResource("StyleBoxFlat_dpijl") +InspectorActionButton/styles/pressed_mirrored = SubResource("StyleBoxFlat_dpijl") +ItemList/colors/font_color = Color(0.786274, 0.786274, 0.786274, 1) +ItemList/colors/font_hovered_color = Color(1, 1, 1, 1) +ItemList/colors/font_outline_color = Color(0, 0, 0, 0) +ItemList/colors/font_selected_color = Color(1, 1, 1, 1) +ItemList/colors/guide_color = Color(1, 1, 1, 0) +ItemList/constants/h_separation = 6 +ItemList/constants/icon_margin = 6 +ItemList/constants/line_separation = 4 +ItemList/constants/outline_size = 0 +ItemList/constants/v_separation = 4 +ItemList/styles/cursor = SubResource("StyleBoxFlat_m3jjh") +ItemList/styles/cursor_unfocused = SubResource("StyleBoxFlat_m3jjh") +ItemList/styles/focus = SubResource("StyleBoxFlat_20eiv") +ItemList/styles/hovered = SubResource("StyleBoxFlat_32au3") +ItemList/styles/panel = SubResource("StyleBoxEmpty_8atl4") +ItemList/styles/selected = SubResource("StyleBoxFlat_32au3") +ItemList/styles/selected_focus = SubResource("StyleBoxFlat_32au3") +Label/colors/font_color = Color(1, 1, 1, 0.627451) +Label/colors/font_outline_color = Color(0, 0, 0, 0) +Label/colors/font_shadow_color = Color(0, 0, 0, 0) +Label/constants/line_spacing = 3 +Label/constants/outline_size = 0 +Label/constants/shadow_offset_x = 1 +Label/constants/shadow_offset_y = 1 +Label/constants/shadow_outline_size = 1 +Label/fonts/font = ExtResource("1_a74l0") +Label/styles/normal = SubResource("StyleBoxEmpty_pgp2j") +LineEdit/colors/caret_color = Color(0.786274, 0.786274, 0.786274, 1) +LineEdit/colors/clear_button_color = Color(0.786274, 0.786274, 0.786274, 1) +LineEdit/colors/clear_button_color_pressed = Color(0.337255, 0.619608, 1, 1) +LineEdit/colors/font_color = Color(0.786274, 0.786274, 0.786274, 1) +LineEdit/colors/font_outline_color = Color(0, 0, 0, 0) +LineEdit/colors/font_placeholder_color = Color(1, 1, 1, 0.27451) +LineEdit/colors/font_selected_color = Color(1, 1, 1, 1) +LineEdit/colors/font_uneditable_color = Color(1, 1, 1, 0.65) +LineEdit/colors/selection_color = Color(0.337255, 0.619608, 1, 0.4) +LineEdit/constants/caret_width = 1 +LineEdit/constants/minimum_character_width = 4 +LineEdit/constants/outline_size = 0 +LineEdit/icons/clear = null +LineEdit/styles/focus = SubResource("StyleBoxFlat_cfx35") +LineEdit/styles/normal = SubResource("StyleBoxFlat_0nfa3") +LineEdit/styles/read_only = SubResource("StyleBoxFlat_fdq0g") +LinkButton/colors/font_color = Color(0.786274, 0.786274, 0.786274, 1) +LinkButton/colors/font_disabled_color = Color(1, 1, 1, 0.35) +LinkButton/colors/font_focus_color = Color(0.893137, 0.893137, 0.893137, 1) +LinkButton/colors/font_hover_color = Color(0.893137, 0.893137, 0.893137, 1) +LinkButton/colors/font_hover_pressed_color = Color(0.481784, 0.690726, 0.972216, 1) +LinkButton/colors/font_outline_color = Color(0, 0, 0, 0) +LinkButton/colors/font_pressed_color = Color(0.337255, 0.619608, 1, 1) +LinkButton/constants/outline_size = 0 +LinkButton/styles/focus = SubResource("StyleBoxEmpty_6c8sw") +MainMenuBar/styles/hover = SubResource("StyleBoxFlat_jduyo") +MainMenuBar/styles/hover_pressed = SubResource("StyleBoxFlat_jduyo") +MainMenuBar/styles/normal = SubResource("StyleBoxFlat_sxnkh") +MainMenuBar/styles/pressed = SubResource("StyleBoxFlat_fkpl4") +MainScreenButton/font_sizes/font_size = 14 +MainScreenButton/fonts/font = ExtResource("1_a74l0") +MainScreenButton/styles/hover = SubResource("StyleBoxFlat_jduyo") +MainScreenButton/styles/hover_mirrored = SubResource("StyleBoxFlat_jduyo") +MainScreenButton/styles/hover_pressed = SubResource("StyleBoxFlat_jduyo") +MainScreenButton/styles/hover_pressed_mirrored = SubResource("StyleBoxFlat_jduyo") +MainScreenButton/styles/normal = SubResource("StyleBoxFlat_sxnkh") +MainScreenButton/styles/normal_mirrored = SubResource("StyleBoxFlat_sxnkh") +MainScreenButton/styles/pressed = SubResource("StyleBoxFlat_sxnkh") +MainScreenButton/styles/pressed_mirrored = SubResource("StyleBoxFlat_sxnkh") +MarginContainer/constants/margin_bottom = 0 +MarginContainer/constants/margin_left = 0 +MarginContainer/constants/margin_right = 0 +MarginContainer/constants/margin_top = 0 +MarginContainer4px/constants/margin_bottom = 4 +MarginContainer4px/constants/margin_left = 4 +MarginContainer4px/constants/margin_right = 4 +MarginContainer4px/constants/margin_top = 4 +MenuBar/colors/font_color = Color(0.786274, 0.786274, 0.786274, 1) +MenuBar/colors/font_disabled_color = Color(1, 1, 1, 0.35) +MenuBar/colors/font_focus_color = Color(0.893137, 0.893137, 0.893137, 1) +MenuBar/colors/font_hover_color = Color(0.893137, 0.893137, 0.893137, 1) +MenuBar/colors/font_hover_pressed_color = Color(0.481784, 0.690726, 0.972216, 1) +MenuBar/colors/font_outline_color = Color(0, 0, 0, 0) +MenuBar/colors/font_pressed_color = Color(0.337255, 0.619608, 1, 1) +MenuBar/colors/icon_disabled_color = Color(1, 1, 1, 0.4) +MenuBar/colors/icon_focus_color = Color(1.15, 1.15, 1.15, 1) +MenuBar/colors/icon_hover_color = Color(1.15, 1.15, 1.15, 1) +MenuBar/colors/icon_normal_color = Color(1, 1, 1, 1) +MenuBar/colors/icon_pressed_color = Color(0.387843, 0.712549, 1.15, 1) +MenuBar/constants/h_separation = 4 +MenuBar/constants/outline_size = 0 +MenuBar/styles/disabled = SubResource("StyleBoxFlat_0uu8j") +MenuBar/styles/hover = SubResource("StyleBoxFlat_40oom") +MenuBar/styles/normal = SubResource("StyleBoxFlat_pe0jj") +MenuBar/styles/pressed = SubResource("StyleBoxFlat_tbd5c") +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_hover_color = Color(0.893137, 0.893137, 0.893137, 1) +MenuButton/colors/font_hover_pressed_color = Color(0.481784, 0.690726, 0.972216, 1) +MenuButton/colors/font_outline_color = Color(0, 0, 0, 0) +MenuButton/constants/outline_size = 0 +MenuButton/styles/disabled = SubResource("StyleBoxFlat_l5ore") +MenuButton/styles/disabled_mirrored = SubResource("StyleBoxFlat_l5ore") +MenuButton/styles/focus = SubResource("StyleBoxFlat_l5ore") +MenuButton/styles/hover = SubResource("StyleBoxFlat_5kevk") +MenuButton/styles/hover_mirrored = SubResource("StyleBoxFlat_5kevk") +MenuButton/styles/hover_pressed = SubResource("StyleBoxFlat_jccna") +MenuButton/styles/hover_pressed_mirrored = SubResource("StyleBoxFlat_jccna") +MenuButton/styles/normal = SubResource("StyleBoxFlat_l5ore") +MenuButton/styles/normal_mirrored = SubResource("StyleBoxFlat_l5ore") +MenuButton/styles/pressed = SubResource("StyleBoxFlat_l5ore") +MenuButton/styles/pressed_mirrored = SubResource("StyleBoxFlat_l5ore") +OptionButton/colors/font_color = Color(1, 1, 1, 0.705882) +OptionButton/colors/font_disabled_color = Color(0.88, 0.88, 0.88, 0.313726) +OptionButton/colors/font_focus_color = Color(0.95, 0.95, 0.95, 1) +OptionButton/colors/font_hover_color = Color(0.95, 0.95, 0.95, 1) +OptionButton/colors/font_hover_pressed_color = Color(1, 1, 1, 1) +OptionButton/colors/font_outline_color = Color(0, 0, 0, 0) +OptionButton/colors/font_pressed_color = Color(1, 1, 1, 1) +OptionButton/colors/icon_disabled_color = Color(1, 1, 1, 0.313726) +OptionButton/colors/icon_focus_color = Color(1.15, 1.15, 1.15, 1) +OptionButton/colors/icon_hover_color = Color(1.15, 1.15, 1.15, 1) +OptionButton/colors/icon_normal_color = Color(1, 1, 1, 0.705882) +OptionButton/colors/icon_pressed_color = Color(0.387843, 0.712549, 1.15, 1) +OptionButton/constants/arrow_margin = 4 +OptionButton/constants/h_separation = 4 +OptionButton/constants/modulate_arrow = 1 +OptionButton/constants/outline_size = 0 +OptionButton/icons/arrow = null +OptionButton/styles/disabled = SubResource("StyleBoxFlat_s11c6") +OptionButton/styles/disabled_mirrored = SubResource("StyleBoxFlat_s11c6") +OptionButton/styles/focus = SubResource("StyleBoxFlat_tj0ge") +OptionButton/styles/hover = SubResource("StyleBoxFlat_ohale") +OptionButton/styles/hover_mirrored = SubResource("StyleBoxFlat_ohale") +OptionButton/styles/normal = SubResource("StyleBoxFlat_if3jf") +OptionButton/styles/normal_mirrored = SubResource("StyleBoxFlat_if3jf") +OptionButton/styles/pressed = SubResource("StyleBoxFlat_4355j") +OptionButton/styles/pressed_mirrored = SubResource("StyleBoxFlat_4355j") +Panel/styles/panel = SubResource("StyleBoxFlat_12lhu") +PanelBackgroundButton/styles/disabled = SubResource("StyleBoxFlat_gvbrn") +PanelBackgroundButton/styles/hover = SubResource("StyleBoxFlat_algsk") +PanelBackgroundButton/styles/normal = SubResource("StyleBoxFlat_lq87k") +PanelBackgroundButton/styles/pressed = SubResource("StyleBoxFlat_46kg0") +PanelContainer/styles/panel = SubResource("StyleBoxFlat_wdhdm") +PopupDialog/styles/panel = SubResource("StyleBoxFlat_4725m") +PopupMenu/colors/font_accelerator_color = Color(1, 1, 1, 0.35) +PopupMenu/colors/font_color = Color(0.786274, 0.786274, 0.786274, 1) +PopupMenu/colors/font_disabled_color = Color(1, 1, 1, 0.35) +PopupMenu/colors/font_hover_color = Color(0.893137, 0.893137, 0.893137, 1) +PopupMenu/colors/font_outline_color = Color(0, 0, 0, 0) +PopupMenu/colors/font_separator_color = Color(1, 1, 1, 0.35) +PopupMenu/constants/item_end_padding = 4 +PopupMenu/constants/item_start_padding = 10 +PopupMenu/constants/outline_size = 0 +PopupMenu/constants/v_separation = 6 +PopupMenu/icons/checked = ExtResource("2_jlkvh") +PopupMenu/icons/checked_disabled = null +PopupMenu/icons/radio_checked = null +PopupMenu/icons/radio_checked_disabled = null +PopupMenu/icons/radio_unchecked = null +PopupMenu/icons/radio_unchecked_disabled = null +PopupMenu/icons/submenu = null +PopupMenu/icons/submenu_mirrored = null +PopupMenu/icons/unchecked = ExtResource("3_hpuls") +PopupMenu/icons/unchecked_disabled = null +PopupMenu/icons/visibility_hidden = null +PopupMenu/icons/visibility_visible = null +PopupMenu/icons/visibility_xray = null +PopupMenu/styles/hover = SubResource("StyleBoxFlat_yg4d4") +PopupMenu/styles/labeled_separator_left = SubResource("StyleBoxLine_f3cpk") +PopupMenu/styles/labeled_separator_right = SubResource("StyleBoxLine_7ikmc") +PopupMenu/styles/panel = SubResource("StyleBoxFlat_cbgao") +PopupMenu/styles/separator = SubResource("StyleBoxLine_rijeh") +PopupPanel/styles/panel = SubResource("StyleBoxFlat_5sp0q") +PreviewLightButton/colors/icon_focus_color = Color(0.76, 0.76, 0.76, 1) +PreviewLightButton/colors/icon_hover_color = Color(0.82, 0.82, 0.82, 1) +PreviewLightButton/colors/icon_hover_pressed_color = Color(1, 1, 1, 1) +PreviewLightButton/colors/icon_normal_color = Color(0.76, 0.76, 0.76, 1) +PreviewLightButton/colors/icon_pressed_color = Color(1, 1, 1, 1) +PreviewLightButton/styles/focus = SubResource("StyleBoxEmpty_ghpck") +PreviewLightButton/styles/hover = SubResource("StyleBoxEmpty_ghpck") +PreviewLightButton/styles/normal = SubResource("StyleBoxEmpty_ghpck") +PreviewLightButton/styles/pressed = SubResource("StyleBoxEmpty_ghpck") +ProgressBar/colors/font_color = Color(0.786274, 0.786274, 0.786274, 1) +ProgressBar/colors/font_outline_color = Color(0, 0, 0, 0) +ProgressBar/constants/outline_size = 0 +ProgressBar/styles/background = SubResource("StyleBoxFlat_twhwf") +ProgressBar/styles/fill = SubResource("StyleBoxFlat_xdk0w") +ProjectManager/constants/sidebar_button_icon_separation = 6 +ProjectManager/icons/browse_file = null +ProjectManager/icons/browse_folder = null +ProjectManager/styles/project_list = SubResource("StyleBoxFlat_tat3o") +ProjectSettingsEditor/styles/panel = SubResource("StyleBoxFlat_qridr") +ProjectTag/styles/hover = SubResource("StyleBoxFlat_yfblk") +ProjectTag/styles/normal = SubResource("StyleBoxFlat_an6mv") +ProjectTag/styles/pressed = SubResource("StyleBoxFlat_umheu") +RichTextLabel/colors/default_color = Color(0.786274, 0.786274, 0.786274, 1) +RichTextLabel/colors/font_outline_color = Color(0, 0, 0, 0) +RichTextLabel/colors/font_shadow_color = Color(0, 0, 0, 0) +RichTextLabel/colors/selection_color = Color(0.337255, 0.619608, 1, 0.4) +RichTextLabel/constants/outline_size = 0 +RichTextLabel/constants/shadow_offset_x = 1 +RichTextLabel/constants/shadow_offset_y = 1 +RichTextLabel/constants/shadow_outline_size = 1 +RichTextLabel/fonts/bold_font = ExtResource("1_a74l0") +RichTextLabel/fonts/bold_italics_font = ExtResource("1_a74l0") +RichTextLabel/fonts/italics_font = ExtResource("1_a74l0") +RichTextLabel/fonts/normal_font = ExtResource("1_a74l0") +RichTextLabel/styles/focus = SubResource("StyleBoxFlat_tx2dl") +RichTextLabel/styles/normal = SubResource("StyleBoxFlat_tx2dl") +RunBarButton/styles/disabled = SubResource("StyleBoxFlat_o6jmd") +RunBarButton/styles/pressed = SubResource("StyleBoxFlat_o6jmd") +SpinBox/icons/updown = null +SpinBox/icons/updown_disabled = null +SplitContainer/constants/minimum_grab_thickness = 12 +SplitContainer/constants/separation = 4 +SplitContainer/icons/h_grabber = null +SplitContainer/icons/v_grabber = null +TabBar/colors/drop_mark_color = Color(0.278333, 0.490098, 0.775392, 1) +TabBar/colors/font_hovered_color = Color(0.786274, 0.786274, 0.786274, 1) +TabBar/colors/font_outline_color = Color(0, 0, 0, 0) +TabBar/colors/font_selected_color = Color(0.786274, 0.786274, 0.786274, 1) +TabBar/colors/font_unselected_color = Color(1, 1, 1, 0.35) +TabBar/constants/h_separation = 4 +TabBar/constants/outline_size = 0 +TabBar/icons/close = null +TabBar/icons/decrement = null +TabBar/icons/decrement_highlight = null +TabBar/icons/drop_mark = null +TabBar/icons/increment = null +TabBar/icons/increment_highlight = null +TabBar/styles/button_highlight = SubResource("StyleBoxFlat_16230") +TabBar/styles/button_pressed = SubResource("StyleBoxFlat_16230") +TabBar/styles/tab_disabled = SubResource("StyleBoxFlat_lrq1b") +TabBar/styles/tab_focus = SubResource("StyleBoxEmpty_fejrw") +TabBar/styles/tab_hovered = SubResource("StyleBoxFlat_tmq75") +TabBar/styles/tab_selected = SubResource("StyleBoxFlat_lgkqp") +TabBar/styles/tab_unselected = SubResource("StyleBoxFlat_6fhxt") +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_outline_color = Color(0, 0, 0, 0) +TabContainer/colors/font_selected_color = Color(0.786274, 0.786274, 0.786274, 1) +TabContainer/colors/font_unselected_color = Color(1, 1, 1, 0.235294) +TabContainer/constants/outline_size = 0 +TabContainer/constants/side_margin = 0 +TabContainer/icons/decrement = null +TabContainer/icons/decrement_highlight = null +TabContainer/icons/drop_mark = null +TabContainer/icons/increment = null +TabContainer/icons/increment_highlight = null +TabContainer/icons/menu = null +TabContainer/icons/menu_highlight = null +TabContainer/styles/panel = SubResource("StyleBoxFlat_0c4py") +TabContainer/styles/tab_disabled = SubResource("StyleBoxFlat_lrq1b") +TabContainer/styles/tab_focus = SubResource("StyleBoxFlat_kwdgv") +TabContainer/styles/tab_hovered = SubResource("StyleBoxFlat_tmq75") +TabContainer/styles/tab_selected = SubResource("StyleBoxFlat_lgkqp") +TabContainer/styles/tab_unselected = SubResource("StyleBoxFlat_6fhxt") +TabContainer/styles/tabbar_background = SubResource("StyleBoxFlat_o0sc5") +TabContainerOdd/styles/panel = SubResource("StyleBoxFlat_plrjc") +TabContainerOdd/styles/tab_selected = SubResource("StyleBoxFlat_ecmpj") +TextEdit/colors/background_color = Color(0, 0, 0, 0) +TextEdit/colors/caret_color = Color(0.786274, 0.786274, 0.786274, 1) +TextEdit/colors/font_color = Color(0.786274, 0.786274, 0.786274, 1) +TextEdit/colors/font_outline_color = Color(0, 0, 0, 0) +TextEdit/colors/font_placeholder_color = Color(1, 1, 1, 0.6) +TextEdit/colors/font_readonly_color = Color(1, 1, 1, 0.65) +TextEdit/colors/selection_color = Color(0.337255, 0.619608, 1, 0.4) +TextEdit/constants/caret_width = 1 +TextEdit/constants/line_spacing = 4 +TextEdit/constants/outline_size = 0 +TextEdit/icons/space = null +TextEdit/icons/tab = null +TextEdit/styles/focus = SubResource("StyleBoxFlat_62kny") +TextEdit/styles/normal = SubResource("StyleBoxFlat_t7304") +TextEdit/styles/read_only = SubResource("StyleBoxFlat_6ucq2") +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_overlay = SubResource("StyleBoxFlat_qixj3") +TooltipLabel/colors/font_color = Color(0.893137, 0.893137, 0.893137, 1) +TooltipLabel/colors/font_shadow_color = Color(0, 0, 0, 0) +TooltipPanel/styles/panel = SubResource("StyleBoxFlat_qr21i") +TopBarOptionButton/font_sizes/font_size = 14 +TopBarOptionButton/fonts/font = ExtResource("1_a74l0") +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/drop_position_color = Color(1, 1, 1, 0.392157) +Tree/colors/font_color = Color(1, 1, 1, 0.627451) +Tree/colors/font_disabled_color = Color(1, 1, 1, 0.35) +Tree/colors/font_outline_color = Color(0, 0, 0, 0) +Tree/colors/font_selected_color = Color(1, 1, 1, 1) +Tree/colors/guide_color = Color(1, 1, 1, 0) +Tree/colors/parent_hl_line_color = Color(1, 1, 1, 0.0196078) +Tree/colors/relationship_line_color = Color(1, 1, 1, 0.1) +Tree/colors/title_button_color = Color(0.786274, 0.786274, 0.786274, 1) +Tree/constants/button_margin = 4 +Tree/constants/children_hl_line_width = 0 +Tree/constants/draw_guides = 0 +Tree/constants/draw_relationship_lines = 0 +Tree/constants/guide_width = 0 +Tree/constants/h_separation = 6 +Tree/constants/inner_item_margin_bottom = 4 +Tree/constants/inner_item_margin_left = 1 +Tree/constants/inner_item_margin_right = 1 +Tree/constants/inner_item_margin_top = 4 +Tree/constants/item_margin = 12 +Tree/constants/outline_size = 0 +Tree/constants/parent_hl_line_margin = 3 +Tree/constants/parent_hl_line_width = 0 +Tree/constants/relationship_line_width = 0 +Tree/constants/scroll_border = 40 +Tree/constants/scroll_speed = 12 +Tree/constants/scrollbar_h_separation = 1 +Tree/constants/scrollbar_margin_bottom = 0 +Tree/constants/scrollbar_margin_left = 0 +Tree/constants/scrollbar_margin_right = 0 +Tree/constants/scrollbar_margin_top = 0 +Tree/constants/scrollbar_v_separation = 1 +Tree/constants/v_separation = 1 +Tree/icons/arrow = null +Tree/icons/arrow_collapsed = null +Tree/icons/arrow_collapsed_mirrored = null +Tree/icons/checked = null +Tree/icons/checked_disabled = null +Tree/icons/indeterminate = null +Tree/icons/indeterminate_disabled = null +Tree/icons/select_arrow = null +Tree/icons/unchecked = null +Tree/icons/unchecked_disabled = null +Tree/icons/updown = null +Tree/styles/button_pressed = SubResource("StyleBoxFlat_68sxm") +Tree/styles/cursor = SubResource("StyleBoxFlat_m3jjh") +Tree/styles/cursor_unfocused = SubResource("StyleBoxFlat_m3jjh") +Tree/styles/custom_button = SubResource("StyleBoxEmpty_s32q2") +Tree/styles/custom_button_hover = SubResource("StyleBoxFlat_pe0jj") +Tree/styles/custom_button_pressed = SubResource("StyleBoxFlat_68sxm") +Tree/styles/focus = SubResource("StyleBoxFlat_20eiv") +Tree/styles/hover = SubResource("StyleBoxFlat_v3yhk") +Tree/styles/panel = SubResource("StyleBoxEmpty_8atl4") +Tree/styles/selected = SubResource("StyleBoxFlat_32au3") +Tree/styles/selected_focus = SubResource("StyleBoxFlat_32au3") +Tree/styles/title_button_hover = SubResource("StyleBoxFlat_h3su5") +Tree/styles/title_button_normal = SubResource("StyleBoxFlat_h3su5") +Tree/styles/title_button_pressed = SubResource("StyleBoxFlat_h3su5") +VBoxContainer/constants/separation = 2 +VFlowContainer/constants/h_separation = 4 +VFlowContainer/constants/v_separation = 4 +VSRerouteNode/colors/drag_background = Color(0.19, 0.21, 0.24, 1) +VSRerouteNode/colors/selected_rim_color = Color(1, 1, 1, 1) +VSRerouteNode/styles/panel = SubResource("StyleBoxEmpty_wb8as") +VSRerouteNode/styles/panel_selected = SubResource("StyleBoxEmpty_wb8as") +VSRerouteNode/styles/slot = SubResource("StyleBoxEmpty_25rjl") +VSRerouteNode/styles/titlebar = SubResource("StyleBoxEmpty_33c1j") +VSRerouteNode/styles/titlebar_selected = SubResource("StyleBoxEmpty_33c1j") +VScrollBar/icons/decrement = null +VScrollBar/icons/decrement_highlight = null +VScrollBar/icons/decrement_pressed = null +VScrollBar/icons/increment = null +VScrollBar/icons/increment_highlight = null +VScrollBar/icons/increment_pressed = null +VScrollBar/styles/grabber = SubResource("StyleBoxTexture_6gcbt") +VScrollBar/styles/grabber_highlight = SubResource("StyleBoxTexture_egk4k") +VScrollBar/styles/grabber_pressed = SubResource("StyleBoxTexture_yo0p2") +VScrollBar/styles/scroll = SubResource("StyleBoxTexture_8aevd") +VScrollBar/styles/scroll_focus = SubResource("StyleBoxTexture_rhpfa") +VSeparator/styles/separator = SubResource("StyleBoxLine_0cexm") +VShaderEditor/styles/label_style = SubResource("StyleBoxEmpty_l0nso") +VSlider/constants/center_grabber = 0 +VSlider/constants/grabber_offset = 0 +VSlider/icons/grabber = null +VSlider/icons/grabber_highlight = null +VSlider/styles/grabber_area = SubResource("StyleBoxFlat_04g3o") +VSlider/styles/grabber_area_highlight = SubResource("StyleBoxFlat_kkf5r") +VSlider/styles/slider = SubResource("StyleBoxFlat_m2hrg") +VSplitContainer/constants/autohide = 1 +VSplitContainer/constants/minimum_grab_thickness = 12 +VSplitContainer/constants/separation = 4 +VSplitContainer/icons/grabber = null +Window/colors/title_color = Color(0.786274, 0.786274, 0.786274, 1) +Window/constants/close_h_offset = 22 +Window/constants/close_v_offset = 20 +Window/constants/resize_margin = 4 +Window/constants/title_height = 24 +Window/font_sizes/title_font_size = 14 +Window/fonts/title_font = ExtResource("1_a74l0") +Window/icons/close = null +Window/icons/close_pressed = null +Window/styles/embedded_border = SubResource("StyleBoxFlat_kqda4") +Window/styles/embedded_unfocused_border = SubResource("StyleBoxFlat_kqda4") diff --git a/Assets/Fonts/Inter-Regular.ttf b/Assets/Fonts/Inter-Regular.ttf new file mode 100644 index 0000000..8d4eebf Binary files /dev/null and b/Assets/Fonts/Inter-Regular.ttf differ diff --git a/Assets/Fonts/Inter-Regular.ttf.import b/Assets/Fonts/Inter-Regular.ttf.import new file mode 100644 index 0000000..8479dc6 --- /dev/null +++ b/Assets/Fonts/Inter-Regular.ttf.import @@ -0,0 +1,40 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://501bous51s3p" +path="res://.godot/imported/Inter-Regular.ttf-2ec9900abaf32134c660163ed92ecaf1.fontdata" + +[deps] + +source_file="res://Assets/Fonts/Inter-Regular.ttf" +dest_files=["res://.godot/imported/Inter-Regular.ttf-2ec9900abaf32134c660163ed92ecaf1.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +hinting=1 +subpixel_positioning=1 +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[{ +"chars": [], +"glyphs": [], +"name": "New Configuration", +"size": Vector2i(16, 0), +"variation_embolden": 0.0 +}] +language_support={} +script_support={} +opentype_features={} diff --git a/Assets/Icons/add.svg b/Assets/Icons/add.svg new file mode 100644 index 0000000..6a0e78b --- /dev/null +++ b/Assets/Icons/add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Assets/Icons/add.svg.import b/Assets/Icons/add.svg.import new file mode 100644 index 0000000..9b3aa1b --- /dev/null +++ b/Assets/Icons/add.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b3mydiolrvqlr" +path="res://.godot/imported/add.svg-807bb7fce18f604a33f75ba4589a0686.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Icons/add.svg" +dest_files=["res://.godot/imported/add.svg-807bb7fce18f604a33f75ba4589a0686.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=false +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=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/Assets/Icons/audio_track.svg b/Assets/Icons/audio_track.svg new file mode 100644 index 0000000..f35a338 --- /dev/null +++ b/Assets/Icons/audio_track.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Assets/Icons/audio_track.svg.import b/Assets/Icons/audio_track.svg.import new file mode 100644 index 0000000..c7c87c7 --- /dev/null +++ b/Assets/Icons/audio_track.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://da3adi0s1qt85" +path="res://.godot/imported/audio_track.svg-f7177dd1cfa1952efcda2b0fafbd5fe0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Icons/audio_track.svg" +dest_files=["res://.godot/imported/audio_track.svg-f7177dd1cfa1952efcda2b0fafbd5fe0.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=false +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 diff --git a/Assets/Icons/checked.svg b/Assets/Icons/checked.svg new file mode 100644 index 0000000..94f01c6 --- /dev/null +++ b/Assets/Icons/checked.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Assets/Icons/checked.svg.import b/Assets/Icons/checked.svg.import new file mode 100644 index 0000000..70e1129 --- /dev/null +++ b/Assets/Icons/checked.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://blqywcg2e22in" +path="res://.godot/imported/checked.svg-a407a73e6fae12042ab7e03cfe289cf1.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Icons/checked.svg" +dest_files=["res://.godot/imported/checked.svg-a407a73e6fae12042ab7e03cfe289cf1.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=false +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=0.75 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/Assets/Icons/label_track.svg b/Assets/Icons/label_track.svg new file mode 100644 index 0000000..d17eeaa --- /dev/null +++ b/Assets/Icons/label_track.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Assets/Icons/label_track.svg.import b/Assets/Icons/label_track.svg.import new file mode 100644 index 0000000..5c6a709 --- /dev/null +++ b/Assets/Icons/label_track.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c1m8c0h70mpa5" +path="res://.godot/imported/label_track.svg-163e679ece6be4343465835f131e9505.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Icons/label_track.svg" +dest_files=["res://.godot/imported/label_track.svg-163e679ece6be4343465835f131e9505.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=false +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 diff --git a/Assets/Icons/microphone_track.svg b/Assets/Icons/microphone_track.svg new file mode 100644 index 0000000..cc4246a --- /dev/null +++ b/Assets/Icons/microphone_track.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Assets/Icons/microphone_track.svg.import b/Assets/Icons/microphone_track.svg.import new file mode 100644 index 0000000..32e8416 --- /dev/null +++ b/Assets/Icons/microphone_track.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bwfbs4jxbia3o" +path="res://.godot/imported/microphone_track.svg-1ac8959b5c3b3d6b0f42611678ab4906.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Icons/microphone_track.svg" +dest_files=["res://.godot/imported/microphone_track.svg-1ac8959b5c3b3d6b0f42611678ab4906.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=false +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 diff --git a/Assets/Icons/mixer.svg b/Assets/Icons/mixer.svg new file mode 100644 index 0000000..c9d91d3 --- /dev/null +++ b/Assets/Icons/mixer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Assets/Icons/mixer.svg.import b/Assets/Icons/mixer.svg.import new file mode 100644 index 0000000..ebc37c0 --- /dev/null +++ b/Assets/Icons/mixer.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dxl2qel0qbxrn" +path="res://.godot/imported/mixer.svg-31a8bbab6edcb600067a9fb9df79889f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Icons/mixer.svg" +dest_files=["res://.godot/imported/mixer.svg-31a8bbab6edcb600067a9fb9df79889f.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=false +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=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/Assets/Icons/mute.svg b/Assets/Icons/mute.svg new file mode 100644 index 0000000..803ae4b --- /dev/null +++ b/Assets/Icons/mute.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Assets/Icons/mute.svg.import b/Assets/Icons/mute.svg.import new file mode 100644 index 0000000..f8ad47d --- /dev/null +++ b/Assets/Icons/mute.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d2yt5ppj82qr1" +path="res://.godot/imported/mute.svg-9a4ef8a1492d59c860c1ab81fc8777ec.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Icons/mute.svg" +dest_files=["res://.godot/imported/mute.svg-9a4ef8a1492d59c860c1ab81fc8777ec.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=false +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=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/Assets/Icons/pause.svg b/Assets/Icons/pause.svg new file mode 100644 index 0000000..de10231 --- /dev/null +++ b/Assets/Icons/pause.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Assets/Icons/pause.svg.import b/Assets/Icons/pause.svg.import new file mode 100644 index 0000000..cab8e19 --- /dev/null +++ b/Assets/Icons/pause.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bqy573te333lt" +path="res://.godot/imported/pause.svg-b569a82cdc28c1abec0d4398e766838d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Icons/pause.svg" +dest_files=["res://.godot/imported/pause.svg-b569a82cdc28c1abec0d4398e766838d.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=false +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=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/Assets/Icons/pause_fill.svg b/Assets/Icons/pause_fill.svg new file mode 100644 index 0000000..12eddd2 --- /dev/null +++ b/Assets/Icons/pause_fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Assets/Icons/pause_fill.svg.import b/Assets/Icons/pause_fill.svg.import new file mode 100644 index 0000000..9578897 --- /dev/null +++ b/Assets/Icons/pause_fill.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bqmcx807prwj0" +path="res://.godot/imported/pause_fill.svg-03ac87b224a544d5ced160fd4fa709fa.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Icons/pause_fill.svg" +dest_files=["res://.godot/imported/pause_fill.svg-03ac87b224a544d5ced160fd4fa709fa.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=false +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=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/Assets/Icons/play.svg b/Assets/Icons/play.svg new file mode 100644 index 0000000..07e4b31 --- /dev/null +++ b/Assets/Icons/play.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Assets/Icons/play.svg.import b/Assets/Icons/play.svg.import new file mode 100644 index 0000000..02d8a8e --- /dev/null +++ b/Assets/Icons/play.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://qh7l84v0jj73" +path="res://.godot/imported/play.svg-b90f638081075dc471c4bc5e46375e06.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Icons/play.svg" +dest_files=["res://.godot/imported/play.svg-b90f638081075dc471c4bc5e46375e06.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=false +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=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/Assets/Icons/play_fill.svg b/Assets/Icons/play_fill.svg new file mode 100644 index 0000000..f172b68 --- /dev/null +++ b/Assets/Icons/play_fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Assets/Icons/play_fill.svg.import b/Assets/Icons/play_fill.svg.import new file mode 100644 index 0000000..38d4d7b --- /dev/null +++ b/Assets/Icons/play_fill.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c7bolv16y04n" +path="res://.godot/imported/play_fill.svg-452dbc9af399995874ab2cfd125b1e41.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Icons/play_fill.svg" +dest_files=["res://.godot/imported/play_fill.svg-452dbc9af399995874ab2cfd125b1e41.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=false +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=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/Assets/Icons/record.svg b/Assets/Icons/record.svg new file mode 100644 index 0000000..16ab5e2 --- /dev/null +++ b/Assets/Icons/record.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Assets/Icons/record.svg.import b/Assets/Icons/record.svg.import new file mode 100644 index 0000000..59fc76a --- /dev/null +++ b/Assets/Icons/record.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cc0dy71y8shcx" +path="res://.godot/imported/record.svg-f7796b623cc0470b54858cbf04cbc209.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Icons/record.svg" +dest_files=["res://.godot/imported/record.svg-f7796b623cc0470b54858cbf04cbc209.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=false +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=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/Assets/Icons/stop.svg b/Assets/Icons/stop.svg new file mode 100644 index 0000000..768eea6 --- /dev/null +++ b/Assets/Icons/stop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Assets/Icons/stop.svg.import b/Assets/Icons/stop.svg.import new file mode 100644 index 0000000..e243b30 --- /dev/null +++ b/Assets/Icons/stop.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dpqaikr0jp2yd" +path="res://.godot/imported/stop.svg-dcc4cbafa165cd18017f97877eb3350b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Icons/stop.svg" +dest_files=["res://.godot/imported/stop.svg-dcc4cbafa165cd18017f97877eb3350b.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=false +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=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/Assets/Icons/stop_fill.svg b/Assets/Icons/stop_fill.svg new file mode 100644 index 0000000..db2025a --- /dev/null +++ b/Assets/Icons/stop_fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Assets/Icons/stop_fill.svg.import b/Assets/Icons/stop_fill.svg.import new file mode 100644 index 0000000..8734cb0 --- /dev/null +++ b/Assets/Icons/stop_fill.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bmw8ftyp0yfnq" +path="res://.godot/imported/stop_fill.svg-ea601ce41d839bb8d5f76cdfccd0a2e7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Icons/stop_fill.svg" +dest_files=["res://.godot/imported/stop_fill.svg-ea601ce41d839bb8d5f76cdfccd0a2e7.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=false +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=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/Assets/Icons/timeline.svg b/Assets/Icons/timeline.svg new file mode 100644 index 0000000..22269aa --- /dev/null +++ b/Assets/Icons/timeline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Assets/Icons/timeline.svg.import b/Assets/Icons/timeline.svg.import new file mode 100644 index 0000000..158a10a --- /dev/null +++ b/Assets/Icons/timeline.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cg6sewiokut5v" +path="res://.godot/imported/timeline.svg-e7e71bb3d592cb6eb26b81e4f159f847.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Icons/timeline.svg" +dest_files=["res://.godot/imported/timeline.svg-e7e71bb3d592cb6eb26b81e4f159f847.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=false +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=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/Assets/Icons/tracks.svg b/Assets/Icons/tracks.svg new file mode 100644 index 0000000..c2d0e27 --- /dev/null +++ b/Assets/Icons/tracks.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Assets/Icons/tracks.svg.import b/Assets/Icons/tracks.svg.import new file mode 100644 index 0000000..ae15fe6 --- /dev/null +++ b/Assets/Icons/tracks.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://vd53o7va0tni" +path="res://.godot/imported/tracks.svg-84971df5232332b00b3794f9fc75ad3e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Icons/tracks.svg" +dest_files=["res://.godot/imported/tracks.svg-84971df5232332b00b3794f9fc75ad3e.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=false +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=0.75 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/Assets/Icons/unchecked.svg b/Assets/Icons/unchecked.svg new file mode 100644 index 0000000..91e9938 --- /dev/null +++ b/Assets/Icons/unchecked.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Assets/Icons/unchecked.svg.import b/Assets/Icons/unchecked.svg.import new file mode 100644 index 0000000..da06ec0 --- /dev/null +++ b/Assets/Icons/unchecked.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://wx4uqiy4qp5c" +path="res://.godot/imported/unchecked.svg-d3ce4a27a0eafd6c66353b82b84d0acc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Icons/unchecked.svg" +dest_files=["res://.godot/imported/unchecked.svg-d3ce4a27a0eafd6c66353b82b84d0acc.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=false +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=0.75 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/AudioEditor.csproj b/AudioEditor.csproj new file mode 100644 index 0000000..53cc1f1 --- /dev/null +++ b/AudioEditor.csproj @@ -0,0 +1,8 @@ + + + net6.0 + net7.0 + net8.0 + true + + \ No newline at end of file diff --git a/AudioEditor.sln b/AudioEditor.sln new file mode 100644 index 0000000..131a421 --- /dev/null +++ b/AudioEditor.sln @@ -0,0 +1,19 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AudioEditor", "AudioEditor.csproj", "{F3C7EA3D-DA7C-425C-A086-5D8E3E189BFF}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + ExportDebug|Any CPU = ExportDebug|Any CPU + ExportRelease|Any CPU = ExportRelease|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F3C7EA3D-DA7C-425C-A086-5D8E3E189BFF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F3C7EA3D-DA7C-425C-A086-5D8E3E189BFF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F3C7EA3D-DA7C-425C-A086-5D8E3E189BFF}.ExportDebug|Any CPU.ActiveCfg = ExportDebug|Any CPU + {F3C7EA3D-DA7C-425C-A086-5D8E3E189BFF}.ExportDebug|Any CPU.Build.0 = ExportDebug|Any CPU + {F3C7EA3D-DA7C-425C-A086-5D8E3E189BFF}.ExportRelease|Any CPU.ActiveCfg = ExportRelease|Any CPU + {F3C7EA3D-DA7C-425C-A086-5D8E3E189BFF}.ExportRelease|Any CPU.Build.0 = ExportRelease|Any CPU + EndGlobalSection +EndGlobal diff --git a/Controls/AudioTrack.tscn b/Controls/AudioTrack.tscn new file mode 100644 index 0000000..31813dd --- /dev/null +++ b/Controls/AudioTrack.tscn @@ -0,0 +1,36 @@ +[gd_scene load_steps=3 format=3 uid="uid://dlb5xpe1t8rrk"] + +[ext_resource type="PackedScene" uid="uid://c3kajrpp2ux7" path="res://Controls/Track.tscn" id="1_envsv"] +[ext_resource type="Texture2D" uid="uid://cc0dy71y8shcx" path="res://Assets/Icons/record.svg" id="2_iwhga"] + +[node name="Track" instance=ExtResource("1_envsv")] + +[node name="MuteSolo" type="VBoxContainer" parent="PanelContainer/HBoxContainer/Body/HBoxContainer" index="0"] +layout_mode = 2 +theme_override_constants/separation = 4 +alignment = 1 + +[node name="Mute" type="Button" parent="PanelContainer/HBoxContainer/Body/HBoxContainer/MuteSolo" index="0"] +modulate = Color(1, 0, 0, 1) +layout_mode = 2 +toggle_mode = true +text = "M" + +[node name="Solo" type="Button" parent="PanelContainer/HBoxContainer/Body/HBoxContainer/MuteSolo" index="1"] +modulate = Color(1, 1, 0, 1) +layout_mode = 2 +toggle_mode = true +text = "S" + +[node name="Record" type="Button" parent="PanelContainer/HBoxContainer/Body/HBoxContainer/NameIconControls/IconAndName" index="2"] +self_modulate = Color(1, 0.373852, 0.504338, 1) +layout_mode = 2 +size_flags_horizontal = 8 +toggle_mode = true +icon = ExtResource("2_iwhga") +icon_alignment = 1 + +[node name="VolumeSlider" type="HSlider" parent="PanelContainer/HBoxContainer/Body/HBoxContainer/NameIconControls" index="1"] +layout_mode = 2 +min_value = -80.0 +max_value = 0.0 diff --git a/Controls/AudioTrackOld.tscn b/Controls/AudioTrackOld.tscn new file mode 100644 index 0000000..442c9e1 --- /dev/null +++ b/Controls/AudioTrackOld.tscn @@ -0,0 +1,106 @@ +[gd_scene load_steps=4 format=3 uid="uid://y1aeb1b7cgh3"] + +[ext_resource type="Theme" uid="uid://b8rk41gjual2b" path="res://Assets/DefaultTheme.tres" id="1_7wbal"] +[ext_resource type="Texture2D" uid="uid://bwfbs4jxbia3o" path="res://Assets/Icons/microphone_track.svg" id="2_ek3ni"] +[ext_resource type="Texture2D" uid="uid://cc0dy71y8shcx" path="res://Assets/Icons/record.svg" id="3_2mwx3"] + +[node name="Track" type="Control"] +clip_children = 1 +custom_minimum_size = Vector2(128, 74) +layout_mode = 3 +anchors_preset = 0 +offset_right = 382.0 +offset_bottom = 74.0 +theme = ExtResource("1_7wbal") + +[node name="PanelContainer" type="PanelContainer" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="HBoxContainer" type="HBoxContainer" parent="PanelContainer"] +clip_children = 1 +layout_mode = 2 + +[node name="Panel" type="Panel" parent="PanelContainer/HBoxContainer"] +visible = false +custom_minimum_size = Vector2(4, 0) +layout_mode = 2 + +[node name="ColorRect" type="ColorRect" parent="PanelContainer/HBoxContainer"] +self_modulate = Color(0.699653, 0.699654, 0.699653, 1) +clip_contents = true +custom_minimum_size = Vector2(4, 0) +layout_mode = 2 + +[node name="MarginContainer" type="MarginContainer" parent="PanelContainer/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_constants/margin_left = 4 +theme_override_constants/margin_top = 4 +theme_override_constants/margin_right = 4 +theme_override_constants/margin_bottom = 4 + +[node name="HBoxContainer" type="HBoxContainer" parent="PanelContainer/HBoxContainer/MarginContainer"] +layout_mode = 2 + +[node name="MuteSolo" type="VBoxContainer" parent="PanelContainer/HBoxContainer/MarginContainer/HBoxContainer"] +layout_mode = 2 +theme_override_constants/separation = 4 +alignment = 1 + +[node name="Mute" type="Button" parent="PanelContainer/HBoxContainer/MarginContainer/HBoxContainer/MuteSolo"] +modulate = Color(1, 0, 0, 1) +layout_mode = 2 +toggle_mode = true +text = "M" + +[node name="Solo" type="Button" parent="PanelContainer/HBoxContainer/MarginContainer/HBoxContainer/MuteSolo"] +modulate = Color(1, 1, 0, 1) +layout_mode = 2 +toggle_mode = true +text = "S" + +[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer/HBoxContainer/MarginContainer/HBoxContainer"] +clip_children = 1 +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_constants/separation = 4 +alignment = 1 + +[node name="HBoxContainer" type="HBoxContainer" parent="PanelContainer/HBoxContainer/MarginContainer/HBoxContainer/VBoxContainer"] +layout_mode = 2 + +[node name="TrackIcon" type="TextureRect" parent="PanelContainer/HBoxContainer/MarginContainer/HBoxContainer/VBoxContainer/HBoxContainer"] +modulate = Color(0.43134, 0.43134, 0.43134, 1) +custom_minimum_size = Vector2(16, 16) +layout_mode = 2 +size_flags_horizontal = 0 +texture = ExtResource("2_ek3ni") +expand_mode = 2 + +[node name="TrackName" type="LineEdit" parent="PanelContainer/HBoxContainer/MarginContainer/HBoxContainer/VBoxContainer/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Track Name" +expand_to_text_length = true +context_menu_enabled = false +caret_blink = true + +[node name="Record" type="Button" parent="PanelContainer/HBoxContainer/MarginContainer/HBoxContainer/VBoxContainer/HBoxContainer"] +self_modulate = Color(1, 0.373852, 0.504338, 1) +layout_mode = 2 +size_flags_horizontal = 8 +toggle_mode = true +icon = ExtResource("3_2mwx3") +icon_alignment = 1 + +[node name="VolumeSlider" type="HSlider" parent="PanelContainer/HBoxContainer/MarginContainer/HBoxContainer/VBoxContainer"] +layout_mode = 2 +min_value = -80.0 +max_value = 0.0 + +[connection signal="text_submitted" from="PanelContainer/HBoxContainer/MarginContainer/HBoxContainer/VBoxContainer/HBoxContainer/TrackName" to="PanelContainer/HBoxContainer/MarginContainer/HBoxContainer/VBoxContainer/HBoxContainer/TrackName" method="release_focus" unbinds=1] diff --git a/Controls/LabelTrack.tscn b/Controls/LabelTrack.tscn new file mode 100644 index 0000000..3e7f0b9 --- /dev/null +++ b/Controls/LabelTrack.tscn @@ -0,0 +1,9 @@ +[gd_scene load_steps=3 format=3 uid="uid://bhe0fbxuxrgjk"] + +[ext_resource type="PackedScene" uid="uid://c3kajrpp2ux7" path="res://Controls/Track.tscn" id="1_oloar"] +[ext_resource type="Texture2D" uid="uid://c1m8c0h70mpa5" path="res://Assets/Icons/label_track.svg" id="2_v5n7i"] + +[node name="LabelTrack" instance=ExtResource("1_oloar")] + +[node name="TrackIcon" parent="PanelContainer/HBoxContainer/Body/HBoxContainer/NameIconControls/IconAndName" index="0"] +texture = ExtResource("2_v5n7i") diff --git a/Controls/Track.tscn b/Controls/Track.tscn new file mode 100644 index 0000000..ecd52de --- /dev/null +++ b/Controls/Track.tscn @@ -0,0 +1,71 @@ +[gd_scene load_steps=3 format=3 uid="uid://c3kajrpp2ux7"] + +[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"] + +[node name="Track" type="Control"] +clip_children = 1 +custom_minimum_size = Vector2(128, 74) +layout_mode = 3 +anchors_preset = 0 +offset_right = 382.0 +offset_bottom = 74.0 +theme = ExtResource("1_tbi88") + +[node name="PanelContainer" type="PanelContainer" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="HBoxContainer" type="HBoxContainer" parent="PanelContainer"] +clip_children = 1 +layout_mode = 2 + +[node name="ColorStrip" type="ColorRect" parent="PanelContainer/HBoxContainer"] +self_modulate = Color(0.699653, 0.699654, 0.699653, 1) +clip_contents = true +custom_minimum_size = Vector2(4, 0) +layout_mode = 2 + +[node name="Body" type="MarginContainer" parent="PanelContainer/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_constants/margin_left = 4 +theme_override_constants/margin_top = 4 +theme_override_constants/margin_right = 4 +theme_override_constants/margin_bottom = 4 + +[node name="HBoxContainer" type="HBoxContainer" parent="PanelContainer/HBoxContainer/Body"] +layout_mode = 2 + +[node name="NameIconControls" type="VBoxContainer" parent="PanelContainer/HBoxContainer/Body/HBoxContainer"] +clip_children = 1 +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_constants/separation = 4 +alignment = 1 + +[node name="IconAndName" type="HBoxContainer" parent="PanelContainer/HBoxContainer/Body/HBoxContainer/NameIconControls"] +custom_minimum_size = Vector2(0, 32) +layout_mode = 2 + +[node name="TrackIcon" type="TextureRect" parent="PanelContainer/HBoxContainer/Body/HBoxContainer/NameIconControls/IconAndName"] +modulate = Color(0.43134, 0.43134, 0.43134, 1) +custom_minimum_size = Vector2(16, 16) +layout_mode = 2 +size_flags_horizontal = 0 +texture = ExtResource("2_r2pin") +expand_mode = 2 + +[node name="TrackName" type="LineEdit" parent="PanelContainer/HBoxContainer/Body/HBoxContainer/NameIconControls/IconAndName"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Track Name" +expand_to_text_length = true +context_menu_enabled = false +caret_blink = true + +[connection signal="text_submitted" from="PanelContainer/HBoxContainer/Body/HBoxContainer/NameIconControls/IconAndName/TrackName" to="PanelContainer/HBoxContainer/Body/HBoxContainer/NameIconControls/IconAndName/TrackName" method="release_focus" unbinds=1] diff --git a/Scripts/NestablePopupMenu.gd b/Scripts/NestablePopupMenu.gd new file mode 100644 index 0000000..b620f72 --- /dev/null +++ b/Scripts/NestablePopupMenu.gd @@ -0,0 +1,9 @@ +extends PopupMenu + +func _ready(): + for child in get_children(): + if child is PopupMenu: + add_submenu_node_item(child.name, child) + pass + pass + pass \ No newline at end of file diff --git a/Views/MainView.tscn b/Views/MainView.tscn new file mode 100644 index 0000000..e313fab --- /dev/null +++ b/Views/MainView.tscn @@ -0,0 +1,238 @@ +[gd_scene load_steps=18 format=3 uid="uid://cr2f68sbsegai"] + +[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" 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://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" path="res://addons/dockable_container/layout.gd" id="4_ixaqo"] +[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="Texture2D" uid="uid://c7bolv16y04n" path="res://Assets/Icons/play_fill.svg" id="9_5eeih"] +[ext_resource type="Texture2D" uid="uid://bqmcx807prwj0" path="res://Assets/Icons/pause_fill.svg" id="10_a1xvk"] +[ext_resource type="Texture2D" uid="uid://bmw8ftyp0yfnq" path="res://Assets/Icons/stop_fill.svg" id="11_6dqcn"] + +[sub_resource type="Resource" id="Resource_pfnfv"] +resource_name = "Tabs" +script = ExtResource("3_4twnq") +names = PackedStringArray("Tracks") +current_tab = 0 + +[sub_resource type="Resource" id="Resource_20kxa"] +resource_name = "Layout" +script = ExtResource("4_ixaqo") +root = SubResource("Resource_pfnfv") +hidden_tabs = {} + +[sub_resource type="Resource" id="Resource_xnlko"] +resource_name = "Tabs" +script = ExtResource("3_4twnq") +names = PackedStringArray("Mixer") +current_tab = 0 + +[sub_resource type="Resource" id="Resource_h7r2s"] +resource_name = "Layout" +script = ExtResource("4_ixaqo") +root = SubResource("Resource_xnlko") +hidden_tabs = {} + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_3f3qp"] +bg_color = Color(0.180005, 0.180005, 0.180005, 1) + +[node name="MainView" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("1_s6hk6") + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="MenuBar" type="MenuBar" parent="VBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +flat = true + +[node name="File" type="PopupMenu" parent="VBoxContainer/MenuBar"] +item_count = 3 +item_0/text = "New..." +item_1/text = "Open..." +item_1/id = 1 +item_2/id = 2 +item_2/separator = true +script = ExtResource("2_lsrne") + +[node name="Import" type="PopupMenu" parent="VBoxContainer/MenuBar/File"] +auto_translate_mode = 1 +item_count = 2 +item_0/text = "Audio Clip" +item_1/text = "Label Clip" +item_1/id = 1 + +[node name="Export" type="PopupMenu" parent="VBoxContainer/MenuBar/File"] +item_count = 2 +item_0/text = "Project" +item_1/text = "Region" +item_1/id = 1 + +[node name="Edit" type="PopupMenu" parent="VBoxContainer/MenuBar"] +auto_translate_mode = 1 +item_count = 2 +item_0/text = "Add Audio Track" +item_1/text = "Add Label Track" +item_1/id = 1 + +[node name="View" type="PopupMenu" parent="VBoxContainer/MenuBar"] +auto_translate_mode = 1 +hide_on_checkable_item_selection = false +item_count = 2 +item_0/text = "Tracks" +item_0/icon = ExtResource("2_nidjn") +item_0/checkable = 1 +item_0/checked = true +item_1/text = "Mixer" +item_1/icon = ExtResource("3_4tblp") +item_1/checkable = 1 +item_1/checked = true +item_1/id = 1 + +[node name="Settings" type="PopupMenu" parent="VBoxContainer/MenuBar"] +auto_translate_mode = 1 +hide_on_checkable_item_selection = false +item_count = 2 +item_0/text = "Project Settings" +item_1/text = "System Settings" +item_1/id = 1 + +[node name="Panel" type="Panel" parent="VBoxContainer/MenuBar"] +show_behind_parent = true +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 + +[node name="VSplitContainer" type="VSplitContainer" parent="VBoxContainer"] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="Transport" type="PanelContainer" parent="VBoxContainer/VSplitContainer"] +show_behind_parent = true +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +mouse_filter = 2 + +[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/VSplitContainer/Transport"] +layout_mode = 2 + +[node name="Controls" type="MarginContainer" parent="VBoxContainer/VSplitContainer/Transport/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 4 +theme_override_constants/margin_left = 8 +theme_override_constants/margin_top = 8 +theme_override_constants/margin_right = 8 +theme_override_constants/margin_bottom = 8 + +[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/VSplitContainer/Transport/HBoxContainer/Controls"] +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +theme_override_constants/separation = 8 + +[node name="Play" type="Button" parent="VBoxContainer/VSplitContainer/Transport/HBoxContainer/Controls/HBoxContainer"] +modulate = Color(0.253333, 1, 0.2, 1) +layout_mode = 2 +icon = ExtResource("9_5eeih") +icon_alignment = 1 + +[node name="Pause" type="Button" parent="VBoxContainer/VSplitContainer/Transport/HBoxContainer/Controls/HBoxContainer"] +modulate = Color(1, 0.986667, 0.2, 1) +layout_mode = 2 +icon = ExtResource("10_a1xvk") +icon_alignment = 1 + +[node name="Stop" type="Button" parent="VBoxContainer/VSplitContainer/Transport/HBoxContainer/Controls/HBoxContainer"] +self_modulate = Color(1, 0.2, 0.2, 1) +layout_mode = 2 +icon = ExtResource("11_6dqcn") +icon_alignment = 1 + +[node name="Time" type="VBoxContainer" parent="VBoxContainer/VSplitContainer/Transport/HBoxContainer"] +layout_mode = 2 +alignment = 1 + +[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/VSplitContainer/Transport/HBoxContainer/Time"] +layout_mode = 2 + +[node name="CurrentTime" type="Label" parent="VBoxContainer/VSplitContainer/Transport/HBoxContainer/Time/HBoxContainer"] +layout_mode = 2 +text = "00:00.00" + +[node name="VSeparator" type="VSeparator" parent="VBoxContainer/VSplitContainer/Transport/HBoxContainer/Time/HBoxContainer"] +layout_mode = 2 + +[node name="Length" type="Label" parent="VBoxContainer/VSplitContainer/Transport/HBoxContainer/Time/HBoxContainer"] +layout_mode = 2 +text = "00:00.00" + +[node name="HSplitContainer" type="HSplitContainer" parent="VBoxContainer/VSplitContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[node name="LeftDock" type="Container" parent="VBoxContainer/VSplitContainer/HSplitContainer"] +custom_minimum_size = Vector2(200, 0) +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +size_flags_stretch_ratio = 0.2 +script = ExtResource("2_7b0h5") +tab_alignment = 0 +layout = SubResource("Resource_20kxa") + +[node name="Tracks" parent="VBoxContainer/VSplitContainer/HSplitContainer/LeftDock" instance=ExtResource("5_rgxdu")] +layout_mode = 2 + +[node name="Timeline" parent="VBoxContainer/VSplitContainer/HSplitContainer" instance=ExtResource("7_xu70y")] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="BottomDock" type="Container" parent="VBoxContainer/VSplitContainer"] +visible = false +layout_mode = 2 +size_flags_vertical = 3 +size_flags_stretch_ratio = 0.2 +script = ExtResource("2_7b0h5") +tab_alignment = 0 +layout = SubResource("Resource_h7r2s") + +[node name="Mixer" type="Control" parent="VBoxContainer/VSplitContainer/BottomDock"] +layout_mode = 2 + +[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"] +visible = false +layout_mode = 2 +size_flags_vertical = 3 + +[node name="Panel" type="Panel" parent="."] +show_behind_parent = true +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_3f3qp") diff --git a/Views/Timeline.tscn b/Views/Timeline.tscn new file mode 100644 index 0000000..ddc8dd7 --- /dev/null +++ b/Views/Timeline.tscn @@ -0,0 +1,15 @@ +[gd_scene format=3 uid="uid://v4oljx3qrk5q"] + +[node name="Timeline" type="Control"] +layout_mode = 3 +anchors_preset = 0 +size_flags_horizontal = 3 + +[node name="Panel" type="Panel" parent="."] +modulate = Color(0.329158, 0.329158, 0.329158, 1) +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 diff --git a/Views/TrackView.tscn b/Views/TrackView.tscn new file mode 100644 index 0000000..ca0cd85 --- /dev/null +++ b/Views/TrackView.tscn @@ -0,0 +1,38 @@ +[gd_scene load_steps=3 format=3 uid="uid://bpd6g2b3s7tqa"] + +[ext_resource type="PackedScene" uid="uid://dlb5xpe1t8rrk" path="res://Controls/AudioTrack.tscn" id="1_ueogm"] +[ext_resource type="Texture2D" uid="uid://b3mydiolrvqlr" path="res://Assets/Icons/add.svg" id="2_rekuu"] + +[node name="Tracks" type="Control"] +clip_children = 1 +custom_minimum_size = Vector2(200, 0) +layout_mode = 3 +anchors_preset = 9 +anchor_bottom = 1.0 +grow_vertical = 2 + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +custom_minimum_size = Vector2(128, 0) +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="TrackList" type="VBoxContainer" parent="VBoxContainer"] +custom_minimum_size = Vector2(128, 0) +layout_mode = 2 + +[node name="Track" parent="VBoxContainer/TrackList" instance=ExtResource("1_ueogm")] +layout_mode = 2 + +[node name="AddTrack" type="MenuButton" parent="VBoxContainer"] +layout_mode = 2 +icon = ExtResource("2_rekuu") +flat = false +icon_alignment = 1 +item_count = 2 +popup/item_0/text = "Audio Track" +popup/item_1/text = "Label Track" +popup/item_1/id = 1 diff --git a/addons/dockable_container/LICENSE b/addons/dockable_container/LICENSE new file mode 100644 index 0000000..0e259d4 --- /dev/null +++ b/addons/dockable_container/LICENSE @@ -0,0 +1,121 @@ +Creative Commons Legal Code + +CC0 1.0 Universal + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS + PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM + THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED + HEREUNDER. + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator +and subsequent owner(s) (each and all, an "owner") of an original work of +authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for +the purpose of contributing to a commons of creative, cultural and +scientific works ("Commons") that the public can reliably and without fear +of later claims of infringement build upon, modify, incorporate in other +works, reuse and redistribute as freely as possible in any form whatsoever +and for any purposes, including without limitation commercial purposes. +These owners may contribute to the Commons to promote the ideal of a free +culture and the further production of creative, cultural and scientific +works, or to gain reputation or greater distribution for their Work in +part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any +expectation of additional consideration or compensation, the person +associating CC0 with a Work (the "Affirmer"), to the extent that he or she +is an owner of Copyright and Related Rights in the Work, voluntarily +elects to apply CC0 to the Work and publicly distribute the Work under its +terms, with knowledge of his or her Copyright and Related Rights in the +Work and the meaning and intended legal effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be +protected by copyright and related or neighboring rights ("Copyright and +Related Rights"). Copyright and Related Rights include, but are not +limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, + communicate, and translate a Work; + ii. moral rights retained by the original author(s) and/or performer(s); +iii. publicity and privacy rights pertaining to a person's image or + likeness depicted in a Work; + iv. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(a), below; + v. rights protecting the extraction, dissemination, use and reuse of data + in a Work; + vi. database rights (such as those arising under Directive 96/9/EC of the + European Parliament and of the Council of 11 March 1996 on the legal + protection of databases, and under any national implementation + thereof, including any amended or successor version of such + directive); and +vii. other similar, equivalent or corresponding rights throughout the + world based on applicable law or treaty, and any national + implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention +of, applicable law, Affirmer hereby overtly, fully, permanently, +irrevocably and unconditionally waives, abandons, and surrenders all of +Affirmer's Copyright and Related Rights and associated claims and causes +of action, whether now known or unknown (including existing as well as +future claims and causes of action), in the Work (i) in all territories +worldwide, (ii) for the maximum duration provided by applicable law or +treaty (including future time extensions), (iii) in any current or future +medium and for any number of copies, and (iv) for any purpose whatsoever, +including without limitation commercial, advertising or promotional +purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each +member of the public at large and to the detriment of Affirmer's heirs and +successors, fully intending that such Waiver shall not be subject to +revocation, rescission, cancellation, termination, or any other legal or +equitable action to disrupt the quiet enjoyment of the Work by the public +as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason +be judged legally invalid or ineffective under applicable law, then the +Waiver shall be preserved to the maximum extent permitted taking into +account Affirmer's express Statement of Purpose. In addition, to the +extent the Waiver is so judged Affirmer hereby grants to each affected +person a royalty-free, non transferable, non sublicensable, non exclusive, +irrevocable and unconditional license to exercise Affirmer's Copyright and +Related Rights in the Work (i) in all territories worldwide, (ii) for the +maximum duration provided by applicable law or treaty (including future +time extensions), (iii) in any current or future medium and for any number +of copies, and (iv) for any purpose whatsoever, including without +limitation commercial, advertising or promotional purposes (the +"License"). The License shall be deemed effective as of the date CC0 was +applied by Affirmer to the Work. Should any part of the License for any +reason be judged legally invalid or ineffective under applicable law, such +partial invalidity or ineffectiveness shall not invalidate the remainder +of the License, and in such case Affirmer hereby affirms that he or she +will not (i) exercise any of his or her remaining Copyright and Related +Rights in the Work or (ii) assert any associated claims and causes of +action with respect to the Work, in either case contrary to Affirmer's +express Statement of Purpose. + +4. Limitations and Disclaimers. + + a. No trademark or patent rights held by Affirmer are waived, abandoned, + surrendered, licensed or otherwise affected by this document. + b. Affirmer offers the Work as-is and makes no representations or + warranties of any kind concerning the Work, express, implied, + statutory or otherwise, including without limitation warranties of + title, merchantability, fitness for a particular purpose, non + infringement, or the absence of latent or other defects, accuracy, or + the present or absence of errors, whether or not discoverable, all to + the greatest extent permissible under applicable law. + c. Affirmer disclaims responsibility for clearing rights of other persons + that may apply to the Work or any use thereof, including without + limitation any person's Copyright and Related Rights in the Work. + Further, Affirmer disclaims responsibility for obtaining any necessary + consents, permissions or other rights required for any use of the + Work. + d. Affirmer understands and acknowledges that Creative Commons is not a + party to this document and has no duty or obligation with respect to + this CC0 or use of the Work. diff --git a/addons/dockable_container/dockable_container.gd b/addons/dockable_container/dockable_container.gd new file mode 100644 index 0000000..3913a68 --- /dev/null +++ b/addons/dockable_container/dockable_container.gd @@ -0,0 +1,448 @@ +@tool +class_name DockableContainer +extends Container + +const SplitHandle := preload("split_handle.gd") +const DockablePanel := preload("dockable_panel.gd") +const DragNDropPanel := preload("drag_n_drop_panel.gd") + +@export var tab_alignment := TabBar.ALIGNMENT_CENTER: + get: + return _tab_align + set(value): + _tab_align = value + for i in range(1, _panel_container.get_child_count()): + var panel := _panel_container.get_child(i) as DockablePanel + panel.tab_alignment = value +@export var use_hidden_tabs_for_min_size := false: + get: + return _use_hidden_tabs_for_min_size + set(value): + _use_hidden_tabs_for_min_size = value + for i in range(1, _panel_container.get_child_count()): + var panel := _panel_container.get_child(i) as DockablePanel + panel.use_hidden_tabs_for_min_size = value +@export var tabs_visible := true: + get: + return _tabs_visible + set(value): + _tabs_visible = value + for i in range(1, _panel_container.get_child_count()): + var panel := _panel_container.get_child(i) as DockablePanel + panel.show_tabs = _tabs_visible +## If [code]true[/code] and a panel only has one tab, it keeps that tab hidden even if +## [member tabs_visible] is [code]true[/code]. +## Only takes effect is [member tabs_visible] is [code]true[/code]. +@export var hide_single_tab := false: + get: + return _hide_single_tab + set(value): + _hide_single_tab = value + for i in range(1, _panel_container.get_child_count()): + var panel := _panel_container.get_child(i) as DockablePanel + panel.hide_single_tab = _hide_single_tab +@export var rearrange_group := 0 +@export var layout := DockableLayout.new(): + get: + return _layout + set(value): + set_layout(value) +## If `clone_layout_on_ready` is true, `layout` will be cloned checked `_ready`. +## This is useful for leaving layout Resources untouched in case you want to +## restore layout to its default later. +@export var clone_layout_on_ready := true + +var _layout := DockableLayout.new() +var _panel_container := Container.new() +var _split_container := Container.new() +var _drag_n_drop_panel := DragNDropPanel.new() +var _drag_panel: DockablePanel +var _tab_align := TabBar.ALIGNMENT_CENTER +var _tabs_visible := true +var _use_hidden_tabs_for_min_size := false +var _hide_single_tab := false +var _current_panel_index := 0 +var _current_split_index := 0 +var _children_names := {} +var _layout_dirty := false + + +func _init() -> void: + child_entered_tree.connect(_child_entered_tree) + child_exiting_tree.connect(_child_exiting_tree) + + +func _ready() -> void: + set_process_input(false) + _panel_container.name = "_panel_container" + add_child(_panel_container) + move_child(_panel_container, 0) + _split_container.name = "_split_container" + _split_container.mouse_filter = MOUSE_FILTER_PASS + _panel_container.add_child(_split_container) + + _drag_n_drop_panel.name = "_drag_n_drop_panel" + _drag_n_drop_panel.mouse_filter = MOUSE_FILTER_PASS + _drag_n_drop_panel.visible = false + add_child(_drag_n_drop_panel) + + if not _layout: + set_layout(null) + elif clone_layout_on_ready and not Engine.is_editor_hint(): + set_layout(_layout.clone()) + + +func _notification(what: int) -> void: + if what == NOTIFICATION_SORT_CHILDREN: + _resort() + elif ( + what == NOTIFICATION_DRAG_BEGIN + and _can_handle_drag_data(get_viewport().gui_get_drag_data()) + ): + _drag_n_drop_panel.set_enabled(true, not _layout.root.is_empty()) + set_process_input(true) + elif what == NOTIFICATION_DRAG_END: + _drag_n_drop_panel.set_enabled(false) + set_process_input(false) + + +func _input(event: InputEvent) -> void: + assert(get_viewport().gui_is_dragging(), "FIXME: should only be called when dragging") + if event is InputEventMouseMotion: + var local_position := get_local_mouse_position() + var panel: DockablePanel + for i in range(1, _panel_container.get_child_count()): + var p := _panel_container.get_child(i) as DockablePanel + if p.get_rect().has_point(local_position): + panel = p + break + _drag_panel = panel + if not panel: + return + fit_child_in_rect(_drag_n_drop_panel, panel.get_child_rect()) + + +func _child_entered_tree(node: Node) -> void: + if node == _panel_container or node == _drag_n_drop_panel: + return + _drag_n_drop_panel.move_to_front() + _track_and_add_node(node) + + +func _child_exiting_tree(node: Node) -> void: + if node == _panel_container or node == _drag_n_drop_panel: + return + _untrack_node(node) + + +func _can_drop_data(_position: Vector2, data) -> bool: + return _can_handle_drag_data(data) + + +func _drop_data(_position: Vector2, data) -> void: + var from_node := get_node(data.from_path) + if from_node is TabBar: + from_node = from_node.get_parent() + if from_node == _drag_panel and _drag_panel.get_child_count() == 1: + return + var tab_index = data.tabc_element if data.has("tabc_element") else data.tab_index + var moved_tab = from_node.get_tab_control(tab_index) + if moved_tab is DockableReferenceControl: + moved_tab = moved_tab.reference_to + if not _is_managed_node(moved_tab): + moved_tab.get_parent().remove_child(moved_tab) + add_child(moved_tab) + + if _drag_panel != null: + var margin := _drag_n_drop_panel.get_hover_margin() + _layout.split_leaf_with_node(_drag_panel.leaf, moved_tab, margin) + + _layout_dirty = true + queue_sort() + + +func set_control_as_current_tab(control: Control) -> void: + assert( + control.get_parent_control() == self, + "Trying to focus a control not managed by this container" + ) + if is_control_hidden(control): + push_warning("Trying to focus a hidden control") + return + var leaf := _layout.get_leaf_for_node(control) + if not leaf: + return + var position_in_leaf := leaf.find_child(control) + if position_in_leaf < 0: + return + var panel: DockablePanel + for i in range(1, _panel_container.get_child_count()): + var p := _panel_container.get_child(i) as DockablePanel + if p.leaf == leaf: + panel = p + break + if not panel: + return + panel.current_tab = clampi(position_in_leaf, 0, panel.get_tab_count() - 1) + + +func set_layout(value: DockableLayout) -> void: + if value == null: + value = DockableLayout.new() + if value == _layout: + return + if _layout and _layout.changed.is_connected(queue_sort): + _layout.changed.disconnect(queue_sort) + _layout = value + _layout.changed.connect(queue_sort) + _layout_dirty = true + queue_sort() + + +func set_use_hidden_tabs_for_min_size(value: bool) -> void: + _use_hidden_tabs_for_min_size = value + for i in range(1, _panel_container.get_child_count()): + var panel = _panel_container.get_child(i) + panel.use_hidden_tabs_for_min_size = value + + +func get_use_hidden_tabs_for_min_size() -> bool: + return _use_hidden_tabs_for_min_size + + +func set_control_hidden(child: Control, is_hidden: bool) -> void: + _layout.set_node_hidden(child, is_hidden) + + +func is_control_hidden(child: Control) -> bool: + return _layout.is_node_hidden(child) + + +func get_tabs() -> Array[Control]: + var tabs: Array[Control] = [] + for i in get_child_count(): + var child := get_child(i) + if _is_managed_node(child): + tabs.append(child) + return tabs + + +func get_tab_count() -> int: + var count := 0 + for i in get_child_count(): + var child := get_child(i) + if _is_managed_node(child): + count += 1 + return count + + +func _can_handle_drag_data(data) -> bool: + if data is Dictionary and data.get("type") in ["tab_container_tab", "tabc_element"]: + var tabc := get_node_or_null(data.get("from_path")) + return ( + tabc + and tabc.has_method("get_tabs_rearrange_group") + and tabc.get_tabs_rearrange_group() == rearrange_group + ) + return false + + +func _is_managed_node(node: Node) -> bool: + return ( + node.get_parent() == self + and node != _panel_container + and node != _drag_n_drop_panel + and node is Control + and not node.top_level + ) + + +func _update_layout_with_children() -> void: + var names := PackedStringArray() + _children_names.clear() + for i in range(1, get_child_count() - 1): + var c := get_child(i) + if _track_node(c): + names.append(c.name) + _layout.update_nodes(names) + _layout_dirty = false + + +func _track_node(node: Node) -> bool: + if not _is_managed_node(node): + return false + _children_names[node] = node.name + _children_names[node.name] = node + if not node.renamed.is_connected(_on_child_renamed): + node.renamed.connect(_on_child_renamed.bind(node)) + if not node.tree_exiting.is_connected(_untrack_node): + node.tree_exiting.connect(_untrack_node.bind(node)) + return true + + +func _track_and_add_node(node: Node) -> void: + var tracked_name = _children_names.get(node) + if not _track_node(node): + return + if tracked_name and tracked_name != node.name: + _layout.rename_node(tracked_name, node.name) + _layout_dirty = true + + +func _untrack_node(node: Node) -> void: + _children_names.erase(node) + _children_names.erase(node.name) + if node.renamed.is_connected(_on_child_renamed): + node.renamed.disconnect(_on_child_renamed) + if node.tree_exiting.is_connected(_untrack_node): + node.tree_exiting.disconnect(_untrack_node) + _layout_dirty = true + + +func _resort() -> void: + assert(_panel_container, "FIXME: resorting without _panel_container") + if _panel_container.get_index() != 0: + move_child(_panel_container, 0) + if _drag_n_drop_panel.get_index() < get_child_count() - 1: + _drag_n_drop_panel.move_to_front() + + if _layout_dirty: + _update_layout_with_children() + + var rect := Rect2(Vector2.ZERO, size) + fit_child_in_rect(_panel_container, rect) + _panel_container.fit_child_in_rect(_split_container, rect) + + _current_panel_index = 1 + _current_split_index = 0 + + var children_list := [] + _calculate_panel_and_split_list(children_list, _layout.root) + _fit_panel_and_split_list_to_rect(children_list, rect) + + _untrack_children_after(_panel_container, _current_panel_index) + _untrack_children_after(_split_container, _current_split_index) + + +## Calculate DockablePanel and SplitHandle minimum sizes, skipping empty +## branches. +## +## Returns a DockablePanel checked non-empty leaves, a SplitHandle checked non-empty +## splits, `null` if the whole branch is empty and no space should be used. +## +## `result` will be filled with the non-empty nodes in this post-order tree +## traversal. +func _calculate_panel_and_split_list(result: Array, layout_node: DockableLayoutNode): + if layout_node is DockableLayoutPanel: + var nodes: Array[Control] = [] + for n in layout_node.names: + var node: Control = _children_names.get(n) + if node: + assert(node is Control, "FIXME: node is not a control %s" % node) + assert( + node.get_parent_control() == self, + "FIXME: node is not child of container %s" % node + ) + if is_control_hidden(node): + node.visible = false + else: + nodes.append(node) + if nodes.is_empty(): + return null + else: + var panel := _get_panel(_current_panel_index) + _current_panel_index += 1 + panel.track_nodes(nodes, layout_node) + result.append(panel) + return panel + elif layout_node is DockableLayoutSplit: + # by processing `second` before `first`, traversing `result` from back + # to front yields a nice pre-order tree traversal + var second_result = _calculate_panel_and_split_list(result, layout_node.second) + var first_result = _calculate_panel_and_split_list(result, layout_node.first) + if first_result and second_result: + var split := _get_split(_current_split_index) + _current_split_index += 1 + split.layout_split = layout_node + split.first_minimum_size = first_result.get_layout_minimum_size() + split.second_minimum_size = second_result.get_layout_minimum_size() + result.append(split) + return split + elif first_result: + return first_result + else: # NOTE: this returns null if `second_result` is null + return second_result + else: + push_warning("FIXME: invalid Resource, should be branch or leaf, found %s" % layout_node) + + +## Traverse list from back to front fitting controls where they belong. +## +## Be sure to call this with the result from `_calculate_split_minimum_sizes`. +func _fit_panel_and_split_list_to_rect(panel_and_split_list: Array, rect: Rect2) -> void: + var control = panel_and_split_list.pop_back() + if control is DockablePanel: + _panel_container.fit_child_in_rect(control, rect) + elif control is SplitHandle: + var split_rects = control.get_split_rects(rect) + _split_container.fit_child_in_rect(control, split_rects["self"]) + _fit_panel_and_split_list_to_rect(panel_and_split_list, split_rects["first"]) + _fit_panel_and_split_list_to_rect(panel_and_split_list, split_rects["second"]) + + +## Get the idx'th DockablePanel, reusing an instanced one if possible +func _get_panel(idx: int) -> DockablePanel: + assert(_panel_container, "FIXME: creating panel without _panel_container") + if idx < _panel_container.get_child_count(): + return _panel_container.get_child(idx) + var panel := DockablePanel.new() + panel.tab_alignment = _tab_align + panel.show_tabs = _tabs_visible + panel.hide_single_tab = _hide_single_tab + panel.use_hidden_tabs_for_min_size = _use_hidden_tabs_for_min_size + panel.set_tabs_rearrange_group(maxi(0, rearrange_group)) + _panel_container.add_child(panel) + panel.tab_layout_changed.connect(_on_panel_tab_layout_changed.bind(panel)) + return panel + + +## Get the idx'th SplitHandle, reusing an instanced one if possible +func _get_split(idx: int) -> SplitHandle: + assert(_split_container, "FIXME: creating split without _split_container") + if idx < _split_container.get_child_count(): + return _split_container.get_child(idx) + var split := SplitHandle.new() + _split_container.add_child(split) + return split + + +## Helper for removing and freeing all remaining children from node +func _untrack_children_after(node: Control, idx: int) -> void: + for i in range(idx, node.get_child_count()): + var child := node.get_child(idx) + node.remove_child(child) + child.queue_free() + + +## Handler for `DockablePanel.tab_layout_changed`, update its DockableLayoutPanel +func _on_panel_tab_layout_changed(tab: int, panel: DockablePanel) -> void: + _layout_dirty = true + var control := panel.get_tab_control(tab) + if control is DockableReferenceControl: + control = control.reference_to + if not _is_managed_node(control): + control.get_parent().remove_child(control) + add_child(control) + _layout.move_node_to_leaf(control, panel.leaf, tab) + queue_sort() + + +## Handler for `Node.renamed` signal, updates tracked name for node +func _on_child_renamed(child: Node) -> void: + var old_name: String = _children_names.get(child) + if old_name == str(child.name): + return + _children_names.erase(old_name) + _children_names[child] = child.name + _children_names[child.name] = child + _layout.rename_node(old_name, child.name) diff --git a/addons/dockable_container/dockable_panel.gd b/addons/dockable_container/dockable_panel.gd new file mode 100644 index 0000000..d522027 --- /dev/null +++ b/addons/dockable_container/dockable_panel.gd @@ -0,0 +1,108 @@ +@tool +extends TabContainer + +signal tab_layout_changed(tab) + +var leaf: DockableLayoutPanel: + get: + return get_leaf() + set(value): + set_leaf(value) +var show_tabs := true: + get: + return _show_tabs + set(value): + _show_tabs = value + _handle_tab_visibility() +var hide_single_tab := false: + get: + return _hide_single_tab + set(value): + _hide_single_tab = value + _handle_tab_visibility() + +var _leaf: DockableLayoutPanel +var _show_tabs := true +var _hide_single_tab := false + + +func _ready() -> void: + drag_to_rearrange_enabled = true + + +func _enter_tree() -> void: + active_tab_rearranged.connect(_on_tab_changed) + tab_selected.connect(_on_tab_selected) + tab_changed.connect(_on_tab_changed) + + +func _exit_tree() -> void: + active_tab_rearranged.disconnect(_on_tab_changed) + tab_selected.disconnect(_on_tab_selected) + tab_changed.disconnect(_on_tab_changed) + + +func track_nodes(nodes: Array[Control], new_leaf: DockableLayoutPanel) -> void: + _leaf = null # avoid using previous leaf in tab_changed signals + var min_size := mini(nodes.size(), get_child_count()) + # remove spare children + for i in range(min_size, get_child_count()): + var child := get_child(min_size) as DockableReferenceControl + child.reference_to = null + remove_child(child) + child.queue_free() + # add missing children + for i in range(min_size, nodes.size()): + var ref_control := DockableReferenceControl.new() + add_child(ref_control) + assert(nodes.size() == get_child_count(), "FIXME") + # setup children + for i in nodes.size(): + var ref_control := get_child(i) as DockableReferenceControl + ref_control.reference_to = nodes[i] + set_tab_title(i, nodes[i].name) + set_leaf(new_leaf) + _handle_tab_visibility() + + +func get_child_rect() -> Rect2: + var control := get_current_tab_control() + return Rect2(position + control.position, control.size) + + +func set_leaf(value: DockableLayoutPanel) -> void: + if get_tab_count() > 0 and value: + current_tab = clampi(value.current_tab, 0, get_tab_count() - 1) + _leaf = value + + +func get_leaf() -> DockableLayoutPanel: + return _leaf + + +func get_layout_minimum_size() -> Vector2: + return get_combined_minimum_size() + + +func _on_tab_selected(tab: int) -> void: + if _leaf: + _leaf.current_tab = tab + + +func _on_tab_changed(tab: int) -> void: + if not _leaf: + return + var control := get_tab_control(tab) + if not control: + return + var tab_name := control.name + var name_index_in_leaf := _leaf.find_name(tab_name) + if name_index_in_leaf != tab: # NOTE: this handles added tabs (index == -1) + tab_layout_changed.emit(tab) + + +func _handle_tab_visibility() -> void: + if _hide_single_tab and get_tab_count() == 1: + tabs_visible = false + else: + tabs_visible = _show_tabs diff --git a/addons/dockable_container/dockable_panel_reference_control.gd b/addons/dockable_container/dockable_panel_reference_control.gd new file mode 100644 index 0000000..06dc11b --- /dev/null +++ b/addons/dockable_container/dockable_panel_reference_control.gd @@ -0,0 +1,49 @@ +@tool +class_name DockableReferenceControl +extends Container +## Control that mimics its own visibility and rect into another Control. + +var reference_to: Control: + get: + return _reference_to + set(control): + if _reference_to != control: + if is_instance_valid(_reference_to): + _reference_to.renamed.disconnect(_on_reference_to_renamed) + _reference_to.minimum_size_changed.disconnect(update_minimum_size) + _reference_to = control + + minimum_size_changed.emit() + if not is_instance_valid(_reference_to): + return + _reference_to.renamed.connect(_on_reference_to_renamed) + _reference_to.minimum_size_changed.connect(update_minimum_size) + _reference_to.visible = visible + _reposition_reference() + +var _reference_to: Control = null + + +func _ready() -> void: + mouse_filter = MOUSE_FILTER_IGNORE + set_notify_transform(true) + + +func _notification(what: int) -> void: + if what == NOTIFICATION_VISIBILITY_CHANGED and _reference_to: + _reference_to.visible = visible + elif what == NOTIFICATION_TRANSFORM_CHANGED and _reference_to: + _reposition_reference() + + +func _get_minimum_size() -> Vector2: + return _reference_to.get_combined_minimum_size() if _reference_to else Vector2.ZERO + + +func _reposition_reference() -> void: + _reference_to.global_position = global_position + _reference_to.size = size + + +func _on_reference_to_renamed() -> void: + name = _reference_to.name diff --git a/addons/dockable_container/drag_n_drop_panel.gd b/addons/dockable_container/drag_n_drop_panel.gd new file mode 100644 index 0000000..7e5d771 --- /dev/null +++ b/addons/dockable_container/drag_n_drop_panel.gd @@ -0,0 +1,82 @@ +@tool +extends Control + +enum { MARGIN_LEFT, MARGIN_RIGHT, MARGIN_TOP, MARGIN_BOTTOM, MARGIN_CENTER } + +const DRAW_NOTHING := -1 +const DRAW_CENTERED := -2 +const MARGIN_NONE := -1 + +var _draw_margin := DRAW_NOTHING +var _should_split := false + + +func _notification(what: int) -> void: + if what == NOTIFICATION_MOUSE_EXIT: + _draw_margin = DRAW_NOTHING + queue_redraw() + elif what == NOTIFICATION_MOUSE_ENTER and not _should_split: + _draw_margin = DRAW_CENTERED + queue_redraw() + + +func _gui_input(event: InputEvent) -> void: + if _should_split and event is InputEventMouseMotion: + _draw_margin = _find_hover_margin(event.position) + queue_redraw() + + +func _draw() -> void: + var rect: Rect2 + if _draw_margin == DRAW_NOTHING: + return + elif _draw_margin == DRAW_CENTERED: + rect = Rect2(Vector2.ZERO, size) + elif _draw_margin == MARGIN_LEFT: + rect = Rect2(0, 0, size.x * 0.5, size.y) + elif _draw_margin == MARGIN_TOP: + rect = Rect2(0, 0, size.x, size.y * 0.5) + elif _draw_margin == MARGIN_RIGHT: + var half_width = size.x * 0.5 + rect = Rect2(half_width, 0, half_width, size.y) + elif _draw_margin == MARGIN_BOTTOM: + var half_height = size.y * 0.5 + rect = Rect2(0, half_height, size.x, half_height) + var stylebox := get_theme_stylebox("panel", "TooltipPanel") + draw_style_box(stylebox, rect) + + +func set_enabled(enabled: bool, should_split: bool = true) -> void: + visible = enabled + _should_split = should_split + if enabled: + _draw_margin = DRAW_NOTHING + queue_redraw() + + +func get_hover_margin() -> int: + return _draw_margin + + +func _find_hover_margin(point: Vector2) -> int: + var half_size := size * 0.5 + + var left := point.distance_squared_to(Vector2(0, half_size.y)) + var lesser := left + var lesser_margin := MARGIN_LEFT + + var top := point.distance_squared_to(Vector2(half_size.x, 0)) + if lesser > top: + lesser = top + lesser_margin = MARGIN_TOP + + var right := point.distance_squared_to(Vector2(size.x, half_size.y)) + if lesser > right: + lesser = right + lesser_margin = MARGIN_RIGHT + + var bottom := point.distance_squared_to(Vector2(half_size.x, size.y)) + if lesser > bottom: + #lesser = bottom # unused result + lesser_margin = MARGIN_BOTTOM + return lesser_margin diff --git a/addons/dockable_container/icon.svg b/addons/dockable_container/icon.svg new file mode 100644 index 0000000..d87d598 --- /dev/null +++ b/addons/dockable_container/icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/addons/dockable_container/icon.svg.import b/addons/dockable_container/icon.svg.import new file mode 100644 index 0000000..595e573 --- /dev/null +++ b/addons/dockable_container/icon.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dy25danh2am23" +path="res://.godot/imported/icon.svg-35635e7bbda4487d4b2942da1d987df8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/dockable_container/icon.svg" +dest_files=["res://.godot/imported/icon.svg-35635e7bbda4487d4b2942da1d987df8.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=false +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=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/addons/dockable_container/inspector_plugin/editor_inspector_plugin.gd b/addons/dockable_container/inspector_plugin/editor_inspector_plugin.gd new file mode 100644 index 0000000..73d0372 --- /dev/null +++ b/addons/dockable_container/inspector_plugin/editor_inspector_plugin.gd @@ -0,0 +1,22 @@ +extends EditorInspectorPlugin + +const LayoutEditorProperty := preload("layout_editor_property.gd") + + +func _can_handle(object: Object) -> bool: + return object is DockableContainer + + +func _parse_property( + _object: Object, + _type: Variant.Type, + name: String, + _hint: PropertyHint, + _hint_text: String, + _usage: int, + _wide: bool +) -> bool: + if name == "layout": + var editor_property := LayoutEditorProperty.new() + add_property_editor("layout", editor_property) + return false diff --git a/addons/dockable_container/inspector_plugin/layout_editor_property.gd b/addons/dockable_container/inspector_plugin/layout_editor_property.gd new file mode 100644 index 0000000..eb00134 --- /dev/null +++ b/addons/dockable_container/inspector_plugin/layout_editor_property.gd @@ -0,0 +1,71 @@ +extends EditorProperty + +var _container := DockableContainer.new() +var _hidden_menu_button := MenuButton.new() +var _hidden_menu_popup: PopupMenu +var _hidden_menu_list: PackedStringArray + + +func _ready() -> void: + custom_minimum_size = Vector2(128, 256) + + _hidden_menu_button.text = "Visible nodes" + add_child(_hidden_menu_button) + _hidden_menu_popup = _hidden_menu_button.get_popup() + _hidden_menu_popup.hide_on_checkable_item_selection = false + _hidden_menu_popup.about_to_popup.connect(_on_hidden_menu_popup_about_to_show) + _hidden_menu_popup.id_pressed.connect(_on_hidden_menu_popup_id_pressed) + + _container.clone_layout_on_ready = false + _container.custom_minimum_size = custom_minimum_size + + var value := _get_layout().clone() # The layout gets reset when selecting it without clone + for n in value.get_names(): + var child := _create_child_control(n) + _container.add_child(child) + _container.set(get_edited_property(), value) + add_child(_container) + set_bottom_editor(_container) + + +func _exit_tree() -> void: # Not sure if this is needed, but just to be sure + queue_free() + + +func _update_property() -> void: + var value := _get_layout() + _container.set(get_edited_property(), value) + + +func _get_layout() -> DockableLayout: + var original_container := get_edited_object() as DockableContainer + return original_container.get(get_edited_property()) + + +func _create_child_control(named: String) -> Label: + var new_control := Label.new() + new_control.name = named + new_control.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER + new_control.vertical_alignment = VERTICAL_ALIGNMENT_CENTER + new_control.clip_text = true + new_control.text = named + return new_control + + +func _on_hidden_menu_popup_about_to_show() -> void: + var layout := _get_layout().clone() + _hidden_menu_popup.clear() + _hidden_menu_list = layout.get_names() + for i in _hidden_menu_list.size(): + var tab_name := _hidden_menu_list[i] + _hidden_menu_popup.add_check_item(tab_name, i) + _hidden_menu_popup.set_item_checked(i, not layout.is_tab_hidden(tab_name)) + + +func _on_hidden_menu_popup_id_pressed(id: int) -> void: + var layout := _get_layout().clone() + var tab_name := _hidden_menu_list[id] + var new_hidden := not layout.is_tab_hidden(tab_name) + _get_layout().set_tab_hidden(tab_name, new_hidden) + _hidden_menu_popup.set_item_checked(id, not new_hidden) + emit_changed(get_edited_property(), _get_layout()) # This line may not be needed diff --git a/addons/dockable_container/layout.gd b/addons/dockable_container/layout.gd new file mode 100644 index 0000000..e2a8036 --- /dev/null +++ b/addons/dockable_container/layout.gd @@ -0,0 +1,242 @@ +@tool +class_name DockableLayout +extends Resource +## DockableLayout Resource definition, holding the root DockableLayoutNode and hidden tabs. +## +## DockableLayoutSplit are binary trees with nested DockableLayoutSplit subtrees +## and DockableLayoutPanel leaves. Both of them inherit from DockableLayoutNode to help with +## type annotation and define common functionality. +## +## Hidden tabs are marked in the `hidden_tabs` Dictionary by name. + +enum { MARGIN_LEFT, MARGIN_RIGHT, MARGIN_TOP, MARGIN_BOTTOM, MARGIN_CENTER } + +@export var root: DockableLayoutNode = DockableLayoutPanel.new(): + get: + return _root + set(value): + set_root(value) +@export var hidden_tabs := {}: + get: + return _hidden_tabs + set(value): + if value != _hidden_tabs: + _hidden_tabs = value + changed.emit() + +var _changed_signal_queued := false +var _first_leaf: DockableLayoutPanel +var _hidden_tabs: Dictionary +var _leaf_by_node_name: Dictionary +var _root: DockableLayoutNode = DockableLayoutPanel.new() + + +func _init() -> void: + resource_name = "Layout" + + +func set_root(value: DockableLayoutNode, should_emit_changed := true) -> void: + if not value: + value = DockableLayoutPanel.new() + if _root == value: + return + if _root and _root.changed.is_connected(_on_root_changed): + _root.changed.disconnect(_on_root_changed) + _root = value + _root.parent = null + _root.changed.connect(_on_root_changed) + if should_emit_changed: + _on_root_changed() + + +func get_root() -> DockableLayoutNode: + return _root + + +func clone() -> DockableLayout: + return duplicate(true) + + +func get_names() -> PackedStringArray: + return _root.get_names() + + +## Add missing nodes on first leaf and remove nodes outside indices from leaves. +## +## _leaf_by_node_name = { +## (string keys) = respective Leaf that holds the node name, +## } +func update_nodes(names: PackedStringArray) -> void: + _leaf_by_node_name.clear() + _first_leaf = null + var empty_leaves: Array[DockableLayoutPanel] = [] + _ensure_names_in_node(_root, names, empty_leaves) # Changes _leaf_by_node_name and empty_leaves + for l in empty_leaves: + _remove_leaf(l) + if not _first_leaf: + _first_leaf = DockableLayoutPanel.new() + set_root(_first_leaf) + for n in names: + if not _leaf_by_node_name.has(n): + _first_leaf.push_name(n) + _leaf_by_node_name[n] = _first_leaf + _on_root_changed() + + +func move_node_to_leaf(node: Node, leaf: DockableLayoutPanel, relative_position: int) -> void: + var node_name := node.name + var previous_leaf: DockableLayoutPanel = _leaf_by_node_name.get(node_name) + if previous_leaf: + previous_leaf.remove_node(node) + if previous_leaf.is_empty(): + _remove_leaf(previous_leaf) + + leaf.insert_node(relative_position, node) + _leaf_by_node_name[node_name] = leaf + _on_root_changed() + + +func get_leaf_for_node(node: Node) -> DockableLayoutPanel: + return _leaf_by_node_name.get(node.name) + + +func split_leaf_with_node(leaf: DockableLayoutPanel, node: Node, margin: int) -> void: + var root_branch := leaf.parent + var new_leaf := DockableLayoutPanel.new() + var new_branch := DockableLayoutSplit.new() + if margin == MARGIN_LEFT or margin == MARGIN_RIGHT: + new_branch.direction = DockableLayoutSplit.Direction.HORIZONTAL + else: + new_branch.direction = DockableLayoutSplit.Direction.VERTICAL + if margin == MARGIN_LEFT or margin == MARGIN_TOP: + new_branch.first = new_leaf + new_branch.second = leaf + else: + new_branch.first = leaf + new_branch.second = new_leaf + if _root == leaf: + set_root(new_branch, false) + elif root_branch: + if leaf == root_branch.first: + root_branch.first = new_branch + else: + root_branch.second = new_branch + + move_node_to_leaf(node, new_leaf, 0) + + +func add_node(node: Node) -> void: + var node_name := node.name + if _leaf_by_node_name.has(node_name): + return + _first_leaf.push_name(node_name) + _leaf_by_node_name[node_name] = _first_leaf + _on_root_changed() + + +func remove_node(node: Node) -> void: + var node_name := node.name + var leaf: DockableLayoutPanel = _leaf_by_node_name.get(node_name) + if not leaf: + return + leaf.remove_node(node) + _leaf_by_node_name.erase(node_name) + if leaf.is_empty(): + _remove_leaf(leaf) + _on_root_changed() + + +func rename_node(previous_name: String, new_name: String) -> void: + var leaf: DockableLayoutPanel = _leaf_by_node_name.get(previous_name) + if not leaf: + return + leaf.rename_node(previous_name, new_name) + _leaf_by_node_name.erase(previous_name) + _leaf_by_node_name[new_name] = leaf + _on_root_changed() + + +func set_tab_hidden(name: String, hidden: bool) -> void: + if not _leaf_by_node_name.has(name): + return + if hidden: + _hidden_tabs[name] = true + else: + _hidden_tabs.erase(name) + _on_root_changed() + + +func is_tab_hidden(name: String) -> bool: + return _hidden_tabs.get(name, false) + + +func set_node_hidden(node: Node, hidden: bool) -> void: + set_tab_hidden(node.name, hidden) + + +func is_node_hidden(node: Node) -> bool: + return is_tab_hidden(node.name) + + +func _on_root_changed() -> void: + if _changed_signal_queued: + return + _changed_signal_queued = true + set_deferred("_changed_signal_queued", false) + emit_changed.call_deferred() + + +func _ensure_names_in_node( + node: DockableLayoutNode, names: PackedStringArray, empty_leaves: Array[DockableLayoutPanel] +) -> void: + if node is DockableLayoutPanel: + node.update_nodes(names, _leaf_by_node_name) # This changes _leaf_by_node_name + if node.is_empty(): + empty_leaves.append(node) + if not _first_leaf: + _first_leaf = node + elif node is DockableLayoutSplit: + _ensure_names_in_node(node.first, names, empty_leaves) + _ensure_names_in_node(node.second, names, empty_leaves) + else: + assert(false, "Invalid Resource, should be branch or leaf, found %s" % node) + + +func _remove_leaf(leaf: DockableLayoutPanel) -> void: + assert(leaf.is_empty(), "FIXME: trying to remove_at a leaf with nodes") + if _root == leaf: + return + var collapsed_branch := leaf.parent + assert(collapsed_branch is DockableLayoutSplit, "FIXME: leaf is not a child of branch") + var kept_branch: DockableLayoutNode = ( + collapsed_branch.first if leaf == collapsed_branch.second else collapsed_branch.second + ) + var root_branch := collapsed_branch.parent #HERE + if collapsed_branch == _root: + set_root(kept_branch, true) + elif root_branch: + if collapsed_branch == root_branch.first: + root_branch.first = kept_branch + else: + root_branch.second = kept_branch + + +func _print_tree() -> void: + print("TREE") + _print_tree_step(_root, 0, 0) + print("") + + +func _print_tree_step(tree_or_leaf: DockableLayoutNode, level: int, idx: int) -> void: + if tree_or_leaf is DockableLayoutPanel: + print(" |".repeat(level), "- (%d) = " % idx, tree_or_leaf.names) + elif tree_or_leaf is DockableLayoutSplit: + print( + " |".repeat(level), + "-+ (%d) = " % idx, + tree_or_leaf.direction, + " ", + tree_or_leaf.percent + ) + _print_tree_step(tree_or_leaf.first, level + 1, 1) + _print_tree_step(tree_or_leaf.second, level + 1, 2) diff --git a/addons/dockable_container/layout_node.gd b/addons/dockable_container/layout_node.gd new file mode 100644 index 0000000..ba3accb --- /dev/null +++ b/addons/dockable_container/layout_node.gd @@ -0,0 +1,29 @@ +@tool +class_name DockableLayoutNode +extends Resource +## Base class for DockableLayout tree nodes + +var parent: DockableLayoutSplit: + get: + return _parent_ref.get_ref() + set(value): + _parent_ref = weakref(value) + +var _parent_ref := WeakRef.new() + + +func emit_tree_changed() -> void: + var node := self + while node: + node.emit_changed() + node = node.parent + + +## Returns whether there are any nodes +func is_empty() -> bool: + return true + + +## Returns all tab names in this node +func get_names() -> PackedStringArray: + return PackedStringArray() diff --git a/addons/dockable_container/layout_panel.gd b/addons/dockable_container/layout_panel.gd new file mode 100644 index 0000000..e15201b --- /dev/null +++ b/addons/dockable_container/layout_panel.gd @@ -0,0 +1,89 @@ +@tool +class_name DockableLayoutPanel +extends DockableLayoutNode +## DockableLayout leaf nodes, defining tabs + +@export var names: PackedStringArray: + get: + return get_names() + set(value): + _names = value + emit_tree_changed() +@export var current_tab: int: + get: + return int(clamp(_current_tab, 0, _names.size() - 1)) + set(value): + if value != _current_tab: + _current_tab = value + emit_tree_changed() + +var _names := PackedStringArray() +var _current_tab := 0 + + +func _init() -> void: + resource_name = "Tabs" + + +## Returns all tab names in this node +func get_names() -> PackedStringArray: + return _names + + +func push_name(name: String) -> void: + _names.append(name) + emit_tree_changed() + + +func insert_node(position: int, node: Node) -> void: + _names.insert(position, node.name) + emit_tree_changed() + + +func find_name(node_name: String) -> int: + for i in _names.size(): + if _names[i] == node_name: + return i + return -1 + + +func find_child(node: Node) -> int: + return find_name(node.name) + + +func remove_node(node: Node) -> void: + var i := find_child(node) + if i >= 0: + _names.remove_at(i) + emit_tree_changed() + else: + push_warning("Remove failed, node '%s' was not found" % node) + + +func rename_node(previous_name: String, new_name: String) -> void: + var i := find_name(previous_name) + if i >= 0: + _names.set(i, new_name) + emit_tree_changed() + else: + push_warning("Rename failed, name '%s' was not found" % previous_name) + + +## Returns whether there are any nodes +func is_empty() -> bool: + return _names.is_empty() + + +func update_nodes(node_names: PackedStringArray, data: Dictionary) -> void: + var i := 0 + var removed_any := false + while i < _names.size(): + var current := _names[i] + if not current in node_names or data.has(current): + _names.remove_at(i) + removed_any = true + else: + data[current] = self + i += 1 + if removed_any: + emit_tree_changed() diff --git a/addons/dockable_container/layout_split.gd b/addons/dockable_container/layout_split.gd new file mode 100644 index 0000000..5e78138 --- /dev/null +++ b/addons/dockable_container/layout_split.gd @@ -0,0 +1,100 @@ +@tool +class_name DockableLayoutSplit +extends DockableLayoutNode +## DockableLayout binary tree nodes, defining subtrees and leaf panels + +enum Direction { HORIZONTAL, VERTICAL } + +@export var direction := Direction.HORIZONTAL: + get: + return get_direction() + set(value): + set_direction(value) +@export_range(0, 1) var percent := 0.5: + get = get_percent, + set = set_percent +@export var first: DockableLayoutNode = DockableLayoutPanel.new(): + get: + return get_first() + set(value): + set_first(value) +@export var second: DockableLayoutNode = DockableLayoutPanel.new(): + get: + return get_second() + set(value): + set_second(value) + +var _direction := Direction.HORIZONTAL +var _percent := 0.5 +var _first: DockableLayoutNode +var _second: DockableLayoutNode + + +func _init() -> void: + resource_name = "Split" + + +func set_first(value: DockableLayoutNode) -> void: + if value == null: + _first = DockableLayoutPanel.new() + else: + _first = value + _first.parent = self + emit_tree_changed() + + +func get_first() -> DockableLayoutNode: + return _first + + +func set_second(value: DockableLayoutNode) -> void: + if value == null: + _second = DockableLayoutPanel.new() + else: + _second = value + _second.parent = self + emit_tree_changed() + + +func get_second() -> DockableLayoutNode: + return _second + + +func set_direction(value: Direction) -> void: + if value != _direction: + _direction = value + emit_tree_changed() + + +func get_direction() -> Direction: + return _direction + + +func set_percent(value: float) -> void: + var clamped_value := clampf(value, 0, 1) + if not is_equal_approx(_percent, clamped_value): + _percent = clamped_value + emit_tree_changed() + + +func get_percent() -> float: + return _percent + + +func get_names() -> PackedStringArray: + var names := _first.get_names() + names.append_array(_second.get_names()) + return names + + +## Returns whether there are any nodes +func is_empty() -> bool: + return _first.is_empty() and _second.is_empty() + + +func is_horizontal() -> bool: + return _direction == Direction.HORIZONTAL + + +func is_vertical() -> bool: + return _direction == Direction.VERTICAL diff --git a/addons/dockable_container/plugin.cfg b/addons/dockable_container/plugin.cfg new file mode 100644 index 0000000..b359591 --- /dev/null +++ b/addons/dockable_container/plugin.cfg @@ -0,0 +1,13 @@ +[plugin] + +name="Dockable Container" +description="Container script that manages docking/tiling UI panels. + +Panels are composed of tabs that can be dragged around and dropped to split another panel or compose its tabs. + +Layout information is stored in Resource objects, so they can be saved/loaded from disk easily. + +This plugin also offers a replica of the Container layout to be edited directly in the inspector." +author="gilzoide" +version="1.1.2" +script="plugin.gd" diff --git a/addons/dockable_container/plugin.gd b/addons/dockable_container/plugin.gd new file mode 100644 index 0000000..e93e010 --- /dev/null +++ b/addons/dockable_container/plugin.gd @@ -0,0 +1,19 @@ +@tool +extends EditorPlugin + +const LayoutInspectorPlugin := preload("inspector_plugin/editor_inspector_plugin.gd") +const Icon := preload("icon.svg") + +var _layout_inspector_plugin: LayoutInspectorPlugin + + +func _enter_tree() -> void: + _layout_inspector_plugin = LayoutInspectorPlugin.new() + add_custom_type("DockableContainer", "Container", DockableContainer, Icon) + add_inspector_plugin(_layout_inspector_plugin) + + +func _exit_tree() -> void: + remove_inspector_plugin(_layout_inspector_plugin) + remove_custom_type("DockableContainer") + _layout_inspector_plugin = null diff --git a/addons/dockable_container/samples/TestScene.gd b/addons/dockable_container/samples/TestScene.gd new file mode 100644 index 0000000..f94ac97 --- /dev/null +++ b/addons/dockable_container/samples/TestScene.gd @@ -0,0 +1,63 @@ +extends VBoxContainer + +const SAVED_LAYOUT_PATH := "user://layout.tres" + +@onready var _container := $DockableContainers/DockableContainer as DockableContainer +@onready var _clone_control := $HBoxContainer/ControlPrefab as ColorRect +@onready var _checkbox_container := $HBoxContainer as HBoxContainer + + +func _ready() -> void: + if not OS.is_userfs_persistent(): + $HBoxContainer/SaveLayoutButton.visible = false + $HBoxContainer/LoadLayoutButton.visible = false + + var tabs := _container.get_tabs() + for i in tabs.size(): + var checkbox := CheckBox.new() + checkbox.text = str(i) + checkbox.button_pressed = not _container.is_control_hidden(tabs[i]) + checkbox.toggled.connect(_on_CheckButton_toggled.bind(tabs[i])) + _checkbox_container.add_child(checkbox) + + +func _on_add_pressed() -> void: + var control := _clone_control.duplicate() + control.get_node("Buttons/Rename").pressed.connect( + _on_control_rename_button_pressed.bind(control) + ) + control.get_node("Buttons/Remove").pressed.connect( + _on_control_remove_button_pressed.bind(control) + ) + control.color = Color(randf(), randf(), randf()) + control.name = "Control0" + + _container.add_child(control, true) + await _container.sort_children + _container.set_control_as_current_tab(control) + + +func _on_save_pressed() -> void: + if ResourceSaver.save(_container.layout, SAVED_LAYOUT_PATH) != OK: + print("ERROR") + + +func _on_load_pressed() -> void: + var res = load(SAVED_LAYOUT_PATH) + if res: + _container.set_layout(res.clone()) + else: + print("Error") + + +func _on_control_rename_button_pressed(control: Control) -> void: + control.name = StringName(str(control.name) + " =D") + + +func _on_control_remove_button_pressed(control: Control) -> void: + control.get_parent().remove_child(control) + control.queue_free() + + +func _on_CheckButton_toggled(button_pressed: bool, tab: Control) -> void: + _container.set_control_hidden(tab, not button_pressed) diff --git a/addons/dockable_container/samples/TestScene.tscn b/addons/dockable_container/samples/TestScene.tscn new file mode 100644 index 0000000..80ca9cc --- /dev/null +++ b/addons/dockable_container/samples/TestScene.tscn @@ -0,0 +1,177 @@ +[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" 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" 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"] + +[sub_resource type="Resource" id="Resource_8aoc2"] +resource_name = "Tabs" +script = ExtResource("5") +names = PackedStringArray("Control0") +current_tab = 0 + +[sub_resource type="Resource" id="Resource_6kjom"] +resource_name = "Tabs" +script = ExtResource("5") +names = PackedStringArray("Control1", "Control2") +current_tab = 0 + +[sub_resource type="Resource" id="Resource_hl8y1"] +resource_name = "Split" +script = ExtResource("4_yhgfb") +direction = 1 +percent = 0.5 +first = SubResource("Resource_8aoc2") +second = SubResource("Resource_6kjom") + +[sub_resource type="Resource" id="Resource_ybwqe"] +resource_name = "Layout" +script = ExtResource("2") +root = SubResource("Resource_hl8y1") +hidden_tabs = {} + +[sub_resource type="Resource" id="Resource_ntwfj"] +resource_name = "Tabs" +script = ExtResource("5") +names = PackedStringArray("Control3") +current_tab = 0 + +[sub_resource type="Resource" id="Resource_dmyvf"] +resource_name = "Tabs" +script = ExtResource("5") +names = PackedStringArray("Control4") +current_tab = 0 + +[sub_resource type="Resource" id="Resource_vag66"] +resource_name = "Split" +script = ExtResource("4_yhgfb") +direction = 1 +percent = 0.281 +first = SubResource("Resource_ntwfj") +second = SubResource("Resource_dmyvf") + +[sub_resource type="Resource" id="Resource_4q660"] +resource_name = "Tabs" +script = ExtResource("5") +names = PackedStringArray("Control5") +current_tab = 0 + +[sub_resource type="Resource" id="Resource_jhibs"] +resource_name = "Split" +script = ExtResource("4_yhgfb") +direction = 0 +percent = 0.5 +first = SubResource("Resource_vag66") +second = SubResource("Resource_4q660") + +[sub_resource type="Resource" id="Resource_xhxpg"] +resource_name = "Layout" +script = ExtResource("2") +root = SubResource("Resource_jhibs") +hidden_tabs = {} + +[node name="SampleScene" type="VBoxContainer"] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +script = ExtResource("4") + +[node name="HBoxContainer" type="HBoxContainer" parent="."] +layout_mode = 2 +alignment = 1 + +[node name="AddControlButton" type="Button" parent="HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 0 +size_flags_vertical = 4 +text = "(+) ADD CONTROL" + +[node name="SaveLayoutButton" type="Button" parent="HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 0 +size_flags_vertical = 4 +text = "Save Layout" + +[node name="LoadLayoutButton" type="Button" parent="HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 0 +size_flags_vertical = 4 +text = "Load Layout" + +[node name="ControlPrefab" type="ColorRect" parent="HBoxContainer"] +visible = false +layout_mode = 2 +color = Color(0.129412, 0.121569, 0.121569, 1) + +[node name="Buttons" type="VBoxContainer" parent="HBoxContainer/ControlPrefab"] +layout_mode = 0 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -65.5 +offset_top = -22.0 +offset_right = 65.5 +offset_bottom = 22.0 + +[node name="Rename" type="Button" parent="HBoxContainer/ControlPrefab/Buttons"] +layout_mode = 2 +text = "Rename" + +[node name="Remove" type="Button" parent="HBoxContainer/ControlPrefab/Buttons"] +layout_mode = 2 +text = "REMOVE" + +[node name="DockableContainers" type="HBoxContainer" parent="."] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[node name="DockableContainer" type="Container" parent="DockableContainers"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +script = ExtResource("1") +layout = SubResource("Resource_ybwqe") + +[node name="Control0" type="ColorRect" parent="DockableContainers/DockableContainer"] +layout_mode = 2 + +[node name="Control1" type="ColorRect" parent="DockableContainers/DockableContainer"] +layout_mode = 2 +color = Color(0.141176, 0.0745098, 0.603922, 1) + +[node name="Control2" type="ColorRect" parent="DockableContainers/DockableContainer"] +visible = false +layout_mode = 2 +color = Color(0.533333, 0.380392, 0.380392, 1) + +[node name="Separator" type="ColorRect" parent="DockableContainers"] +custom_minimum_size = Vector2(50, 0) +layout_mode = 2 +color = Color(0, 0, 0, 1) + +[node name="DockableContainer2" type="Container" parent="DockableContainers"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +script = ExtResource("1") +layout = SubResource("Resource_xhxpg") + +[node name="Control3" type="ColorRect" parent="DockableContainers/DockableContainer2"] +layout_mode = 2 +color = Color(0, 1, 0.905882, 1) + +[node name="Control4" type="ColorRect" parent="DockableContainers/DockableContainer2"] +layout_mode = 2 +color = Color(0, 0.698039, 0.0588235, 1) + +[node name="Control5" type="ColorRect" parent="DockableContainers/DockableContainer2"] +layout_mode = 2 +color = Color(1, 0.937255, 0, 1) + +[connection signal="pressed" from="HBoxContainer/AddControlButton" to="." method="_on_add_pressed"] +[connection signal="pressed" from="HBoxContainer/SaveLayoutButton" to="." method="_on_save_pressed"] +[connection signal="pressed" from="HBoxContainer/LoadLayoutButton" to="." method="_on_load_pressed"] diff --git a/addons/dockable_container/split_handle.gd b/addons/dockable_container/split_handle.gd new file mode 100644 index 0000000..baf4b1f --- /dev/null +++ b/addons/dockable_container/split_handle.gd @@ -0,0 +1,120 @@ +@tool +extends Control + +const SPLIT_THEME_CLASS: PackedStringArray = [ + "HSplitContainer", # SPLIT_THEME_CLASS[DockableLayoutSplit.Direction.HORIZONTAL] + "VSplitContainer", # SPLIT_THEME_CLASS[DockableLayoutSplit.Direction.VERTICAL] +] + +const SPLIT_MOUSE_CURSOR_SHAPE: Array[Control.CursorShape] = [ + Control.CURSOR_HSPLIT, # SPLIT_MOUSE_CURSOR_SHAPE[DockableLayoutSplit.Direction.HORIZONTAL] + Control.CURSOR_VSPLIT, # SPLIT_MOUSE_CURSOR_SHAPE[DockableLayoutSplit.Direction.VERTICAL] +] + +var layout_split: DockableLayoutSplit +var first_minimum_size: Vector2 +var second_minimum_size: Vector2 + +var _parent_rect: Rect2 +var _mouse_hovering := false +var _dragging := false + + +func _draw() -> void: + var theme_class := SPLIT_THEME_CLASS[layout_split.direction] + var icon := get_theme_icon("grabber", theme_class) + var autohide := bool(get_theme_constant("autohide", theme_class)) + if not icon or (autohide and not _mouse_hovering): + return + + draw_texture(icon, (size - icon.get_size()) * 0.5) + + +func _gui_input(event: InputEvent) -> void: + if event is InputEventMouseButton and event.button_index == MOUSE_BUTTON_LEFT: + _dragging = event.is_pressed() + if event.double_click: + layout_split.percent = 0.5 + elif _dragging and event is InputEventMouseMotion: + var mouse_in_parent := get_parent_control().get_local_mouse_position() + if layout_split.is_horizontal(): + layout_split.percent = ( + (mouse_in_parent.x - _parent_rect.position.x) / _parent_rect.size.x + ) + else: + layout_split.percent = ( + (mouse_in_parent.y - _parent_rect.position.y) / _parent_rect.size.y + ) + + +func _notification(what: int) -> void: + if what == NOTIFICATION_MOUSE_ENTER: + _mouse_hovering = true + set_split_cursor(true) + if bool(get_theme_constant("autohide", SPLIT_THEME_CLASS[layout_split.direction])): + queue_redraw() + elif what == NOTIFICATION_MOUSE_EXIT: + _mouse_hovering = false + set_split_cursor(false) + if bool(get_theme_constant("autohide", SPLIT_THEME_CLASS[layout_split.direction])): + queue_redraw() + elif what == NOTIFICATION_FOCUS_EXIT: + _dragging = false + + +func get_layout_minimum_size() -> Vector2: + if not layout_split: + return Vector2.ZERO + var separation := get_theme_constant("separation", SPLIT_THEME_CLASS[layout_split.direction]) + if layout_split.is_horizontal(): + return Vector2( + first_minimum_size.x + separation + second_minimum_size.x, + maxf(first_minimum_size.y, second_minimum_size.y) + ) + else: + return Vector2( + maxf(first_minimum_size.x, second_minimum_size.x), + first_minimum_size.y + separation + second_minimum_size.y + ) + + +func set_split_cursor(value: bool) -> void: + if value: + mouse_default_cursor_shape = SPLIT_MOUSE_CURSOR_SHAPE[layout_split.direction] + else: + mouse_default_cursor_shape = CURSOR_ARROW + + +func get_split_rects(rect: Rect2) -> Dictionary: + _parent_rect = rect + var separation := get_theme_constant("separation", SPLIT_THEME_CLASS[layout_split.direction]) + var origin := rect.position + var percent := layout_split.percent + if layout_split.is_horizontal(): + var split_offset := clampf( + rect.size.x * percent - separation * 0.5, + first_minimum_size.x, + rect.size.x - second_minimum_size.x - separation + ) + var second_width := rect.size.x - split_offset - separation + + return { + "first": Rect2(origin.x, origin.y, split_offset, rect.size.y), + "self": Rect2(origin.x + split_offset, origin.y, separation, rect.size.y), + "second": + Rect2(origin.x + split_offset + separation, origin.y, second_width, rect.size.y), + } + else: + var split_offset := clampf( + rect.size.y * percent - separation * 0.5, + first_minimum_size.y, + rect.size.y - second_minimum_size.y - separation + ) + var second_height := rect.size.y - split_offset - separation + + return { + "first": Rect2(origin.x, origin.y, rect.size.x, split_offset), + "self": Rect2(origin.x, origin.y + split_offset, rect.size.x, separation), + "second": + Rect2(origin.x, origin.y + split_offset + separation, rect.size.x, second_height), + } diff --git a/icon.svg b/icon.svg new file mode 100644 index 0000000..9d8b7fa --- /dev/null +++ b/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icon.svg.import b/icon.svg.import new file mode 100644 index 0000000..9c230ee --- /dev/null +++ b/icon.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cysf2s24sp30x" +path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.svg" +dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.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=false +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=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/project.godot b/project.godot new file mode 100644 index 0000000..28ce86b --- /dev/null +++ b/project.godot @@ -0,0 +1,41 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=5 + +[application] + +config/name="AudioEditor" +run/main_scene="res://Views/MainView.tscn" +config/features=PackedStringArray("4.3", "C#", "GL Compatibility") +run/low_processor_mode=true +boot_splash/show_image=false +config/icon="res://icon.svg" + +[display] + +window/size/viewport_width=1920 +window/size/viewport_height=1080 +window/stretch/aspect="expand" + +[dotnet] + +project/assembly_name="AudioEditor" + +[editor] + +naming/scene_name_casing=1 + +[editor_plugins] + +enabled=PackedStringArray("res://addons/dockable_container/plugin.cfg") + +[rendering] + +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility"