commit 70785c3b3552f168931dcc0548d9b75563b52d6b Author: LunarAkai Date: Fri Jun 27 19:37:52 2025 +0200 inital commit diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..f28239b --- /dev/null +++ b/.editorconfig @@ -0,0 +1,4 @@ +root = true + +[*] +charset = utf-8 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..8ad74f7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Normalize EOL for all files that Git considers text files. +* text=auto eol=lf diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..761bbdd --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +# Godot 4+ specific ignores +.godot/ +/android/ +/exports/ diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..dec26cb --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,13 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Rider ignored files +/contentModel.xml +/projectSettingsUpdater.xml +/.idea.whydt.iml +/modules.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..df87cf9 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/indexLayout.xml b/.idea/indexLayout.xml new file mode 100644 index 0000000..7b08163 --- /dev/null +++ b/.idea/indexLayout.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/GdSdk_Master.xml b/.idea/libraries/GdSdk_Master.xml new file mode 100644 index 0000000..364d1a8 --- /dev/null +++ b/.idea/libraries/GdSdk_Master.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/export_presets.cfg b/export_presets.cfg new file mode 100644 index 0000000..e2f6bb3 --- /dev/null +++ b/export_presets.cfg @@ -0,0 +1,41 @@ +[preset.0] + +name="Linux" +platform="Linux" +runnable=true +advanced_options=false +dedicated_server=false +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="exports/linux/whydt.x86_64" +patches=PackedStringArray() +encryption_include_filters="" +encryption_exclude_filters="" +seed=0 +encrypt_pck=false +encrypt_directory=false +script_export_mode=2 + +[preset.0.options] + +custom_template/debug="" +custom_template/release="" +debug/export_console_wrapper=1 +binary_format/embed_pck=false +texture_format/s3tc_bptc=true +texture_format/etc2_astc=false +binary_format/architecture="x86_64" +ssh_remote_deploy/enabled=false +ssh_remote_deploy/host="user@host_ip" +ssh_remote_deploy/port="22" +ssh_remote_deploy/extra_args_ssh="" +ssh_remote_deploy/extra_args_scp="" +ssh_remote_deploy/run_script="#!/usr/bin/env bash +export DISPLAY=:0 +unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\" +\"{temp_dir}/{exe_name}\" {cmd_args}" +ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash +kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\") +rm -rf \"{temp_dir}\"" diff --git a/icon.svg b/icon.svg new file mode 100644 index 0000000..9d8b7fa --- /dev/null +++ b/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icon.svg.import b/icon.svg.import new file mode 100644 index 0000000..3250ead --- /dev/null +++ b/icon.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d0txj1dmclwf5" +path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.svg" +dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/project.godot b/project.godot new file mode 100644 index 0000000..d58a3ff --- /dev/null +++ b/project.godot @@ -0,0 +1,33 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=5 + +[application] + +config/name="whydt" +run/main_scene="uid://brs37lcvmx2h5" +config/features=PackedStringArray("4.4", "Forward Plus") +run/low_processor_mode=true +boot_splash/show_image=false +boot_splash/fullsize=false +boot_splash/use_filter=false +config/icon="res://icon.svg" + +[display] + +window/size/viewport_width=1280 +window/size/viewport_height=720 +window/size/borderless=true +window/size/transparent=true +window/per_pixel_transparency/allowed=true +display_server/driver.linuxbsd="wayland" + +[rendering] + +viewport/transparent_background=true diff --git a/src/UI/close_button.gd b/src/UI/close_button.gd new file mode 100644 index 0000000..25f5529 --- /dev/null +++ b/src/UI/close_button.gd @@ -0,0 +1,15 @@ +extends Button + + +# 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 _on_pressed() -> void: + get_tree().quit() diff --git a/src/UI/close_button.gd.uid b/src/UI/close_button.gd.uid new file mode 100644 index 0000000..7172b05 --- /dev/null +++ b/src/UI/close_button.gd.uid @@ -0,0 +1 @@ +uid://cs8ywlsgql3pg diff --git a/src/UI/file_menu.gd b/src/UI/file_menu.gd new file mode 100644 index 0000000..8fb06f1 --- /dev/null +++ b/src/UI/file_menu.gd @@ -0,0 +1,11 @@ +extends PopupMenu + + +# 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 diff --git a/src/UI/file_menu.gd.uid b/src/UI/file_menu.gd.uid new file mode 100644 index 0000000..53befdb --- /dev/null +++ b/src/UI/file_menu.gd.uid @@ -0,0 +1 @@ +uid://dhgrxotssjayx diff --git a/src/UI/main.tscn b/src/UI/main.tscn new file mode 100644 index 0000000..fa70630 --- /dev/null +++ b/src/UI/main.tscn @@ -0,0 +1,177 @@ +[gd_scene load_steps=13 format=3 uid="uid://brs37lcvmx2h5"] + +[ext_resource type="Theme" uid="uid://bal6yp0a25hf2" path="res://src/theme/main_theme.tres" id="1_apmt2"] +[ext_resource type="Script" uid="uid://hiyarq0kbm45" path="res://src/UI/menu_bar.gd" id="1_rt51c"] +[ext_resource type="Texture2D" uid="uid://bpvgbghct7ayv" path="res://src/assets/icons/x.svg" id="4_6nn4n"] +[ext_resource type="Texture2D" uid="uid://duloi6af1avtm" path="res://src/assets/icons/chevron-compact-down.svg" id="5_dv4hw"] +[ext_resource type="Script" uid="uid://cs8ywlsgql3pg" path="res://src/UI/close_button.gd" id="5_teubg"] +[ext_resource type="Script" uid="uid://d3l1hl06c3n56" path="res://src/UI/minimize_button.gd" id="7_14o3q"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5vilm"] +bg_color = Color(0.962281, 0.933337, 0.999483, 1) +corner_radius_top_left = 30 +corner_radius_top_right = 30 +corner_radius_bottom_right = 30 +corner_radius_bottom_left = 30 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_dv4hw"] +bg_color = Color(0.887088, 0, 0.157561, 1) +corner_radius_top_left = 100 +corner_radius_top_right = 100 +corner_radius_bottom_right = 100 +corner_radius_bottom_left = 100 +expand_margin_left = 2.0 +expand_margin_top = 2.0 +expand_margin_right = 2.0 +expand_margin_bottom = 2.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_teubg"] +bg_color = Color(0.550207, 0, 0.0815203, 1) +corner_radius_top_left = 100 +corner_radius_top_right = 100 +corner_radius_bottom_right = 100 +corner_radius_bottom_left = 100 +expand_margin_left = 2.0 +expand_margin_top = 2.0 +expand_margin_right = 2.0 +expand_margin_bottom = 2.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_14o3q"] +bg_color = Color(1, 0.956863, 0.0823529, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_cqoei"] +bg_color = Color(0.728507, 0.695771, 0, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_apmt2"] +corner_radius_top_left = 30 +corner_radius_top_right = 30 +corner_radius_bottom_right = 30 +corner_radius_bottom_left = 30 + +[node name="Main" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[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 +theme_override_styles/panel = SubResource("StyleBoxFlat_5vilm") + +[node name="VBoxContainer" type="VBoxContainer" parent="Panel"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="MarginContainer" type="MarginContainer" parent="Panel/VBoxContainer"] +custom_minimum_size = Vector2(0, 30) +layout_mode = 2 +theme_override_constants/margin_left = 30 +theme_override_constants/margin_right = 30 + +[node name="MenuBar" type="MenuBar" parent="Panel/VBoxContainer/MarginContainer"] +layout_mode = 2 +script = ExtResource("1_rt51c") + +[node name="CloseButton" type="Button" parent="Panel/VBoxContainer/MarginContainer/MenuBar"] +layout_mode = 1 +anchors_preset = 6 +anchor_left = 1.0 +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +offset_left = -26.0 +offset_top = -10.0 +offset_right = -2.0 +offset_bottom = 14.0 +grow_horizontal = 0 +grow_vertical = 2 +theme = ExtResource("1_apmt2") +theme_type_variation = &"FlatButton" +theme_override_styles/hover = SubResource("StyleBoxFlat_dv4hw") +theme_override_styles/pressed = SubResource("StyleBoxFlat_teubg") +action_mode = 0 +icon = ExtResource("4_6nn4n") +script = ExtResource("5_teubg") + +[node name="MinimizeButton" type="Button" parent="Panel/VBoxContainer/MarginContainer/MenuBar"] +visible = false +layout_mode = 1 +anchors_preset = 6 +anchor_left = 1.0 +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +offset_left = -73.0 +offset_top = -11.5 +offset_right = -49.0 +offset_bottom = 12.5 +grow_horizontal = 0 +grow_vertical = 2 +theme = ExtResource("1_apmt2") +theme_type_variation = &"FlatButton" +theme_override_constants/outline_size = 3 +theme_override_styles/hover = SubResource("StyleBoxFlat_14o3q") +theme_override_styles/pressed = SubResource("StyleBoxFlat_cqoei") +action_mode = 0 +icon = ExtResource("5_dv4hw") +script = ExtResource("7_14o3q") + +[node name="HBoxContainer" type="HBoxContainer" parent="Panel/VBoxContainer"] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="Panel" type="Panel" parent="Panel/VBoxContainer/HBoxContainer"] +custom_minimum_size = Vector2(200, 0) +layout_mode = 2 +size_flags_horizontal = 0 +theme_override_styles/panel = SubResource("StyleBoxFlat_apmt2") + +[node name="MarginContainer" type="MarginContainer" parent="Panel/VBoxContainer/HBoxContainer/Panel"] +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 = 30 +theme_override_constants/margin_right = 10 +theme_override_constants/margin_bottom = 30 + +[node name="ScrollContainer" type="ScrollContainer" parent="Panel/VBoxContainer/HBoxContainer/Panel/MarginContainer"] +custom_minimum_size = Vector2(100, 0) +layout_mode = 2 +horizontal_scroll_mode = 0 + +[node name="VBoxContainer" type="VBoxContainer" parent="Panel/VBoxContainer/HBoxContainer/Panel/MarginContainer/ScrollContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[node name="RichTextLabel" type="RichTextLabel" parent="Panel/VBoxContainer/HBoxContainer/Panel/MarginContainer/ScrollContainer/VBoxContainer"] +layout_mode = 2 +theme = ExtResource("1_apmt2") +text = "aaaaa" +fit_content = true + +[node name="ScrollContainer" type="ScrollContainer" parent="Panel/VBoxContainer/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +horizontal_scroll_mode = 0 + +[node name="VBoxContainer" type="VBoxContainer" parent="Panel/VBoxContainer/HBoxContainer/ScrollContainer"] +layout_mode = 2 + +[connection signal="pressed" from="Panel/VBoxContainer/MarginContainer/MenuBar/CloseButton" to="Panel/VBoxContainer/MarginContainer/MenuBar/CloseButton" method="_on_pressed"] +[connection signal="pressed" from="Panel/VBoxContainer/MarginContainer/MenuBar/MinimizeButton" to="Panel/VBoxContainer/MarginContainer/MenuBar/MinimizeButton" method="_on_pressed"] diff --git a/src/UI/menu_bar.gd b/src/UI/menu_bar.gd new file mode 100644 index 0000000..5cb921e --- /dev/null +++ b/src/UI/menu_bar.gd @@ -0,0 +1,19 @@ +extends MenuBar + + +# 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 _input(event: InputEvent) -> void: + pass + +func _on_file_menu_id_pressed(id:int) -> void: + if id == 0: + get_tree().quit() diff --git a/src/UI/menu_bar.gd.uid b/src/UI/menu_bar.gd.uid new file mode 100644 index 0000000..c1adf2b --- /dev/null +++ b/src/UI/menu_bar.gd.uid @@ -0,0 +1 @@ +uid://hiyarq0kbm45 diff --git a/src/UI/minimize_button.gd b/src/UI/minimize_button.gd new file mode 100644 index 0000000..ffefbd7 --- /dev/null +++ b/src/UI/minimize_button.gd @@ -0,0 +1,4 @@ +extends Button + +func _on_pressed() -> void: + get_tree().root.mode = Window.MODE_MINIMIZED diff --git a/src/UI/minimize_button.gd.uid b/src/UI/minimize_button.gd.uid new file mode 100644 index 0000000..1368f39 --- /dev/null +++ b/src/UI/minimize_button.gd.uid @@ -0,0 +1 @@ +uid://d3l1hl06c3n56 diff --git a/src/assets/fonts/overpass-latin-400-normal.ttf b/src/assets/fonts/overpass-latin-400-normal.ttf new file mode 100644 index 0000000..d618984 Binary files /dev/null and b/src/assets/fonts/overpass-latin-400-normal.ttf differ diff --git a/src/assets/fonts/overpass-latin-400-normal.ttf.import b/src/assets/fonts/overpass-latin-400-normal.ttf.import new file mode 100644 index 0000000..407bc40 --- /dev/null +++ b/src/assets/fonts/overpass-latin-400-normal.ttf.import @@ -0,0 +1,35 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://dcpict6ixxvdw" +path="res://.godot/imported/overpass-latin-400-normal.ttf-186b96825e6326cf02118dee1697d52f.fontdata" + +[deps] + +source_file="res://src/assets/fonts/overpass-latin-400-normal.ttf" +dest_files=["res://.godot/imported/overpass-latin-400-normal.ttf-186b96825e6326cf02118dee1697d52f.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +hinting=1 +subpixel_positioning=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/src/assets/icons/chevron-compact-down.svg b/src/assets/icons/chevron-compact-down.svg new file mode 100644 index 0000000..2eae5f0 --- /dev/null +++ b/src/assets/icons/chevron-compact-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/chevron-compact-down.svg.import b/src/assets/icons/chevron-compact-down.svg.import new file mode 100644 index 0000000..9e3d223 --- /dev/null +++ b/src/assets/icons/chevron-compact-down.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://duloi6af1avtm" +path="res://.godot/imported/chevron-compact-down.svg-71bca9f8344c168edda67a228cc23752.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://src/assets/icons/chevron-compact-down.svg" +dest_files=["res://.godot/imported/chevron-compact-down.svg-71bca9f8344c168edda67a228cc23752.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/src/assets/icons/x.svg b/src/assets/icons/x.svg new file mode 100644 index 0000000..79f489b --- /dev/null +++ b/src/assets/icons/x.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/x.svg.import b/src/assets/icons/x.svg.import new file mode 100644 index 0000000..c7294ea --- /dev/null +++ b/src/assets/icons/x.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bpvgbghct7ayv" +path="res://.godot/imported/x.svg-0af056cdf47cf7d9e1123ab8f944106d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://src/assets/icons/x.svg" +dest_files=["res://.godot/imported/x.svg-0af056cdf47cf7d9e1123ab8f944106d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/src/theme/main_theme.tres b/src/theme/main_theme.tres new file mode 100644 index 0000000..91888af --- /dev/null +++ b/src/theme/main_theme.tres @@ -0,0 +1,15 @@ +[gd_resource type="Theme" load_steps=5 format=3 uid="uid://bal6yp0a25hf2"] + +[ext_resource type="FontFile" uid="uid://dcpict6ixxvdw" path="res://src/assets/fonts/overpass-latin-400-normal.ttf" id="1_04vft"] +[ext_resource type="StyleBox" uid="uid://868ty5nf7kwh" path="res://src/theme/styles/close_button.tres" id="1_o3bvj"] +[ext_resource type="StyleBox" uid="uid://kph4m57vnoas" path="res://src/theme/styles/close_button_pressed.tres" id="2_l3loh"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_04vft"] +bg_color = Color(0.6, 0.6, 0.6, 0) + +[resource] +default_font = ExtResource("1_04vft") +Button/styles/hover = ExtResource("1_o3bvj") +Button/styles/normal = SubResource("StyleBoxFlat_04vft") +Button/styles/pressed = ExtResource("2_l3loh") +MenuButton/colors/font_color = Color(0.875, 0.875, 0.875, 1) diff --git a/src/theme/styles/close_button.tres b/src/theme/styles/close_button.tres new file mode 100644 index 0000000..fc17b69 --- /dev/null +++ b/src/theme/styles/close_button.tres @@ -0,0 +1,4 @@ +[gd_resource type="StyleBoxFlat" format=3 uid="uid://868ty5nf7kwh"] + +[resource] +bg_color = Color(0.887088, 0, 0.157561, 1) diff --git a/src/theme/styles/close_button_pressed.tres b/src/theme/styles/close_button_pressed.tres new file mode 100644 index 0000000..ad03caa --- /dev/null +++ b/src/theme/styles/close_button_pressed.tres @@ -0,0 +1,4 @@ +[gd_resource type="StyleBoxFlat" format=3 uid="uid://kph4m57vnoas"] + +[resource] +bg_color = Color(0.550207, 0, 0.0815203, 1)