From e2c514c684b10a28518f180e365e06b1be1e3913 Mon Sep 17 00:00:00 2001 From: KevinKor01 Date: Mon, 15 Sep 2025 16:59:07 +0300 Subject: [PATCH] GUI!!!!!!!!!!!!!! --- API/Tiri.py | 5 + CLI/Init.py | 73 +++++- GUI/.gitattributes | 2 + GUI/.gitignore | 2 + GUI/ErrorPanel.gd | 16 ++ GUI/Throbber.gd | 40 ++++ GUI/loading.tscn | 428 +++++++++++++++++++++++++++++++++++ GUI/project.godot | 20 ++ GUI/svg/Settings.svg | 1 + GUI/svg/Settings.svg.import | 37 +++ GUI/svg/Throbber.svg | 8 + GUI/svg/Throbber.svg.import | 37 +++ GUI/svg/Trophys.svg | 1 + GUI/svg/Trophys.svg.import | 37 +++ GUI/svg/User.svg | 4 + GUI/svg/User.svg.import | 37 +++ GUI/svg/Warning.svg | 50 ++++ GUI/svg/Warning.svg.import | 37 +++ GUI/svg/icon.svg | 1 + GUI/svg/icon.svg.import | 37 +++ GUI/svg/switchOFF.svg | 57 +++++ GUI/svg/switchOFF.svg.import | 14 ++ GUI/svg/switchON.svg | 57 +++++ GUI/svg/switchON.svg.import | 14 ++ 24 files changed, 1014 insertions(+), 1 deletion(-) create mode 100644 GUI/.gitattributes create mode 100644 GUI/.gitignore create mode 100644 GUI/ErrorPanel.gd create mode 100644 GUI/Throbber.gd create mode 100644 GUI/loading.tscn create mode 100644 GUI/project.godot create mode 100644 GUI/svg/Settings.svg create mode 100644 GUI/svg/Settings.svg.import create mode 100644 GUI/svg/Throbber.svg create mode 100644 GUI/svg/Throbber.svg.import create mode 100644 GUI/svg/Trophys.svg create mode 100644 GUI/svg/Trophys.svg.import create mode 100644 GUI/svg/User.svg create mode 100644 GUI/svg/User.svg.import create mode 100644 GUI/svg/Warning.svg create mode 100644 GUI/svg/Warning.svg.import create mode 100644 GUI/svg/icon.svg create mode 100644 GUI/svg/icon.svg.import create mode 100644 GUI/svg/switchOFF.svg create mode 100644 GUI/svg/switchOFF.svg.import create mode 100644 GUI/svg/switchON.svg create mode 100644 GUI/svg/switchON.svg.import diff --git a/API/Tiri.py b/API/Tiri.py index e67c115..2cf0721 100644 --- a/API/Tiri.py +++ b/API/Tiri.py @@ -41,6 +41,11 @@ def tiropit_add_user(): return jsonify({"error": "UserPIN must be 4 characters long"}), 400 + if isinstance(awards_data, str): + awards_data = json.loads(awards_data) + if isinstance(user_games_data, str): + user_games_data = json.loads(user_games_data) + connection = get_db_connection() if connection is None: diff --git a/CLI/Init.py b/CLI/Init.py index 01518b9..126119c 100644 --- a/CLI/Init.py +++ b/CLI/Init.py @@ -4,6 +4,8 @@ from pathlib import Path import requests import argparse import sys +import tkinter as tk +from tkinter import filedialog parser = argparse.ArgumentParser(description='TiropitLauncher CLI & Back-End') parser.add_argument('-backend', help="Runs the app in backend mode (no UI)", action="store_true") @@ -74,6 +76,19 @@ def makeConfig(): config.write(configfile) +def select_folder(): + root = tk.Tk() + root.withdraw() + + folder_path = filedialog.askdirectory() + if folder_path: + print(f"Selected folder: {folder_path}") + else: + print("No folder was selected.") + + return folder_path + + def TiropitLogin(): class menuData(): @@ -230,7 +245,61 @@ def debugMenu(): case _: menuData.mainMenu() +def Gamesmenu(): + class menuData(): + def mainMenu(): + Display.Clear() + showIntroText() + print(f"|[Games] [{Server.Icon}]|") + print("|1. Minecraft Tiropit |") + print("|2. CS2 (Comming Soon) |") + print("| |") + print("|[e] Exit |") + print("======================================================") + option = input(">> ") + if option == "": menuData.mainMenu() + match option: + case "e": + showMenu(1) + return 0 + case "1": + menuData.MinecraftMenu() + case _: + menuData.mainMenu() + def MinecraftMenu(): + Display.Clear() + showIntroText() + print(f"|[Minecraft] [{Server.Icon}]|") + print("|1. Update |") + print("|2. Install |") + print("| |") + print("|[e] Exit |") + print("======================================================") + option = input(">> ") + if option == "": menuData.mainMenu() + match option: + case "e": + menuData.mainMenu() + return 0 + case "2": + menuData.installMenu() + case _: + menuData.MinecraftMenu() + def installMenu(): + Display.Clear() + showIntroText() + print(f"|[Minecraft] [{Server.Icon}]|") + print("|1. Select Install Location |") + print("======================================================") + print(select_folder()) + print("| |") + print("|[e] Exit |") + print("======================================================") + + + + menuData.mainMenu() @@ -244,7 +313,7 @@ def showMenu(menuID): print("|[Main menu] |") print("|[1] Log in to tiropit | [2] Reset Data & Config |") print("|[3] Send / Get Request| [4] My Profile |") - print("|[5] Debug Data | |") + print("|[5] Debug Data | [6] Games |") print("|[e] Exit |") print("======================================================") option = input(">> ") @@ -257,6 +326,8 @@ def showMenu(menuID): TiropitLogin() case "5": debugMenu() + case "6": + Gamesmenu() case "e": print("Cya!") exit(); diff --git a/GUI/.gitattributes b/GUI/.gitattributes new file mode 100644 index 0000000..8ad74f7 --- /dev/null +++ b/GUI/.gitattributes @@ -0,0 +1,2 @@ +# Normalize EOL for all files that Git considers text files. +* text=auto eol=lf diff --git a/GUI/.gitignore b/GUI/.gitignore new file mode 100644 index 0000000..4709183 --- /dev/null +++ b/GUI/.gitignore @@ -0,0 +1,2 @@ +# Godot 4+ specific ignores +.godot/ diff --git a/GUI/ErrorPanel.gd b/GUI/ErrorPanel.gd new file mode 100644 index 0000000..a257fb8 --- /dev/null +++ b/GUI/ErrorPanel.gd @@ -0,0 +1,16 @@ +extends Panel + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + pass + + +func _on_show_error_pressed(): + $"../../AnimationPlayer".play("Show_Error") + pass # Replace with function body. diff --git a/GUI/Throbber.gd b/GUI/Throbber.gd new file mode 100644 index 0000000..ee3d967 --- /dev/null +++ b/GUI/Throbber.gd @@ -0,0 +1,40 @@ +extends TextureRect + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + if $".".rotation < 360: $".".rotation = rotation + 0.1 + else: $".".rotation = -360 + + + pass + +func showThrobber(): + $"../AnimationPlayer".play("RESET") + $"../AnimationPlayer".play("Show_Throbber") + pass + + +func hideThrobber(): + + $"../AnimationPlayer".play("Hide_Throbber") + pass + + +func _on_button_pressed(): + + showThrobber() + await get_tree().create_timer(10).timeout + hideThrobber() + + pass # Replace with function body. + + +func _on_show_throbber_2_pressed(): + hideThrobber() + pass # Replace with function body. diff --git a/GUI/loading.tscn b/GUI/loading.tscn new file mode 100644 index 0000000..c3c9935 --- /dev/null +++ b/GUI/loading.tscn @@ -0,0 +1,428 @@ +[gd_scene load_steps=30 format=3 uid="uid://b608tqke81k8v"] + +[ext_resource type="Script" path="res://ErrorPanel.gd" id="1_joc8o"] +[ext_resource type="Texture2D" uid="uid://5xvpmo6a3yoo" path="res://svg/Warning.svg" id="1_w7hak"] +[ext_resource type="Texture2D" uid="uid://ilik5t6splna" path="res://svg/Settings.svg" id="2_1x1hs"] +[ext_resource type="Texture2D" uid="uid://33jm85imdybv" path="res://svg/Throbber.svg" id="2_wvjlw"] +[ext_resource type="Texture2D" uid="uid://cr41ebynd12bw" path="res://svg/Trophys.svg" id="3_4tgp2"] +[ext_resource type="Script" path="res://Throbber.gd" id="3_l17jk"] +[ext_resource type="Texture2D" uid="uid://j7rt1ewft5qs" path="res://svg/User.svg" id="3_n26ui"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_4t4qt"] +bg_color = Color(0.141176, 0.145098, 0.14902, 1) +corner_radius_top_left = 5 +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +corner_radius_bottom_left = 5 +corner_detail = 20 +shadow_offset = Vector2(0, 1) + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_cg2pq"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_d5ykn"] +bg_color = Color(0.435294, 0.439216, 0.447059, 1) +corner_radius_top_left = 5 +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +corner_radius_bottom_left = 5 +corner_detail = 20 +shadow_offset = Vector2(0, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_hh8sq"] +bg_color = Color(0.360525, 0.364431, 0.372244, 1) +corner_radius_top_left = 5 +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +corner_radius_bottom_left = 5 +corner_detail = 20 +shadow_offset = Vector2(0, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_1elua"] +bg_color = Color(0.231373, 0.235294, 0.239216, 1) +corner_radius_top_left = 5 +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +corner_radius_bottom_left = 5 +corner_detail = 20 +shadow_offset = Vector2(0, 1) + +[sub_resource type="Gradient" id="Gradient_8qfvq"] +colors = PackedColorArray(0.109422, 0.117235, 0.125536, 1, 0.195895, 0.203708, 0.211521, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_mmhso"] +gradient = SubResource("Gradient_8qfvq") +fill_from = Vector2(1, 1) + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_x56fa"] +texture = SubResource("GradientTexture2D_mmhso") + +[sub_resource type="Theme" id="Theme_03exx"] +Button/styles/disabled = SubResource("StyleBoxFlat_4t4qt") +Button/styles/focus = SubResource("StyleBoxEmpty_cg2pq") +Button/styles/hover = SubResource("StyleBoxFlat_d5ykn") +Button/styles/normal = SubResource("StyleBoxFlat_hh8sq") +Button/styles/pressed = SubResource("StyleBoxFlat_1elua") +CheckButton/icons/checked = null +CheckButton/icons/unchecked = null +Panel/styles/panel = SubResource("StyleBoxTexture_x56fa") + +[sub_resource type="Theme" id="Theme_hd0cq"] +CheckButton/icons/checked = null + +[sub_resource type="Gradient" id="Gradient_dgi3k"] +colors = PackedColorArray(0.0596131, 0.0652199, 0.0739803, 1, 0.163357, 0.170321, 0.177272, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_p352m"] +gradient = SubResource("Gradient_dgi3k") +fill_from = Vector2(0, 0.978495) +fill_to = Vector2(0, 0) + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_fp6ob"] +texture = SubResource("GradientTexture2D_p352m") + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_mqokj"] +bg_color = Color(0.188235, 0.2, 0.211765, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.45098, 0.45098, 0.45098, 1) +border_blend = true +corner_radius_top_left = 25 +corner_radius_top_right = 25 +corner_radius_bottom_right = 25 +corner_radius_bottom_left = 25 +shadow_size = 10 + +[sub_resource type="Gradient" id="Gradient_fu1yj"] +colors = PackedColorArray(0.105516, 0.113329, 0.125536, 1, 0.25421, 0.175074, 0.177013, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_y0xvk"] +gradient = SubResource("Gradient_fu1yj") +fill_from = Vector2(1, 1) + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_l51jq"] +texture = SubResource("GradientTexture2D_y0xvk") + +[sub_resource type="Animation" id="Animation_s5qm1"] +resource_name = "Show_Throbber" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Throbber:modulate") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 1), +"transitions": PackedFloat32Array(2.21914, 2.21914), +"update": 0, +"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)] +} + +[sub_resource type="Animation" id="Animation_b0age"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Throbber:modulate") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 1)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Panel/ErrorPanel:visible") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Panel/ErrorPanel:modulate") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 0)] +} + +[sub_resource type="Animation" id="Animation_ngvoo"] +resource_name = "Hide_Throbber" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Throbber:modulate") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 1), +"transitions": PackedFloat32Array(2.21914, 2.21914), +"update": 0, +"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)] +} + +[sub_resource type="Animation" id="Animation_syso0"] +resource_name = "Show_Error" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Panel/ErrorPanel:visible") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Panel/ErrorPanel:modulate") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 1), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_h86lq"] +_data = { +"Hide_Throbber": SubResource("Animation_ngvoo"), +"RESET": SubResource("Animation_b0age"), +"Show_Error": SubResource("Animation_syso0"), +"Show_Throbber": SubResource("Animation_s5qm1") +} + +[node name="Control" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme = SubResource("Theme_03exx") + +[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 = SubResource("Theme_hd0cq") + +[node name="Panel" type="Panel" parent="Panel"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="HSplitContainer" type="HSplitContainer" parent="Panel/Panel"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="Panel" type="Panel" parent="Panel/Panel/HSplitContainer"] +custom_minimum_size = Vector2(250, 0) +layout_mode = 2 +theme_override_styles/panel = SubResource("StyleBoxTexture_fp6ob") + +[node name="VBoxContainer" type="VBoxContainer" parent="Panel/Panel/HSplitContainer/Panel"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="ScrollContainer" type="ScrollContainer" parent="Panel/Panel/HSplitContainer/Panel/VBoxContainer"] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="Account" type="Panel" parent="Panel/Panel/HSplitContainer/Panel/VBoxContainer"] +custom_minimum_size = Vector2(0, 80) +layout_mode = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_mqokj") + +[node name="VBoxContainer" type="VBoxContainer" parent="Panel/Panel/HSplitContainer/Panel/VBoxContainer/Account"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 14.0 +offset_top = -1.0 +offset_right = -18.0 +offset_bottom = 2.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="HBoxContainer" type="HBoxContainer" parent="Panel/Panel/HSplitContainer/Panel/VBoxContainer/Account/VBoxContainer"] +layout_mode = 2 + +[node name="TextureRect" type="TextureRect" parent="Panel/Panel/HSplitContainer/Panel/VBoxContainer/Account/VBoxContainer/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 0 +texture = ExtResource("3_n26ui") +expand_mode = 1 +stretch_mode = 5 + +[node name="OptionButton" type="OptionButton" parent="Panel/Panel/HSplitContainer/Panel/VBoxContainer/Account/VBoxContainer/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +expand_icon = true +item_count = 4 +selected = 1 +popup/item_0/text = "Tiropit Accounts" +popup/item_0/id = 3 +popup/item_1/text = "user 1" +popup/item_1/id = 1 +popup/item_2/text = "Steam Accounts" +popup/item_2/id = 2 +popup/item_3/text = "Kevin" +popup/item_3/id = 1 + +[node name="Button" type="Button" parent="Panel/Panel/HSplitContainer/Panel/VBoxContainer/Account/VBoxContainer/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 0 +icon = ExtResource("2_1x1hs") + +[node name="Button2" type="Button" parent="Panel/Panel/HSplitContainer/Panel/VBoxContainer/Account/VBoxContainer/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 0 +icon = ExtResource("3_4tgp2") + +[node name="ProgressBar" type="ProgressBar" parent="Panel/Panel/HSplitContainer/Panel/VBoxContainer/Account/VBoxContainer"] +layout_mode = 2 +value = 24.38 + +[node name="HBoxContainer" type="HBoxContainer" parent="Panel/Panel/HSplitContainer"] +layout_mode = 2 + +[node name="ErrorPanel" type="Panel" parent="Panel"] +modulate = Color(1, 1, 1, 0) +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme = SubResource("Theme_hd0cq") +theme_override_styles/panel = SubResource("StyleBoxTexture_l51jq") +script = ExtResource("1_joc8o") + +[node name="VBoxContainer" type="VBoxContainer" parent="Panel/ErrorPanel"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="Container" type="Container" parent="Panel/ErrorPanel/VBoxContainer"] +custom_minimum_size = Vector2(0, 50) +layout_mode = 2 + +[node name="TextureRect" type="TextureRect" parent="Panel/ErrorPanel/VBoxContainer"] +custom_minimum_size = Vector2(0, 161.305) +layout_mode = 2 +size_flags_vertical = 0 +texture = ExtResource("1_w7hak") +expand_mode = 3 +stretch_mode = 5 + +[node name="Container2" type="Container" parent="Panel/ErrorPanel/VBoxContainer"] +custom_minimum_size = Vector2(0, 50) +layout_mode = 2 +size_flags_vertical = 0 + +[node name="Label" type="Label" parent="Panel/ErrorPanel/VBoxContainer"] +layout_mode = 2 +text = "An Error Has Occured" +horizontal_alignment = 1 + +[node name="Throbber" type="TextureRect" parent="."] +custom_minimum_size = Vector2(0, 60) +layout_mode = 1 +anchors_preset = -1 +anchor_left = 1.01226 +anchor_top = 1.02244 +anchor_right = 1.01226 +anchor_bottom = 1.02244 +offset_left = -124.128 +offset_top = -124.539 +offset_right = -64.1284 +offset_bottom = -64.5386 +grow_horizontal = 0 +grow_vertical = 0 +rotation = 6.28319 +pivot_offset = Vector2(30, 30) +size_flags_horizontal = 10 +size_flags_vertical = 10 +texture = ExtResource("2_wvjlw") +expand_mode = 3 +script = ExtResource("3_l17jk") +metadata/_edit_use_anchors_ = true + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +"": SubResource("AnimationLibrary_h86lq") +} + +[node name="Window" type="Window" parent="."] +position = Vector2i(0, 36) +size = Vector2i(500, 600) + +[node name="Panel" type="Panel" parent="Window"] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="VBoxContainer" type="VBoxContainer" parent="Window/Panel"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="HBoxContainer" type="HBoxContainer" parent="Window/Panel/VBoxContainer"] +layout_mode = 2 + +[node name="ShowThrobber" type="Button" parent="Window/Panel/VBoxContainer/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "testTHR" + +[node name="ShowThrobber2" type="Button" parent="Window/Panel/VBoxContainer/HBoxContainer"] +layout_mode = 2 +text = "EndTHR" + +[node name="ShowError" type="Button" parent="Window/Panel/VBoxContainer"] +layout_mode = 2 +text = "Show Error Panel" + +[connection signal="pressed" from="Window/Panel/VBoxContainer/HBoxContainer/ShowThrobber" to="Throbber" method="_on_button_pressed"] +[connection signal="pressed" from="Window/Panel/VBoxContainer/HBoxContainer/ShowThrobber2" to="Throbber" method="_on_show_throbber_2_pressed"] +[connection signal="pressed" from="Window/Panel/VBoxContainer/ShowError" to="Panel/ErrorPanel" method="_on_show_error_pressed"] diff --git a/GUI/project.godot b/GUI/project.godot new file mode 100644 index 0000000..411cf23 --- /dev/null +++ b/GUI/project.godot @@ -0,0 +1,20 @@ +; 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="Tiropit Launcher" +run/main_scene="res://loading.tscn" +config/features=PackedStringArray("4.2", "Forward Plus") +config/icon="res://svg/icon.svg" + +[display] + +window/subwindows/embed_subwindows=false diff --git a/GUI/svg/Settings.svg b/GUI/svg/Settings.svg new file mode 100644 index 0000000..d6931b8 --- /dev/null +++ b/GUI/svg/Settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/GUI/svg/Settings.svg.import b/GUI/svg/Settings.svg.import new file mode 100644 index 0000000..bd7d2fc --- /dev/null +++ b/GUI/svg/Settings.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ilik5t6splna" +path="res://.godot/imported/Settings.svg-aac7abdc1412f4fca2ee10e9f8197b96.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://svg/Settings.svg" +dest_files=["res://.godot/imported/Settings.svg-aac7abdc1412f4fca2ee10e9f8197b96.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/GUI/svg/Throbber.svg b/GUI/svg/Throbber.svg new file mode 100644 index 0000000..4f8ddca --- /dev/null +++ b/GUI/svg/Throbber.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/GUI/svg/Throbber.svg.import b/GUI/svg/Throbber.svg.import new file mode 100644 index 0000000..a16fc32 --- /dev/null +++ b/GUI/svg/Throbber.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://33jm85imdybv" +path="res://.godot/imported/Throbber.svg-d7a8a7e32f427294b2f28808be17521d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://svg/Throbber.svg" +dest_files=["res://.godot/imported/Throbber.svg-d7a8a7e32f427294b2f28808be17521d.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/GUI/svg/Trophys.svg b/GUI/svg/Trophys.svg new file mode 100644 index 0000000..ffed9da --- /dev/null +++ b/GUI/svg/Trophys.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/GUI/svg/Trophys.svg.import b/GUI/svg/Trophys.svg.import new file mode 100644 index 0000000..7435c7b --- /dev/null +++ b/GUI/svg/Trophys.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cr41ebynd12bw" +path="res://.godot/imported/Trophys.svg-15f8dbc92eaae84c764edba7553bc13b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://svg/Trophys.svg" +dest_files=["res://.godot/imported/Trophys.svg-15f8dbc92eaae84c764edba7553bc13b.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/GUI/svg/User.svg b/GUI/svg/User.svg new file mode 100644 index 0000000..548abc7 --- /dev/null +++ b/GUI/svg/User.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/GUI/svg/User.svg.import b/GUI/svg/User.svg.import new file mode 100644 index 0000000..39cd7ae --- /dev/null +++ b/GUI/svg/User.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://j7rt1ewft5qs" +path="res://.godot/imported/User.svg-8d14732b500396fc0cbb7793502f83d5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://svg/User.svg" +dest_files=["res://.godot/imported/User.svg-8d14732b500396fc0cbb7793502f83d5.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/GUI/svg/Warning.svg b/GUI/svg/Warning.svg new file mode 100644 index 0000000..ab396b0 --- /dev/null +++ b/GUI/svg/Warning.svg @@ -0,0 +1,50 @@ + + + +ionicons-v5-kionicons-v5-k diff --git a/GUI/svg/Warning.svg.import b/GUI/svg/Warning.svg.import new file mode 100644 index 0000000..eae10b4 --- /dev/null +++ b/GUI/svg/Warning.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://5xvpmo6a3yoo" +path="res://.godot/imported/Warning.svg-70bbaae63956a1633ed5782b5c6028ed.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://svg/Warning.svg" +dest_files=["res://.godot/imported/Warning.svg-70bbaae63956a1633ed5782b5c6028ed.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/GUI/svg/icon.svg b/GUI/svg/icon.svg new file mode 100644 index 0000000..b370ceb --- /dev/null +++ b/GUI/svg/icon.svg @@ -0,0 +1 @@ + diff --git a/GUI/svg/icon.svg.import b/GUI/svg/icon.svg.import new file mode 100644 index 0000000..236b3c0 --- /dev/null +++ b/GUI/svg/icon.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bf8dix406fsis" +path="res://.godot/imported/icon.svg-b25f6a603df3da61d09977cc64cb8f32.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://svg/icon.svg" +dest_files=["res://.godot/imported/icon.svg-b25f6a603df3da61d09977cc64cb8f32.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/GUI/svg/switchOFF.svg b/GUI/svg/switchOFF.svg new file mode 100644 index 0000000..3f4876d --- /dev/null +++ b/GUI/svg/switchOFF.svg @@ -0,0 +1,57 @@ + + + + + + + ionicons-v5-k + + + + + ionicons-v5-k + + + + diff --git a/GUI/svg/switchOFF.svg.import b/GUI/svg/switchOFF.svg.import new file mode 100644 index 0000000..f00fb92 --- /dev/null +++ b/GUI/svg/switchOFF.svg.import @@ -0,0 +1,14 @@ +[remap] + +importer="image" +type="Image" +uid="uid://7dki3t6t65f3" +path="res://.godot/imported/switchOFF.svg-e91f8f0e748425937a55a08a448c43ec.image" + +[deps] + +source_file="res://svg/switchOFF.svg" +dest_files=["res://.godot/imported/switchOFF.svg-e91f8f0e748425937a55a08a448c43ec.image"] + +[params] + diff --git a/GUI/svg/switchON.svg b/GUI/svg/switchON.svg new file mode 100644 index 0000000..6a18cba --- /dev/null +++ b/GUI/svg/switchON.svg @@ -0,0 +1,57 @@ + + + + + + + ionicons-v5-k + + + + + ionicons-v5-k + + + + diff --git a/GUI/svg/switchON.svg.import b/GUI/svg/switchON.svg.import new file mode 100644 index 0000000..8e5070c --- /dev/null +++ b/GUI/svg/switchON.svg.import @@ -0,0 +1,14 @@ +[remap] + +importer="image" +type="Image" +uid="uid://du6bf46c7h0ao" +path="res://.godot/imported/switchON.svg-73394c3394b3307efd9de9e29bef49df.image" + +[deps] + +source_file="res://svg/switchON.svg" +dest_files=["res://.godot/imported/switchON.svg-73394c3394b3307efd9de9e29bef49df.image"] + +[params] +