Compare commits

...

14 Commits

Author SHA1 Message Date
bucket c25983370e working music player 2025-11-17 21:58:13 +01:00
bucket ecab6a0785 switch to 4.6 2025-11-06 18:15:22 +01:00
Bucket Of Chicken 4424b10cda settings stuff 2025-10-03 15:51:35 +02:00
Bucket Of Chicken 30282d5ba3 translations and more UI work 2025-09-28 15:17:38 +02:00
Bucket Of Chicken 162aced2ec save saving 2025-09-13 12:44:37 +02:00
Bucket Of Chicken 3d75d1712d save loading 2025-09-13 12:39:06 +02:00
Bucket Of Chicken 1be235df0a rich presence and stuffs 2025-09-07 10:11:35 +02:00
Bucket Of Chicken 6c2382a2ce change that is crashing my pc 2025-09-02 14:41:39 +02:00
Bucket Of Chicken e0c7c050f2 UI functionality 2025-08-31 20:31:49 +02:00
Bucket Of Chicken cf74d35371 audio loading 2025-08-30 22:51:53 +02:00
Bucket Of Chicken e758d1df2b loading songs 2025-08-30 13:31:07 +02:00
Bucket Of Chicken 702013f9f8 Threading for Loading songs(wip) 2025-08-30 00:49:59 +02:00
Bucket Of Chicken 89ba4790da functional directory picker 2025-08-29 19:40:44 +02:00
Bucket Of Chicken 4f28182832 Implemented Directory Reading 2025-08-29 16:31:19 +02:00
217 changed files with 1695 additions and 9137 deletions
+3
View File
@@ -0,0 +1,3 @@
{
"godotTools.editorPath.godot4": "/home/bucket/Downloads/Godot_v4.5-beta5_mono_linux_x86_64/Godot_v4.5-beta5_mono_linux.x86_64"
}
+13 -1
View File
@@ -24,7 +24,7 @@ bus/1/name = &"Music"
bus/1/solo = false bus/1/solo = false
bus/1/mute = false bus/1/mute = false
bus/1/bypass_fx = false bus/1/bypass_fx = false
bus/1/volume_db = 0.0 bus/1/volume_db = -10.9863
bus/1/send = &"Master" bus/1/send = &"Master"
bus/1/effect/0/effect = SubResource("AudioEffectReverb_tqf74") bus/1/effect/0/effect = SubResource("AudioEffectReverb_tqf74")
bus/1/effect/0/enabled = false bus/1/effect/0/enabled = false
@@ -34,3 +34,15 @@ bus/1/effect/2/effect = SubResource("AudioEffectCompressor_boc1b")
bus/1/effect/2/enabled = false bus/1/effect/2/enabled = false
bus/1/effect/3/effect = SubResource("AudioEffectHardLimiter_o5vtn") bus/1/effect/3/effect = SubResource("AudioEffectHardLimiter_o5vtn")
bus/1/effect/3/enabled = false bus/1/effect/3/enabled = false
bus/2/name = &"Transition2"
bus/2/solo = false
bus/2/mute = false
bus/2/bypass_fx = false
bus/2/volume_db = 0.0
bus/2/send = &"Music"
bus/3/name = &"Transition1"
bus/3/solo = false
bus/3/mute = false
bus/3/bypass_fx = false
bus/3/volume_db = 0.0
bus/3/send = &"Music"
+6
View File
@@ -0,0 +1,6 @@
[gd_resource type="Theme" load_steps=2 format=3 uid="uid://vhvx5qjav337"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_pwqir"]
[resource]
Button/styles/normal = SubResource("StyleBoxEmpty_pwqir")
+35
View File
@@ -0,0 +1,35 @@
[gd_resource type="Theme" load_steps=4 format=3 uid="uid://cpd5cym1d4tde"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ihngy"]
bg_color = Color(0.20511743, 0.20511743, 0.20511743, 0.48235294)
border_color = Color(0, 0, 0, 0.49803922)
corner_radius_top_left = 14
corner_radius_top_right = 14
corner_radius_bottom_right = 14
corner_radius_bottom_left = 14
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8pucy"]
bg_color = Color(0.09239707, 0.09239706, 0.09239706, 0.48235294)
border_color = Color(0, 0, 0, 0.49803922)
corner_radius_top_left = 14
corner_radius_top_right = 14
corner_radius_bottom_right = 14
corner_radius_bottom_left = 14
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_jnd74"]
bg_color = Color(0, 0, 0, 0.48235294)
border_color = Color(0, 0, 0, 0.49803922)
corner_radius_top_left = 14
corner_radius_top_right = 14
corner_radius_bottom_right = 14
corner_radius_bottom_left = 14
[resource]
Button/styles/hover = SubResource("StyleBoxFlat_ihngy")
Button/styles/normal = SubResource("StyleBoxFlat_8pucy")
Button/styles/pressed = SubResource("StyleBoxFlat_jnd74")
LineEdit/styles/normal = SubResource("StyleBoxFlat_8pucy")
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

@@ -2,16 +2,16 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://csl0e2px0cwc1" uid="uid://df2e70jxwrmjs"
path="res://.godot/imported/logo.png-bacb448eabae556bdb0659359ea4e4af.ctex" path="res://.godot/imported/BackOne.png-420a39df0abee2599d5df56efa24c072.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://addons/discord-rpc-gd/logo.png" source_file="res://Icons/BackOne.png"
dest_files=["res://.godot/imported/logo.png-bacb448eabae556bdb0659359ea4e4af.ctex"] dest_files=["res://.godot/imported/BackOne.png-420a39df0abee2599d5df56efa24c072.ctex"]
[params] [params]
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=1.0
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=1 roughness/mode=1
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.0 KiB

After

Width:  |  Height:  |  Size: 10 KiB

+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

@@ -2,16 +2,16 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://csl0e2px0cwc1" uid="uid://dumymuj4w4si0"
path="res://.godot/imported/Logo_V2_No_Bg.png-ed667fb599fe1e17ebcfc361ff7c9c93.ctex" path="res://.godot/imported/shuffle.png-21f68d69d5bd71fb81079750a3d07cc4.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://addons/discord-rpc-gd/Logo_V2_No_Bg.png" source_file="res://Icons/shuffle.png"
dest_files=["res://.godot/imported/Logo_V2_No_Bg.png-ed667fb599fe1e17ebcfc361ff7c9c93.ctex"] dest_files=["res://.godot/imported/shuffle.png-21f68d69d5bd71fb81079750a3d07cc4.ctex"]
[params] [params]
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

@@ -2,16 +2,16 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://ufh1hha1ehui" uid="uid://bqqbb8m2o8j45"
path="res://.godot/imported/Debug.svg-d4cb8599fa7926b76a2d6e40d2efd949.ctex" path="res://.godot/imported/shufflepressed.png-525d2e3fe7b3a5854b3aa7cd44a38683.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://addons/discord-rpc-gd/Debug.svg" source_file="res://Icons/shufflepressed.png"
dest_files=["res://.godot/imported/Debug.svg-d4cb8599fa7926b76a2d6e40d2efd949.ctex"] dest_files=["res://.godot/imported/shufflepressed.png-525d2e3fe7b3a5854b3aa7cd44a38683.ctex"]
[params] [params]
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
@@ -32,6 +32,3 @@ process/hdr_as_srgb=false
process/hdr_clamp_exposure=false process/hdr_clamp_exposure=false
process/size_limit=0 process/size_limit=0
detect_3d/compress_to=1 detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
+1 -1
View File
@@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
-312
View File
@@ -1,312 +0,0 @@
[gd_scene load_steps=26 format=3 uid="uid://b2sygl55s6fng"]
[ext_resource type="Script" path="res://main.gd" id="1_ubs1p"]
[ext_resource type="Texture2D" uid="uid://b8on1case224h" path="res://LoopPressed.png" id="2_iolk5"]
[ext_resource type="Texture2D" uid="uid://cq8jj63iyu2cs" path="res://d7hftxdivxxvm.cloudfront.webp" id="2_wf35v"]
[ext_resource type="Texture2D" uid="uid://daq8wnhtscpjl" path="res://Skip.png" id="3_4vx67"]
[ext_resource type="Script" path="res://wallpaper_manager.gd" id="4_y372l"]
[ext_resource type="Texture2D" uid="uid://38c8dfym0svn" path="res://Loop.png" id="5_c2g63"]
[ext_resource type="Texture2D" uid="uid://cekkhyppj88xi" path="res://Headphones.png" id="6_3mi6c"]
[ext_resource type="Texture2D" uid="uid://snne8iiftksi" path="res://Evening_view_of_Munnar_1633.jpg" id="6_5vm0w"]
[ext_resource type="Texture2D" uid="uid://ba5wdmchyy50n" path="res://nighttime-in-the-hills-henry-porter.jpg" id="6_8abnc"]
[ext_resource type="Texture2D" uid="uid://ctb4s2nks73rx" path="res://Play.png" id="8_5v7u3"]
[ext_resource type="Shader" path="res://CoverShader.gdshader" id="8_4531v"]
[ext_resource type="Texture2D" uid="uid://b00wlqid2jdvi" path="res://BigLogo.png" id="10_xnj6a"]
[ext_resource type="Script" path="res://cover.gd" id="12_3v50a"]
[ext_resource type="Texture2D" uid="uid://bdpat2sfflaxq" path="res://Youtube_logo.png" id="12_bc5ym"]
[ext_resource type="Script" path="res://search_bar.gd" id="12_mr42x"]
[ext_resource type="Texture2D" uid="uid://b5eims5ucn81r" path="res://Loding.png" id="13_de5ej"]
[ext_resource type="Script" path="res://volume_button.gd" id="14_7q3ja"]
[ext_resource type="Script" path="res://Spinning.gd" id="14_rhw4k"]
[ext_resource type="Script" path="res://yt_tab_button.gd" id="16_2t15p"]
[sub_resource type="Gradient" id="Gradient_hqvtw"]
offsets = PackedFloat32Array(0.459016, 0.565574, 0.704918, 0.827869, 0.92623, 1)
colors = PackedColorArray(0, 0, 0, 1, 0.132947, 0.132947, 0.132947, 0.867053, 0.286885, 0.286885, 0.286885, 0.713115, 0.536475, 0.536475, 0.536475, 0.463525, 0.790666, 0.790666, 0.790666, 0.209334, 1, 1, 1, 0)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_50sv0"]
gradient = SubResource("Gradient_hqvtw")
fill = 1
fill_from = Vector2(0, 1)
fill_to = Vector2(1, 1)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_3bw0j"]
shader = ExtResource("8_4531v")
shader_parameter/dissolve = SubResource("GradientTexture2D_50sv0")
[sub_resource type="InputEventKey" id="InputEventKey_5af16"]
device = -1
keycode = 32
unicode = 32
[sub_resource type="Shortcut" id="Shortcut_0ov5v"]
events = [SubResource("InputEventKey_5af16")]
[sub_resource type="LabelSettings" id="LabelSettings_6prit"]
font_size = 22
outline_size = 2
outline_color = Color(0, 0, 0, 1)
shadow_color = Color(0, 0, 0, 0.643137)
shadow_offset = Vector2(7.88, 4.31)
[node name="Node2D" type="Node2D"]
script = ExtResource("1_ubs1p")
LoopPressed = ExtResource("2_iolk5")
LoopNotPressed = ExtResource("5_c2g63")
[node name="WallpaperManager" type="Node2D" parent="." node_paths=PackedStringArray("Daytime", "Evening", "Nighttime")]
script = ExtResource("4_y372l")
Daytime = NodePath("../Daytime")
Evening = NodePath("../Evening")
Nighttime = NodePath("../Nighttime")
[node name="Daytime" type="Sprite2D" parent="."]
position = Vector2(576.949, 401)
scale = Vector2(1.27923, 1.25956)
texture = ExtResource("2_wf35v")
[node name="Evening" type="Sprite2D" parent="."]
position = Vector2(582, 342)
scale = Vector2(1.00181, 1.00181)
texture = ExtResource("6_5vm0w")
[node name="Nighttime" type="Sprite2D" parent="."]
visible = false
modulate = Color(0.347817, 0.347817, 0.347817, 1)
position = Vector2(610, 326)
scale = Vector2(1.49056, 1.51111)
texture = ExtResource("6_8abnc")
[node name="CoverHolder" type="Node2D" parent="."]
position = Vector2(-3, 649)
[node name="Cover" type="Sprite2D" parent="CoverHolder"]
modulate = Color(1, 1, 1, 0.592157)
material = SubResource("ShaderMaterial_3bw0j")
position = Vector2(200, -122.333)
scale = Vector2(0.333333, 0.333333)
region_rect = Rect2(142.036, 106.625, 632.359, 516.605)
region_filter_clip_enabled = true
script = ExtResource("12_3v50a")
[node name="SelectPlaylist" type="Button" parent="."]
offset_left = 20.0
offset_top = 24.0
offset_right = 255.0
offset_bottom = 80.0
focus_mode = 0
text = "select the directory
(playlist's folder)"
[node name="RandomizeList" type="Button" parent="."]
offset_left = 897.0
offset_top = 24.0
offset_right = 1132.0
offset_bottom = 80.0
focus_mode = 0
text = "Randomize the Playlist"
[node name="FileDialog" type="FileDialog" parent="."]
title = "Open a Directory"
position = Vector2i(28, 115)
size = Vector2i(470, 320)
ok_button_text = "Select Current Folder"
file_mode = 2
access = 2
use_native_dialog = true
[node name="MusicPlayer" type="AudioStreamPlayer" parent="."]
[node name="playList" type="Button" parent="."]
offset_left = 20.0
offset_top = 572.0
offset_right = 92.0
offset_bottom = 644.0
scale = Vector2(0.5, 0.5)
focus_mode = 0
shortcut = SubResource("Shortcut_0ov5v")
icon = ExtResource("8_5v7u3")
[node name="CurrentProgress" type="HSlider" parent="."]
offset_left = 64.0
offset_top = 560.0
offset_right = 944.0
offset_bottom = 624.0
max_value = 1000.0
ticks_on_borders = true
[node name="Skip" type="Button" parent="."]
offset_left = 1046.0
offset_top = 573.0
offset_right = 1086.0
offset_bottom = 613.0
focus_mode = 0
icon = ExtResource("3_4vx67")
[node name="Skip2" type="Button" parent="."]
offset_left = 1046.0
offset_top = 573.0
offset_right = 1086.0
offset_bottom = 613.0
focus_mode = 0
icon = ExtResource("3_4vx67")
[node name="Loop" type="Button" parent="."]
offset_left = 1000.0
offset_top = 573.0
offset_right = 1040.0
offset_bottom = 613.0
focus_mode = 0
icon = ExtResource("5_c2g63")
[node name="GoBack" type="Button" parent="."]
offset_left = 994.0
offset_top = 613.0
offset_right = 1034.0
offset_bottom = 653.0
rotation = 3.14159
focus_mode = 0
icon = ExtResource("3_4vx67")
[node name="SongName" type="Label" parent="."]
offset_left = 66.0
offset_top = 524.0
offset_right = 994.0
offset_bottom = 581.0
text = "Please select a directory"
label_settings = SubResource("LabelSettings_6prit")
clip_text = true
text_overrun_behavior = 2
[node name="SearchBar" type="TextEdit" parent="."]
offset_left = 266.0
offset_top = 24.0
offset_right = 888.0
offset_bottom = 81.0
placeholder_text = "Search"
wrap_mode = 1
script = ExtResource("12_mr42x")
[node name="SearchResults" type="PopupMenu" parent="."]
handle_input_locally = false
position = Vector2i(265, 80)
size = Vector2i(625, 300)
max_size = Vector2i(625, 300)
hide_on_state_item_selection = true
allow_search = false
[node name="VolumeButton" type="Button" parent="."]
offset_left = 1092.0
offset_top = 573.0
offset_right = 1132.0
offset_bottom = 613.0
focus_mode = 0
toggle_mode = true
icon = ExtResource("6_3mi6c")
script = ExtResource("14_7q3ja")
[node name="VolumeSlider" type="VSlider" parent="."]
layout_direction = 3
anchors_preset = 12
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -1121.0
offset_top = 563.0
offset_right = -1103.0
offset_bottom = 571.0
grow_horizontal = 2
grow_vertical = 0
size_flags_horizontal = 1
size_flags_vertical = 8
value = 100.0
[node name="Logo" type="Sprite2D" parent="."]
modulate = Color(1, 1, 1, 0.686275)
position = Vector2(192, 162)
scale = Vector2(0.159259, 0.159259)
texture = ExtResource("10_xnj6a")
[node name="TimeListeningSong" type="Label" parent="."]
offset_left = 66.0
offset_top = 597.0
offset_right = 178.0
offset_bottom = 633.0
[node name="YtTabButton" type="Button" parent="."]
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = 1065.0
offset_top = 107.0
offset_right = 1713.0
offset_bottom = 558.0
grow_horizontal = 0
scale = Vector2(0.105, 0.105)
focus_mode = 0
toggle_mode = true
icon = ExtResource("12_bc5ym")
flat = true
script = ExtResource("16_2t15p")
[node name="YoutubeMenuHolder" type="Control" parent="."]
layout_mode = 3
anchors_preset = 0
offset_left = 794.0
offset_top = 107.0
offset_right = 834.0
offset_bottom = 147.0
[node name="Youtube menu" type="Control" parent="YoutubeMenuHolder"]
layout_mode = 3
anchors_preset = 0
offset_right = 200.0
offset_bottom = 363.0
[node name="YTLink" type="LineEdit" parent="YoutubeMenuHolder/Youtube menu"]
layout_mode = 1
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -201.0
offset_bottom = 47.0
grow_horizontal = 0
placeholder_text = "Youtube link(can be playlist)"
[node name="YTDownload" type="Button" parent="YoutubeMenuHolder/Youtube menu"]
layout_mode = 1
offset_top = 58.0
offset_right = 87.0
offset_bottom = 98.0
focus_mode = 0
text = "Download"
[node name="LoadingIMG" type="Sprite2D" parent="YoutubeMenuHolder/Youtube menu"]
position = Vector2(113, 78)
rotation = 1.5708
scale = Vector2(-0.5, 0.5)
texture = ExtResource("13_de5ej")
script = ExtResource("14_rhw4k")
[node name="Version" type="Label" parent="."]
offset_left = 1083.0
offset_top = 625.0
offset_right = 1147.0
offset_bottom = 648.0
text = "v0.9.2"
horizontal_alignment = 2
[node name="WavDisclaimer" type="AcceptDialog" parent="."]
transparent_bg = true
title = "WAV disclaimer"
position = Vector2i(495, 305)
size = Vector2i(256, 100)
transparent = true
popup_window = true
force_native = true
dialog_text = "wav files are not supported yet"
[connection signal="text_changed" from="SearchBar" to="SearchBar" method="_on_text_changed"]
[connection signal="index_pressed" from="SearchResults" to="SearchBar" method="_on_search_results_index_pressed"]
[connection signal="toggled" from="VolumeButton" to="VolumeButton" method="_on_toggled"]
[connection signal="toggled" from="YtTabButton" to="YtTabButton" method="_on_toggled"]
-668
View File
@@ -1,668 +0,0 @@
[gd_scene load_steps=53 format=3 uid="uid://b2sygl55s6fng"]
[ext_resource type="Script" path="res://main.gd" id="1_ubs1p"]
[ext_resource type="Texture2D" uid="uid://b8on1case224h" path="res://LoopPressed.png" id="2_iolk5"]
[ext_resource type="Texture2D" uid="uid://cq8jj63iyu2cs" path="res://d7hftxdivxxvm.cloudfront.webp" id="2_wf35v"]
[ext_resource type="Texture2D" uid="uid://daq8wnhtscpjl" path="res://Skip.png" id="3_4vx67"]
[ext_resource type="Script" path="res://wallpaper_manager.gd" id="4_y372l"]
[ext_resource type="Texture2D" uid="uid://38c8dfym0svn" path="res://Loop.png" id="5_c2g63"]
[ext_resource type="Texture2D" uid="uid://cekkhyppj88xi" path="res://Headphones.png" id="6_3mi6c"]
[ext_resource type="Texture2D" uid="uid://snne8iiftksi" path="res://Evening_view_of_Munnar_1633.jpg" id="6_5vm0w"]
[ext_resource type="Texture2D" uid="uid://ba5wdmchyy50n" path="res://nighttime-in-the-hills-henry-porter.jpg" id="6_8abnc"]
[ext_resource type="Texture2D" uid="uid://ctb4s2nks73rx" path="res://Play.png" id="8_5v7u3"]
[ext_resource type="Shader" path="res://CoverShader.gdshader" id="8_4531v"]
[ext_resource type="Shader" path="res://Main.gdshader" id="10_20857"]
[ext_resource type="Texture2D" uid="uid://b00wlqid2jdvi" path="res://BigLogo.png" id="10_xnj6a"]
[ext_resource type="Texture2D" uid="uid://0r1tx6l1lc6x" path="res://settingscog.png" id="11_esjel"]
[ext_resource type="Script" path="res://cover.gd" id="12_3v50a"]
[ext_resource type="Script" path="res://settings_button.gd" id="12_073mb"]
[ext_resource type="Texture2D" uid="uid://bdpat2sfflaxq" path="res://Youtube_logo.png" id="12_bc5ym"]
[ext_resource type="Texture2D" uid="uid://myq6n4bshduj" path="res://search.png" id="12_cv2gm"]
[ext_resource type="Script" path="res://search_bar.gd" id="12_mr42x"]
[ext_resource type="Script" path="res://search_toggle.gd" id="13_5illk"]
[ext_resource type="PackedScene" uid="uid://dqg674t6kun4e" path="res://Settings.tscn" id="13_7atry"]
[ext_resource type="Texture2D" uid="uid://b5eims5ucn81r" path="res://Loding.png" id="13_de5ej"]
[ext_resource type="Script" path="res://volume_button.gd" id="14_7q3ja"]
[ext_resource type="Texture2D" uid="uid://1rstn6r2wisy" path="res://X.png" id="14_mioc4"]
[ext_resource type="Script" path="res://Spinning.gd" id="14_rhw4k"]
[ext_resource type="Script" path="res://yt_tab_button.gd" id="16_2t15p"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ku7tv"]
shader = ExtResource("10_20857")
shader_parameter/intensity = 1.0
[sub_resource type="Gradient" id="Gradient_7vgyc"]
offsets = PackedFloat32Array(0.00292398, 0.845029)
colors = PackedColorArray(0, 0, 0, 0, 1, 1, 1, 1)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_bhdch"]
gradient = SubResource("Gradient_7vgyc")
fill_to = Vector2(0, 1)
[sub_resource type="Gradient" id="Gradient_hqvtw"]
offsets = PackedFloat32Array(0.459016, 0.565574, 0.704918, 0.827869, 0.92623, 1)
colors = PackedColorArray(0, 0, 0, 1, 0.132947, 0.132947, 0.132947, 0.867053, 0.286885, 0.286885, 0.286885, 0.713115, 0.536475, 0.536475, 0.536475, 0.463525, 0.790666, 0.790666, 0.790666, 0.209334, 1, 1, 1, 0)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_50sv0"]
gradient = SubResource("Gradient_hqvtw")
fill = 1
fill_from = Vector2(0, 1)
fill_to = Vector2(1, 1)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_3bw0j"]
shader = ExtResource("8_4531v")
shader_parameter/dissolve = SubResource("GradientTexture2D_50sv0")
[sub_resource type="InputEventKey" id="InputEventKey_x0ps1"]
device = -1
ctrl_pressed = true
keycode = 68
[sub_resource type="Shortcut" id="Shortcut_vp2fh"]
events = [SubResource("InputEventKey_x0ps1")]
[sub_resource type="LabelSettings" id="LabelSettings_0fjy0"]
font_size = 21
[sub_resource type="InputEventKey" id="InputEventKey_0jlka"]
device = -1
ctrl_pressed = true
keycode = 82
[sub_resource type="Shortcut" id="Shortcut_axi6u"]
events = [SubResource("InputEventKey_0jlka")]
[sub_resource type="InputEventKey" id="InputEventKey_117g0"]
device = -1
ctrl_pressed = true
keycode = 83
[sub_resource type="Shortcut" id="Shortcut_8p5o4"]
events = [SubResource("InputEventKey_117g0")]
[sub_resource type="InputEventKey" id="InputEventKey_5af16"]
device = -1
keycode = 32
unicode = 32
[sub_resource type="Shortcut" id="Shortcut_0ov5v"]
events = [SubResource("InputEventKey_5af16")]
[sub_resource type="InputEventKey" id="InputEventKey_l1ahe"]
device = -1
keycode = 4194321
[sub_resource type="Shortcut" id="Shortcut_qw6pv"]
events = [SubResource("InputEventKey_l1ahe")]
[sub_resource type="InputEventKey" id="InputEventKey_c5qef"]
device = -1
keycode = 76
unicode = 108
[sub_resource type="Shortcut" id="Shortcut_vot6l"]
events = [SubResource("InputEventKey_c5qef")]
[sub_resource type="InputEventKey" id="InputEventKey_y4cc2"]
device = -1
keycode = 4194319
[sub_resource type="Shortcut" id="Shortcut_xu6hm"]
events = [SubResource("InputEventKey_y4cc2")]
[sub_resource type="LabelSettings" id="LabelSettings_6prit"]
font_size = 22
outline_size = 3
outline_color = Color(0.215902, 0.215902, 0.215902, 1)
[sub_resource type="LabelSettings" id="LabelSettings_jg5vn"]
font_size = 20
outline_size = 3
outline_color = Color(0.393086, 0.393086, 0.393085, 1)
[sub_resource type="InputEventKey" id="InputEventKey_puhgg"]
device = -1
ctrl_pressed = true
keycode = 81
[sub_resource type="Shortcut" id="Shortcut_g3fcr"]
events = [SubResource("InputEventKey_puhgg")]
[sub_resource type="LabelSettings" id="LabelSettings_fiiw4"]
font_size = 12
[node name="Node2D" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_ubs1p")
LoopPressed = ExtResource("2_iolk5")
LoopNotPressed = ExtResource("5_c2g63")
[node name="WallpaperManager" type="Node2D" parent="." node_paths=PackedStringArray("Daytime", "Evening", "Nighttime")]
script = ExtResource("4_y372l")
Daytime = NodePath("../Daytime")
Evening = NodePath("../Evening")
Nighttime = NodePath("../Nighttime")
[node name="Daytime" type="TextureRect" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("2_wf35v")
stretch_mode = 6
[node name="Evening" type="TextureRect" parent="."]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("6_5vm0w")
stretch_mode = 6
[node name="Nighttime" type="TextureRect" parent="."]
visible = false
modulate = Color(0.347817, 0.347817, 0.347817, 1)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("6_8abnc")
stretch_mode = 6
[node name="UserBG" type="TextureRect" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
expand_mode = 5
stretch_mode = 6
[node name="Logo" type="Sprite2D" parent="."]
visible = false
modulate = Color(1, 1, 1, 0.686275)
position = Vector2(192, 162)
scale = Vector2(0.159259, 0.159259)
texture = ExtResource("10_xnj6a")
[node name="PausedIndicator" type="TextureRect" parent="."]
material = SubResource("ShaderMaterial_ku7tv")
layout_mode = 1
anchors_preset = 12
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_top = -164.0
grow_horizontal = 2
grow_vertical = 0
texture = SubResource("GradientTexture2D_bhdch")
[node name="CoverHolder" type="Control" parent="."]
layout_mode = 1
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_left = -3.0
offset_top = 1.0
offset_right = -3.0
offset_bottom = 1.0
grow_vertical = 0
[node name="Cover" type="Sprite2D" parent="CoverHolder"]
modulate = Color(1, 1, 1, 0.592157)
material = SubResource("ShaderMaterial_3bw0j")
scale = Vector2(0.333333, 0.333333)
region_rect = Rect2(142.036, 106.625, 632.359, 516.605)
region_filter_clip_enabled = true
script = ExtResource("12_3v50a")
[node name="SelectDirectory" type="Button" parent="."]
layout_mode = 0
offset_left = 140.0
offset_top = 24.0
offset_right = 255.0
offset_bottom = 80.0
focus_mode = 0
shortcut = SubResource("Shortcut_vp2fh")
text = "select the
directory"
[node name="SelectPlaylist" type="Button" parent="."]
layout_mode = 0
offset_left = 20.0
offset_top = 24.0
offset_right = 131.0
offset_bottom = 80.0
focus_mode = 0
shortcut = SubResource("Shortcut_vp2fh")
text = "Playlists"
[node name="PlaylistsContainer" type="ScrollContainer" parent="."]
layout_mode = 0
offset_left = 3.0
offset_top = 83.0
offset_right = 352.0
offset_bottom = 661.0
follow_focus = true
horizontal_scroll_mode = 0
[node name="VBoxContainer" type="VBoxContainer" parent="PlaylistsContainer"]
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 4
alignment = 1
[node name="Label" type="Label" parent="PlaylistsContainer/VBoxContainer"]
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 0
text = "PLAYLISTS"
label_settings = SubResource("LabelSettings_0fjy0")
[node name="PlaylistsHolder" type="VBoxContainer" parent="PlaylistsContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 4
alignment = 1
[node name="RandomizeList" type="Button" parent="."]
layout_mode = 1
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -254.0
offset_top = 24.0
offset_right = -86.0
offset_bottom = 80.0
grow_horizontal = 0
focus_mode = 0
shortcut = SubResource("Shortcut_axi6u")
text = "Randomize"
[node name="SettingsButton" type="Button" parent="."]
layout_mode = 1
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -77.0
offset_top = 23.0
offset_right = -5.0
offset_bottom = 95.0
grow_horizontal = 0
scale = Vector2(0.79, 0.79)
focus_mode = 0
shortcut = SubResource("Shortcut_8p5o4")
icon = ExtResource("11_esjel")
script = ExtResource("12_073mb")
[node name="SettingsPopup" type="Popup" parent="."]
position = Vector2i(319, 85)
size = Vector2i(591, 501)
[node name="SettingsMenuChild" parent="SettingsPopup" instance=ExtResource("13_7atry")]
offset_left = -272.0
offset_top = 8.0
offset_bottom = 458.0
[node name="FileDialog" type="FileDialog" parent="."]
title = "Open a Directory"
position = Vector2i(28, 115)
size = Vector2i(576, 507)
ok_button_text = "Select Current Folder"
file_mode = 2
access = 2
use_native_dialog = true
[node name="MusicPlayer" type="AudioStreamPlayer" parent="."]
bus = &"Music"
[node name="playList" type="Button" parent="."]
layout_mode = 1
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_left = 20.0
offset_top = -77.0
offset_right = 92.0
offset_bottom = -5.0
grow_vertical = 0
scale = Vector2(0.5, 0.5)
focus_mode = 0
shortcut = SubResource("Shortcut_0ov5v")
icon = ExtResource("8_5v7u3")
[node name="AddRemoveFromPlaylist" type="Button" parent="."]
layout_mode = 1
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_left = 62.0
offset_top = -77.0
offset_right = 134.0
offset_bottom = -5.0
grow_vertical = 0
scale = Vector2(0.5, 0.5)
icon = ExtResource("14_mioc4")
[node name="CurrentProgress" type="HSlider" parent="."]
layout_mode = 1
anchors_preset = -1
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 106.0
offset_top = -88.0
offset_right = -211.0
offset_bottom = -24.0
grow_horizontal = 2
grow_vertical = 0
max_value = 1000.0
ticks_on_borders = true
[node name="Skip" type="Button" parent="."]
layout_mode = 1
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -105.0
offset_top = -75.0
offset_right = -65.0
offset_bottom = -35.0
grow_horizontal = 0
grow_vertical = 0
focus_mode = 0
shortcut = SubResource("Shortcut_qw6pv")
icon = ExtResource("3_4vx67")
[node name="Loop" type="Button" parent="."]
layout_mode = 1
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -152.0
offset_top = -75.0
offset_right = -112.0
offset_bottom = -35.0
grow_horizontal = 0
grow_vertical = 0
focus_mode = 0
shortcut = SubResource("Shortcut_vot6l")
icon = ExtResource("5_c2g63")
[node name="GoBack" type="Button" parent="."]
layout_mode = 1
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -157.0
offset_top = -35.0
offset_right = -117.0
offset_bottom = 5.0
grow_horizontal = 0
grow_vertical = 0
rotation = 3.14159
focus_mode = 0
shortcut = SubResource("Shortcut_xu6hm")
icon = ExtResource("3_4vx67")
[node name="SongName" type="Label" parent="."]
layout_mode = 1
anchors_preset = -1
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 109.0
offset_top = -124.0
offset_right = -158.0
offset_bottom = -93.0
grow_horizontal = 2
grow_vertical = 0
text = "Please select a directory"
label_settings = SubResource("LabelSettings_6prit")
clip_text = true
text_overrun_behavior = 2
[node name="ArtistName" type="Label" parent="."]
layout_mode = 1
anchors_preset = -1
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 109.0
offset_top = -103.0
offset_right = -158.0
offset_bottom = -72.0
grow_horizontal = 2
grow_vertical = 0
text = "if this text is visible the programmer is lazy"
label_settings = SubResource("LabelSettings_jg5vn")
clip_text = true
text_overrun_behavior = 2
[node name="SearchToggle" type="Button" parent="."]
layout_mode = 1
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -318.0
offset_top = 24.0
offset_right = -246.0
offset_bottom = 96.0
grow_horizontal = 0
scale = Vector2(0.79, 0.79)
focus_mode = 0
toggle_mode = true
shortcut = SubResource("Shortcut_g3fcr")
icon = ExtResource("12_cv2gm")
script = ExtResource("13_5illk")
PressedIcon = ExtResource("14_mioc4")
NotPressedIcon = ExtResource("12_cv2gm")
[node name="SearchBar" type="LineEdit" parent="."]
visible = false
layout_mode = 1
anchors_preset = -1
anchor_right = 1.0
offset_left = 264.0
offset_top = 24.0
offset_right = -328.0
offset_bottom = 80.0
grow_horizontal = 2
focus_mode = 1
placeholder_text = "Search"
alignment = 1
caret_blink = true
script = ExtResource("12_mr42x")
[node name="SongsMenu" type="MenuButton" parent="."]
layout_mode = 1
anchors_preset = -1
anchor_right = 1.0
offset_left = 264.0
offset_top = 24.0
offset_right = -328.0
offset_bottom = 80.0
grow_horizontal = 2
text = "Select Songs"
flat = false
[node name="SearchResults" type="PopupMenu" parent="."]
handle_input_locally = false
position = Vector2i(265, 80)
size = Vector2i(623, 300)
wrap_controls = false
max_size = Vector2i(625, 300)
allow_search = false
[node name="VolumeButton" type="Button" parent="."]
layout_mode = 1
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -58.0
offset_top = -75.0
offset_right = -18.0
offset_bottom = -35.0
grow_horizontal = 0
grow_vertical = 0
focus_mode = 0
toggle_mode = true
icon = ExtResource("6_3mi6c")
script = ExtResource("14_7q3ja")
[node name="VolumeSlider" type="VSlider" parent="."]
layout_mode = 1
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -46.0
offset_top = -83.0
offset_right = -30.0
offset_bottom = -75.0
grow_horizontal = 0
grow_vertical = 0
size_flags_horizontal = 1
size_flags_vertical = 8
value = 100.0
[node name="TimeListeningSong" type="Label" parent="."]
layout_mode = 1
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_left = 109.0
offset_top = -47.0
offset_right = 221.0
offset_bottom = -11.0
grow_vertical = 0
[node name="DiscordMenuHolder" type="Control" parent="."]
layout_mode = 3
anchors_preset = 0
offset_left = 1042.0
offset_top = 174.0
offset_right = 1082.0
offset_bottom = 214.0
[node name="YtTabButton" type="Button" parent="."]
layout_mode = 1
anchors_preset = -1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -97.0
offset_top = 109.0
offset_right = 551.0
offset_bottom = 560.0
grow_horizontal = 0
grow_vertical = 2
scale = Vector2(0.105, 0.105)
focus_mode = 0
toggle_mode = true
icon = ExtResource("12_bc5ym")
flat = true
script = ExtResource("16_2t15p")
[node name="YoutubeMenuHolder" type="Control" parent="."]
layout_mode = 1
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -358.0
offset_top = 107.0
offset_right = -318.0
offset_bottom = 147.0
grow_horizontal = 0
[node name="Youtube menu" type="Control" parent="YoutubeMenuHolder"]
layout_mode = 3
anchors_preset = 0
offset_right = 200.0
offset_bottom = 363.0
[node name="YTLink" type="LineEdit" parent="YoutubeMenuHolder/Youtube menu"]
layout_mode = 1
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -229.0
offset_bottom = 47.0
grow_horizontal = 0
placeholder_text = "Youtube link(can be playlist)"
[node name="YTDownload" type="Button" parent="YoutubeMenuHolder/Youtube menu"]
layout_mode = 1
offset_left = -29.0
offset_top = 70.465
offset_right = 58.0
offset_bottom = 110.465
focus_mode = 0
text = "Download"
[node name="LoadingIMG" type="Sprite2D" parent="YoutubeMenuHolder/Youtube menu"]
position = Vector2(80, 90.165)
rotation = 1.5708
scale = Vector2(-0.5, 0.5)
texture = ExtResource("13_de5ej")
script = ExtResource("14_rhw4k")
[node name="Label" type="Label" parent="YoutubeMenuHolder/Youtube menu"]
layout_mode = 0
offset_left = -27.795
offset_top = 49.0
offset_right = 197.205
offset_bottom = 72.0
text = "NOTE: speeds depend on your internet"
label_settings = SubResource("LabelSettings_fiiw4")
[node name="Version" type="Label" parent="."]
layout_mode = 1
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -64.0
offset_top = -23.0
grow_horizontal = 0
grow_vertical = 0
text = "v1.1.0"
horizontal_alignment = 2
[node name="WavDisclaimer" type="AcceptDialog" parent="."]
transparent_bg = true
title = "WAV disclaimer"
initial_position = 4
size = Vector2i(256, 100)
transparent = true
popup_window = true
force_native = true
dialog_text = "wav files are not supported yet"
[connection signal="pressed" from="SettingsButton" to="SettingsButton" method="_on_pressed"]
[connection signal="toggled" from="SearchToggle" to="SearchToggle" method="_on_toggled"]
[connection signal="text_submitted" from="SearchBar" to="SearchBar" method="_on_text_submitted"]
[connection signal="index_pressed" from="SearchResults" to="SearchBar" method="_on_search_results_index_pressed"]
[connection signal="toggled" from="VolumeButton" to="VolumeButton" method="_on_toggled"]
[connection signal="toggled" from="YtTabButton" to="YtTabButton" method="_on_toggled"]
-308
View File
@@ -1,308 +0,0 @@
[gd_scene load_steps=26 format=3 uid="uid://b2sygl55s6fng"]
[ext_resource type="Script" path="res://main.gd" id="1_ubs1p"]
[ext_resource type="Texture2D" uid="uid://b8on1case224h" path="res://LoopPressed.png" id="2_iolk5"]
[ext_resource type="Texture2D" uid="uid://cq8jj63iyu2cs" path="res://d7hftxdivxxvm.cloudfront.webp" id="2_wf35v"]
[ext_resource type="Texture2D" uid="uid://daq8wnhtscpjl" path="res://Skip.png" id="3_4vx67"]
[ext_resource type="Script" path="res://wallpaper_manager.gd" id="4_y372l"]
[ext_resource type="Texture2D" uid="uid://38c8dfym0svn" path="res://Loop.png" id="5_c2g63"]
[ext_resource type="Texture2D" uid="uid://cekkhyppj88xi" path="res://Headphones.png" id="6_3mi6c"]
[ext_resource type="Texture2D" uid="uid://snne8iiftksi" path="res://Evening_view_of_Munnar_1633.jpg" id="6_5vm0w"]
[ext_resource type="Texture2D" uid="uid://ba5wdmchyy50n" path="res://nighttime-in-the-hills-henry-porter.jpg" id="6_8abnc"]
[ext_resource type="Texture2D" uid="uid://ctb4s2nks73rx" path="res://Play.png" id="8_5v7u3"]
[ext_resource type="Shader" path="res://CoverShader.gdshader" id="8_4531v"]
[ext_resource type="Texture2D" uid="uid://b00wlqid2jdvi" path="res://BigLogo.png" id="10_xnj6a"]
[ext_resource type="Script" path="res://cover.gd" id="12_3v50a"]
[ext_resource type="Texture2D" uid="uid://bdpat2sfflaxq" path="res://Youtube_logo.png" id="12_bc5ym"]
[ext_resource type="Script" path="res://search_bar.gd" id="12_mr42x"]
[ext_resource type="Texture2D" uid="uid://b5eims5ucn81r" path="res://Loding.png" id="13_de5ej"]
[ext_resource type="Script" path="res://volume_button.gd" id="14_7q3ja"]
[ext_resource type="Script" path="res://Spinning.gd" id="14_rhw4k"]
[ext_resource type="Script" path="res://yt_tab_button.gd" id="16_2t15p"]
[sub_resource type="Gradient" id="Gradient_hqvtw"]
offsets = PackedFloat32Array(0.459016, 0.565574, 0.704918, 0.827869, 0.92623, 1)
colors = PackedColorArray(0, 0, 0, 1, 0.132947, 0.132947, 0.132947, 0.867053, 0.286885, 0.286885, 0.286885, 0.713115, 0.536475, 0.536475, 0.536475, 0.463525, 0.790666, 0.790666, 0.790666, 0.209334, 1, 1, 1, 0)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_50sv0"]
gradient = SubResource("Gradient_hqvtw")
fill = 1
fill_from = Vector2(0, 1)
fill_to = Vector2(1, 1)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_3bw0j"]
shader = ExtResource("8_4531v")
shader_parameter/dissolve = SubResource("GradientTexture2D_50sv0")
[sub_resource type="InputEventKey" id="InputEventKey_5af16"]
device = -1
keycode = 32
unicode = 32
[sub_resource type="Shortcut" id="Shortcut_0ov5v"]
events = [SubResource("InputEventKey_5af16")]
[sub_resource type="LabelSettings" id="LabelSettings_6prit"]
font_size = 22
outline_size = 2
outline_color = Color(0, 0, 0, 1)
shadow_color = Color(0, 0, 0, 0.643137)
shadow_offset = Vector2(7.88, 4.31)
[node name="Node2D" type="Node2D"]
script = ExtResource("1_ubs1p")
LoopPressed = ExtResource("2_iolk5")
LoopNotPressed = ExtResource("5_c2g63")
[node name="WallpaperManager" type="Node2D" parent="." node_paths=PackedStringArray("Daytime", "Evening", "Nighttime")]
script = ExtResource("4_y372l")
Daytime = NodePath("../Daytime")
Evening = NodePath("../Evening")
Nighttime = NodePath("../Nighttime")
[node name="Daytime" type="Sprite2D" parent="."]
position = Vector2(576.949, 401)
scale = Vector2(1.27923, 1.25956)
texture = ExtResource("2_wf35v")
[node name="Evening" type="Sprite2D" parent="."]
position = Vector2(582, 342)
scale = Vector2(1.00181, 1.00181)
texture = ExtResource("6_5vm0w")
[node name="Nighttime" type="Sprite2D" parent="."]
visible = false
modulate = Color(0.347817, 0.347817, 0.347817, 1)
position = Vector2(610, 326)
scale = Vector2(1.49056, 1.51111)
texture = ExtResource("6_8abnc")
[node name="CoverHolder" type="Node2D" parent="."]
position = Vector2(-3, 649)
[node name="Cover" type="Sprite2D" parent="CoverHolder"]
modulate = Color(1, 1, 1, 0.592157)
material = SubResource("ShaderMaterial_3bw0j")
position = Vector2(200, -122.333)
scale = Vector2(0.333333, 0.333333)
region_rect = Rect2(142.036, 106.625, 632.359, 516.605)
region_filter_clip_enabled = true
script = ExtResource("12_3v50a")
[node name="SelectPlaylist" type="Button" parent="."]
offset_left = 20.0
offset_top = 24.0
offset_right = 255.0
offset_bottom = 80.0
focus_mode = 0
text = "select the directory
(playlist's folder)"
[node name="RandomizeList" type="Button" parent="."]
offset_left = 897.0
offset_top = 24.0
offset_right = 1132.0
offset_bottom = 80.0
focus_mode = 0
text = "Randomize the Playlist"
[node name="FileDialog" type="FileDialog" parent="."]
title = "Open a Directory"
position = Vector2i(28, 115)
size = Vector2i(470, 320)
ok_button_text = "Select Current Folder"
file_mode = 2
access = 2
use_native_dialog = true
[node name="MusicPlayer" type="AudioStreamPlayer" parent="."]
[node name="playList" type="Button" parent="."]
offset_left = 20.0
offset_top = 572.0
offset_right = 92.0
offset_bottom = 644.0
scale = Vector2(0.5, 0.5)
focus_mode = 0
shortcut = SubResource("Shortcut_0ov5v")
icon = ExtResource("8_5v7u3")
[node name="CurrentProgress" type="HSlider" parent="."]
offset_left = 64.0
offset_top = 560.0
offset_right = 944.0
offset_bottom = 624.0
max_value = 1000.0
ticks_on_borders = true
[node name="Skip" type="Button" parent="."]
offset_left = 1046.0
offset_top = 573.0
offset_right = 1086.0
offset_bottom = 613.0
focus_mode = 0
icon = ExtResource("3_4vx67")
[node name="Skip2" type="Button" parent="."]
offset_left = 1046.0
offset_top = 573.0
offset_right = 1086.0
offset_bottom = 613.0
focus_mode = 0
icon = ExtResource("3_4vx67")
[node name="Loop" type="Button" parent="."]
offset_left = 1000.0
offset_top = 573.0
offset_right = 1040.0
offset_bottom = 613.0
focus_mode = 0
icon = ExtResource("5_c2g63")
[node name="GoBack" type="Button" parent="."]
offset_left = 994.0
offset_top = 613.0
offset_right = 1034.0
offset_bottom = 653.0
rotation = 3.14159
focus_mode = 0
icon = ExtResource("3_4vx67")
[node name="SongName" type="Label" parent="."]
offset_left = 66.0
offset_top = 524.0
offset_right = 994.0
offset_bottom = 581.0
text = "Please select a directory"
label_settings = SubResource("LabelSettings_6prit")
clip_text = true
text_overrun_behavior = 2
[node name="SearchBar" type="LineEdit" parent="."]
offset_left = 266.0
offset_top = 24.0
offset_right = 883.0
offset_bottom = 83.0
script = ExtResource("12_mr42x")
[node name="SearchResults" type="PopupMenu" parent="."]
position = Vector2i(265, 80)
size = Vector2i(625, 300)
max_size = Vector2i(625, 300)
hide_on_state_item_selection = true
allow_search = false
[node name="VolumeButton" type="Button" parent="."]
offset_left = 1092.0
offset_top = 573.0
offset_right = 1132.0
offset_bottom = 613.0
focus_mode = 0
toggle_mode = true
icon = ExtResource("6_3mi6c")
script = ExtResource("14_7q3ja")
[node name="VolumeSlider" type="VSlider" parent="."]
layout_direction = 3
anchors_preset = 12
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -1121.0
offset_top = 563.0
offset_right = -1103.0
offset_bottom = 571.0
grow_horizontal = 2
grow_vertical = 0
size_flags_horizontal = 1
size_flags_vertical = 8
value = 100.0
[node name="Logo" type="Sprite2D" parent="."]
modulate = Color(1, 1, 1, 0.686275)
position = Vector2(192, 162)
scale = Vector2(0.159259, 0.159259)
texture = ExtResource("10_xnj6a")
[node name="TimeListeningSong" type="Label" parent="."]
offset_left = 66.0
offset_top = 597.0
offset_right = 178.0
offset_bottom = 633.0
[node name="YtTabButton" type="Button" parent="."]
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = 1065.0
offset_top = 107.0
offset_right = 1713.0
offset_bottom = 558.0
grow_horizontal = 0
scale = Vector2(0.105, 0.105)
focus_mode = 0
toggle_mode = true
icon = ExtResource("12_bc5ym")
flat = true
script = ExtResource("16_2t15p")
[node name="YoutubeMenuHolder" type="Control" parent="."]
layout_mode = 3
anchors_preset = 0
offset_left = 794.0
offset_top = 107.0
offset_right = 834.0
offset_bottom = 147.0
[node name="Youtube menu" type="Control" parent="YoutubeMenuHolder"]
layout_mode = 3
anchors_preset = 0
offset_right = 200.0
offset_bottom = 363.0
[node name="YTLink" type="LineEdit" parent="YoutubeMenuHolder/Youtube menu"]
layout_mode = 1
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -201.0
offset_bottom = 47.0
grow_horizontal = 0
placeholder_text = "Youtube link(can be playlist)"
[node name="YTDownload" type="Button" parent="YoutubeMenuHolder/Youtube menu"]
layout_mode = 1
offset_top = 58.0
offset_right = 87.0
offset_bottom = 98.0
focus_mode = 0
text = "Download"
[node name="LoadingIMG" type="Sprite2D" parent="YoutubeMenuHolder/Youtube menu"]
position = Vector2(113, 78)
rotation = 1.5708
scale = Vector2(-0.5, 0.5)
texture = ExtResource("13_de5ej")
script = ExtResource("14_rhw4k")
[node name="Version" type="Label" parent="."]
offset_left = 1083.0
offset_top = 625.0
offset_right = 1147.0
offset_bottom = 648.0
text = "v0.9.2"
horizontal_alignment = 2
[node name="WavDisclaimer" type="AcceptDialog" parent="."]
transparent_bg = true
title = "WAV disclaimer"
position = Vector2i(495, 305)
size = Vector2i(256, 100)
transparent = true
popup_window = true
force_native = true
dialog_text = "wav files are not supported yet"
[connection signal="text_changed" from="SearchBar" to="SearchBar" method="_on_text_changed"]
[connection signal="toggled" from="VolumeButton" to="VolumeButton" method="_on_toggled"]
[connection signal="toggled" from="YtTabButton" to="YtTabButton" method="_on_toggled"]
-100
View File
@@ -1,100 +0,0 @@
[gd_scene load_steps=5 format=3 uid="uid://b2sygl55s6fng"]
[ext_resource type="Script" path="res://main.gd" id="1_ubs1p"]
[ext_resource type="Texture2D" uid="uid://cq8jj63iyu2cs" path="res://d7hftxdivxxvm.cloudfront.webp" id="2_wf35v"]
[ext_resource type="Texture2D" uid="uid://daq8wnhtscpjl" path="res://Skip.png" id="3_4vx67"]
[sub_resource type="LabelSettings" id="LabelSettings_4jg7r"]
font_size = 34
outline_size = 2
outline_color = Color(0, 0, 0, 1)
shadow_size = 2
[node name="Node2D" type="Node2D"]
script = ExtResource("1_ubs1p")
[node name="D7Hftxdivxxvm_cloudfront" type="Sprite2D" parent="."]
position = Vector2(576.949, 299)
scale = Vector2(1.27923, 1.25956)
texture = ExtResource("2_wf35v")
[node name="SelectPlaylist" type="Button" parent="."]
offset_left = 43.0
offset_top = 24.0
offset_right = 278.0
offset_bottom = 65.0
text = "select playlist folder"
[node name="RandomizeList" type="Button" parent="."]
offset_left = 767.0
offset_top = 29.0
offset_right = 1002.0
offset_bottom = 70.0
text = "Randomize Playlist"
[node name="FileDialog" type="FileDialog" parent="."]
title = "Open a Directory"
position = Vector2i(325, 115)
size = Vector2i(427, 320)
ok_button_text = "Select Current Folder"
file_mode = 2
access = 2
[node name="MusicPlayer" type="AudioStreamPlayer" parent="."]
[node name="playList" type="Button" parent="."]
offset_left = 187.0
offset_top = 572.0
offset_right = 274.0
offset_bottom = 612.0
text = "play"
[node name="pause" type="Button" parent="."]
offset_left = 88.0
offset_top = 572.0
offset_right = 175.0
offset_bottom = 612.0
text = "toggle
pause"
[node name="CurrentProgress" type="HSlider" parent="."]
offset_left = 286.0
offset_top = 560.0
offset_right = 895.0
offset_bottom = 624.0
ticks_on_borders = true
[node name="VolumeSlider" type="VSlider" parent="."]
offset_left = 1125.0
offset_top = 333.0
offset_right = 1141.0
offset_bottom = 623.0
value = 100.0
[node name="Label" type="Label" parent="."]
offset_left = 1094.0
offset_top = 331.0
offset_right = 1121.0
offset_bottom = 611.0
text = "V
O
L
U
M
E"
label_settings = SubResource("LabelSettings_4jg7r")
[node name="Skip" type="Button" parent="."]
offset_left = 956.0
offset_top = 572.0
offset_right = 996.0
offset_bottom = 612.0
icon = ExtResource("3_4vx67")
[node name="GoBack" type="Button" parent="."]
offset_left = 942.0
offset_top = 612.0
offset_right = 982.0
offset_bottom = 652.0
rotation = 3.14159
icon = ExtResource("3_4vx67")
-24
View File
@@ -1,24 +0,0 @@
[gd_scene load_steps=2 format=3 uid="uid://b2sygl55s6fng"]
[ext_resource type="Script" path="res://main.gd" id="1_ubs1p"]
[node name="Node2D" type="Node2D"]
script = ExtResource("1_ubs1p")
[node name="SelectPlaylist" type="Button" parent="."]
offset_left = 43.0
offset_top = 24.0
offset_right = 278.0
offset_bottom = 65.0
text = "select playlist folder"
[node name="FileDialog" type="FileDialog" parent="."]
title = "Open a Directory"
position = Vector2i(140, 225)
size = Vector2i(352, 180)
visible = true
ok_button_text = "Select Current Folder"
file_mode = 2
access = 2
[node name="MusicPlayer" type="AudioStreamPlayer" parent="."]
-185
View File
@@ -1,185 +0,0 @@
[gd_scene load_steps=14 format=3 uid="uid://b2sygl55s6fng"]
[ext_resource type="Script" path="res://main.gd" id="1_ubs1p"]
[ext_resource type="Texture2D" uid="uid://b8on1case224h" path="res://LoopPressed.png" id="2_iolk5"]
[ext_resource type="Texture2D" uid="uid://cq8jj63iyu2cs" path="res://d7hftxdivxxvm.cloudfront.webp" id="2_wf35v"]
[ext_resource type="Texture2D" uid="uid://daq8wnhtscpjl" path="res://Skip.png" id="3_4vx67"]
[ext_resource type="Script" path="res://wallpaper_manager.gd" id="4_y372l"]
[ext_resource type="Texture2D" uid="uid://38c8dfym0svn" path="res://Loop.png" id="5_c2g63"]
[ext_resource type="Texture2D" uid="uid://itxrsfeiey6k" path="res://unnamed.jpg" id="5_o3jj7"]
[ext_resource type="Texture2D" uid="uid://cekkhyppj88xi" path="res://Headphones.png" id="6_3mi6c"]
[ext_resource type="Texture2D" uid="uid://ba5wdmchyy50n" path="res://nighttime-in-the-hills-henry-porter.jpg" id="6_8abnc"]
[ext_resource type="AudioStream" uid="uid://cvndnnx1mdvqp" path="res://Project_4.mp3" id="7_8fltb"]
[ext_resource type="Texture2D" uid="uid://b5ml1dkiuo5ta" path="res://Logo.png" id="11_boad2"]
[sub_resource type="LabelSettings" id="LabelSettings_6prit"]
font_size = 22
outline_size = 2
outline_color = Color(0, 0, 0, 1)
shadow_color = Color(0, 0, 0, 0.643137)
shadow_offset = Vector2(7.88, 4.31)
[sub_resource type="LabelSettings" id="LabelSettings_ywsb0"]
font_size = 36
outline_size = 2
outline_color = Color(0, 0, 0, 1)
shadow_size = 2
shadow_color = Color(0, 0, 0, 0.486275)
shadow_offset = Vector2(6.725, 10.16)
[node name="Node2D" type="Node2D"]
script = ExtResource("1_ubs1p")
LoopPressed = ExtResource("2_iolk5")
LoopNotPressed = ExtResource("5_c2g63")
[node name="WallpaperManager" type="Node2D" parent="." node_paths=PackedStringArray("Daytime", "Evening", "Nighttime")]
script = ExtResource("4_y372l")
Daytime = NodePath("../Daytime")
Evening = NodePath("../Evening")
Nighttime = NodePath("../Nighttime")
[node name="Daytime" type="Sprite2D" parent="."]
position = Vector2(576.949, 299)
scale = Vector2(1.27923, 1.25956)
texture = ExtResource("2_wf35v")
[node name="Evening" type="Sprite2D" parent="."]
position = Vector2(575, 350)
scale = Vector2(2.27353, 2.27353)
texture = ExtResource("5_o3jj7")
[node name="Nighttime" type="Sprite2D" parent="."]
modulate = Color(0.347817, 0.347817, 0.347817, 1)
position = Vector2(599, 323)
scale = Vector2(1.47, 1.47)
texture = ExtResource("6_8abnc")
[node name="SelectPlaylist" type="Button" parent="."]
offset_left = 20.0
offset_top = 24.0
offset_right = 255.0
offset_bottom = 80.0
text = "select the directory
(playlist's folder)"
[node name="RandomizeList" type="Button" parent="."]
offset_left = 897.0
offset_top = 24.0
offset_right = 1132.0
offset_bottom = 80.0
text = "Randomize the Playlist"
[node name="FileDialog" type="FileDialog" parent="."]
title = "Open a Directory"
position = Vector2i(28, 115)
size = Vector2i(470, 320)
ok_button_text = "Select Current Folder"
file_mode = 2
access = 2
[node name="MusicPlayer" type="AudioStreamPlayer" parent="."]
[node name="playList" type="Button" parent="."]
offset_left = 12.0
offset_top = 572.0
offset_right = 99.0
offset_bottom = 612.0
text = "play"
[node name="CurrentProgress" type="HSlider" parent="."]
offset_left = 107.0
offset_top = 560.0
offset_right = 994.0
offset_bottom = 624.0
max_value = 1000.0
editable = false
scrollable = false
ticks_on_borders = true
[node name="Skip" type="Button" parent="."]
offset_left = 1092.0
offset_top = 573.0
offset_right = 1132.0
offset_bottom = 613.0
icon = ExtResource("3_4vx67")
[node name="Loop" type="Button" parent="."]
offset_left = 1046.0
offset_top = 573.0
offset_right = 1086.0
offset_bottom = 613.0
icon = ExtResource("5_c2g63")
[node name="GoBack" type="Button" parent="."]
offset_left = 1040.0
offset_top = 613.0
offset_right = 1080.0
offset_bottom = 653.0
rotation = 3.14159
icon = ExtResource("3_4vx67")
[node name="SongName" type="Label" parent="."]
offset_left = 107.0
offset_top = 516.0
offset_right = 993.0
offset_bottom = 573.0
text = "Please select a directory"
label_settings = SubResource("LabelSettings_6prit")
clip_text = true
text_overrun_behavior = 2
[node name="Song list" type="MenuButton" parent="."]
offset_left = 265.0
offset_top = 24.0
offset_right = 888.0
offset_bottom = 80.0
text = "Select a Song"
flat = false
switch_on_hover = true
[node name="Sprite2D" type="Sprite2D" parent="."]
position = Vector2(1090, 253)
scale = Vector2(1.875, 1.875)
texture = ExtResource("6_3mi6c")
[node name="Label" type="Label" parent="."]
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 1079.0
offset_top = 248.0
offset_right = 1119.0
offset_bottom = 563.0
grow_horizontal = 0
grow_vertical = 0
text = "V
O
L
U
M
E"
label_settings = SubResource("LabelSettings_ywsb0")
[node name="VolumeSlider" type="VSlider" parent="."]
offset_left = 1114.0
offset_top = 250.0
offset_right = 1130.0
offset_bottom = 572.0
value = 100.0
[node name="Intro" type="AudioStreamPlayer" parent="."]
stream = ExtResource("7_8fltb")
autoplay = true
[node name="Logo" type="Sprite2D" parent="."]
modulate = Color(1, 1, 1, 0.423529)
position = Vector2(277, 209)
texture = ExtResource("11_boad2")
[node name="TimeListeningSong" type="Label" parent="."]
offset_left = 112.0
offset_top = 603.0
offset_right = 224.0
offset_bottom = 639.0
-665
View File
@@ -1,665 +0,0 @@
[gd_scene load_steps=53 format=3 uid="uid://b2sygl55s6fng"]
[ext_resource type="Script" path="res://main.gd" id="1_ubs1p"]
[ext_resource type="Texture2D" uid="uid://b8on1case224h" path="res://LoopPressed.png" id="2_iolk5"]
[ext_resource type="Texture2D" uid="uid://cq8jj63iyu2cs" path="res://d7hftxdivxxvm.cloudfront.webp" id="2_wf35v"]
[ext_resource type="Texture2D" uid="uid://daq8wnhtscpjl" path="res://Skip.png" id="3_4vx67"]
[ext_resource type="Script" path="res://wallpaper_manager.gd" id="4_y372l"]
[ext_resource type="Texture2D" uid="uid://38c8dfym0svn" path="res://Loop.png" id="5_c2g63"]
[ext_resource type="Texture2D" uid="uid://cekkhyppj88xi" path="res://Headphones.png" id="6_3mi6c"]
[ext_resource type="Texture2D" uid="uid://snne8iiftksi" path="res://Evening_view_of_Munnar_1633.jpg" id="6_5vm0w"]
[ext_resource type="Texture2D" uid="uid://ba5wdmchyy50n" path="res://nighttime-in-the-hills-henry-porter.jpg" id="6_8abnc"]
[ext_resource type="Texture2D" uid="uid://ctb4s2nks73rx" path="res://Play.png" id="8_5v7u3"]
[ext_resource type="Shader" path="res://CoverShader.gdshader" id="8_4531v"]
[ext_resource type="Shader" path="res://Main.gdshader" id="10_20857"]
[ext_resource type="Texture2D" uid="uid://b00wlqid2jdvi" path="res://BigLogo.png" id="10_xnj6a"]
[ext_resource type="Texture2D" uid="uid://0r1tx6l1lc6x" path="res://settingscog.png" id="11_esjel"]
[ext_resource type="Script" path="res://cover.gd" id="12_3v50a"]
[ext_resource type="Script" path="res://settings_button.gd" id="12_073mb"]
[ext_resource type="Texture2D" uid="uid://bdpat2sfflaxq" path="res://Youtube_logo.png" id="12_bc5ym"]
[ext_resource type="Texture2D" uid="uid://myq6n4bshduj" path="res://search.png" id="12_cv2gm"]
[ext_resource type="Script" path="res://search_bar.gd" id="12_mr42x"]
[ext_resource type="Script" path="res://search_toggle.gd" id="13_5illk"]
[ext_resource type="PackedScene" uid="uid://dqg674t6kun4e" path="res://Settings.tscn" id="13_7atry"]
[ext_resource type="Texture2D" uid="uid://b5eims5ucn81r" path="res://Loding.png" id="13_de5ej"]
[ext_resource type="Script" path="res://volume_button.gd" id="14_7q3ja"]
[ext_resource type="Texture2D" uid="uid://1rstn6r2wisy" path="res://X.png" id="14_mioc4"]
[ext_resource type="Script" path="res://Spinning.gd" id="14_rhw4k"]
[ext_resource type="Script" path="res://yt_tab_button.gd" id="16_2t15p"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ku7tv"]
shader = ExtResource("10_20857")
shader_parameter/intensity = 1.0
[sub_resource type="Gradient" id="Gradient_7vgyc"]
offsets = PackedFloat32Array(0.00292398, 0.845029)
colors = PackedColorArray(0, 0, 0, 0, 1, 1, 1, 1)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_bhdch"]
gradient = SubResource("Gradient_7vgyc")
fill_to = Vector2(0, 1)
[sub_resource type="Gradient" id="Gradient_hqvtw"]
offsets = PackedFloat32Array(0.459016, 0.565574, 0.704918, 0.827869, 0.92623, 1)
colors = PackedColorArray(0, 0, 0, 1, 0.132947, 0.132947, 0.132947, 0.867053, 0.286885, 0.286885, 0.286885, 0.713115, 0.536475, 0.536475, 0.536475, 0.463525, 0.790666, 0.790666, 0.790666, 0.209334, 1, 1, 1, 0)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_50sv0"]
gradient = SubResource("Gradient_hqvtw")
fill = 1
fill_from = Vector2(0, 1)
fill_to = Vector2(1, 1)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_3bw0j"]
shader = ExtResource("8_4531v")
shader_parameter/dissolve = SubResource("GradientTexture2D_50sv0")
[sub_resource type="InputEventKey" id="InputEventKey_x0ps1"]
device = -1
ctrl_pressed = true
keycode = 68
[sub_resource type="Shortcut" id="Shortcut_vp2fh"]
events = [SubResource("InputEventKey_x0ps1")]
[sub_resource type="LabelSettings" id="LabelSettings_0fjy0"]
font_size = 21
[sub_resource type="InputEventKey" id="InputEventKey_0jlka"]
device = -1
ctrl_pressed = true
keycode = 82
[sub_resource type="Shortcut" id="Shortcut_axi6u"]
events = [SubResource("InputEventKey_0jlka")]
[sub_resource type="InputEventKey" id="InputEventKey_117g0"]
device = -1
ctrl_pressed = true
keycode = 83
[sub_resource type="Shortcut" id="Shortcut_8p5o4"]
events = [SubResource("InputEventKey_117g0")]
[sub_resource type="InputEventKey" id="InputEventKey_5af16"]
device = -1
keycode = 32
unicode = 32
[sub_resource type="Shortcut" id="Shortcut_0ov5v"]
events = [SubResource("InputEventKey_5af16")]
[sub_resource type="InputEventKey" id="InputEventKey_l1ahe"]
device = -1
keycode = 4194321
[sub_resource type="Shortcut" id="Shortcut_qw6pv"]
events = [SubResource("InputEventKey_l1ahe")]
[sub_resource type="InputEventKey" id="InputEventKey_c5qef"]
device = -1
keycode = 76
unicode = 108
[sub_resource type="Shortcut" id="Shortcut_vot6l"]
events = [SubResource("InputEventKey_c5qef")]
[sub_resource type="InputEventKey" id="InputEventKey_y4cc2"]
device = -1
keycode = 4194319
[sub_resource type="Shortcut" id="Shortcut_xu6hm"]
events = [SubResource("InputEventKey_y4cc2")]
[sub_resource type="LabelSettings" id="LabelSettings_6prit"]
font_size = 22
outline_size = 3
outline_color = Color(0.215902, 0.215902, 0.215902, 1)
[sub_resource type="LabelSettings" id="LabelSettings_jg5vn"]
font_size = 20
outline_size = 3
outline_color = Color(0.393086, 0.393086, 0.393085, 1)
[sub_resource type="InputEventKey" id="InputEventKey_puhgg"]
device = -1
ctrl_pressed = true
keycode = 81
[sub_resource type="Shortcut" id="Shortcut_g3fcr"]
events = [SubResource("InputEventKey_puhgg")]
[sub_resource type="LabelSettings" id="LabelSettings_fiiw4"]
font_size = 12
[node name="Node2D" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_ubs1p")
LoopPressed = ExtResource("2_iolk5")
LoopNotPressed = ExtResource("5_c2g63")
[node name="WallpaperManager" type="Node2D" parent="." node_paths=PackedStringArray("Daytime", "Evening", "Nighttime")]
script = ExtResource("4_y372l")
Daytime = NodePath("../Daytime")
Evening = NodePath("../Evening")
Nighttime = NodePath("../Nighttime")
[node name="Daytime" type="TextureRect" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("2_wf35v")
stretch_mode = 6
[node name="Evening" type="TextureRect" parent="."]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("6_5vm0w")
stretch_mode = 6
[node name="Nighttime" type="TextureRect" parent="."]
visible = false
modulate = Color(0.347817, 0.347817, 0.347817, 1)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("6_8abnc")
stretch_mode = 6
[node name="UserBG" type="TextureRect" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
expand_mode = 5
stretch_mode = 6
[node name="Logo" type="Sprite2D" parent="."]
visible = false
modulate = Color(1, 1, 1, 0.686275)
position = Vector2(192, 162)
scale = Vector2(0.159259, 0.159259)
texture = ExtResource("10_xnj6a")
[node name="PausedIndicator" type="TextureRect" parent="."]
material = SubResource("ShaderMaterial_ku7tv")
layout_mode = 1
anchors_preset = 12
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_top = -164.0
grow_horizontal = 2
grow_vertical = 0
texture = SubResource("GradientTexture2D_bhdch")
[node name="CoverHolder" type="Control" parent="."]
layout_mode = 1
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_left = -3.0
offset_top = 1.0
offset_right = -3.0
offset_bottom = 1.0
grow_vertical = 0
[node name="Cover" type="Sprite2D" parent="CoverHolder"]
modulate = Color(1, 1, 1, 0.592157)
material = SubResource("ShaderMaterial_3bw0j")
scale = Vector2(0.333333, 0.333333)
region_rect = Rect2(142.036, 106.625, 632.359, 516.605)
region_filter_clip_enabled = true
script = ExtResource("12_3v50a")
[node name="SelectDirectory" type="Button" parent="."]
layout_mode = 0
offset_left = 140.0
offset_top = 24.0
offset_right = 255.0
offset_bottom = 80.0
focus_mode = 0
shortcut = SubResource("Shortcut_vp2fh")
text = "select the
directory"
[node name="SelectPlaylist" type="Button" parent="."]
layout_mode = 0
offset_left = 20.0
offset_top = 24.0
offset_right = 131.0
offset_bottom = 80.0
focus_mode = 0
shortcut = SubResource("Shortcut_vp2fh")
text = "Playlists"
[node name="PlaylistsContainer" type="ScrollContainer" parent="."]
layout_mode = 0
offset_left = 3.0
offset_top = 83.0
offset_right = 261.0
offset_bottom = 524.0
[node name="VBoxContainer" type="VBoxContainer" parent="PlaylistsContainer"]
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
alignment = 1
[node name="Label" type="Label" parent="PlaylistsContainer/VBoxContainer"]
layout_mode = 2
size_flags_horizontal = 4
text = "PLAYLISTS"
label_settings = SubResource("LabelSettings_0fjy0")
[node name="PlaylistsHolder" type="VBoxContainer" parent="PlaylistsContainer/VBoxContainer"]
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
alignment = 1
[node name="RandomizeList" type="Button" parent="."]
layout_mode = 1
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -254.0
offset_top = 24.0
offset_right = -86.0
offset_bottom = 80.0
grow_horizontal = 0
focus_mode = 0
shortcut = SubResource("Shortcut_axi6u")
text = "Randomize"
[node name="SettingsButton" type="Button" parent="."]
layout_mode = 1
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -77.0
offset_top = 23.0
offset_right = -5.0
offset_bottom = 95.0
grow_horizontal = 0
scale = Vector2(0.79, 0.79)
focus_mode = 0
shortcut = SubResource("Shortcut_8p5o4")
icon = ExtResource("11_esjel")
script = ExtResource("12_073mb")
[node name="SettingsPopup" type="Popup" parent="."]
position = Vector2i(259, 85)
size = Vector2i(576, 493)
[node name="SettingsMenuChild" parent="SettingsPopup" instance=ExtResource("13_7atry")]
offset_left = -272.0
offset_top = 8.0
offset_bottom = 458.0
[node name="FileDialog" type="FileDialog" parent="."]
title = "Open a Directory"
position = Vector2i(28, 115)
size = Vector2i(576, 507)
ok_button_text = "Select Current Folder"
file_mode = 2
access = 2
use_native_dialog = true
[node name="MusicPlayer" type="AudioStreamPlayer" parent="."]
bus = &"Music"
[node name="playList" type="Button" parent="."]
layout_mode = 1
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_left = 20.0
offset_top = -77.0
offset_right = 92.0
offset_bottom = -5.0
grow_vertical = 0
scale = Vector2(0.5, 0.5)
focus_mode = 0
shortcut = SubResource("Shortcut_0ov5v")
icon = ExtResource("8_5v7u3")
[node name="AddRemoveFromPlaylist" type="Button" parent="."]
layout_mode = 1
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_left = 62.0
offset_top = -77.0
offset_right = 134.0
offset_bottom = -5.0
grow_vertical = 0
scale = Vector2(0.5, 0.5)
icon = ExtResource("14_mioc4")
[node name="CurrentProgress" type="HSlider" parent="."]
layout_mode = 1
anchors_preset = -1
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 106.0
offset_top = -88.0
offset_right = -211.0
offset_bottom = -24.0
grow_horizontal = 2
grow_vertical = 0
max_value = 1000.0
ticks_on_borders = true
[node name="Skip" type="Button" parent="."]
layout_mode = 1
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -105.0
offset_top = -75.0
offset_right = -65.0
offset_bottom = -35.0
grow_horizontal = 0
grow_vertical = 0
focus_mode = 0
shortcut = SubResource("Shortcut_qw6pv")
icon = ExtResource("3_4vx67")
[node name="Loop" type="Button" parent="."]
layout_mode = 1
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -152.0
offset_top = -75.0
offset_right = -112.0
offset_bottom = -35.0
grow_horizontal = 0
grow_vertical = 0
focus_mode = 0
shortcut = SubResource("Shortcut_vot6l")
icon = ExtResource("5_c2g63")
[node name="GoBack" type="Button" parent="."]
layout_mode = 1
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -157.0
offset_top = -35.0
offset_right = -117.0
offset_bottom = 5.0
grow_horizontal = 0
grow_vertical = 0
rotation = 3.14159
focus_mode = 0
shortcut = SubResource("Shortcut_xu6hm")
icon = ExtResource("3_4vx67")
[node name="SongName" type="Label" parent="."]
layout_mode = 1
anchors_preset = -1
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 109.0
offset_top = -124.0
offset_right = -158.0
offset_bottom = -93.0
grow_horizontal = 2
grow_vertical = 0
text = "Please select a directory"
label_settings = SubResource("LabelSettings_6prit")
clip_text = true
text_overrun_behavior = 2
[node name="ArtistName" type="Label" parent="."]
layout_mode = 1
anchors_preset = -1
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 109.0
offset_top = -103.0
offset_right = -158.0
offset_bottom = -72.0
grow_horizontal = 2
grow_vertical = 0
text = "John doe"
label_settings = SubResource("LabelSettings_jg5vn")
clip_text = true
text_overrun_behavior = 2
[node name="SearchToggle" type="Button" parent="."]
layout_mode = 1
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -318.0
offset_top = 24.0
offset_right = -246.0
offset_bottom = 96.0
grow_horizontal = 0
scale = Vector2(0.79, 0.79)
focus_mode = 0
toggle_mode = true
shortcut = SubResource("Shortcut_g3fcr")
icon = ExtResource("12_cv2gm")
script = ExtResource("13_5illk")
PressedIcon = ExtResource("14_mioc4")
NotPressedIcon = ExtResource("12_cv2gm")
[node name="SearchBar" type="LineEdit" parent="."]
visible = false
layout_mode = 1
anchors_preset = -1
anchor_right = 1.0
offset_left = 264.0
offset_top = 24.0
offset_right = -328.0
offset_bottom = 80.0
grow_horizontal = 2
focus_mode = 1
placeholder_text = "Search"
alignment = 1
caret_blink = true
script = ExtResource("12_mr42x")
[node name="SongsMenu" type="MenuButton" parent="."]
layout_mode = 1
anchors_preset = -1
anchor_right = 1.0
offset_left = 264.0
offset_top = 24.0
offset_right = -328.0
offset_bottom = 80.0
grow_horizontal = 2
text = "Select Songs"
flat = false
[node name="SearchResults" type="PopupMenu" parent="."]
handle_input_locally = false
position = Vector2i(265, 80)
size = Vector2i(623, 300)
wrap_controls = false
max_size = Vector2i(625, 300)
allow_search = false
[node name="VolumeButton" type="Button" parent="."]
layout_mode = 1
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -58.0
offset_top = -75.0
offset_right = -18.0
offset_bottom = -35.0
grow_horizontal = 0
grow_vertical = 0
focus_mode = 0
toggle_mode = true
icon = ExtResource("6_3mi6c")
script = ExtResource("14_7q3ja")
[node name="VolumeSlider" type="VSlider" parent="."]
layout_mode = 1
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -46.0
offset_top = -83.0
offset_right = -30.0
offset_bottom = -75.0
grow_horizontal = 0
grow_vertical = 0
size_flags_horizontal = 1
size_flags_vertical = 8
value = 100.0
[node name="TimeListeningSong" type="Label" parent="."]
layout_mode = 1
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_left = 109.0
offset_top = -47.0
offset_right = 221.0
offset_bottom = -11.0
grow_vertical = 0
[node name="DiscordMenuHolder" type="Control" parent="."]
layout_mode = 3
anchors_preset = 0
offset_left = 1042.0
offset_top = 174.0
offset_right = 1082.0
offset_bottom = 214.0
[node name="YtTabButton" type="Button" parent="."]
layout_mode = 1
anchors_preset = -1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -97.0
offset_top = 109.0
offset_right = 551.0
offset_bottom = 560.0
grow_horizontal = 0
grow_vertical = 2
scale = Vector2(0.105, 0.105)
focus_mode = 0
toggle_mode = true
icon = ExtResource("12_bc5ym")
flat = true
script = ExtResource("16_2t15p")
[node name="YoutubeMenuHolder" type="Control" parent="."]
layout_mode = 1
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -358.0
offset_top = 107.0
offset_right = -318.0
offset_bottom = 147.0
[node name="Youtube menu" type="Control" parent="YoutubeMenuHolder"]
layout_mode = 3
anchors_preset = 0
offset_right = 200.0
offset_bottom = 363.0
[node name="YTLink" type="LineEdit" parent="YoutubeMenuHolder/Youtube menu"]
layout_mode = 1
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -229.0
offset_bottom = 47.0
grow_horizontal = 0
placeholder_text = "Youtube link(can be playlist)"
[node name="YTDownload" type="Button" parent="YoutubeMenuHolder/Youtube menu"]
layout_mode = 1
offset_left = -29.0
offset_top = 70.465
offset_right = 58.0
offset_bottom = 110.465
focus_mode = 0
text = "Download"
[node name="LoadingIMG" type="Sprite2D" parent="YoutubeMenuHolder/Youtube menu"]
position = Vector2(80, 90.165)
rotation = 1.5708
scale = Vector2(-0.5, 0.5)
texture = ExtResource("13_de5ej")
script = ExtResource("14_rhw4k")
[node name="Label" type="Label" parent="YoutubeMenuHolder/Youtube menu"]
layout_mode = 0
offset_left = -27.795
offset_top = 49.0
offset_right = 197.205
offset_bottom = 72.0
text = "NOTE: speeds depend on your internet"
label_settings = SubResource("LabelSettings_fiiw4")
[node name="Version" type="Label" parent="."]
layout_mode = 1
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -64.0
offset_top = -23.0
grow_horizontal = 0
grow_vertical = 0
text = "v1.1.0"
horizontal_alignment = 2
[node name="WavDisclaimer" type="AcceptDialog" parent="."]
transparent_bg = true
title = "WAV disclaimer"
initial_position = 4
size = Vector2i(256, 100)
transparent = true
popup_window = true
force_native = true
dialog_text = "wav files are not supported yet"
[connection signal="pressed" from="SettingsButton" to="SettingsButton" method="_on_pressed"]
[connection signal="toggled" from="SearchToggle" to="SearchToggle" method="_on_toggled"]
[connection signal="text_submitted" from="SearchBar" to="SearchBar" method="_on_text_submitted"]
[connection signal="index_pressed" from="SearchResults" to="SearchBar" method="_on_search_results_index_pressed"]
[connection signal="toggled" from="VolumeButton" to="VolumeButton" method="_on_toggled"]
[connection signal="toggled" from="YtTabButton" to="YtTabButton" method="_on_toggled"]
-474
View File
@@ -1,474 +0,0 @@
[gd_scene load_steps=52 format=3 uid="uid://b2sygl55s6fng"]
[ext_resource type="Script" path="res://main.gd" id="1_ubs1p"]
[ext_resource type="Texture2D" uid="uid://b8on1case224h" path="res://LoopPressed.png" id="2_iolk5"]
[ext_resource type="Texture2D" uid="uid://cq8jj63iyu2cs" path="res://d7hftxdivxxvm.cloudfront.webp" id="2_wf35v"]
[ext_resource type="Texture2D" uid="uid://daq8wnhtscpjl" path="res://Skip.png" id="3_4vx67"]
[ext_resource type="Script" path="res://wallpaper_manager.gd" id="4_y372l"]
[ext_resource type="Texture2D" uid="uid://38c8dfym0svn" path="res://Loop.png" id="5_c2g63"]
[ext_resource type="Texture2D" uid="uid://cekkhyppj88xi" path="res://Headphones.png" id="6_3mi6c"]
[ext_resource type="Texture2D" uid="uid://snne8iiftksi" path="res://Evening_view_of_Munnar_1633.jpg" id="6_5vm0w"]
[ext_resource type="Texture2D" uid="uid://ba5wdmchyy50n" path="res://nighttime-in-the-hills-henry-porter.jpg" id="6_8abnc"]
[ext_resource type="Texture2D" uid="uid://ctb4s2nks73rx" path="res://Play.png" id="8_5v7u3"]
[ext_resource type="Shader" path="res://CoverShader.gdshader" id="8_4531v"]
[ext_resource type="Shader" path="res://Main.gdshader" id="10_20857"]
[ext_resource type="Texture2D" uid="uid://b00wlqid2jdvi" path="res://BigLogo.png" id="10_xnj6a"]
[ext_resource type="Texture2D" uid="uid://0r1tx6l1lc6x" path="res://settingscog.png" id="11_esjel"]
[ext_resource type="Script" path="res://cover.gd" id="12_3v50a"]
[ext_resource type="Script" path="res://settings_button.gd" id="12_073mb"]
[ext_resource type="Texture2D" uid="uid://bdpat2sfflaxq" path="res://Youtube_logo.png" id="12_bc5ym"]
[ext_resource type="Texture2D" uid="uid://myq6n4bshduj" path="res://search.png" id="12_cv2gm"]
[ext_resource type="Script" path="res://search_bar.gd" id="12_mr42x"]
[ext_resource type="Script" path="res://search_toggle.gd" id="13_5illk"]
[ext_resource type="PackedScene" uid="uid://dqg674t6kun4e" path="res://Settings.tscn" id="13_7atry"]
[ext_resource type="Texture2D" uid="uid://b5eims5ucn81r" path="res://Loding.png" id="13_de5ej"]
[ext_resource type="Script" path="res://volume_button.gd" id="14_7q3ja"]
[ext_resource type="Texture2D" uid="uid://1rstn6r2wisy" path="res://X.png" id="14_mioc4"]
[ext_resource type="Script" path="res://Spinning.gd" id="14_rhw4k"]
[ext_resource type="Script" path="res://yt_tab_button.gd" id="16_2t15p"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ku7tv"]
shader = ExtResource("10_20857")
shader_parameter/intensity = 1.0
[sub_resource type="Gradient" id="Gradient_7vgyc"]
offsets = PackedFloat32Array(0.00292398, 0.845029)
colors = PackedColorArray(0, 0, 0, 0, 1, 1, 1, 1)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_bhdch"]
gradient = SubResource("Gradient_7vgyc")
fill_to = Vector2(0, 1)
[sub_resource type="Gradient" id="Gradient_hqvtw"]
offsets = PackedFloat32Array(0.459016, 0.565574, 0.704918, 0.827869, 0.92623, 1)
colors = PackedColorArray(0, 0, 0, 1, 0.132947, 0.132947, 0.132947, 0.867053, 0.286885, 0.286885, 0.286885, 0.713115, 0.536475, 0.536475, 0.536475, 0.463525, 0.790666, 0.790666, 0.790666, 0.209334, 1, 1, 1, 0)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_50sv0"]
gradient = SubResource("Gradient_hqvtw")
fill = 1
fill_from = Vector2(0, 1)
fill_to = Vector2(1, 1)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_3bw0j"]
shader = ExtResource("8_4531v")
shader_parameter/dissolve = SubResource("GradientTexture2D_50sv0")
[sub_resource type="InputEventKey" id="InputEventKey_x0ps1"]
device = -1
ctrl_pressed = true
keycode = 68
[sub_resource type="Shortcut" id="Shortcut_vp2fh"]
events = [SubResource("InputEventKey_x0ps1")]
[sub_resource type="InputEventKey" id="InputEventKey_0jlka"]
device = -1
ctrl_pressed = true
keycode = 82
[sub_resource type="Shortcut" id="Shortcut_axi6u"]
events = [SubResource("InputEventKey_0jlka")]
[sub_resource type="InputEventKey" id="InputEventKey_117g0"]
device = -1
ctrl_pressed = true
keycode = 83
[sub_resource type="Shortcut" id="Shortcut_8p5o4"]
events = [SubResource("InputEventKey_117g0")]
[sub_resource type="InputEventKey" id="InputEventKey_5af16"]
device = -1
keycode = 32
unicode = 32
[sub_resource type="Shortcut" id="Shortcut_0ov5v"]
events = [SubResource("InputEventKey_5af16")]
[sub_resource type="InputEventKey" id="InputEventKey_l1ahe"]
device = -1
keycode = 4194321
[sub_resource type="Shortcut" id="Shortcut_qw6pv"]
events = [SubResource("InputEventKey_l1ahe")]
[sub_resource type="InputEventKey" id="InputEventKey_c5qef"]
device = -1
keycode = 76
unicode = 108
[sub_resource type="Shortcut" id="Shortcut_vot6l"]
events = [SubResource("InputEventKey_c5qef")]
[sub_resource type="InputEventKey" id="InputEventKey_y4cc2"]
device = -1
keycode = 4194319
[sub_resource type="Shortcut" id="Shortcut_xu6hm"]
events = [SubResource("InputEventKey_y4cc2")]
[sub_resource type="LabelSettings" id="LabelSettings_6prit"]
font_size = 22
outline_size = 3
outline_color = Color(0.215902, 0.215902, 0.215902, 1)
[sub_resource type="LabelSettings" id="LabelSettings_jg5vn"]
font_size = 20
outline_size = 3
outline_color = Color(0.393086, 0.393086, 0.393085, 1)
[sub_resource type="InputEventKey" id="InputEventKey_puhgg"]
device = -1
ctrl_pressed = true
keycode = 81
[sub_resource type="Shortcut" id="Shortcut_g3fcr"]
events = [SubResource("InputEventKey_puhgg")]
[sub_resource type="LabelSettings" id="LabelSettings_fiiw4"]
font_size = 12
[node name="Node2D" type="Node2D"]
script = ExtResource("1_ubs1p")
LoopPressed = ExtResource("2_iolk5")
LoopNotPressed = ExtResource("5_c2g63")
[node name="WallpaperManager" type="Node2D" parent="." node_paths=PackedStringArray("Daytime", "Evening", "Nighttime")]
script = ExtResource("4_y372l")
Daytime = NodePath("../Daytime")
Evening = NodePath("../Evening")
Nighttime = NodePath("../Nighttime")
[node name="Daytime" type="Sprite2D" parent="."]
position = Vector2(576.949, 401)
scale = Vector2(1.27923, 1.25956)
texture = ExtResource("2_wf35v")
[node name="Evening" type="Sprite2D" parent="."]
visible = false
position = Vector2(582, 342)
scale = Vector2(1.00181, 1.00181)
texture = ExtResource("6_5vm0w")
[node name="Nighttime" type="Sprite2D" parent="."]
visible = false
modulate = Color(0.347817, 0.347817, 0.347817, 1)
position = Vector2(610, 326)
scale = Vector2(1.49056, 1.51111)
texture = ExtResource("6_8abnc")
[node name="PausedIndicator" type="TextureRect" parent="."]
material = SubResource("ShaderMaterial_ku7tv")
offset_left = -10.0
offset_top = 468.0
offset_right = 1161.0
offset_bottom = 657.0
texture = SubResource("GradientTexture2D_bhdch")
[node name="CoverHolder" type="Node2D" parent="."]
position = Vector2(-3, 649)
[node name="Cover" type="Sprite2D" parent="CoverHolder"]
modulate = Color(1, 1, 1, 0.592157)
material = SubResource("ShaderMaterial_3bw0j")
position = Vector2(200, -122.333)
scale = Vector2(0.333333, 0.333333)
region_rect = Rect2(142.036, 106.625, 632.359, 516.605)
region_filter_clip_enabled = true
script = ExtResource("12_3v50a")
[node name="SelectPlaylist" type="Button" parent="."]
offset_left = 20.0
offset_top = 24.0
offset_right = 255.0
offset_bottom = 80.0
focus_mode = 0
shortcut = SubResource("Shortcut_vp2fh")
text = "select the directory
(playlist's folder)"
[node name="RandomizeList" type="Button" parent="."]
offset_left = 897.0
offset_top = 24.0
offset_right = 1065.0
offset_bottom = 80.0
focus_mode = 0
shortcut = SubResource("Shortcut_axi6u")
text = "Randomize"
[node name="SettingsButton" type="Button" parent="."]
offset_left = 1073.0
offset_top = 24.0
offset_right = 1145.0
offset_bottom = 96.0
scale = Vector2(0.79, 0.79)
focus_mode = 0
shortcut = SubResource("Shortcut_8p5o4")
icon = ExtResource("11_esjel")
script = ExtResource("12_073mb")
[node name="SettingsPopup" type="Popup" parent="."]
position = Vector2i(259, 85)
size = Vector2i(576, 493)
[node name="SettingsMenuChild" parent="SettingsPopup" instance=ExtResource("13_7atry")]
offset_left = -272.0
offset_top = 8.0
offset_right = 288.0
offset_bottom = 458.0
[node name="FileDialog" type="FileDialog" parent="."]
title = "Open a Directory"
position = Vector2i(28, 115)
size = Vector2i(576, 507)
ok_button_text = "Select Current Folder"
file_mode = 2
access = 2
use_native_dialog = true
[node name="MusicPlayer" type="AudioStreamPlayer" parent="."]
bus = &"Music"
[node name="playList" type="Button" parent="."]
offset_left = 20.0
offset_top = 572.0
offset_right = 92.0
offset_bottom = 644.0
scale = Vector2(0.5, 0.5)
focus_mode = 0
shortcut = SubResource("Shortcut_0ov5v")
icon = ExtResource("8_5v7u3")
[node name="CurrentProgress" type="HSlider" parent="."]
offset_left = 64.0
offset_top = 560.0
offset_right = 944.0
offset_bottom = 624.0
max_value = 1000.0
ticks_on_borders = true
[node name="Skip" type="Button" parent="."]
offset_left = 1046.0
offset_top = 573.0
offset_right = 1086.0
offset_bottom = 613.0
focus_mode = 0
shortcut = SubResource("Shortcut_qw6pv")
icon = ExtResource("3_4vx67")
[node name="Loop" type="Button" parent="."]
offset_left = 1000.0
offset_top = 573.0
offset_right = 1040.0
offset_bottom = 613.0
focus_mode = 0
shortcut = SubResource("Shortcut_vot6l")
icon = ExtResource("5_c2g63")
[node name="GoBack" type="Button" parent="."]
offset_left = 994.0
offset_top = 613.0
offset_right = 1034.0
offset_bottom = 653.0
rotation = 3.14159
focus_mode = 0
shortcut = SubResource("Shortcut_xu6hm")
icon = ExtResource("3_4vx67")
[node name="SongName" type="Label" parent="."]
offset_left = 66.0
offset_top = 524.0
offset_right = 994.0
offset_bottom = 555.0
text = "Please select a directory"
label_settings = SubResource("LabelSettings_6prit")
clip_text = true
text_overrun_behavior = 2
[node name="ArtistName" type="Label" parent="."]
offset_left = 67.0
offset_top = 547.0
offset_right = 995.0
offset_bottom = 578.0
text = "John doe"
label_settings = SubResource("LabelSettings_jg5vn")
clip_text = true
text_overrun_behavior = 2
[node name="SearchToggle" type="Button" parent="."]
offset_left = 833.0
offset_top = 24.0
offset_right = 905.0
offset_bottom = 96.0
scale = Vector2(0.79, 0.79)
focus_mode = 0
toggle_mode = true
shortcut = SubResource("Shortcut_g3fcr")
icon = ExtResource("12_cv2gm")
script = ExtResource("13_5illk")
PressedIcon = ExtResource("14_mioc4")
NotPressedIcon = ExtResource("12_cv2gm")
[node name="SearchBar" type="LineEdit" parent="."]
visible = false
offset_left = 265.0
offset_top = 24.0
offset_right = 825.0
offset_bottom = 80.0
focus_mode = 1
placeholder_text = "Search"
alignment = 1
caret_blink = true
script = ExtResource("12_mr42x")
[node name="SongsMenu" type="MenuButton" parent="."]
offset_left = 265.0
offset_top = 24.0
offset_right = 825.0
offset_bottom = 80.0
text = "Select Songs"
flat = false
[node name="SearchResults" type="PopupMenu" parent="."]
handle_input_locally = false
position = Vector2i(265, 80)
size = Vector2i(623, 300)
wrap_controls = false
max_size = Vector2i(625, 300)
allow_search = false
[node name="VolumeButton" type="Button" parent="."]
offset_left = 1092.0
offset_top = 573.0
offset_right = 1132.0
offset_bottom = 613.0
focus_mode = 0
toggle_mode = true
icon = ExtResource("6_3mi6c")
script = ExtResource("14_7q3ja")
[node name="VolumeSlider" type="VSlider" parent="."]
layout_direction = 3
anchors_preset = 12
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -1121.0
offset_top = 563.0
offset_right = -1103.0
offset_bottom = 571.0
grow_horizontal = 2
grow_vertical = 0
size_flags_horizontal = 1
size_flags_vertical = 8
value = 100.0
[node name="Logo" type="Sprite2D" parent="."]
modulate = Color(1, 1, 1, 0.686275)
position = Vector2(192, 162)
scale = Vector2(0.159259, 0.159259)
texture = ExtResource("10_xnj6a")
[node name="TimeListeningSong" type="Label" parent="."]
offset_left = 66.0
offset_top = 597.0
offset_right = 178.0
offset_bottom = 633.0
[node name="DiscordMenuHolder" type="Control" parent="."]
layout_mode = 3
anchors_preset = 0
offset_left = 1042.0
offset_top = 174.0
offset_right = 1082.0
offset_bottom = 214.0
[node name="YtTabButton" type="Button" parent="."]
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = 1065.0
offset_top = 107.0
offset_right = 1713.0
offset_bottom = 558.0
grow_horizontal = 0
scale = Vector2(0.105, 0.105)
focus_mode = 0
toggle_mode = true
icon = ExtResource("12_bc5ym")
flat = true
script = ExtResource("16_2t15p")
[node name="YoutubeMenuHolder" type="Control" parent="."]
layout_mode = 3
anchors_preset = 0
offset_left = 794.0
offset_top = 107.0
offset_right = 834.0
offset_bottom = 147.0
[node name="Youtube menu" type="Control" parent="YoutubeMenuHolder"]
layout_mode = 3
anchors_preset = 0
offset_right = 200.0
offset_bottom = 363.0
[node name="YTLink" type="LineEdit" parent="YoutubeMenuHolder/Youtube menu"]
layout_mode = 1
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -229.0
offset_bottom = 47.0
grow_horizontal = 0
placeholder_text = "Youtube link(can be playlist)"
[node name="YTDownload" type="Button" parent="YoutubeMenuHolder/Youtube menu"]
layout_mode = 1
offset_left = -29.0
offset_top = 70.465
offset_right = 58.0
offset_bottom = 110.465
focus_mode = 0
text = "Download"
[node name="LoadingIMG" type="Sprite2D" parent="YoutubeMenuHolder/Youtube menu"]
position = Vector2(80, 90.165)
rotation = 1.5708
scale = Vector2(-0.5, 0.5)
texture = ExtResource("13_de5ej")
script = ExtResource("14_rhw4k")
[node name="Label" type="Label" parent="YoutubeMenuHolder/Youtube menu"]
layout_mode = 0
offset_left = -27.795
offset_top = 49.0
offset_right = 197.205
offset_bottom = 72.0
text = "NOTE: speeds depend on your internet"
label_settings = SubResource("LabelSettings_fiiw4")
[node name="Version" type="Label" parent="."]
offset_left = 1083.0
offset_top = 625.0
offset_right = 1147.0
offset_bottom = 648.0
text = "v1.0.3"
horizontal_alignment = 2
[node name="WavDisclaimer" type="AcceptDialog" parent="."]
transparent_bg = true
title = "WAV disclaimer"
initial_position = 4
size = Vector2i(256, 100)
transparent = true
popup_window = true
force_native = true
dialog_text = "wav files are not supported yet"
[connection signal="pressed" from="SettingsButton" to="SettingsButton" method="_on_pressed"]
[connection signal="toggled" from="SearchToggle" to="SearchToggle" method="_on_toggled"]
[connection signal="text_submitted" from="SearchBar" to="SearchBar" method="_on_text_submitted"]
[connection signal="index_pressed" from="SearchResults" to="SearchBar" method="_on_search_results_index_pressed"]
[connection signal="toggled" from="VolumeButton" to="VolumeButton" method="_on_toggled"]
[connection signal="toggled" from="YtTabButton" to="YtTabButton" method="_on_toggled"]
-448
View File
@@ -1,448 +0,0 @@
[gd_scene load_steps=50 format=3 uid="uid://b2sygl55s6fng"]
[ext_resource type="Script" path="res://main.gd" id="1_ubs1p"]
[ext_resource type="Texture2D" uid="uid://b8on1case224h" path="res://LoopPressed.png" id="2_iolk5"]
[ext_resource type="Texture2D" uid="uid://cq8jj63iyu2cs" path="res://d7hftxdivxxvm.cloudfront.webp" id="2_wf35v"]
[ext_resource type="Texture2D" uid="uid://daq8wnhtscpjl" path="res://Skip.png" id="3_4vx67"]
[ext_resource type="Script" path="res://wallpaper_manager.gd" id="4_y372l"]
[ext_resource type="Texture2D" uid="uid://38c8dfym0svn" path="res://Loop.png" id="5_c2g63"]
[ext_resource type="Texture2D" uid="uid://cekkhyppj88xi" path="res://Headphones.png" id="6_3mi6c"]
[ext_resource type="Texture2D" uid="uid://snne8iiftksi" path="res://Evening_view_of_Munnar_1633.jpg" id="6_5vm0w"]
[ext_resource type="Texture2D" uid="uid://ba5wdmchyy50n" path="res://nighttime-in-the-hills-henry-porter.jpg" id="6_8abnc"]
[ext_resource type="Texture2D" uid="uid://ctb4s2nks73rx" path="res://Play.png" id="8_5v7u3"]
[ext_resource type="Shader" path="res://CoverShader.gdshader" id="8_4531v"]
[ext_resource type="Shader" path="res://Main.gdshader" id="10_20857"]
[ext_resource type="Texture2D" uid="uid://b00wlqid2jdvi" path="res://BigLogo.png" id="10_xnj6a"]
[ext_resource type="Texture2D" uid="uid://0r1tx6l1lc6x" path="res://settingscog.png" id="11_esjel"]
[ext_resource type="Script" path="res://cover.gd" id="12_3v50a"]
[ext_resource type="Script" path="res://settings_button.gd" id="12_073mb"]
[ext_resource type="Texture2D" uid="uid://bdpat2sfflaxq" path="res://Youtube_logo.png" id="12_bc5ym"]
[ext_resource type="Texture2D" uid="uid://myq6n4bshduj" path="res://search.png" id="12_cv2gm"]
[ext_resource type="Script" path="res://search_bar.gd" id="12_mr42x"]
[ext_resource type="Script" path="res://search_toggle.gd" id="13_5illk"]
[ext_resource type="PackedScene" uid="uid://dqg674t6kun4e" path="res://Settings.tscn" id="13_7atry"]
[ext_resource type="Texture2D" uid="uid://b5eims5ucn81r" path="res://Loding.png" id="13_de5ej"]
[ext_resource type="Script" path="res://volume_button.gd" id="14_7q3ja"]
[ext_resource type="Texture2D" uid="uid://1rstn6r2wisy" path="res://X.png" id="14_mioc4"]
[ext_resource type="Script" path="res://Spinning.gd" id="14_rhw4k"]
[ext_resource type="Script" path="res://yt_tab_button.gd" id="16_2t15p"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ku7tv"]
shader = ExtResource("10_20857")
shader_parameter/intensity = 1.0
[sub_resource type="Gradient" id="Gradient_7vgyc"]
offsets = PackedFloat32Array(0.00292398, 0.845029)
colors = PackedColorArray(0, 0, 0, 0, 1, 1, 1, 1)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_bhdch"]
gradient = SubResource("Gradient_7vgyc")
fill_to = Vector2(0, 1)
[sub_resource type="Gradient" id="Gradient_hqvtw"]
offsets = PackedFloat32Array(0.459016, 0.565574, 0.704918, 0.827869, 0.92623, 1)
colors = PackedColorArray(0, 0, 0, 1, 0.132947, 0.132947, 0.132947, 0.867053, 0.286885, 0.286885, 0.286885, 0.713115, 0.536475, 0.536475, 0.536475, 0.463525, 0.790666, 0.790666, 0.790666, 0.209334, 1, 1, 1, 0)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_50sv0"]
gradient = SubResource("Gradient_hqvtw")
fill = 1
fill_from = Vector2(0, 1)
fill_to = Vector2(1, 1)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_3bw0j"]
shader = ExtResource("8_4531v")
shader_parameter/dissolve = SubResource("GradientTexture2D_50sv0")
[sub_resource type="InputEventKey" id="InputEventKey_x0ps1"]
device = -1
ctrl_pressed = true
keycode = 68
[sub_resource type="Shortcut" id="Shortcut_vp2fh"]
events = [SubResource("InputEventKey_x0ps1")]
[sub_resource type="InputEventKey" id="InputEventKey_0jlka"]
device = -1
ctrl_pressed = true
keycode = 82
[sub_resource type="Shortcut" id="Shortcut_axi6u"]
events = [SubResource("InputEventKey_0jlka")]
[sub_resource type="InputEventKey" id="InputEventKey_117g0"]
device = -1
ctrl_pressed = true
keycode = 83
[sub_resource type="Shortcut" id="Shortcut_8p5o4"]
events = [SubResource("InputEventKey_117g0")]
[sub_resource type="InputEventKey" id="InputEventKey_5af16"]
device = -1
keycode = 32
unicode = 32
[sub_resource type="Shortcut" id="Shortcut_0ov5v"]
events = [SubResource("InputEventKey_5af16")]
[sub_resource type="InputEventKey" id="InputEventKey_l1ahe"]
device = -1
keycode = 4194321
[sub_resource type="Shortcut" id="Shortcut_qw6pv"]
events = [SubResource("InputEventKey_l1ahe")]
[sub_resource type="InputEventKey" id="InputEventKey_c5qef"]
device = -1
keycode = 76
unicode = 108
[sub_resource type="Shortcut" id="Shortcut_vot6l"]
events = [SubResource("InputEventKey_c5qef")]
[sub_resource type="InputEventKey" id="InputEventKey_y4cc2"]
device = -1
keycode = 4194319
[sub_resource type="Shortcut" id="Shortcut_xu6hm"]
events = [SubResource("InputEventKey_y4cc2")]
[sub_resource type="LabelSettings" id="LabelSettings_6prit"]
font_size = 22
outline_size = 3
outline_color = Color(0.215902, 0.215902, 0.215902, 1)
[sub_resource type="InputEventKey" id="InputEventKey_puhgg"]
device = -1
ctrl_pressed = true
keycode = 81
[sub_resource type="Shortcut" id="Shortcut_g3fcr"]
events = [SubResource("InputEventKey_puhgg")]
[node name="Node2D" type="Node2D"]
script = ExtResource("1_ubs1p")
LoopPressed = ExtResource("2_iolk5")
LoopNotPressed = ExtResource("5_c2g63")
[node name="WallpaperManager" type="Node2D" parent="." node_paths=PackedStringArray("Daytime", "Evening", "Nighttime")]
script = ExtResource("4_y372l")
Daytime = NodePath("../Daytime")
Evening = NodePath("../Evening")
Nighttime = NodePath("../Nighttime")
[node name="Daytime" type="Sprite2D" parent="."]
position = Vector2(576.949, 401)
scale = Vector2(1.27923, 1.25956)
texture = ExtResource("2_wf35v")
[node name="Evening" type="Sprite2D" parent="."]
visible = false
position = Vector2(582, 342)
scale = Vector2(1.00181, 1.00181)
texture = ExtResource("6_5vm0w")
[node name="Nighttime" type="Sprite2D" parent="."]
visible = false
modulate = Color(0.347817, 0.347817, 0.347817, 1)
position = Vector2(610, 326)
scale = Vector2(1.49056, 1.51111)
texture = ExtResource("6_8abnc")
[node name="PausedIndicator" type="TextureRect" parent="."]
material = SubResource("ShaderMaterial_ku7tv")
offset_left = -10.0
offset_top = 468.0
offset_right = 1161.0
offset_bottom = 657.0
texture = SubResource("GradientTexture2D_bhdch")
[node name="CoverHolder" type="Node2D" parent="."]
position = Vector2(-3, 649)
[node name="Cover" type="Sprite2D" parent="CoverHolder"]
modulate = Color(1, 1, 1, 0.592157)
material = SubResource("ShaderMaterial_3bw0j")
position = Vector2(200, -122.333)
scale = Vector2(0.333333, 0.333333)
region_rect = Rect2(142.036, 106.625, 632.359, 516.605)
region_filter_clip_enabled = true
script = ExtResource("12_3v50a")
[node name="SelectPlaylist" type="Button" parent="."]
offset_left = 20.0
offset_top = 24.0
offset_right = 255.0
offset_bottom = 80.0
focus_mode = 0
shortcut = SubResource("Shortcut_vp2fh")
text = "select the directory
(playlist's folder)"
[node name="RandomizeList" type="Button" parent="."]
offset_left = 897.0
offset_top = 24.0
offset_right = 1065.0
offset_bottom = 80.0
focus_mode = 0
shortcut = SubResource("Shortcut_axi6u")
text = "Randomize"
[node name="SettingsButton" type="Button" parent="."]
offset_left = 1073.0
offset_top = 24.0
offset_right = 1145.0
offset_bottom = 96.0
scale = Vector2(0.79, 0.79)
focus_mode = 0
shortcut = SubResource("Shortcut_8p5o4")
icon = ExtResource("11_esjel")
script = ExtResource("12_073mb")
[node name="SettingsPopup" type="Popup" parent="."]
position = Vector2i(265, 110)
size = Vector2i(575, 458)
visible = true
[node name="SettingsMenuChild" parent="SettingsPopup" instance=ExtResource("13_7atry")]
offset_left = -272.0
offset_top = 8.0
offset_right = 288.0
offset_bottom = 458.0
[node name="FileDialog" type="FileDialog" parent="."]
title = "Open a Directory"
position = Vector2i(28, 115)
size = Vector2i(576, 507)
ok_button_text = "Select Current Folder"
file_mode = 2
access = 2
use_native_dialog = true
[node name="MusicPlayer" type="AudioStreamPlayer" parent="."]
bus = &"Music"
[node name="playList" type="Button" parent="."]
offset_left = 20.0
offset_top = 572.0
offset_right = 92.0
offset_bottom = 644.0
scale = Vector2(0.5, 0.5)
focus_mode = 0
shortcut = SubResource("Shortcut_0ov5v")
icon = ExtResource("8_5v7u3")
[node name="CurrentProgress" type="HSlider" parent="."]
offset_left = 64.0
offset_top = 560.0
offset_right = 944.0
offset_bottom = 624.0
max_value = 1000.0
ticks_on_borders = true
[node name="Skip" type="Button" parent="."]
offset_left = 1046.0
offset_top = 573.0
offset_right = 1086.0
offset_bottom = 613.0
focus_mode = 0
shortcut = SubResource("Shortcut_qw6pv")
icon = ExtResource("3_4vx67")
[node name="Loop" type="Button" parent="."]
offset_left = 1000.0
offset_top = 573.0
offset_right = 1040.0
offset_bottom = 613.0
focus_mode = 0
shortcut = SubResource("Shortcut_vot6l")
icon = ExtResource("5_c2g63")
[node name="GoBack" type="Button" parent="."]
offset_left = 994.0
offset_top = 613.0
offset_right = 1034.0
offset_bottom = 653.0
rotation = 3.14159
focus_mode = 0
shortcut = SubResource("Shortcut_xu6hm")
icon = ExtResource("3_4vx67")
[node name="SongName" type="Label" parent="."]
offset_left = 66.0
offset_top = 524.0
offset_right = 994.0
offset_bottom = 581.0
text = "Please select a directory"
label_settings = SubResource("LabelSettings_6prit")
clip_text = true
text_overrun_behavior = 2
[node name="SearchToggle" type="Button" parent="."]
offset_left = 833.0
offset_top = 24.0
offset_right = 905.0
offset_bottom = 96.0
scale = Vector2(0.79, 0.79)
focus_mode = 0
toggle_mode = true
shortcut = SubResource("Shortcut_g3fcr")
icon = ExtResource("12_cv2gm")
script = ExtResource("13_5illk")
PressedIcon = ExtResource("14_mioc4")
NotPressedIcon = ExtResource("12_cv2gm")
[node name="SearchBar" type="LineEdit" parent="."]
visible = false
offset_left = 265.0
offset_top = 24.0
offset_right = 825.0
offset_bottom = 80.0
focus_mode = 1
placeholder_text = "Search"
alignment = 1
caret_blink = true
script = ExtResource("12_mr42x")
[node name="SongsMenu" type="MenuButton" parent="."]
offset_left = 265.0
offset_top = 24.0
offset_right = 825.0
offset_bottom = 80.0
text = "Select Songs"
flat = false
[node name="SearchResults" type="PopupMenu" parent="."]
handle_input_locally = false
position = Vector2i(265, 80)
size = Vector2i(623, 300)
wrap_controls = false
max_size = Vector2i(625, 300)
allow_search = false
[node name="VolumeButton" type="Button" parent="."]
offset_left = 1092.0
offset_top = 573.0
offset_right = 1132.0
offset_bottom = 613.0
focus_mode = 0
toggle_mode = true
icon = ExtResource("6_3mi6c")
script = ExtResource("14_7q3ja")
[node name="VolumeSlider" type="VSlider" parent="."]
layout_direction = 3
anchors_preset = 12
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -1121.0
offset_top = 563.0
offset_right = -1103.0
offset_bottom = 571.0
grow_horizontal = 2
grow_vertical = 0
size_flags_horizontal = 1
size_flags_vertical = 8
value = 100.0
[node name="Logo" type="Sprite2D" parent="."]
modulate = Color(1, 1, 1, 0.686275)
position = Vector2(192, 162)
scale = Vector2(0.159259, 0.159259)
texture = ExtResource("10_xnj6a")
[node name="TimeListeningSong" type="Label" parent="."]
offset_left = 66.0
offset_top = 597.0
offset_right = 178.0
offset_bottom = 633.0
[node name="DiscordMenuHolder" type="Control" parent="."]
layout_mode = 3
anchors_preset = 0
offset_left = 1042.0
offset_top = 174.0
offset_right = 1082.0
offset_bottom = 214.0
[node name="YtTabButton" type="Button" parent="."]
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = 1065.0
offset_top = 107.0
offset_right = 1713.0
offset_bottom = 558.0
grow_horizontal = 0
scale = Vector2(0.105, 0.105)
focus_mode = 0
toggle_mode = true
icon = ExtResource("12_bc5ym")
flat = true
script = ExtResource("16_2t15p")
[node name="YoutubeMenuHolder" type="Control" parent="."]
layout_mode = 3
anchors_preset = 0
offset_left = 794.0
offset_top = 107.0
offset_right = 834.0
offset_bottom = 147.0
[node name="Youtube menu" type="Control" parent="YoutubeMenuHolder"]
layout_mode = 3
anchors_preset = 0
offset_right = 200.0
offset_bottom = 363.0
[node name="YTLink" type="LineEdit" parent="YoutubeMenuHolder/Youtube menu"]
layout_mode = 1
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -229.0
offset_bottom = 47.0
grow_horizontal = 0
placeholder_text = "Youtube link(can be playlist)"
[node name="YTDownload" type="Button" parent="YoutubeMenuHolder/Youtube menu"]
layout_mode = 1
offset_left = -29.0
offset_top = 58.0
offset_right = 58.0
offset_bottom = 98.0
focus_mode = 0
text = "Download"
[node name="LoadingIMG" type="Sprite2D" parent="YoutubeMenuHolder/Youtube menu"]
position = Vector2(80, 78)
rotation = 1.5708
scale = Vector2(-0.5, 0.5)
texture = ExtResource("13_de5ej")
script = ExtResource("14_rhw4k")
[node name="Version" type="Label" parent="."]
offset_left = 1083.0
offset_top = 625.0
offset_right = 1147.0
offset_bottom = 648.0
text = "v1.0.1"
horizontal_alignment = 2
[node name="WavDisclaimer" type="AcceptDialog" parent="."]
transparent_bg = true
title = "WAV disclaimer"
initial_position = 4
size = Vector2i(256, 100)
transparent = true
popup_window = true
force_native = true
dialog_text = "wav files are not supported yet"
[connection signal="pressed" from="SettingsButton" to="SettingsButton" method="_on_pressed"]
[connection signal="toggled" from="SearchToggle" to="SearchToggle" method="_on_toggled"]
[connection signal="text_submitted" from="SearchBar" to="SearchBar" method="_on_text_submitted"]
[connection signal="index_pressed" from="SearchResults" to="SearchBar" method="_on_search_results_index_pressed"]
[connection signal="toggled" from="VolumeButton" to="VolumeButton" method="_on_toggled"]
[connection signal="toggled" from="YtTabButton" to="YtTabButton" method="_on_toggled"]
@@ -1,147 +0,0 @@
extends Node
class_name MusicMeta
class MusicMetadata:
var error: Error
var bpm: int
var title: String
var album: String
var comments: String
var year: int
var artist: String
var cover: ImageTexture
func print_info():
print("bpm: ", bpm)
print("title: ", title)
print("album: ", album)
print("comments: ", comments)
print("year: ", year)
print("cover: ", cover)
print("artist: ", artist)
func get_mp3_metadata(stream: AudioStreamMP3) -> MusicMetadata:
var meta: MusicMetadata = MusicMetadata.new()
var data: PackedByteArray = stream.data
meta.error = OK
if data.size() < 10:
meta.error = FAILED
return meta
var header = data.slice(0, 10)
var id = header.slice(0, 3).get_string_from_ascii()
if id != "ID3":
meta.error = FAILED
push_error("Error: Stream data's header '%s' is not ID3."%id)
return meta
var v = "ID3v2.%d.%d" % [header[3], header[4]]
if v == "ID3v2.4.0" or v == "ID3v2.3.0" or v == "ID3v2.2.0":
var flags = header[5]
var _unsync = flags & 0x80 > 0
var extended = flags & 0x40 > 0
var _experimental = flags & 0x20 > 0
var _has_footer = flags & 0x10 > 0
var idx = 10
var end = idx + bytes_to_int(header.slice(6, 10))
if extended:
idx += bytes_to_int(data.slice(idx, idx + 4))
while idx < end:
if not data:
meta.error = FAILED
push_error("Error: Stream data is null.")
return meta
var frame_id = data.slice(idx, idx + 4).get_string_from_ascii()
var size = bytes_to_int(data.slice(idx + 4, idx + 8), frame_id != "APIC")
# if greater than byte, not sync safe number (0b0111_1111 -> 0x7f)
if size > 0x7f:
size = bytes_to_int(data.slice(idx + 4, idx + 8), false)
idx += 10
match frame_id:
"TBPM", 'TBP':
meta.bpm = int(get_string_from_data(data, idx, size))
"TIT2","TT2":
print("a " + str(Array(data.slice(idx, idx + 3)).hash()))
print([1, 0xff, 0xfe].hash())
meta.title = get_string_from_data(data, idx, size)
"TALB", 'TAL':
meta.album = get_string_from_data(data, idx, size)
"COMM","COM":
var string:String = get_string_from_data(data, idx, size)
print("got comment " + string)
if string:
meta.comments = string
"TYER","TYE":
meta.year = int(get_string_from_data(data, idx, size))
"TPE1", 'TP1':
meta.artist = get_string_from_data(data, idx, size)
"APIC","PIC":
var pic_frame = data.slice(idx + 1, idx + size)
var zero1 = pic_frame.find(0)
if zero1 > 0:
var mime_type = pic_frame.slice(0, zero1).get_string_from_ascii()
zero1 += 1 # Picture type
if zero1 < pic_frame.size():
zero1 += 1
if zero1 < pic_frame.size():
var zero2 = pic_frame.find(0, zero1)
var image_bytes = pic_frame.slice(zero2 + 1, pic_frame.size())
var img = Image.new()
match mime_type:
"image/png":
img.load_png_from_buffer(image_bytes)
"image/jpeg", "image/jpg":
img.load_jpg_from_buffer(image_bytes)
_:
meta.error = FAILED
push_error("MusicMeta.get_metadata_mp3(): ERROR: mime type ", mime_type, " not yet supported...")
return meta
var t: ImageTexture = ImageTexture.new()
t.set_image(img)
meta.cover = t
idx += size
return meta
else:
meta.error = FAILED
push_error("Error: Found version '%s' from streams data; must be 'ID3v2.4.0'."%v)
return meta
func get_string_from_data(data, idx, size):
var ret
if size > 3 and Array(data.slice(idx, idx + 3)).hash() == [1, 0xff, 0xfe].hash():
# Null-terminated string of ucs2 chars
ret = get_string_from_ucs2(data.slice(idx + 3, idx + size))
if data[idx] == 0:
# Simple utf8 string
ret = data.slice(idx + 1, idx + size).get_string_from_utf8()
if ret:
return ret
else:
return ""
# Syncsafe uses 0x80 multiplier otherwise use 0x100 multiplier
func bytes_to_int(bytes: Array, is_syncsafe = true):
var mult = 0x80 if is_syncsafe else 0x100
var n = 0
for byte in bytes:
n *= mult
n += byte
return n
func get_string_from_ucs2(bytes: Array):
var s = ""
var idx = 0
while idx < (bytes.size() - 1):
s += char(bytes[idx] + 256 * bytes[idx + 1])
idx += 2
return s
@@ -1 +0,0 @@
uid://rnxfmtoo2yn4
@@ -1,10 +0,0 @@
@tool
extends EditorPlugin
const AUTOLOAD_NAME = "MusicMeta"
func _enter_tree():
add_autoload_singleton(AUTOLOAD_NAME, "res://addons/MusicMeta/MusicMeta.gd")
func _exit_tree():
remove_autoload_singleton(AUTOLOAD_NAME)
@@ -1 +0,0 @@
uid://cdigfnlqg2r8l
@@ -1,3 +0,0 @@
# MusicMeta - Godot 4 Plugin
A plugin for extracting mp3 file metadata.
@@ -1,9 +0,0 @@
extends Node
@export var Stream: AudioStreamMP3
func _ready():
var metadata := MusicMeta.new().get_mp3_metadata(Stream)
if metadata.error != OK:
return
metadata.print_info()
@@ -1 +0,0 @@
uid://bs5vnv3baji7f
@@ -1,7 +0,0 @@
[plugin]
name="MusicMeta"
description="An extension that allows the extraction of ID3v2.3.0 MP3 metadata."
author="aineejames,wilcockj"
version="1.0"
script="MusicMetaPlugin.gd"
-1351
View File
File diff suppressed because it is too large Load Diff
+16
View File
@@ -0,0 +1,16 @@
using Godot;
using System;
using System.Reflection.Metadata;
using System.Data.Common;
using System.Reflection.PortableExecutable;
using System.IO;
public partial class Metadatatest : Control
{
public override void _Ready()
{
base._Ready();
URLImageGetter.GetImageURL("https://www.youtube.com/watch?v=ImqhHLlPfZg&list=WL");
}
}
+1
View File
@@ -0,0 +1 @@
uid://csihi5ila47ga
+47
View File
@@ -0,0 +1,47 @@
[gd_scene load_steps=3 format=3 uid="uid://dds3tnltcg0sg"]
[ext_resource type="Script" uid="uid://23jo0gxt4s8r" path="res://Scripts/PerformanceDisplay.cs" id="1_ytklf"]
[ext_resource type="PackedScene" uid="uid://c21wc1bq2pnm" path="res://Scenes/song_display.tscn" id="2_5dy3w"]
[node name="SearchResults" type="Panel" node_paths=PackedStringArray("UpperMargin", "SongContainer", "LowerMargin", "Scroll")]
custom_minimum_size = Vector2(200, 0)
anchors_preset = -1
anchor_left = 0.285
anchor_right = 0.715
anchor_bottom = 0.937
offset_left = 0.209961
offset_right = -0.210022
offset_bottom = 0.121979
grow_horizontal = 2
script = ExtResource("1_ytklf")
display = ExtResource("2_5dy3w")
UpperMargin = NodePath("ScrollContainer/VBoxContainer/UpperMargin")
SongContainer = NodePath("ScrollContainer/VBoxContainer/SongContainer")
LowerMargin = NodePath("ScrollContainer/VBoxContainer/LowerMargin")
Scroll = NodePath("ScrollContainer")
[node name="ScrollContainer" type="ScrollContainer" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
follow_focus = true
horizontal_scroll_mode = 0
[node name="VBoxContainer" type="VBoxContainer" parent="ScrollContainer"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
theme_override_constants/separation = 0
[node name="UpperMargin" type="Control" parent="ScrollContainer/VBoxContainer"]
layout_mode = 2
[node name="SongContainer" type="VBoxContainer" parent="ScrollContainer/VBoxContainer"]
layout_mode = 2
theme_override_constants/separation = 0
[node name="LowerMargin" type="Control" parent="ScrollContainer/VBoxContainer"]
layout_mode = 2
-95
View File
@@ -1,95 +0,0 @@
[gd_scene load_steps=4 format=3 uid="uid://c33qaelwn46f4"]
[ext_resource type="Script" uid="uid://cs12qambyvou8" path="res://Scripts/playlist_display.gd" id="1_h0jh1"]
[ext_resource type="Texture2D" uid="uid://dwvy6crqhardn" path="res://Icons/Dropdown.png" id="2_im6ur"]
[sub_resource type="LabelSettings" id="LabelSettings_ky8oc"]
font_size = 12
font_color = Color(0.597176, 0.597176, 0.597176, 1)
[node name="PlaylistDisplay" type="Control"]
custom_minimum_size = Vector2(0, 67.92)
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_right = -910.0
offset_bottom = -727.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_h0jh1")
[node name="ColorRect" type="ColorRect" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0.439049, 0.439049, 0.439049, 0.298039)
[node name="HSplitContainer" type="HSplitContainer" parent="."]
layout_mode = 1
anchors_preset = -1
anchor_left = 0.0247678
anchor_top = 0.0882353
anchor_right = 0.981424
anchor_bottom = 0.897059
grow_horizontal = 2
grow_vertical = 2
split_offset = 310
dragger_visibility = 2
metadata/_edit_use_anchors_ = true
[node name="VBoxContainer" type="VBoxContainer" parent="HSplitContainer"]
layout_mode = 2
[node name="Name" type="RichTextLabel" parent="HSplitContainer/VBoxContainer"]
custom_minimum_size = Vector2(0, 24.395)
layout_mode = 2
bbcode_enabled = true
text = "Name"
autowrap_mode = 0
[node name="Directory" type="Label" parent="HSplitContainer/VBoxContainer"]
layout_mode = 2
text = "Directory"
label_settings = SubResource("LabelSettings_ky8oc")
clip_text = true
[node name="HBoxContainer" type="HBoxContainer" parent="HSplitContainer"]
layout_mode = 2
[node name="PlayButton" type="Button" parent="HSplitContainer/HBoxContainer"]
custom_minimum_size = Vector2(70, 0)
layout_mode = 2
focus_mode = 0
text = "Play"
[node name="OptionsDropdown" type="MenuButton" parent="HSplitContainer/HBoxContainer"]
modulate = Color(0.724643, 0.724643, 0.724643, 1)
custom_minimum_size = Vector2(20.505, 0)
layout_mode = 2
icon = ExtResource("2_im6ur")
expand_icon = true
item_count = 2
popup/item_0/text = "Change Directory"
popup/item_1/text = "Delete"
popup/item_1/id = 1
[node name="FileDialog" type="FileDialog" parent="."]
title = "Open a Directory"
size = Vector2i(303, 180)
ok_button_text = "Select Current Folder"
file_mode = 2
access = 2
use_native_dialog = true
[node name="ConfirmationDialog" type="ConfirmationDialog" parent="."]
position = Vector2i(445, 275)
size = Vector2i(359, 100)
dialog_text = "Are you sure you want to delete the playlist?"
[connection signal="pressed" from="HSplitContainer/HBoxContainer/PlayButton" to="." method="_on_play_button_pressed"]
[connection signal="dir_selected" from="FileDialog" to="." method="_on_file_dialog_dir_selected"]
[connection signal="confirmed" from="ConfirmationDialog" to="." method="_on_confirmation_dialog_confirmed"]
-655
View File
@@ -1,655 +0,0 @@
[gd_scene load_steps=12 format=3 uid="uid://dqg674t6kun4e"]
[ext_resource type="Script" uid="uid://vnpslgl788du" path="res://Scripts/settings.gd" id="1_uaa7d"]
[ext_resource type="Script" uid="uid://kt7n1epi3ng8" path="res://Scripts/eq_settings.gd" id="2_1n4m6"]
[ext_resource type="Texture2D" uid="uid://1rstn6r2wisy" path="res://Icons/X.png" id="2_iuivb"]
[ext_resource type="Texture2D" uid="uid://pgij783wgbhn" path="res://Icons/File.png" id="2_jmen4"]
[ext_resource type="Script" uid="uid://cej7efsj2cyen" path="res://Scripts/language_button.gd" id="2_sfvul"]
[sub_resource type="LabelSettings" id="LabelSettings_ouq8m"]
font_size = 30
[sub_resource type="LabelSettings" id="LabelSettings_2bhor"]
font_size = 25
[sub_resource type="LabelSettings" id="LabelSettings_p55k3"]
font_size = 11
[sub_resource type="LabelSettings" id="LabelSettings_cwn10"]
font_size = 15
[sub_resource type="LabelSettings" id="LabelSettings_i51gs"]
font_size = 50
[sub_resource type="GDScript" id="GDScript_mjqtt"]
resource_name = "userdata"
script/source = "extends Button
func _pressed() -> void:
OS.shell_show_in_file_manager(ProjectSettings.globalize_path(\"user://\"))
"
[node name="SettingsMenuChild" type="Control"]
custom_minimum_size = Vector2(576, 493)
layout_mode = 3
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -288.0
offset_right = 288.0
offset_bottom = 493.0
grow_horizontal = 2
size_flags_vertical = 0
script = ExtResource("1_uaa7d")
[node name="ScrollContainer" type="ScrollContainer" parent="."]
custom_minimum_size = Vector2(576, 493)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="VBoxContainer" type="VBoxContainer" parent="ScrollContainer"]
custom_minimum_size = Vector2(576, 493)
layout_mode = 2
size_flags_vertical = 0
[node name="SETTINGS" type="Label" parent="ScrollContainer/VBoxContainer"]
custom_minimum_size = Vector2(68.49, 25.94)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 3
text = "SETTINGS"
label_settings = SubResource("LabelSettings_ouq8m")
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 2
[node name="Seperator5" type="Control" parent="ScrollContainer/VBoxContainer"]
custom_minimum_size = Vector2(0, 16.07)
layout_mode = 2
[node name="THIRDPARTYAPPS" type="Label" parent="ScrollContainer/VBoxContainer"]
custom_minimum_size = Vector2(400, 26.975)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 3
text = "INTIGRATIONS"
label_settings = SubResource("LabelSettings_2bhor")
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 2
[node name="DiscordRichPresenceButton" type="CheckBox" parent="ScrollContainer/VBoxContainer"]
layout_mode = 2
size_flags_horizontal = 0
focus_mode = 0
text = "DRPC"
[node name="disclaimer" type="Label" parent="ScrollContainer/VBoxContainer"]
custom_minimum_size = Vector2(229.895, 0)
layout_mode = 2
size_flags_horizontal = 0
text = "DRPC_NOTE"
label_settings = SubResource("LabelSettings_p55k3")
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 2
[node name="Seperator4" type="Control" parent="ScrollContainer/VBoxContainer"]
custom_minimum_size = Vector2(0, 16.07)
layout_mode = 2
[node name="Looks" type="Label" parent="ScrollContainer/VBoxContainer"]
custom_minimum_size = Vector2(400, 26.975)
layout_mode = 2
size_flags_vertical = 3
text = "LOOKS"
label_settings = SubResource("LabelSettings_2bhor")
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 2
uppercase = true
[node name="Seperator8" type="Control" parent="ScrollContainer/VBoxContainer"]
custom_minimum_size = Vector2(0, 16.07)
layout_mode = 2
[node name="HBoxContainer" type="HBoxContainer" parent="ScrollContainer/VBoxContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="ScrollContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
text = "LANGUAGE"
[node name="LanguageButton" type="MenuButton" parent="ScrollContainer/VBoxContainer/HBoxContainer" node_paths=PackedStringArray("settings")]
custom_minimum_size = Vector2(50, 0)
layout_mode = 2
text = "SELECT"
flat = false
script = ExtResource("2_sfvul")
settings = NodePath("../../../..")
[node name="Seperator3" type="Control" parent="ScrollContainer/VBoxContainer"]
custom_minimum_size = Vector2(0, 16.07)
layout_mode = 2
[node name="VBoxContainer" type="VBoxContainer" parent="ScrollContainer/VBoxContainer"]
layout_mode = 2
[node name="HBoxContainer2" type="HBoxContainer" parent="ScrollContainer/VBoxContainer/VBoxContainer"]
layout_mode = 2
[node name="TextureRect" type="TextureRect" parent="ScrollContainer/VBoxContainer/VBoxContainer/HBoxContainer2"]
texture_filter = 1
custom_minimum_size = Vector2(15, 15)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
texture = ExtResource("2_jmen4")
expand_mode = 3
[node name="BackroundDirLabel" type="Label" parent="ScrollContainer/VBoxContainer/VBoxContainer/HBoxContainer2"]
layout_mode = 2
size_flags_horizontal = 0
label_settings = SubResource("LabelSettings_cwn10")
[node name="HBoxContainer" type="HBoxContainer" parent="ScrollContainer/VBoxContainer/VBoxContainer"]
layout_mode = 2
size_flags_horizontal = 0
[node name="SelectBG" type="Button" parent="ScrollContainer/VBoxContainer/VBoxContainer/HBoxContainer"]
custom_minimum_size = Vector2(0, 25.35)
layout_mode = 2
size_flags_horizontal = 4
text = "BS_SELECT"
[node name="ResetBG" type="Button" parent="ScrollContainer/VBoxContainer/VBoxContainer/HBoxContainer"]
custom_minimum_size = Vector2(0, 25.35)
layout_mode = 2
size_flags_horizontal = 4
text = "RESET_BG"
[node name="SelectBGDialog" type="FileDialog" parent="ScrollContainer/VBoxContainer"]
title = "Open a File"
size = Vector2i(324, 180)
transient = false
ok_button_text = "Open"
file_mode = 0
access = 2
filters = PackedStringArray("*.png", "*.jpg ", "*.jpeg", "*.gif", "*")
show_hidden_files = true
use_native_dialog = true
[node name="Seperator2" type="Control" parent="ScrollContainer/VBoxContainer"]
custom_minimum_size = Vector2(0, 16.07)
layout_mode = 2
[node name="FUN" type="Label" parent="ScrollContainer/VBoxContainer"]
custom_minimum_size = Vector2(400, 26.975)
layout_mode = 2
size_flags_vertical = 3
text = "SETTINGS_SOUND"
label_settings = SubResource("LabelSettings_2bhor")
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 2
[node name="Seperator" type="Control" parent="ScrollContainer/VBoxContainer"]
custom_minimum_size = Vector2(0, 16.07)
layout_mode = 2
[node name="PitchAdjustSettings" type="HSplitContainer" parent="ScrollContainer/VBoxContainer"]
custom_minimum_size = Vector2(328.985, 0)
layout_mode = 2
size_flags_horizontal = 0
split_offset = 200
dragger_visibility = 2
[node name="PitchSlider" type="HSlider" parent="ScrollContainer/VBoxContainer/PitchAdjustSettings"]
layout_mode = 2
size_flags_vertical = 4
focus_mode = 0
min_value = 0.25
max_value = 2.0
step = 0.05
value = 1.0
[node name="PitchAdjustSettings" type="HSplitContainer" parent="ScrollContainer/VBoxContainer/PitchAdjustSettings"]
custom_minimum_size = Vector2(130.38, 0)
layout_mode = 2
size_flags_horizontal = 4
split_offset = 995
dragger_visibility = 2
[node name="PitchValue" type="Label" parent="ScrollContainer/VBoxContainer/PitchAdjustSettings/PitchAdjustSettings"]
custom_minimum_size = Vector2(23.9, 7.51)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 6
text = "1.0"
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 2
[node name="FUN" type="Label" parent="ScrollContainer/VBoxContainer/PitchAdjustSettings/PitchAdjustSettings"]
custom_minimum_size = Vector2(100.49, 7.51)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 6
text = "PITCH_SPEED"
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 2
[node name="ReverbCheck" type="CheckBox" parent="ScrollContainer/VBoxContainer"]
layout_mode = 2
size_flags_horizontal = 0
focus_mode = 0
text = "REVERB"
[node name="ReverbSettings" type="VBoxContainer" parent="ScrollContainer/VBoxContainer"]
visible = false
layout_mode = 2
[node name="SizeAdjustSettings" type="HSplitContainer" parent="ScrollContainer/VBoxContainer/ReverbSettings"]
custom_minimum_size = Vector2(328.985, 0)
layout_mode = 2
size_flags_horizontal = 0
split_offset = 200
dragger_visibility = 2
[node name="RoomSizeSlider" type="HSlider" parent="ScrollContainer/VBoxContainer/ReverbSettings/SizeAdjustSettings"]
layout_mode = 2
size_flags_vertical = 4
focus_mode = 0
max_value = 0.95
step = 0.05
value = 0.8
[node name="PitchAdjustSettings" type="HSplitContainer" parent="ScrollContainer/VBoxContainer/ReverbSettings/SizeAdjustSettings"]
custom_minimum_size = Vector2(130.38, 0)
layout_mode = 2
size_flags_horizontal = 4
split_offset = 995
dragger_visibility = 2
[node name="RoomSizeValue" type="Label" parent="ScrollContainer/VBoxContainer/ReverbSettings/SizeAdjustSettings/PitchAdjustSettings"]
custom_minimum_size = Vector2(23.9, 7.51)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 6
text = "1.0"
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 2
[node name="FUN" type="Label" parent="ScrollContainer/VBoxContainer/ReverbSettings/SizeAdjustSettings/PitchAdjustSettings"]
custom_minimum_size = Vector2(94.52, 7.51)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 6
text = "ROOM_SIZE"
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 2
[node name="DampeningAdjustSettings" type="HSplitContainer" parent="ScrollContainer/VBoxContainer/ReverbSettings"]
custom_minimum_size = Vector2(328.985, 0)
layout_mode = 2
size_flags_horizontal = 0
split_offset = 200
dragger_visibility = 2
[node name="DampeningSizeSlider" type="HSlider" parent="ScrollContainer/VBoxContainer/ReverbSettings/DampeningAdjustSettings"]
layout_mode = 2
size_flags_vertical = 4
focus_mode = 0
max_value = 0.95
step = 0.05
value = 0.8
[node name="DampaningAdjustSettings" type="HSplitContainer" parent="ScrollContainer/VBoxContainer/ReverbSettings/DampeningAdjustSettings"]
custom_minimum_size = Vector2(130.38, 0)
layout_mode = 2
size_flags_horizontal = 4
split_offset = 995
dragger_visibility = 2
[node name="DampeningValue" type="Label" parent="ScrollContainer/VBoxContainer/ReverbSettings/DampeningAdjustSettings/DampaningAdjustSettings"]
custom_minimum_size = Vector2(23.9, 7.51)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 6
text = "1.0"
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 2
[node name="FUN" type="Label" parent="ScrollContainer/VBoxContainer/ReverbSettings/DampeningAdjustSettings/DampaningAdjustSettings"]
custom_minimum_size = Vector2(94.52, 7.51)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 6
text = "Damping"
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 2
[node name="SpreadAdjustSettings2" type="HSplitContainer" parent="ScrollContainer/VBoxContainer/ReverbSettings"]
custom_minimum_size = Vector2(328.985, 0)
layout_mode = 2
size_flags_horizontal = 0
split_offset = 200
dragger_visibility = 2
[node name="SpreadSizeSlider" type="HSlider" parent="ScrollContainer/VBoxContainer/ReverbSettings/SpreadAdjustSettings2"]
layout_mode = 2
size_flags_vertical = 4
focus_mode = 0
max_value = 0.95
step = 0.05
value = 0.8
[node name="SpreadAdjustSettings" type="HSplitContainer" parent="ScrollContainer/VBoxContainer/ReverbSettings/SpreadAdjustSettings2"]
custom_minimum_size = Vector2(130.38, 0)
layout_mode = 2
size_flags_horizontal = 4
split_offset = 995
dragger_visibility = 2
[node name="SpreadValue" type="Label" parent="ScrollContainer/VBoxContainer/ReverbSettings/SpreadAdjustSettings2/SpreadAdjustSettings"]
custom_minimum_size = Vector2(23.9, 7.51)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 6
text = "1.0"
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 2
[node name="FUN" type="Label" parent="ScrollContainer/VBoxContainer/ReverbSettings/SpreadAdjustSettings2/SpreadAdjustSettings"]
custom_minimum_size = Vector2(94.52, 7.51)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 6
text = "SPREAD"
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 2
[node name="EQCheckBox" type="CheckBox" parent="ScrollContainer/VBoxContainer"]
layout_mode = 2
size_flags_horizontal = 0
focus_mode = 0
text = "EQ"
[node name="EQSettings" type="VBoxContainer" parent="ScrollContainer/VBoxContainer"]
visible = false
layout_mode = 2
script = ExtResource("2_1n4m6")
[node name="CompressionCheck" type="CheckBox" parent="ScrollContainer/VBoxContainer"]
layout_mode = 2
size_flags_horizontal = 0
focus_mode = 0
text = "COMPRESSION"
[node name="CompressionContainer" type="VBoxContainer" parent="ScrollContainer/VBoxContainer"]
visible = false
layout_mode = 2
[node name="ThresholdSettings" type="HSplitContainer" parent="ScrollContainer/VBoxContainer/CompressionContainer"]
custom_minimum_size = Vector2(328.985, 0)
layout_mode = 2
size_flags_horizontal = 0
split_offset = 200
dragger_visibility = 2
[node name="ThresholdSlider" type="HSlider" parent="ScrollContainer/VBoxContainer/CompressionContainer/ThresholdSettings"]
layout_mode = 2
size_flags_vertical = 4
focus_mode = 0
min_value = -60.0
max_value = 0.0
step = 0.5
value = -9.0
[node name="ThresholdSettings" type="HSplitContainer" parent="ScrollContainer/VBoxContainer/CompressionContainer/ThresholdSettings"]
custom_minimum_size = Vector2(130.38, 0)
layout_mode = 2
size_flags_horizontal = 4
split_offset = 995
dragger_visibility = 2
[node name="ThresholdValue" type="Label" parent="ScrollContainer/VBoxContainer/CompressionContainer/ThresholdSettings/ThresholdSettings"]
custom_minimum_size = Vector2(23.9, 7.51)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 6
text = "1.0"
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 2
[node name="FUN" type="Label" parent="ScrollContainer/VBoxContainer/CompressionContainer/ThresholdSettings/ThresholdSettings"]
custom_minimum_size = Vector2(94.52, 7.51)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 6
text = "THRESHOLD"
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 2
[node name="RatioSettings" type="HSplitContainer" parent="ScrollContainer/VBoxContainer/CompressionContainer"]
custom_minimum_size = Vector2(328.985, 0)
layout_mode = 2
size_flags_horizontal = 0
split_offset = 200
dragger_visibility = 2
[node name="RatioSlider" type="HSlider" parent="ScrollContainer/VBoxContainer/CompressionContainer/RatioSettings"]
layout_mode = 2
size_flags_vertical = 4
focus_mode = 0
min_value = 1.0
max_value = 48.0
value = 4.0
[node name="RatioSettings" type="HSplitContainer" parent="ScrollContainer/VBoxContainer/CompressionContainer/RatioSettings"]
custom_minimum_size = Vector2(130.38, 0)
layout_mode = 2
size_flags_horizontal = 4
split_offset = 995
dragger_visibility = 2
[node name="RatioValue" type="Label" parent="ScrollContainer/VBoxContainer/CompressionContainer/RatioSettings/RatioSettings"]
custom_minimum_size = Vector2(23.9, 7.51)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 6
text = "1.0"
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 2
[node name="FUN" type="Label" parent="ScrollContainer/VBoxContainer/CompressionContainer/RatioSettings/RatioSettings"]
custom_minimum_size = Vector2(94.52, 7.51)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 6
text = "Ratio
"
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 2
[node name="GainSettings" type="HSplitContainer" parent="ScrollContainer/VBoxContainer/CompressionContainer"]
custom_minimum_size = Vector2(328.985, 0)
layout_mode = 2
size_flags_horizontal = 0
split_offset = 200
dragger_visibility = 2
[node name="GainSlider" type="HSlider" parent="ScrollContainer/VBoxContainer/CompressionContainer/GainSettings"]
layout_mode = 2
size_flags_vertical = 4
focus_mode = 0
min_value = -10.0
max_value = 8.0
step = 0.5
[node name="GainSettings" type="HSplitContainer" parent="ScrollContainer/VBoxContainer/CompressionContainer/GainSettings"]
custom_minimum_size = Vector2(130.38, 0)
layout_mode = 2
size_flags_horizontal = 4
split_offset = 995
dragger_visibility = 2
[node name="GainValue" type="Label" parent="ScrollContainer/VBoxContainer/CompressionContainer/GainSettings/GainSettings"]
custom_minimum_size = Vector2(23.9, 7.51)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 6
text = "1.0"
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 2
[node name="FUN" type="Label" parent="ScrollContainer/VBoxContainer/CompressionContainer/GainSettings/GainSettings"]
custom_minimum_size = Vector2(94.52, 7.51)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 6
text = "Gain
"
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 2
[node name="Seperator6" type="Control" parent="ScrollContainer/VBoxContainer"]
custom_minimum_size = Vector2(0, 16.07)
layout_mode = 2
[node name="MISC" type="Label" parent="ScrollContainer/VBoxContainer"]
custom_minimum_size = Vector2(400, 26.975)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 3
text = "MISC"
label_settings = SubResource("LabelSettings_2bhor")
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 2
[node name="NowPlayingWindowButton" type="CheckBox" parent="ScrollContainer/VBoxContainer"]
layout_mode = 2
focus_mode = 0
text = "STREAMER_WINDOW"
[node name="NowPlayingInfo" type="Label" parent="ScrollContainer/VBoxContainer"]
custom_minimum_size = Vector2(229.895, 0)
layout_mode = 2
size_flags_horizontal = 0
text = "STREAMER_NOTE"
label_settings = SubResource("LabelSettings_p55k3")
vertical_alignment = 1
autowrap_mode = 2
[node name="Credits" type="VBoxContainer" parent="ScrollContainer/VBoxContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="ScrollContainer/VBoxContainer/Credits"]
layout_mode = 2
size_flags_horizontal = 4
text = "CREDITS"
label_settings = SubResource("LabelSettings_i51gs")
[node name="Label5" type="LinkButton" parent="ScrollContainer/VBoxContainer/Credits"]
layout_mode = 2
size_flags_horizontal = 4
text = "Godot"
underline = 1
uri = "https://godotengine.org"
[node name="Label2" type="LinkButton" parent="ScrollContainer/VBoxContainer/Credits"]
layout_mode = 2
size_flags_horizontal = 4
text = "YT_DL"
underline = 1
uri = "https://github.com/Nolkaloid/godot-yt-dlp"
[node name="Label3" type="LinkButton" parent="ScrollContainer/VBoxContainer/Credits"]
layout_mode = 2
size_flags_horizontal = 4
text = "DRPCL"
underline = 1
uri = "https://github.com/vaporvee/discord-rpc-godot"
[node name="Label4" type="LinkButton" parent="ScrollContainer/VBoxContainer/Credits"]
layout_mode = 2
size_flags_horizontal = 4
text = "GDGIF"
underline = 1
uri = "https://github.com/BOTLANNER/godot-gif"
[node name="Seperator7" type="Control" parent="ScrollContainer/VBoxContainer"]
custom_minimum_size = Vector2(0, 16.07)
layout_mode = 2
[node name="TimeListening" type="Label" parent="ScrollContainer/VBoxContainer"]
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 0
[node name="Userdata" type="Button" parent="ScrollContainer/VBoxContainer"]
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
focus_mode = 0
text = "Open userdata"
script = SubResource("GDScript_mjqtt")
[node name="Reset" type="Button" parent="ScrollContainer/VBoxContainer"]
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
focus_mode = 0
text = "RESET_SETTINGS"
[node name="Exit" type="Button" parent="."]
layout_mode = 1
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -40.0
offset_bottom = 40.0
grow_horizontal = 0
size_flags_horizontal = 8
size_flags_vertical = 0
focus_mode = 0
icon = ExtResource("2_iuivb")
flat = true
expand_icon = true
[connection signal="toggled" from="ScrollContainer/VBoxContainer/DiscordRichPresenceButton" to="." method="_on_discord_rich_presence_button_toggled"]
[connection signal="pressed" from="ScrollContainer/VBoxContainer/VBoxContainer/HBoxContainer/SelectBG" to="." method="_on_select_bg_pressed"]
[connection signal="pressed" from="ScrollContainer/VBoxContainer/VBoxContainer/HBoxContainer/ResetBG" to="." method="_on_reset_bg_pressed"]
[connection signal="file_selected" from="ScrollContainer/VBoxContainer/SelectBGDialog" to="." method="_on_select_bg_dialog_file_selected"]
[connection signal="drag_ended" from="ScrollContainer/VBoxContainer/PitchAdjustSettings/PitchSlider" to="." method="_on_h_slider_drag_ended"]
[connection signal="toggled" from="ScrollContainer/VBoxContainer/ReverbCheck" to="." method="_on_reverb_check_toggled"]
[connection signal="drag_ended" from="ScrollContainer/VBoxContainer/ReverbSettings/SizeAdjustSettings/RoomSizeSlider" to="." method="_on_room_size_slider_drag_ended"]
[connection signal="drag_ended" from="ScrollContainer/VBoxContainer/ReverbSettings/DampeningAdjustSettings/DampeningSizeSlider" to="." method="_on_dampening_size_slider_drag_ended"]
[connection signal="drag_ended" from="ScrollContainer/VBoxContainer/ReverbSettings/SpreadAdjustSettings2/SpreadSizeSlider" to="." method="_on_spread_size_slider_drag_ended"]
[connection signal="toggled" from="ScrollContainer/VBoxContainer/EQCheckBox" to="." method="_on_eq_check_box_toggled"]
[connection signal="toggled" from="ScrollContainer/VBoxContainer/CompressionCheck" to="." method="_on_compression_check_toggled"]
[connection signal="drag_ended" from="ScrollContainer/VBoxContainer/CompressionContainer/ThresholdSettings/ThresholdSlider" to="." method="_on_threshold_slider_drag_ended"]
[connection signal="drag_ended" from="ScrollContainer/VBoxContainer/CompressionContainer/RatioSettings/RatioSlider" to="." method="_on_ratio_slider_drag_ended"]
[connection signal="drag_ended" from="ScrollContainer/VBoxContainer/CompressionContainer/GainSettings/GainSlider" to="." method="_on_gain_slider_drag_ended"]
[connection signal="toggled" from="ScrollContainer/VBoxContainer/NowPlayingWindowButton" to="." method="_on_now_playing_window_button_toggled"]
[connection signal="pressed" from="ScrollContainer/VBoxContainer/Reset" to="." method="_on_reset_pressed"]
[connection signal="pressed" from="ScrollContainer/VBoxContainer/Reset" to="ScrollContainer/VBoxContainer/EQSettings" method="_on_reset_pressed"]
[connection signal="pressed" from="Exit" to="." method="_on_exit_pressed"]
+87
View File
@@ -0,0 +1,87 @@
[gd_scene load_steps=5 format=3 uid="uid://bam5mbsffdryc"]
[ext_resource type="Script" uid="uid://du2j3lspxge7f" path="res://Scripts/SourceDisplay.cs" id="1_wqeof"]
[ext_resource type="Texture2D" uid="uid://dwvy6crqhardn" path="res://Icons/Dropdown.png" id="2_wqeof"]
[sub_resource type="LabelSettings" id="LabelSettings_84l0p"]
font_size = 20
shadow_size = 2
shadow_color = Color(0, 0, 0, 0.564706)
[sub_resource type="LabelSettings" id="LabelSettings_24osb"]
font_color = Color(0.791999, 0.791999, 0.791999, 1)
shadow_size = 2
shadow_color = Color(0, 0, 0, 0.564706)
[node name="SourceDisplay" type="Control" unique_id=2040468863 node_paths=PackedStringArray("EnabledCheck", "NameLabel", "PathLabel")]
custom_minimum_size = Vector2(0, 75)
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_right = -572.0
offset_bottom = -573.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_wqeof")
EnabledCheck = NodePath("HBoxContainer/CheckBox")
NameLabel = NodePath("HBoxContainer/VBoxContainer/Name")
PathLabel = NodePath("HBoxContainer/VBoxContainer/Path")
[node name="Panel" type="Panel" parent="." unique_id=220383628]
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="HBoxContainer" type="HBoxContainer" parent="." unique_id=730957905]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="VBoxContainer" type="VBoxContainer" parent="HBoxContainer" unique_id=707103310]
layout_mode = 2
size_flags_horizontal = 3
mouse_filter = 2
[node name="Name" type="Label" parent="HBoxContainer/VBoxContainer" unique_id=1705771460]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 6
text = "Name"
label_settings = SubResource("LabelSettings_84l0p")
clip_text = true
text_overrun_behavior = 3
[node name="Path" type="Label" parent="HBoxContainer/VBoxContainer" unique_id=1633998177]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 6
text = "Path"
label_settings = SubResource("LabelSettings_24osb")
clip_text = true
text_overrun_behavior = 3
[node name="CheckBox" type="CheckBox" parent="HBoxContainer" unique_id=38681969]
layout_mode = 2
size_flags_vertical = 4
text = "Enabled"
[node name="MenuButton" type="MenuButton" parent="HBoxContainer" unique_id=1880046464]
custom_minimum_size = Vector2(20, 0)
layout_mode = 2
icon = ExtResource("2_wqeof")
expand_icon = true
item_count = 3
popup/item_0/text = "Delete"
popup/item_0/id = 0
popup/item_1/text = "Rename"
popup/item_1/id = 1
popup/item_2/text = "Change Directory"
popup/item_2/id = 2
+143
View File
@@ -0,0 +1,143 @@
[gd_scene load_steps=7 format=3 uid="uid://5v56arvjyw4p"]
[ext_resource type="Texture2D" uid="uid://df2e70jxwrmjs" path="res://Icons/BackOne.png" id="1_543jr"]
[ext_resource type="Texture2D" uid="uid://ctb4s2nks73rx" path="res://Icons/Play.png" id="2_pwrg8"]
[ext_resource type="Texture2D" uid="uid://38c8dfym0svn" path="res://Icons/Loop.png" id="3_f21cu"]
[ext_resource type="Texture2D" uid="uid://daq8wnhtscpjl" path="res://Icons/Skip.png" id="3_hr4cn"]
[ext_resource type="Texture2D" uid="uid://cekkhyppj88xi" path="res://Icons/Headphones.png" id="4_pwrg8"]
[ext_resource type="Texture2D" uid="uid://dvid0yk4kh5hq" path="res://Images/Eveningsmall.jpg" id="6_f21cu"]
[node name="FullInterface" type="Control" unique_id=678905669]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="VBoxContainer" type="VBoxContainer" parent="." unique_id=1255661485]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
alignment = 2
[node name="Panel" type="Panel" parent="VBoxContainer" unique_id=961658991]
custom_minimum_size = Vector2(300, 150)
layout_mode = 2
size_flags_horizontal = 0
[node name="MarginContainer" type="MarginContainer" parent="VBoxContainer/Panel" unique_id=1736629774]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/margin_left = 10
theme_override_constants/margin_top = 10
theme_override_constants/margin_right = 10
theme_override_constants/margin_bottom = 10
[node name="Control" type="Control" parent="VBoxContainer/Panel/MarginContainer" unique_id=1960151738]
layout_mode = 2
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/Panel/MarginContainer/Control" unique_id=1483630949]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="TextureRect" type="TextureRect" parent="VBoxContainer/Panel/MarginContainer/Control/HBoxContainer" unique_id=433909645]
custom_minimum_size = Vector2(130, 130)
layout_mode = 2
texture = ExtResource("6_f21cu")
expand_mode = 1
stretch_mode = 6
[node name="RichTextLabel" type="RichTextLabel" parent="VBoxContainer/Panel/MarginContainer/Control/HBoxContainer" unique_id=1251684129]
layout_mode = 2
size_flags_horizontal = 3
text = "SimplSong
Artist
Album"
vertical_alignment = 1
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer" unique_id=1091310261]
layout_mode = 2
[node name="GoBack" type="Button" parent="VBoxContainer/HBoxContainer" unique_id=1229237570]
custom_minimum_size = Vector2(42, 42)
layout_mode = 2
icon = ExtResource("1_543jr")
expand_icon = true
[node name="PausePlay" type="Button" parent="VBoxContainer/HBoxContainer" unique_id=1822291703]
custom_minimum_size = Vector2(42, 36)
layout_mode = 2
icon = ExtResource("2_pwrg8")
expand_icon = true
[node name="Loop" type="Button" parent="VBoxContainer/HBoxContainer" unique_id=1919587878]
custom_minimum_size = Vector2(42, 36)
layout_mode = 2
icon = ExtResource("3_f21cu")
expand_icon = true
[node name="Skip" type="Button" parent="VBoxContainer/HBoxContainer" unique_id=133075482]
custom_minimum_size = Vector2(42, 36)
layout_mode = 2
icon = ExtResource("3_hr4cn")
expand_icon = true
[node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer/HBoxContainer" unique_id=1007920060]
layout_mode = 2
size_flags_horizontal = 3
mouse_filter = 2
alignment = 1
[node name="HSlider" type="HSlider" parent="VBoxContainer/HBoxContainer/VBoxContainer" unique_id=1811164513]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 4
[node name="Button" type="Button" parent="VBoxContainer/HBoxContainer" unique_id=988865873]
custom_minimum_size = Vector2(42, 0)
layout_mode = 2
icon = ExtResource("4_pwrg8")
expand_icon = true
[node name="Progress" type="RichTextLabel" parent="." unique_id=674204878]
layout_mode = 1
anchors_preset = 12
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 185.0
offset_top = -48.0
offset_right = -1.0
grow_horizontal = 2
grow_vertical = 0
mouse_filter = 2
text = "0:19/31:99"
vertical_alignment = 3
[node name="Song" type="VBoxContainer" parent="." unique_id=1592308856]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 303.0
offset_top = 1.0
offset_bottom = -47.0
grow_horizontal = 2
grow_vertical = 2
[node name="Sources" type="VBoxContainer" parent="." unique_id=2011065913]
layout_mode = 0
offset_right = 300.0
offset_bottom = 451.0
+374
View File
@@ -0,0 +1,374 @@
[gd_scene load_steps=23 format=3 uid="uid://mfcbf2sfino6"]
[ext_resource type="Theme" uid="uid://cpd5cym1d4tde" path="res://DefaultTheme.tres" id="1_k12tt"]
[ext_resource type="Texture2D" uid="uid://0jo87vtoeheu" path="res://Images/pole2.jpg" id="2_bo1nx"]
[ext_resource type="Script" uid="uid://f5kkp8ovi107" path="res://Scripts/SourceLoader.cs" id="2_kry3j"]
[ext_resource type="Texture2D" uid="uid://dvid0yk4kh5hq" path="res://Images/Eveningsmall.jpg" id="4_hptm8"]
[ext_resource type="Texture2D" uid="uid://ch8wymyxftkb3" path="res://Icons/Pause.png" id="4_jkdf5"]
[ext_resource type="Texture2D" uid="uid://df2e70jxwrmjs" path="res://Icons/BackOne.png" id="5_d1ilt"]
[ext_resource type="Texture2D" uid="uid://myq6n4bshduj" path="res://Icons/search.png" id="5_kry3j"]
[ext_resource type="Texture2D" uid="uid://ctb4s2nks73rx" path="res://Icons/Play.png" id="6_6iyac"]
[ext_resource type="Texture2D" uid="uid://38c8dfym0svn" path="res://Icons/Loop.png" id="7_fdnlq"]
[ext_resource type="Texture2D" uid="uid://daq8wnhtscpjl" path="res://Icons/Skip.png" id="8_jkdf5"]
[ext_resource type="Texture2D" uid="uid://cekkhyppj88xi" path="res://Icons/Headphones.png" id="9_wsu2k"]
[ext_resource type="Script" uid="uid://bunh7x8sltmpc" path="res://Scripts/slider.gd" id="10_d1ilt"]
[ext_resource type="Script" uid="uid://dl1ipi4ocs3kq" path="res://Scripts/AddDialog.cs" id="12_fdnlq"]
[ext_resource type="Script" uid="uid://cl8087ysk6gbg" path="res://Scripts/SourceManager.cs" id="14_jkdf5"]
[ext_resource type="PackedScene" uid="uid://bam5mbsffdryc" path="res://Scenes/SourceDisplay.tscn" id="15_wsu2k"]
[sub_resource type="Gradient" id="Gradient_6iyac"]
offsets = PackedFloat32Array(0.7432432, 1)
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_fdnlq"]
gradient = SubResource("Gradient_6iyac")
fill = 1
fill_from = Vector2(0, 1)
fill_to = Vector2(0, 0)
[sub_resource type="LabelSettings" id="LabelSettings_wsu2k"]
font_size = 17
outline_size = 2
outline_color = Color(0, 0, 0, 1)
shadow_size = 3
shadow_color = Color(0, 0, 0, 0.57254905)
[sub_resource type="LabelSettings" id="LabelSettings_6iyac"]
font_size = 25
outline_size = 2
outline_color = Color(0, 0, 0, 1)
shadow_size = 3
shadow_color = Color(0, 0, 0, 0.49019608)
[sub_resource type="LabelSettings" id="LabelSettings_fdnlq"]
font_size = 20
font_color = Color(0.851769, 0.8517689, 0.85176885, 1)
outline_size = 2
outline_color = Color(0, 0, 0, 1)
shadow_size = 3
shadow_color = Color(0, 0, 0, 0.5882353)
[sub_resource type="LabelSettings" id="LabelSettings_jkdf5"]
font_size = 20
font_color = Color(0.851769, 0.8517689, 0.85176885, 1)
outline_size = 2
outline_color = Color(0, 0, 0, 1)
shadow_size = 3
shadow_color = Color(0, 0, 0, 0.5882353)
[sub_resource type="GDScript" id="GDScript_6iyac"]
resource_name = "DirSelect"
script/source = "extends Button
@export var file_dialog: FileDialog
func _pressed() -> void:
file_dialog.show()
"
[node name="Main" type="Control" unique_id=710966374 node_paths=PackedStringArray("manager", "playbutton", "backbutton", "skipbutton", "loopbutton", "progressbar", "progresslabel", "TitleLabel", "ArtistLabel", "AlbumLabel", "CoverArt")]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme = ExtResource("1_k12tt")
script = ExtResource("2_kry3j")
manager = NodePath("SourceManager")
playbutton = NodePath("InterfaceHolder/FullInterface/VBoxContainer/HBoxContainer/PausePlay")
backbutton = NodePath("InterfaceHolder/FullInterface/VBoxContainer/HBoxContainer/GoBack")
skipbutton = NodePath("InterfaceHolder/FullInterface/VBoxContainer/HBoxContainer/Skip")
loopbutton = NodePath("InterfaceHolder/FullInterface/VBoxContainer/HBoxContainer/Loop")
progressbar = NodePath("InterfaceHolder/FullInterface/VBoxContainer/HBoxContainer/VBoxContainer/HSlider")
progresslabel = NodePath("InterfaceHolder/FullInterface/Progress")
TitleLabel = NodePath("InterfaceHolder/FullInterface/VBoxContainer/HBoxContainer2/Title")
ArtistLabel = NodePath("InterfaceHolder/FullInterface/VBoxContainer/HBoxContainer2/Artit")
AlbumLabel = NodePath("InterfaceHolder/FullInterface/VBoxContainer/HBoxContainer2/Album")
CoverArt = NodePath("InterfaceHolder/FullInterface/TextureRect/TextureRect")
PausedIcon = ExtResource("6_6iyac")
PlayingIcon = ExtResource("4_jkdf5")
[node name="Label" type="Label" parent="." unique_id=1116909625]
layout_mode = 1
anchors_preset = -1
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -40.0
offset_top = -23.0
grow_horizontal = 0
grow_vertical = 0
text = "v2.0"
[node name="TextureRect" type="TextureRect" parent="." unique_id=1332965117]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("2_bo1nx")
expand_mode = 5
stretch_mode = 6
[node name="InterfaceHolder" type="MarginContainer" parent="." unique_id=1778024061]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/margin_top = 45
[node name="FullInterface" type="Control" parent="InterfaceHolder" unique_id=678905669]
layout_mode = 2
[node name="Song" type="VBoxContainer" parent="InterfaceHolder/FullInterface" unique_id=1592308856]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 303.0
offset_top = 1.0
offset_bottom = -47.0
grow_horizontal = 2
grow_vertical = 2
[node name="TextureRect" type="TextureRect" parent="InterfaceHolder/FullInterface" unique_id=433909645]
clip_children = 1
custom_minimum_size = Vector2(130, 130)
layout_mode = 1
anchors_preset = -1
anchor_top = 1.0
anchor_bottom = 1.0
offset_top = -343.0
offset_right = 343.0
grow_vertical = 0
size_flags_horizontal = 0
texture = SubResource("GradientTexture2D_fdnlq")
expand_mode = 3
stretch_mode = 6
metadata/_edit_use_anchors_ = true
[node name="TextureRect" type="TextureRect" parent="InterfaceHolder/FullInterface/TextureRect" unique_id=1371068144]
custom_minimum_size = Vector2(130, 130)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 0
texture = ExtResource("4_hptm8")
expand_mode = 1
stretch_mode = 6
[node name="Progress" type="Label" parent="InterfaceHolder/FullInterface" unique_id=1303512998]
layout_mode = 1
anchors_preset = 12
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 185.0
offset_top = -50.0
offset_right = -1.0
grow_horizontal = 2
grow_vertical = 0
text = "0:19/31:99"
label_settings = SubResource("LabelSettings_wsu2k")
vertical_alignment = 3
[node name="VBoxContainer" type="VBoxContainer" parent="InterfaceHolder/FullInterface" unique_id=1255661485]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
alignment = 2
[node name="HBoxContainer2" type="VBoxContainer" parent="InterfaceHolder/FullInterface/VBoxContainer" unique_id=1571684229]
layout_mode = 2
[node name="Title" type="Label" parent="InterfaceHolder/FullInterface/VBoxContainer/HBoxContainer2" unique_id=968360559]
layout_mode = 2
text = "TITLE"
label_settings = SubResource("LabelSettings_6iyac")
clip_text = true
[node name="Artit" type="Label" parent="InterfaceHolder/FullInterface/VBoxContainer/HBoxContainer2" unique_id=1594212855]
layout_mode = 2
text = "ARTIST"
label_settings = SubResource("LabelSettings_fdnlq")
clip_text = true
[node name="Album" type="Label" parent="InterfaceHolder/FullInterface/VBoxContainer/HBoxContainer2" unique_id=434177385]
layout_mode = 2
text = "ALBUM"
label_settings = SubResource("LabelSettings_jkdf5")
clip_text = true
[node name="HBoxContainer" type="HBoxContainer" parent="InterfaceHolder/FullInterface/VBoxContainer" unique_id=1091310261]
layout_mode = 2
[node name="GoBack" type="Button" parent="InterfaceHolder/FullInterface/VBoxContainer/HBoxContainer" unique_id=1229237570]
custom_minimum_size = Vector2(42, 42)
layout_mode = 2
icon = ExtResource("5_d1ilt")
expand_icon = true
[node name="PausePlay" type="Button" parent="InterfaceHolder/FullInterface/VBoxContainer/HBoxContainer" unique_id=1822291703]
custom_minimum_size = Vector2(42, 36)
layout_mode = 2
toggle_mode = true
icon = ExtResource("6_6iyac")
expand_icon = true
[node name="Loop" type="Button" parent="InterfaceHolder/FullInterface/VBoxContainer/HBoxContainer" unique_id=1919587878]
custom_minimum_size = Vector2(42, 36)
layout_mode = 2
toggle_mode = true
icon = ExtResource("7_fdnlq")
expand_icon = true
[node name="Skip" type="Button" parent="InterfaceHolder/FullInterface/VBoxContainer/HBoxContainer" unique_id=133075482]
custom_minimum_size = Vector2(42, 36)
layout_mode = 2
icon = ExtResource("8_jkdf5")
expand_icon = true
[node name="VBoxContainer" type="VBoxContainer" parent="InterfaceHolder/FullInterface/VBoxContainer/HBoxContainer" unique_id=1007920060]
layout_mode = 2
size_flags_horizontal = 3
mouse_filter = 2
alignment = 1
[node name="HSlider" type="HSlider" parent="InterfaceHolder/FullInterface/VBoxContainer/HBoxContainer/VBoxContainer" unique_id=1811164513]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 4
max_value = 1.0
step = 0.0
[node name="Button" type="Button" parent="InterfaceHolder/FullInterface/VBoxContainer/HBoxContainer" unique_id=988865873]
custom_minimum_size = Vector2(42, 0)
layout_mode = 2
icon = ExtResource("9_wsu2k")
expand_icon = true
[node name="VSlider" type="VSlider" parent="InterfaceHolder/FullInterface/VBoxContainer/HBoxContainer/Button" unique_id=981008252]
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -8.0
offset_top = -111.0
offset_right = 8.0
offset_bottom = -8.0
grow_horizontal = 2
max_value = 1.0
step = 0.01
value = 1.0
script = ExtResource("10_d1ilt")
[node name="Panel" type="Panel" parent="InterfaceHolder/FullInterface" unique_id=1241981314]
layout_mode = 1
anchors_preset = -1
anchor_right = 0.24000001
anchor_bottom = 0.753
offset_right = 0.519989
offset_bottom = -0.059020996
[node name="SourcesRoot" type="VBoxContainer" parent="InterfaceHolder/FullInterface/Panel" unique_id=2011065913]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Label" type="Label" parent="InterfaceHolder/FullInterface/Panel/SourcesRoot" unique_id=1139116413]
layout_mode = 2
text = "Sources:"
[node name="AddDialog" type="Panel" parent="InterfaceHolder/FullInterface/Panel/SourcesRoot" unique_id=1695223686 node_paths=PackedStringArray("SourcesRoot", "NameEdit", "Dialog", "DirectoryLabel", "AddButton")]
custom_minimum_size = Vector2(0, 150)
layout_mode = 2
script = ExtResource("12_fdnlq")
SourcesRoot = NodePath("..")
NameEdit = NodePath("VBoxContainer/NameEdit")
Dialog = NodePath("VBoxContainer/DirSelect/FileDialog")
DirectoryLabel = NodePath("VBoxContainer/DirDisplay")
AddButton = NodePath("VBoxContainer/Button2")
[node name="VBoxContainer" type="VBoxContainer" parent="InterfaceHolder/FullInterface/Panel/SourcesRoot/AddDialog" unique_id=1274684795]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Label" type="Label" parent="InterfaceHolder/FullInterface/Panel/SourcesRoot/AddDialog/VBoxContainer" unique_id=1065512212]
layout_mode = 2
text = "Add Source"
[node name="NameEdit" type="LineEdit" parent="InterfaceHolder/FullInterface/Panel/SourcesRoot/AddDialog/VBoxContainer" unique_id=880637161]
layout_mode = 2
placeholder_text = "Name"
[node name="DirSelect" type="Button" parent="InterfaceHolder/FullInterface/Panel/SourcesRoot/AddDialog/VBoxContainer" unique_id=192358857 node_paths=PackedStringArray("file_dialog")]
layout_mode = 2
text = "Select directory"
script = SubResource("GDScript_6iyac")
file_dialog = NodePath("FileDialog")
[node name="FileDialog" type="FileDialog" parent="InterfaceHolder/FullInterface/Panel/SourcesRoot/AddDialog/VBoxContainer/DirSelect" unique_id=1146828904]
oversampling_override = 1.0
title = "Open a Directory"
initial_position = 4
size = Vector2i(744, 360)
file_mode = 2
access = 2
use_native_dialog = true
[node name="DirDisplay" type="Label" parent="InterfaceHolder/FullInterface/Panel/SourcesRoot/AddDialog/VBoxContainer" unique_id=25621450]
layout_mode = 2
clip_text = true
[node name="Button2" type="Button" parent="InterfaceHolder/FullInterface/Panel/SourcesRoot/AddDialog/VBoxContainer" unique_id=316723766]
layout_mode = 2
disabled = true
text = "Add"
[node name="SourcesContainer" type="VBoxContainer" parent="InterfaceHolder/FullInterface/Panel/SourcesRoot" unique_id=405400634]
layout_mode = 2
[node name="SearchContainer" type="HBoxContainer" parent="." unique_id=955825789]
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -34.0
offset_right = 34.0
offset_bottom = 40.0
grow_horizontal = 2
[node name="LineEdit" type="LineEdit" parent="SearchContainer" unique_id=556652431]
layout_mode = 2
expand_to_text_length = true
[node name="Button" type="Button" parent="SearchContainer" unique_id=317701807]
custom_minimum_size = Vector2(40, 0)
layout_mode = 2
icon = ExtResource("5_kry3j")
expand_icon = true
[node name="SourceManager" type="Node" parent="." unique_id=729994015 node_paths=PackedStringArray("SourceRoot", "AddDialog")]
script = ExtResource("14_jkdf5")
SourceRoot = NodePath("../InterfaceHolder/FullInterface/Panel/SourcesRoot/SourcesContainer")
AddDialog = NodePath("../InterfaceHolder/FullInterface/Panel/SourcesRoot/AddDialog")
SourceDisplayScene = ExtResource("15_wsu2k")
-143
View File
@@ -1,143 +0,0 @@
[gd_scene load_steps=10 format=3 uid="uid://n7cnapaftfse"]
[ext_resource type="Script" uid="uid://q2gdlr10ncnb" path="res://Scripts/playing_now_window.gd" id="1_f0rac"]
[ext_resource type="Texture2D" uid="uid://bp4ipephewcrn" path="res://SmoothEdges.png" id="2_haeb5"]
[ext_resource type="Texture2D" uid="uid://0jo87vtoeheu" path="res://Images/pole2.jpg" id="3_j8vo6"]
[sub_resource type="Gradient" id="Gradient_nf0dg"]
offsets = PackedFloat32Array(0.410072, 1)
colors = PackedColorArray(1, 1, 1, 0, 1, 1, 1, 1)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_kcqx3"]
gradient = SubResource("Gradient_nf0dg")
[sub_resource type="Theme" id="Theme_yr2ao"]
RichTextLabel/colors/font_shadow_color = Color(0.0768358, 0.0768358, 0.0768358, 0.52549)
RichTextLabel/constants/shadow_outline_size = 10
[sub_resource type="ImageTexture" id="ImageTexture_yr2ao"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_haeb5"]
bg_color = Color(0.28485, 0.28485, 0.28485, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
expand_margin_top = 5.0
expand_margin_bottom = 5.0
shadow_color = Color(0, 0, 0, 0.443137)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_yr2ao"]
bg_color = Color(1, 1, 1, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
expand_margin_top = 5.0
expand_margin_bottom = 5.0
[node name="PlayingNowWindow" type="Control" node_paths=PackedStringArray("SongImage", "SongNameLabel", "SongNameScroller", "SongAuthorScroller", "SongAuthorLabel", "slider")]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
script = ExtResource("1_f0rac")
SongImage = NodePath("ColorRect/TextureRect")
SongNameLabel = NodePath("VBoxContainer/ScrollContainer/SongName")
SongNameScroller = NodePath("VBoxContainer/ScrollContainer")
SongAuthorScroller = NodePath("VBoxContainer/ScrollContainer2")
SongAuthorLabel = NodePath("VBoxContainer/ScrollContainer2/SongAuthor")
slider = NodePath("VBoxContainer/Slider")
[node name="ColorRect" type="TextureRect" parent="."]
clip_children = 1
z_index = -1
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("2_haeb5")
expand_mode = 3
stretch_mode = 5
[node name="TextureRect" type="TextureRect" parent="ColorRect"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
texture = ExtResource("3_j8vo6")
expand_mode = 3
stretch_mode = 6
[node name="Sprite2D" type="Sprite2D" parent="."]
clip_children = 1
position = Vector2(-95.3115, -216)
texture = SubResource("GradientTexture2D_kcqx3")
[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
size_flags_horizontal = 3
theme = SubResource("Theme_yr2ao")
alignment = 1
[node name="ScrollContainer" type="ScrollContainer" parent="VBoxContainer"]
custom_minimum_size = Vector2(200, 25)
layout_mode = 2
size_flags_horizontal = 4
horizontal_scroll_mode = 3
vertical_scroll_mode = 0
[node name="SongName" type="RichTextLabel" parent="VBoxContainer/ScrollContainer"]
custom_minimum_size = Vector2(200, 30)
layout_mode = 2
size_flags_horizontal = 6
size_flags_vertical = 4
text = "Playing now TOOOOOOOOOOTT"
fit_content = true
scroll_active = false
autowrap_mode = 0
horizontal_alignment = 1
[node name="ScrollContainer2" type="ScrollContainer" parent="VBoxContainer"]
custom_minimum_size = Vector2(200, 25)
layout_mode = 2
size_flags_horizontal = 4
horizontal_scroll_mode = 3
vertical_scroll_mode = 0
[node name="SongAuthor" type="RichTextLabel" parent="VBoxContainer/ScrollContainer2"]
custom_minimum_size = Vector2(200, 30)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
text = "from protein ribosome"
autowrap_mode = 0
horizontal_alignment = 1
visible_characters_behavior = 3
[node name="Slider" type="HSlider" parent="VBoxContainer"]
custom_minimum_size = Vector2(120, 0)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
theme_override_icons/grabber_disabled = SubResource("ImageTexture_yr2ao")
theme_override_styles/slider = SubResource("StyleBoxFlat_haeb5")
theme_override_styles/grabber_area = SubResource("StyleBoxFlat_yr2ao")
max_value = 1000.0
value = 500.0
editable = false
scrollable = false
-53
View File
@@ -1,53 +0,0 @@
[gd_scene load_steps=3 format=3 uid="uid://ctqcbjrmxaqsk"]
[ext_resource type="Script" uid="uid://c3aaxhp0oim08" path="res://Scripts/search_item.gd" id="1_j4126"]
[ext_resource type="Texture2D" uid="uid://dwvy6crqhardn" path="res://Icons/Dropdown.png" id="2_hicj1"]
[node name="SearchItem" type="Control"]
custom_minimum_size = Vector2(0, 30)
layout_mode = 3
anchors_preset = 10
anchor_right = 1.0
grow_horizontal = 2
size_flags_horizontal = 3
size_flags_vertical = 4
script = ExtResource("1_j4126")
[node name="HBoxContainer" type="HBoxContainer" parent="."]
custom_minimum_size = Vector2(200, 32)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
alignment = 1
[node name="Songname" type="Button" parent="HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
focus_mode = 0
flat = true
alignment = 0
text_overrun_behavior = 1
clip_text = true
[node name="Dropdown" type="Button" parent="HBoxContainer"]
custom_minimum_size = Vector2(20, 0)
layout_mode = 2
tooltip_text = "delete song from hard-drive"
focus_mode = 0
icon = ExtResource("2_hicj1")
flat = true
icon_alignment = 1
expand_icon = true
[node name="PopupMenu" type="PopupMenu" parent="."]
item_count = 2
item_0/text = "DELETE"
item_0/id = 0
item_1/text = "open source"
item_1/id = 1
[connection signal="pressed" from="HBoxContainer/Songname" to="." method="_on_songname_pressed"]
[connection signal="pressed" from="HBoxContainer/Dropdown" to="." method="_on_dropdown_pressed"]
-42
View File
@@ -1,42 +0,0 @@
[gd_scene load_steps=2 format=3 uid="uid://bel6i6wdbexw4"]
[ext_resource type="Script" uid="uid://d0hvudugo3d37" path="res://Scripts/search_results.gd" id="1_mcn1o"]
[node name="SearchResults" type="Control"]
layout_mode = 3
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -311.5
offset_right = 311.5
offset_bottom = 300.0
grow_horizontal = 2
script = ExtResource("1_mcn1o")
[node name="ColorRect" type="ColorRect" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
color = Color(0.14902, 0.14902, 0.14902, 1)
[node name="Control" type="ScrollContainer" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
follow_focus = true
horizontal_scroll_mode = 0
[node name="ItemContainer" type="VBoxContainer" parent="Control"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
+130
View File
@@ -0,0 +1,130 @@
[gd_scene load_steps=11 format=3 uid="uid://e1638m72yit4"]
[ext_resource type="Theme" uid="uid://vhvx5qjav337" path="res://ClearTheme.tres" id="1_g8rey"]
[ext_resource type="Texture2D" uid="uid://bp4ipephewcrn" path="res://SmoothEdges.png" id="1_rr0ra"]
[ext_resource type="Texture2D" uid="uid://dvid0yk4kh5hq" path="res://Images/Eveningsmall.jpg" id="1_s3st5"]
[ext_resource type="Texture2D" uid="uid://df2e70jxwrmjs" path="res://Icons/BackOne.png" id="2_7ks72"]
[ext_resource type="Texture2D" uid="uid://ctb4s2nks73rx" path="res://Icons/Play.png" id="3_x84vf"]
[ext_resource type="Texture2D" uid="uid://daq8wnhtscpjl" path="res://Icons/Skip.png" id="4_rr0ra"]
[sub_resource type="Gradient" id="Gradient_s3st5"]
offsets = PackedFloat32Array(0, 0.5338983, 0.80508476, 1)
colors = PackedColorArray(0, 0, 0, 1, 0, 0, 0, 0.34433544, 0, 0, 0, 0.11016947, 0, 0, 0, 0)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_7ks72"]
gradient = SubResource("Gradient_s3st5")
width = 128
height = 128
fill = 1
fill_from = Vector2(0.5, 0.5)
fill_to = Vector2(0.5, 0)
metadata/_snap_enabled = true
metadata/_snap_count = 12
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_rqjnj"]
texture = SubResource("GradientTexture2D_7ks72")
[sub_resource type="LabelSettings" id="LabelSettings_7ks72"]
font_size = 25
[node name="SimplifiedInterface" type="Control" unique_id=721327160]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme = ExtResource("1_g8rey")
[node name="CenterContainer" type="CenterContainer" parent="." unique_id=1734276215]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Centerroot" type="Control" parent="CenterContainer" unique_id=891907347]
layout_mode = 2
[node name="Panel" type="Panel" parent="CenterContainer/Centerroot" unique_id=861126034]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -325.0
offset_top = -325.0
offset_right = 325.0
offset_bottom = 325.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
theme_override_styles/panel = SubResource("StyleBoxTexture_rqjnj")
[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer/Centerroot" unique_id=471497401]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -149.5
offset_top = -147.5
offset_right = 149.5
offset_bottom = 147.5
grow_horizontal = 2
grow_vertical = 2
[node name="TextureRect" type="TextureRect" parent="CenterContainer/Centerroot/VBoxContainer" unique_id=883547640]
clip_children = 1
custom_minimum_size = Vector2(256, 0)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
texture = ExtResource("1_rr0ra")
expand_mode = 4
stretch_mode = 6
[node name="TextureRect2" type="TextureRect" parent="CenterContainer/Centerroot/VBoxContainer/TextureRect" unique_id=1486812090]
custom_minimum_size = Vector2(256, 0)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 4
size_flags_vertical = 4
texture = ExtResource("1_s3st5")
expand_mode = 4
stretch_mode = 6
[node name="Label" type="Label" parent="CenterContainer/Centerroot/VBoxContainer" unique_id=1889746587]
layout_mode = 2
size_flags_vertical = 3
text = "SimpleSong - SimplAudio"
label_settings = SubResource("LabelSettings_7ks72")
[node name="Buens" type="HBoxContainer" parent="CenterContainer/Centerroot/VBoxContainer" unique_id=766446512]
layout_mode = 2
alignment = 1
[node name="GoBack" type="Button" parent="CenterContainer/Centerroot/VBoxContainer/Buens" unique_id=231535849]
custom_minimum_size = Vector2(66, 66)
layout_mode = 2
icon = ExtResource("2_7ks72")
expand_icon = true
[node name="PausePlay" type="Button" parent="CenterContainer/Centerroot/VBoxContainer/Buens" unique_id=591623444]
custom_minimum_size = Vector2(66, 66)
layout_mode = 2
icon = ExtResource("3_x84vf")
expand_icon = true
[node name="Skip" type="Button" parent="CenterContainer/Centerroot/VBoxContainer/Buens" unique_id=1881362143]
custom_minimum_size = Vector2(66, 66)
layout_mode = 2
icon = ExtResource("4_rr0ra")
expand_icon = true
+104
View File
@@ -0,0 +1,104 @@
[gd_scene load_steps=5 format=3 uid="uid://c21wc1bq2pnm"]
[ext_resource type="Script" uid="uid://bs55rsv7eh4l5" path="res://Scripts/Backend/SongDisplay.cs" id="1_76jf4"]
[ext_resource type="Texture2D" uid="uid://dwvy6crqhardn" path="res://Icons/Dropdown.png" id="2_x33bo"]
[sub_resource type="LabelSettings" id="LabelSettings_swnt4"]
font_size = 20
shadow_size = 2
shadow_color = Color(0, 0, 0, 0.564706)
[sub_resource type="LabelSettings" id="LabelSettings_8tgr4"]
font_color = Color(0.791999, 0.791999, 0.791999, 1)
shadow_size = 2
shadow_color = Color(0, 0, 0, 0.564706)
[node name="SongDisplay" type="Control" node_paths=PackedStringArray("background", "NameLabel", "ArtistLabel", "PlayButton")]
custom_minimum_size = Vector2(0, 75)
layout_mode = 3
anchors_preset = 10
anchor_right = 1.0
grow_horizontal = 2
script = ExtResource("1_76jf4")
background = NodePath("TextureRect")
NameLabel = NodePath("VBoxContainer/Name")
ArtistLabel = NodePath("VBoxContainer/Artist")
PlayButton = NodePath("Playbutton")
[node name="Panel" type="Panel" parent="."]
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="TextureRect" type="TextureRect" parent="."]
custom_minimum_size = Vector2(0, 75)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
expand_mode = 3
stretch_mode = 6
[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
size_flags_horizontal = 3
mouse_filter = 2
[node name="Name" type="Label" parent="VBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 6
text = "Name"
label_settings = SubResource("LabelSettings_swnt4")
clip_text = true
text_overrun_behavior = 3
[node name="Artist" type="Label" parent="VBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 6
text = "Artist"
label_settings = SubResource("LabelSettings_8tgr4")
clip_text = true
text_overrun_behavior = 3
[node name="Playbutton" type="Button" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
flat = true
[node name="MenuButton" type="MenuButton" parent="."]
layout_mode = 1
anchors_preset = 6
anchor_left = 1.0
anchor_top = 0.5
anchor_right = 1.0
anchor_bottom = 0.5
offset_left = -22.0
offset_top = -31.5
offset_bottom = 31.5
grow_horizontal = 0
grow_vertical = 2
icon = ExtResource("2_x33bo")
expand_icon = true
item_count = 2
popup/item_0/text = "Open URL"
popup/item_0/id = 0
popup/item_1/text = "Delete"
popup/item_1/id = 1
+40
View File
@@ -0,0 +1,40 @@
using Godot;
using System;
public partial class AddDialog : Panel
{
[Export] Control SourcesRoot;
[Export] LineEdit NameEdit;
[Export] FileDialog Dialog;
[Export] Label DirectoryLabel;
[Export] Button AddButton;
String dir = "";
// Name Dir
public event Action<String,String> NewSource;
public override void _Ready()
{
base._Ready();
AddButton.Pressed += Add;
NameEdit.TextChanged += Update;
Dialog.DirSelected += DirectorySelected;
}
void Add(){
NewSource?.Invoke(NameEdit.Text, dir);
DirectorySelected("");
AddButton.Disabled = true;
NameEdit.Text = "";
}
void DirectorySelected(String Path){
DirectoryLabel.Text = Path;
dir = Path;
Update();
}
void Update(String Newtext=""){
AddButton.Disabled = (NameEdit.Text.Replace(" ", "") == "") || dir == "" ;
}
}
+1
View File
@@ -0,0 +1 @@
uid://dl1ipi4ocs3kq
+180
View File
@@ -0,0 +1,180 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Godot;
using ATL.AudioData;
using ATL;
using System.Net.Http;
using System.Diagnostics;
public class Song{
public String Name = "";
public bool LoadedMetadata;
public String Artist = "";
public String Album = "";
public double Length;
public String Comment = "";
public String URL = "";
public String Directory = "";
public void LoadMetadata(){
if (Directory == ""){
return;
}
Track theTrack = new(Directory);
if (theTrack.AdditionalFields.TryGetValue("comment", out string value)){
URL = value;
}
Album = theTrack.Album;
Artist = theTrack.Artist;
Name = String.IsNullOrEmpty(theTrack.Title) ? Name : theTrack.Title;
Length = theTrack.Duration;
Comment = theTrack.Comment;
}
public AudioStream LoadSong(){
AudioStream Stream = new();
if (Directory.ToLower().EndsWith(".mp3")){
AudioStreamMP3 stream = AudioStreamMP3.LoadFromFile(Directory);
Stream = stream;
}
else if(Directory.ToLower().EndsWith(".wav")){
AudioStreamWav stream = AudioStreamWav.LoadFromFile(Directory);
Stream = stream;
}
else if(Directory.ToLower().EndsWith(".ogg")){
AudioStreamOggVorbis stream = AudioStreamOggVorbis.LoadFromFile(Directory);
Stream = stream;
}
Length = Stream.GetLength();
return Stream;
}
public Image LoadImage(){
var TLfile = TagLib.File.Create(Directory);
if (TLfile.Tag.Pictures.Length == 0){
return null;
}
String type = TLfile.Tag.Pictures[0].MimeType;
byte[] pictureData = TLfile.Tag.Pictures[0].Data.Data;
Image image = new();
Error error;
switch (type)
{
case "image/jpeg":
error = image.LoadJpgFromBuffer(pictureData);
break;
case "image/png":
error = image.LoadPngFromBuffer(pictureData);
break;
case "image/webp":
error = image.LoadWebpFromBuffer(pictureData);
break;
}
Debug.WriteLine(image);
return image;
}
}
public static class DirectoryLoader{
public static IEnumerable<Song> LoadDirectory(String Path){
Debug.WriteLine("Loading directory");
return ParseDirectory(Path);
//if (file.EndsWith(".mp3"))
}
private static IEnumerable<Song> ParseDirectory(String Path){
IEnumerable<string> Files = Directory.EnumerateFiles(Path);
IEnumerable<Song> Songs = [];
foreach (String file in Files){
if (!(file.EndsWith(".mp3") || file.EndsWith(".ogg") || file.EndsWith(".wav"))){
continue;
}
Song song = new()
{
Directory = file,
};
String[] parts = file.Split("/");
String LastPart = parts[^1 ]; // what in the fuck does ^1 do, i forogt
song.Name = LastPart;
Songs = Songs.Append(song);
}
return Songs;
}
}
public class Source{
public String Name;
public String Path;
public bool Enabled;
public Song[] Songs = [];
public void LoadSource(){
Songs = (Song[])DirectoryLoader.LoadDirectory(Path).ToArray();
}
public Source(String name,String path){
Name = name;
Path = path;
}
}
public class MultipleSourceLoader{
Source[] Sources = [];
public Song[] LoadSongs(){
Song[] Songs = [];
foreach(Source source in Sources){
if (source.Enabled){
Songs = (Song[])Songs.Concat(source.Songs);
}
}
return Songs;
}
public void RemoveSource(String Path){
Source[] NewSources = [];
foreach (Source source in Sources){
if (source.Path != Path){
source.LoadSource();
NewSources = (Source[])NewSources.Append(source);
}
}
Sources = NewSources;
}
public void EnableSource(String Path){
GetSourceByPath(Path).Enabled = true;
}
public void DisableSource(String Path){
GetSourceByPath(Path).Enabled = false;
}
public ref Source GetSourceByPath(String Path){
for (int i = 0; i < Sources.Length;i++)
{
if (Sources[i].Path == Path)
{
return ref Sources[i];
}
}
return ref Sources[0];
}
}
class URLImageGetter{
public static String GetImageURL(String source){
String cleansource = source;
String ImageURL = "";
if (cleansource.StartsWith("https://")){
cleansource = cleansource.Remove(0,8);
}
Debug.WriteLine(cleansource);
if (cleansource.StartsWith("www.youtube")){
ImageURL = "https://i.ytimg.com/vi/";
ImageURL += cleansource.Split("?")[1].Split("&")[0].Replace("v=","");
ImageURL += "/hq720.jpg";
}
Debug.WriteLine("converted " + source + " to " + ImageURL);
return ImageURL;
}
}
+1
View File
@@ -0,0 +1 @@
uid://d11mq4j0hupmu
+88
View File
@@ -0,0 +1,88 @@
using System;
using System.Collections.Generic;
using System.Linq;
using DiscordRPC;
using Godot;
public class RichPresenceManager{
public static RichPresenceManager instance;
public static DiscordRpcClient client;
public const string DISCORD_APP_ID = "1276916292170809426";
RichPresence CurrentPresence;
public void Setup(){
client = new DiscordRpcClient(DISCORD_APP_ID,autoEvents:false);
client.Initialize();
client.SetPresence(new RichPresence()
{
Details = "Just started up...",
State = "Listening",
DetailsUrl = "https://realbucketofchicken.github.io/SimplSite/simplaudio.html",
StatusDisplay = StatusDisplayType.Name,
Type = DiscordRPC.ActivityType.Listening,
Assets = new DiscordRPC.Assets()
{
SmallImageText = "Simpaudio",
}
});
client.OnReady += (sender, msg) =>
{
//Create some events so we know things are happening
GD.Print("Connected to discord with user ", msg.User.Username);
GD.Print("Avatar: ", msg.User.GetAvatarURL(User.AvatarFormat.WebP));
GD.Print("Decoration: ", msg.User.GetAvatarDecorationURL());
};
}
public void SetPresence(Song song){
if (!song.LoadedMetadata){
song.LoadMetadata();
}
Timestamps SongTimespan = Timestamps.FromTimeSpan(song.Length);
List<DiscordRPC.Button> buttons = [new DiscordRPC.Button(){
Label = "About Simplaudio",
Url = "https://realbucketofchicken.github.io/SimplSite/simplaudio.html"
}];
if (song.URL != ""){
buttons.Add(new DiscordRPC.Button(){
Label = "Open song",
Url = song.URL
});
}
GD.Print("Song end rpc set to ", SongTimespan.EndUnixMilliseconds/1000);
GD.Print("artist is : ", song.Artist);
CurrentPresence = new RichPresence()
{
Details = song.Name,
State = song.Artist ,
StatusDisplay = (!String.IsNullOrEmpty(song.Artist)) ? StatusDisplayType.Details : StatusDisplayType.Details,
Type = DiscordRPC.ActivityType.Listening,
Assets = new DiscordRPC.Assets()
{
LargeImageKey = URLImageGetter.GetImageURL(song.URL),
SmallImageKey = (URLImageGetter.GetImageURL(song.URL) != "") ? "logo" : "",
SmallImageText = "Simpaudio",
},
Timestamps = SongTimespan,
Buttons = buttons.ToArray()
};
client.SetPresence(CurrentPresence);
}
public void UpdateTime(double progress,double totaltime,bool paused) {
GD.Print("total ", totaltime, " progess", progress," without ",totaltime-progress);
Timestamps stamps = Timestamps.FromTimeSpan(totaltime-progress);
Timestamps newstamps = new()
{
Start = stamps.Start.Value.AddSeconds(-progress),
End = stamps.End.Value
};
CurrentPresence.Timestamps = newstamps;
client.SetPresence(CurrentPresence);
GD.Print(CurrentPresence.Timestamps.StartUnixMilliseconds/1000," Song end rpc set to ", CurrentPresence.Timestamps.EndUnixMilliseconds/1000);
}
public void Update() {
//Invoke the events once per-frame. The events will be executed on calling thread.
client?.Invoke();
}
}
@@ -0,0 +1 @@
uid://8lkuvswadl5r
+33
View File
@@ -0,0 +1,33 @@
using Godot;
using System;
using System.Linq;
public partial class SongDisplay : Control
{
public int DisplayId;
Song SavedInfo;
[Export] TextureRect background;
[Export] Label NameLabel;
[Export] Label ArtistLabel;
[Export] Button PlayButton;
[Export] MenuButton OpenURLButton;
public void Setup(Song info){
SavedInfo = info;
Image image = info.LoadImage();
if (image != null){
ImageTexture tex = ImageTexture.CreateFromImage(image);
background.Texture = tex;
}
NameLabel.Text = SavedInfo.Name;
ArtistLabel.Text = SavedInfo.Artist;
//OpenURLButton.GetPopup().Connect("id_pressed", new Callable(this, "id_pressed"));
}
void URLOpen(){
OS.ShellOpen(SavedInfo.URL);
}
public void id_pressed(int idx){
}
}
+1
View File
@@ -0,0 +1 @@
uid://bs55rsv7eh4l5
-20
View File
@@ -1,20 +0,0 @@
shader_type canvas_item;
void vertex() {
// Called for every vertex the material is visible on.
}
void fragment() {
vec2 animatedUV;
animatedUV.x = (sin(UV.x + (TIME))/2.0)+0.5;
animatedUV.y = (sin(UV.y + (TIME+(PI/2.0)))/2.0)+0.5;
float color1 = 1.0 *animatedUV.x;
float color2 = 1.0 *animatedUV.y;
COLOR = vec4((color1*0.7)+(color2*0.3),(color1*0.5)+(color2*0.5),(color1*0.3)+(color2*0.7),1);
}
//void light() {
// Called for every pixel for every light affecting the CanvasItem.
// Uncomment to replace the default light processing function with this one.
//}
-1
View File
@@ -1 +0,0 @@
uid://dgwslfj43mu1y
-1
View File
@@ -1 +0,0 @@
uid://cv5aoaprqfuhx
-14
View File
@@ -1,14 +0,0 @@
extends ColorRect
@onready var StandardColor = color
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
if get_parent().is_hovered():
color = StandardColor.lightened(0.3)
else:
color = StandardColor
-1
View File
@@ -1 +0,0 @@
uid://cf1rsngucr7e2
-20
View File
@@ -1,20 +0,0 @@
shader_type canvas_item;
uniform float intensity;
uniform sampler2D screen_texture : hint_screen_texture, repeat_disable, filter_nearest;
void vertex() {
// Called for every vertex the material is visible on.
}
void fragment() {
vec4 as = texture(screen_texture,SCREEN_UV);
vec4 a2s = texture(TEXTURE,UV);
vec4 fart = a2s * (0.1 + as.brga);
COLOR = fart * intensity;
}
//void light() {
// Called for every pixel for every light affecting the CanvasItem.
// Uncomment to replace the default light processing function with this one.
//}
-1
View File
@@ -1 +0,0 @@
uid://b8g2xx06g626m
+26
View File
@@ -0,0 +1,26 @@
using Godot;
using System;
public partial class SourceDisplay : Control
{
public event Action Changed;
public Source source;
[Export] CheckBox EnabledCheck;
[Export] Label NameLabel;
[Export] Label PathLabel;
public bool Enabled;
public void Update(){
PathLabel.Text = source.Path;
NameLabel.Text = source.Name;
EnabledCheck.Toggled += Toggled;
}
void Toggled(bool enabled){
Enabled = enabled;
Changed?.Invoke();
}
void Delete(){
Enabled = false;
Changed?.Invoke();
QueueFree();
}
}
+1
View File
@@ -0,0 +1 @@
uid://du2j3lspxge7f
+163
View File
@@ -0,0 +1,163 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System;
using Godot;
using System.Diagnostics;
using System.Collections;
public partial class SourceLoader : Node
{
AudioStreamPlayer player;
Song CurrentSong;
bool ModifyingProgressbar;
RichPresenceManager RichPresence;
[Export] SourceManager manager;
[ExportSubgroup("UI Elements")]
[Export] Button playbutton;
[Export] Button backbutton;
[Export] Button skipbutton;
[Export] Button loopbutton;
[Export] HSlider progressbar;
[Export] Label progresslabel;
[Export] Label TitleLabel;
[Export] Label ArtistLabel;
[Export] Label AlbumLabel;
[Export] TextureRect CoverArt;
[ExportSubgroup("Resources")]
[Export] Texture2D PausedIcon;
[Export] Texture2D PlayingIcon;
event Action<Song> UpdatedSong;
int last_time;
public override void _Ready()
{
base._Ready();
playbutton.Pressed += PausePlay;
backbutton.Pressed += PlayLast;
skipbutton.Pressed += PlayNext;
RichPresence = new();
RichPresence.Setup();
progressbar.DragStarted += StartInteractionProgressbar;
progressbar.DragEnded += StopInteractionProgressbar;
}
public override void _Process(double delta)
{
base._Process(delta);
if (player != null && player.Stream != null){
if (!ModifyingProgressbar){
progressbar.Value = player.GetPlaybackPosition()/player.Stream.GetLength();
}
else{
if (last_time != (int)(progressbar.Value * player.Stream.GetLength())){
player.Play((float)(progressbar.Value * player.Stream.GetLength()));
}
last_time = (int)(progressbar.Value * player.Stream.GetLength());
}
progresslabel.Text = GetTimeFormattedString((float)(progressbar.Value * player.Stream.GetLength()),(float)(player.Stream.GetLength())) + " / " + GetTimeFormattedString((float)(player.Stream.GetLength()));
}
}
static String GetTimeFormattedString(float time,float maxTime = 0){
if (maxTime == 0){
maxTime = time;
}
int seconds = (int)time % 60;
int minutes = (int)time / 60 % 60;
int hours = (int)time / 3600 % 60;
String SecondsString = seconds < 10 ? "0"+ seconds.ToString() : seconds.ToString();
String MinutesString = maxTime > 60 ? minutes.ToString() + ":" : "";
String HoursString = maxTime > 3600 ? hours.ToString() + ":" : "";
return HoursString + MinutesString + SecondsString;
}
public IEnumerable<Song> GetSongs(){
return manager.Songs;
}
public int GetCurrentIndex(){
int index = -1;
for (int i = 0; i < manager.Songs.Length - 1;i++){
if (CurrentSong == manager.Songs[i]){
index = i;
break;
}
}
Debug.WriteLine("GOt: " + index.ToString());
return index;
}
void PausePlay(){
if (playbutton.ButtonPressed){
player.StreamPaused = true;
RichPresence.UpdateTime(progressbar.Value * player.Stream.GetLength(),player.Stream.GetLength(),true);
playbutton.Icon = PausedIcon;
}
else{
player.StreamPaused = false;
RichPresence.UpdateTime(progressbar.Value * player.Stream.GetLength(),player.Stream.GetLength(),false);
playbutton.Icon = PlayingIcon;
}
}
void PlayNext(){
int index = (GetCurrentIndex()+1) % manager.Songs.Length;
ref Song newSong = ref manager.Songs[index];
CurrentSong = newSong;
PlaySong(ref CurrentSong);
}
void PlayLast(){
int index = (GetCurrentIndex()-1) % manager.Songs.Length;
if (index < 0){
index += manager.Songs.Length;
}
ref Song newSong = ref manager.Songs[index];
CurrentSong = newSong;
PlaySong(ref CurrentSong);
}
void PlaySong(ref Song song){
player?.QueueFree();
player = new();
GetTree().Root.CallDeferred("add_child",player);
player.Stream = song.LoadSong();
player.CallDeferred("play");
player.Finished += SongEnded;
RichPresence.SetPresence(song);
playbutton.ButtonPressed = false;
UpdatedSong?.Invoke(song);
if (!song.LoadedMetadata){
song.LoadMetadata();
}
TitleLabel.Text = song.Name;
ArtistLabel.Text = song.Artist;
AlbumLabel.Text = song.Album;
ImageTexture adfj = ImageTexture.CreateFromImage(song.LoadImage());
CoverArt.Texture = adfj;
playbutton.Icon = PlayingIcon;
}
void SongEnded(){
if (loopbutton.ButtonPressed){
player.Play();
}
else{
PlayNext();
}
}
void StartInteractionProgressbar(){
ModifyingProgressbar = true;
}
void StopInteractionProgressbar(bool changed){
ModifyingProgressbar = false;
playbutton.ButtonPressed = false;
playbutton.Icon = PlayingIcon;
RichPresence.UpdateTime(progressbar.Value * player.Stream.GetLength(),player.Stream.GetLength(),false);
last_time = -1;
}
}
+1
View File
@@ -0,0 +1 @@
uid://f5kkp8ovi107
+38
View File
@@ -0,0 +1,38 @@
using Godot;
using System;
using System.Linq;
public partial class SourceManager : Node
{
[Export] Control SourceRoot;
[Export] AddDialog AddDialog;
[Export] PackedScene SourceDisplayScene;
public Song[] Songs = [];
MultipleSourceLoader loader;
public override void _Ready()
{
base._Ready();
loader = new();
AddDialog.NewSource += NewSource;
}
void NewSource(String Name,String Directory){
SourceDisplay display = (SourceDisplay)SourceDisplayScene.Instantiate();
SourceRoot.AddChild(display);
Source newsource = new(Name,Directory);
display.source = newsource;
display.Changed += UpdateSongs;
display.Update();
UpdateSongs();
}
void UpdateSongs(){
Song[] NewSongs = [];
foreach(SourceDisplay display in SourceRoot.GetChildren()){
if (display.Enabled){
NewSongs = (Song[])NewSongs.Concat(display.source.Songs);
display.source.LoadSource();
}
}
Songs = NewSongs;
}
}
+1
View File
@@ -0,0 +1 @@
uid://cl8087ysk6gbg
-11
View File
@@ -1,11 +0,0 @@
extends Sprite2D
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
rotation_degrees += 90 * delta * 2
-1
View File
@@ -1 +0,0 @@
uid://bx75h6xic1hi7
-38
View File
@@ -1,38 +0,0 @@
extends Control
@onready var birthday_particles: GPUParticles2D = $BirthdayParticles
@onready var audio_stream_player: AudioStreamPlayer = $AudioStreamPlayer
@onready var birthday_happy: Label = $"../BirthdayHappy"
@export var opacitycurve:Curve
var opacity:float = 1
var awaitingJumpscare:bool
var IsFocused:bool
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
birthday_happy.hide()
var bday:bool
if Time.get_datetime_dict_from_system().day == 9:
if Time.get_datetime_dict_from_system().month == 9:
await get_tree().create_timer(0.2).timeout
awaitingJumpscare = true
bday = true
func _notification(what):
if what == get_tree().NOTIFICATION_APPLICATION_FOCUS_IN:
IsFocused = true
if what == get_tree().NOTIFICATION_APPLICATION_FOCUS_OUT:
IsFocused = false
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
if awaitingJumpscare && IsFocused:
birthday_happy.show()
awaitingJumpscare = false
birthday_particles.emitting = true
audio_stream_player.play()
if !awaitingJumpscare:
opacity -= delta/5
birthday_happy.modulate.a = opacitycurve.sample_baked(opacity)
if opacity <= 0.0:
process_mode = ProcessMode.PROCESS_MODE_DISABLED
-1
View File
@@ -1 +0,0 @@
uid://n3koklp0funr
-28
View File
@@ -1,28 +0,0 @@
extends Sprite2D
class_name Cover
@onready var MusiMet : MusicMeta = MusicMeta.new()
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
if texture != null:
var relation:float = (float(texture.get_width()) / texture.get_height())
print(" relation " + str(texture.get_width()) + " " + str(texture.get_height()))
print(relation)
scale.x = 400.0 / float(texture.get_width())
scale.y = 400.0 / float(texture.get_height() * relation)
position.x = float(texture.get_width() * scale.x) / 2
position.y = -float(texture.get_height() * scale.y) / 2
func ChangeCover(AudioFile:AudioStreamMP3):
texture = MusiMet.get_mp3_metadata(AudioFile).cover
if texture != null:
var relation:float = (float(texture.get_width()) / texture.get_height())
print(" relation " + str(texture.get_width()) + " " + str(texture.get_height()))
print(relation)
scale.x = 400.0 / float(texture.get_width())
scale.y = 400.0 / float(texture.get_height() * relation)
position.x = float(texture.get_width() * scale.x) / 2
position.y = -float(texture.get_height() * scale.y) / 2
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
-1
View File
@@ -1 +0,0 @@
uid://dg68hvw773xu6
-94
View File
@@ -1,94 +0,0 @@
extends Control
@onready var good_indicator: Label = $ScrollContainer/VBoxContainer/GoodIndicator
@onready var create_playlist_button: Button = $ScrollContainer/VBoxContainer/CreatePlaylistButton
@onready var file_dialog: FileDialog = $FileDialog
@onready var current_directory: Label = $ScrollContainer/VBoxContainer/CurrentDirectory
@onready var playlist_name: LineEdit = $ScrollContainer/VBoxContainer/PlaylistName
@onready var playlists_holder: VBoxContainer = $"../PlaylistPanelHolder/PlaylistsPanel/PlaylistsContainer/VBoxContainer/PlaylistsHolder"
const PLAYLIST_DISPLAY = preload("res://Scenes/PlaylistDisplay.tscn")
@onready var Parent:MainScene = owner
var NameValid:bool
var DirValid:bool
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
func IsValid():
if NameValid:
if DirValid:
create_playlist_button.disabled = false
else:
create_playlist_button.disabled = true
else:
create_playlist_button.disabled = true
func _on_playlist_name_text_changed(new_text: String) -> void:
#elif new_text.unicode_at()
if !Parent.Playlists.has(new_text):
if new_text != "":
good_indicator.text = tr("NAME_VALID")
good_indicator.label_settings.font_color = Color(0,1,0,1)
NameValid =true
else:
good_indicator.text = tr("NAME_EMPTY")
good_indicator.label_settings.font_color = Color(1,0,0,1)
NameValid = false
else:
good_indicator.text = tr("NAME_USED")
good_indicator.label_settings.font_color = Color(1,0,0,1)
NameValid = false
IsValid()
func _on_select_dir_button_pressed() -> void:
file_dialog.show()
print(get_stack())
func _on_file_dialog_dir_selected(dir: String) -> void:
if dir != "":
DirValid = true
else:
DirValid = false
current_directory.text = dir
IsValid()
func ResetToDefault():
playlist_name.clear()
good_indicator.text = ""
good_indicator.label_settings.font_color = Color(1,1,1,1)
NameValid = false
create_playlist_button.disabled = true
func _on_create_playlist_button_pressed() -> void:
Parent.PlaylistsLocation[playlist_name.text] = current_directory.text
var Access = DirAccess.open(current_directory.text)
if Access != null:
@warning_ignore("static_called_on_instance")
var Read:Array = Access.get_files_at(current_directory.text)
var songs:Array
var WavDisclaimer:bool
for song:String in Read:
if song.contains(".mp3"):
songs.append(song)
Parent.Playlists[playlist_name.text] = songs
else:
Parent.Playlists[playlist_name.text] = []
var child = PLAYLIST_DISPLAY.instantiate()
child.PlaylistName = playlist_name.text
child.PlaylistLocation = Parent.PlaylistsLocation[playlist_name.text]
child.PlaylistSongs = Parent.Playlists[playlist_name.text]
playlists_holder.add_child(child)
hide()
ResetToDefault()
func _on_close_button_pressed() -> void:
hide()
-1
View File
@@ -1 +0,0 @@
uid://bsnt1irskti8d
-17
View File
@@ -1,17 +0,0 @@
extends Button
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
#await get_tree().create_timer(0.3).timeout
pass
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
func _on_toggled(toggled_on: bool) -> void:
owner.DiscordRichPresenceEnabled = toggled_on
owner.Parent.SaveEverything()
-1
View File
@@ -1 +0,0 @@
uid://dl37gwyodonea
-69
View File
@@ -1,69 +0,0 @@
extends VBoxContainer
var HzDec = {0:"32 Hz",
1:"100 Hz",
2:"320 Hz",
3:"1000 Hz",
4:"3200 Hz",
5:"10000 Hz"}
var gainValueLabels:Array = []
var gainValueSlider:Array = []
@onready var eq_check_box: CheckBox = $"../EQCheckBox"
@onready var EQA:AudioEffectEQ6 = AudioServer.get_bus_effect(AudioServer.get_bus_index("Music"),1)
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
for band in EQA.get_band_count():
var slider:HSlider = HSlider.new()
slider.min_value = -100
slider.max_value = 20
slider.custom_minimum_size = Vector2(200,0)
slider.name = str(band)
slider.value_changed.connect(valueChanged.bind(slider))
var label:Label = Label.new()
label.text = HzDec.get(band)
var label2:Label = Label.new()
label2.text = " 0 "
var seperator:HSplitContainer = HSplitContainer.new()
var seperator2:HSplitContainer = HSplitContainer.new()
seperator.dragger_visibility = SplitContainer.DRAGGER_HIDDEN_COLLAPSED
seperator2.dragger_visibility = SplitContainer.DRAGGER_HIDDEN_COLLAPSED
add_child(seperator)
seperator.size_flags_horizontal = Control.SIZE_SHRINK_BEGIN
seperator.split_offset = 200
seperator.clamp_split_offset()
seperator.add_child(slider)
gainValueSlider.append(slider)
seperator.add_child(seperator2)
seperator2.add_child(label2)
gainValueLabels.append(label2)
seperator2.add_child(label)
func valueChanged(value,slider):
var idx = slider.name.to_int()
print(idx)
print(gainValueLabels)
EQA.set_band_gain_db(idx,value)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
for band in EQA.get_band_count():
gainValueLabels[band].text = str(" " + str(EQA.get_band_gain_db(band)) + " db ")
func _on_reset_pressed() -> void:
for band in EQA.get_band_count():
EQA.set_band_gain_db(band,0)
gainValueSlider[band].value = 0
eq_check_box.button_pressed = false
gainValueLabels[band].text = str(" " + str(EQA.get_band_gain_db(band)) + " db ")
-1
View File
@@ -1 +0,0 @@
uid://kt7n1epi3ng8
-15
View File
@@ -1,15 +0,0 @@
extends Button
@export var Open:String
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
func _pressed() -> void:
OS.shell_open(Open)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
-1
View File
@@ -1 +0,0 @@
uid://bn0iqqmor3b2b
-14
View File
@@ -1,14 +0,0 @@
extends MenuButton
@export var settings:Settings
func _ready() -> void:
for trans_language in TranslationServer.get_loaded_locales():
get_popup().add_item(trans_language)
get_popup().id_pressed.connect(got_pressed)
func got_pressed(id:int) -> void:
settings.Parent.overridden_locale = get_popup().get_item_text(id)
TranslationServer.set_locale(get_popup().get_item_text(id))
settings.Parent.SaveEverything()
-1
View File
@@ -1 +0,0 @@
uid://cej7efsj2cyen

Some files were not shown because too many files have changed in this diff Show More