update
This commit is contained in:
@@ -0,0 +1,136 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://admin_panel"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/ui/admin_panel.gd" id="1"]
|
||||
|
||||
[node name="AdminPanel" type="PanelContainer"]
|
||||
anchors_preset = 0
|
||||
offset_right = 450.0
|
||||
offset_bottom = 500.0
|
||||
script = ExtResource("1")
|
||||
|
||||
[node name="VBox" type="VBoxContainer" parent="."]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 10
|
||||
|
||||
[node name="Header" type="HBoxContainer" parent="VBox"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Title" type="Label" parent="VBox/Header"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
theme_override_colors/font_color = Color(1, 0.4, 0.4, 1)
|
||||
theme_override_font_sizes/font_size = 20
|
||||
text = "⚙ Admin Panel"
|
||||
|
||||
[node name="CloseButton" type="Button" parent="VBox/Header"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
custom_minimum_size = Vector2(30, 30)
|
||||
text = "✕"
|
||||
|
||||
[node name="TabContainer" type="TabContainer" parent="VBox"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="Players" type="VBoxContainer" parent="VBox/TabContainer"]
|
||||
layout_mode = 2
|
||||
metadata/_tab_index = 0
|
||||
|
||||
[node name="PlayerList" type="ItemList" parent="VBox/TabContainer/Players"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
custom_minimum_size = Vector2(0, 150)
|
||||
|
||||
[node name="PlayerActions" type="HBoxContainer" parent="VBox/TabContainer/Players"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="KickBtn" type="Button" parent="VBox/TabContainer/Players/PlayerActions"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
text = "Kick"
|
||||
|
||||
[node name="BanBtn" type="Button" parent="VBox/TabContainer/Players/PlayerActions"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
text = "Ban"
|
||||
|
||||
[node name="MuteBtn" type="Button" parent="VBox/TabContainer/Players/PlayerActions"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
text = "Mute"
|
||||
|
||||
[node name="Server" type="VBoxContainer" parent="VBox/TabContainer"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
metadata/_tab_index = 1
|
||||
|
||||
[node name="StatsGrid" type="GridContainer" parent="VBox/TabContainer/Server"]
|
||||
layout_mode = 2
|
||||
columns = 2
|
||||
|
||||
[node name="Label1" type="Label" parent="VBox/TabContainer/Server/StatsGrid"]
|
||||
layout_mode = 2
|
||||
text = "Connected Players:"
|
||||
|
||||
[node name="PlayerCount" type="Label" parent="VBox/TabContainer/Server/StatsGrid"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "0"
|
||||
|
||||
[node name="Label2" type="Label" parent="VBox/TabContainer/Server/StatsGrid"]
|
||||
layout_mode = 2
|
||||
text = "Match ID:"
|
||||
|
||||
[node name="MatchIdLabel" type="Label" parent="VBox/TabContainer/Server/StatsGrid"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "N/A"
|
||||
|
||||
[node name="Label3" type="Label" parent="VBox/TabContainer/Server/StatsGrid"]
|
||||
layout_mode = 2
|
||||
text = "Server Status:"
|
||||
|
||||
[node name="ServerStatus" type="Label" parent="VBox/TabContainer/Server/StatsGrid"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(0, 1, 0.5, 1)
|
||||
text = "Running"
|
||||
|
||||
[node name="ServerActions" type="VBoxContainer" parent="VBox/TabContainer/Server"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="EndMatchBtn" type="Button" parent="VBox/TabContainer/Server/ServerActions"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "End Match"
|
||||
|
||||
[node name="RestartMatchBtn" type="Button" parent="VBox/TabContainer/Server/ServerActions"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Restart Match"
|
||||
|
||||
[node name="Bans" type="VBoxContainer" parent="VBox/TabContainer"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
metadata/_tab_index = 2
|
||||
|
||||
[node name="BanList" type="ItemList" parent="VBox/TabContainer/Bans"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
custom_minimum_size = Vector2(0, 150)
|
||||
|
||||
[node name="UnbanBtn" type="Button" parent="VBox/TabContainer/Bans"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Unban Selected"
|
||||
|
||||
[node name="StatusLabel" type="Label" parent="VBox"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 12
|
||||
horizontal_alignment = 1
|
||||
@@ -0,0 +1,236 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://login_screen"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/ui/login_screen.gd" id="1"]
|
||||
|
||||
[node name="LoginScreen" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
script = ExtResource("1")
|
||||
|
||||
[node name="Background" type="ColorRect" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
color = Color(0.039, 0.039, 0.102, 1)
|
||||
|
||||
[node name="CenterContainer" type="CenterContainer" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
|
||||
[node name="MainPanel" type="PanelContainer" parent="CenterContainer"]
|
||||
layout_mode = 2
|
||||
custom_minimum_size = Vector2(400, 0)
|
||||
|
||||
[node name="VBox" type="VBoxContainer" parent="CenterContainer/MainPanel"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 16
|
||||
|
||||
[node name="LogoLabel" type="Label" parent="CenterContainer/MainPanel/VBox"]
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(0, 0.831, 1, 1)
|
||||
theme_override_font_sizes/font_size = 48
|
||||
text = "TEKTON"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="SubtitleLabel" type="Label" parent="CenterContainer/MainPanel/VBox"]
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(0.533, 0.533, 0.6, 1)
|
||||
theme_override_font_sizes/font_size = 14
|
||||
text = "Tactical Multiplayer"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="Spacer1" type="Control" parent="CenterContainer/MainPanel/VBox"]
|
||||
layout_mode = 2
|
||||
custom_minimum_size = Vector2(0, 20)
|
||||
|
||||
[node name="GuestButton" type="Button" parent="CenterContainer/MainPanel/VBox"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
custom_minimum_size = Vector2(0, 50)
|
||||
theme_override_font_sizes/font_size = 18
|
||||
text = "▶ PLAY AS GUEST"
|
||||
|
||||
[node name="Spacer2" type="Control" parent="CenterContainer/MainPanel/VBox"]
|
||||
layout_mode = 2
|
||||
custom_minimum_size = Vector2(0, 10)
|
||||
|
||||
[node name="OrLabel" type="Label" parent="CenterContainer/MainPanel/VBox"]
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(0.4, 0.4, 0.5, 1)
|
||||
text = "─────── or sign in ───────"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="EmailInput" type="LineEdit" parent="CenterContainer/MainPanel/VBox"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
custom_minimum_size = Vector2(0, 40)
|
||||
placeholder_text = "Email"
|
||||
|
||||
[node name="PasswordInput" type="LineEdit" parent="CenterContainer/MainPanel/VBox"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
custom_minimum_size = Vector2(0, 40)
|
||||
placeholder_text = "Password"
|
||||
secret = true
|
||||
|
||||
[node name="RememberMe" type="CheckBox" parent="CenterContainer/MainPanel/VBox"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
button_pressed = true
|
||||
text = "Remember me"
|
||||
|
||||
[node name="LoginButton" type="Button" parent="CenterContainer/MainPanel/VBox"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
custom_minimum_size = Vector2(0, 45)
|
||||
text = "Sign In"
|
||||
|
||||
[node name="RegisterLink" type="LinkButton" parent="CenterContainer/MainPanel/VBox"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Don't have an account? Register"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="Spacer3" type="Control" parent="CenterContainer/MainPanel/VBox"]
|
||||
layout_mode = 2
|
||||
custom_minimum_size = Vector2(0, 10)
|
||||
|
||||
[node name="SocialLabel" type="Label" parent="CenterContainer/MainPanel/VBox"]
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(0.4, 0.4, 0.5, 1)
|
||||
text = "─────── or continue with ───────"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="SocialButtons" type="HBoxContainer" parent="CenterContainer/MainPanel/VBox"]
|
||||
layout_mode = 2
|
||||
alignment = 1
|
||||
|
||||
[node name="GoogleButton" type="Button" parent="CenterContainer/MainPanel/VBox/SocialButtons"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
custom_minimum_size = Vector2(100, 40)
|
||||
text = "Google"
|
||||
|
||||
[node name="AppleButton" type="Button" parent="CenterContainer/MainPanel/VBox/SocialButtons"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
custom_minimum_size = Vector2(100, 40)
|
||||
text = "Apple"
|
||||
|
||||
[node name="FacebookButton" type="Button" parent="CenterContainer/MainPanel/VBox/SocialButtons"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
custom_minimum_size = Vector2(100, 40)
|
||||
text = "Facebook"
|
||||
|
||||
[node name="StatusLabel" type="Label" parent="CenterContainer/MainPanel/VBox"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(1, 0.4, 0.4, 1)
|
||||
horizontal_alignment = 1
|
||||
autowrap_mode = 2
|
||||
|
||||
[node name="LoadingSpinner" type="TextureProgressBar" parent="CenterContainer/MainPanel/VBox"]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
custom_minimum_size = Vector2(40, 40)
|
||||
size_flags_horizontal = 4
|
||||
|
||||
[node name="RegistrationPanel" type="PanelContainer" parent="CenterContainer"]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
custom_minimum_size = Vector2(400, 0)
|
||||
|
||||
[node name="VBox" type="VBoxContainer" parent="CenterContainer/RegistrationPanel"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 12
|
||||
|
||||
[node name="Title" type="Label" parent="CenterContainer/RegistrationPanel/VBox"]
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(0, 0.831, 1, 1)
|
||||
theme_override_font_sizes/font_size = 24
|
||||
text = "Create Account"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="RegEmailInput" type="LineEdit" parent="CenterContainer/RegistrationPanel/VBox"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
custom_minimum_size = Vector2(0, 40)
|
||||
placeholder_text = "Email"
|
||||
|
||||
[node name="RegUsernameInput" type="LineEdit" parent="CenterContainer/RegistrationPanel/VBox"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
custom_minimum_size = Vector2(0, 40)
|
||||
placeholder_text = "Username"
|
||||
|
||||
[node name="RegPasswordInput" type="LineEdit" parent="CenterContainer/RegistrationPanel/VBox"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
custom_minimum_size = Vector2(0, 40)
|
||||
placeholder_text = "Password"
|
||||
secret = true
|
||||
|
||||
[node name="RegConfirmPasswordInput" type="LineEdit" parent="CenterContainer/RegistrationPanel/VBox"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
custom_minimum_size = Vector2(0, 40)
|
||||
placeholder_text = "Confirm Password"
|
||||
secret = true
|
||||
|
||||
[node name="PasswordStrength" type="ProgressBar" parent="CenterContainer/RegistrationPanel/VBox"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
custom_minimum_size = Vector2(0, 8)
|
||||
max_value = 4.0
|
||||
show_percentage = false
|
||||
|
||||
[node name="PasswordHint" type="Label" parent="CenterContainer/RegistrationPanel/VBox"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(0.533, 0.533, 0.6, 1)
|
||||
theme_override_font_sizes/font_size = 11
|
||||
text = "Min 8 characters, include number and symbol"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="RegisterButton" type="Button" parent="CenterContainer/RegistrationPanel/VBox"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
custom_minimum_size = Vector2(0, 45)
|
||||
text = "Create Account"
|
||||
|
||||
[node name="BackToLoginLink" type="LinkButton" parent="CenterContainer/RegistrationPanel/VBox"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Already have an account? Sign In"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="RegStatusLabel" type="Label" parent="CenterContainer/RegistrationPanel/VBox"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(1, 0.4, 0.4, 1)
|
||||
horizontal_alignment = 1
|
||||
autowrap_mode = 2
|
||||
|
||||
[node name="VersionLabel" 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 = -100.0
|
||||
offset_top = -25.0
|
||||
offset_right = -10.0
|
||||
offset_bottom = -10.0
|
||||
theme_override_colors/font_color = Color(0.3, 0.3, 0.4, 1)
|
||||
theme_override_font_sizes/font_size = 11
|
||||
text = "v1.0.0"
|
||||
horizontal_alignment = 2
|
||||
@@ -0,0 +1,138 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://profile_panel"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/ui/profile_panel.gd" id="1"]
|
||||
|
||||
[node name="ProfilePanel" type="PanelContainer"]
|
||||
anchors_preset = 0
|
||||
offset_right = 350.0
|
||||
offset_bottom = 400.0
|
||||
script = ExtResource("1")
|
||||
|
||||
[node name="VBox" type="VBoxContainer" parent="."]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 12
|
||||
|
||||
[node name="Header" type="HBoxContainer" parent="VBox"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Title" type="Label" parent="VBox/Header"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
theme_override_colors/font_color = Color(0, 0.831, 1, 1)
|
||||
theme_override_font_sizes/font_size = 20
|
||||
text = "Profile"
|
||||
|
||||
[node name="CloseButton" type="Button" parent="VBox/Header"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
custom_minimum_size = Vector2(30, 30)
|
||||
text = "✕"
|
||||
|
||||
[node name="AvatarSection" type="HBoxContainer" parent="VBox"]
|
||||
layout_mode = 2
|
||||
alignment = 1
|
||||
|
||||
[node name="AvatarDisplay" type="TextureRect" parent="VBox/AvatarSection"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
custom_minimum_size = Vector2(80, 80)
|
||||
expand_mode = 1
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="AvatarButtons" type="VBoxContainer" parent="VBox/AvatarSection"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="ChangeAvatarBtn" type="Button" parent="VBox/AvatarSection/AvatarButtons"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Change Avatar"
|
||||
|
||||
[node name="DisplayNameSection" type="VBoxContainer" parent="VBox"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Label" type="Label" parent="VBox/DisplayNameSection"]
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(0.533, 0.533, 0.6, 1)
|
||||
text = "Display Name"
|
||||
|
||||
[node name="HBox" type="HBoxContainer" parent="VBox/DisplayNameSection"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="DisplayNameInput" type="LineEdit" parent="VBox/DisplayNameSection/HBox"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
custom_minimum_size = Vector2(0, 35)
|
||||
max_length = 50
|
||||
|
||||
[node name="SaveNameBtn" type="Button" parent="VBox/DisplayNameSection/HBox"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Save"
|
||||
|
||||
[node name="Separator1" type="HSeparator" parent="VBox"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="StatsSection" type="VBoxContainer" parent="VBox"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="StatsTitle" type="Label" parent="VBox/StatsSection"]
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(0, 0.831, 1, 1)
|
||||
text = "Statistics"
|
||||
|
||||
[node name="GamesPlayed" type="Label" parent="VBox/StatsSection"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Games Played: 0"
|
||||
|
||||
[node name="WinRate" type="Label" parent="VBox/StatsSection"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Win Rate: 0%"
|
||||
|
||||
[node name="HighScore" type="Label" parent="VBox/StatsSection"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "High Score: 0"
|
||||
|
||||
[node name="Separator2" type="HSeparator" parent="VBox"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="AccountSection" type="VBoxContainer" parent="VBox"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="AccountType" type="Label" parent="VBox/AccountSection"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(0.533, 0.533, 0.6, 1)
|
||||
text = "Account: Guest"
|
||||
|
||||
[node name="LinkAccountBtn" type="Button" parent="VBox/AccountSection"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Link Email (Keep Progress)"
|
||||
|
||||
[node name="LogoutBtn" type="Button" parent="VBox/AccountSection"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Logout"
|
||||
|
||||
[node name="StatusLabel" type="Label" parent="VBox"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 12
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="AvatarSelectionPopup" type="PopupPanel" parent="."]
|
||||
unique_name_in_owner = true
|
||||
title = "Select Avatar"
|
||||
size = Vector2i(300, 200)
|
||||
|
||||
[node name="GridContainer" type="GridContainer" parent="AvatarSelectionPopup"]
|
||||
unique_name_in_owner = true
|
||||
offset_left = 10.0
|
||||
offset_top = 10.0
|
||||
offset_right = 290.0
|
||||
offset_bottom = 190.0
|
||||
columns = 3
|
||||
Reference in New Issue
Block a user