Files
tekton/scenes/ui/admin_panel.tscn
T
2026-05-19 17:30:29 +08:00

570 lines
18 KiB
Plaintext

[gd_scene load_steps=2 format=3 uid="uid://biio8efqysivs"]
[ext_resource type="Script" uid="uid://ic8fg0o0p0i4" path="res://scripts/ui/admin_panel.gd" id="1"]
[ext_resource type="PackedScene" uid="uid://dp12345678" path="res://scenes/ui/date_picker.tscn" id="2_dp"]
[node name="AdminPanel" type="Panel"]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1")
[node name="BG" 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.1, 0.1, 0.12, 1)
[node name="Margin" type="MarginContainer" parent="."]
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 = 24
theme_override_constants/margin_top = 16
theme_override_constants/margin_right = 24
theme_override_constants/margin_bottom = 16
[node name="VBox" type="VBoxContainer" parent="Margin"]
layout_mode = 2
theme_override_constants/separation = 8
[node name="Header" type="HBoxContainer" parent="Margin/VBox"]
layout_mode = 2
theme_override_constants/separation = 12
[node name="Title" type="Label" parent="Margin/VBox/Header"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
text = "SERVER ADMIN PANEL"
[node name="CountLabel" type="Label" parent="Margin/VBox/Header"]
unique_name_in_owner = true
layout_mode = 2
text = "0 items"
[node name="RefreshBtn" type="Button" parent="Margin/VBox/Header"]
unique_name_in_owner = true
custom_minimum_size = Vector2(90, 32)
layout_mode = 2
text = "Refresh"
[node name="CloseBtn" type="Button" parent="Margin/VBox/Header"]
unique_name_in_owner = true
custom_minimum_size = Vector2(32, 32)
layout_mode = 2
text = "X"
[node name="Sep" type="HSeparator" parent="Margin/VBox"]
layout_mode = 2
[node name="Tabs" type="TabContainer" parent="Margin/VBox"]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 3
current_tab = 0
[node name="Users" type="VBoxContainer" parent="Margin/VBox/Tabs"]
layout_mode = 2
theme_override_constants/separation = 8
metadata/_tab_index = 0
[node name="UserTree" type="Tree" parent="Margin/VBox/Tabs/Users"]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 3
columns = 6
column_titles_visible = true
allow_reselect = true
hide_root = true
select_mode = 1
[node name="UserActionBar" type="HBoxContainer" parent="Margin/VBox/Tabs/Users"]
layout_mode = 2
theme_override_constants/separation = 8
[node name="SelectAllBtn" type="Button" parent="Margin/VBox/Tabs/Users/UserActionBar"]
unique_name_in_owner = true
custom_minimum_size = Vector2(100, 36)
layout_mode = 2
text = "Select All"
[node name="DeselectBtn" type="Button" parent="Margin/VBox/Tabs/Users/UserActionBar"]
unique_name_in_owner = true
custom_minimum_size = Vector2(100, 36)
layout_mode = 2
text = "Deselect All"
[node name="Spacer" type="Control" parent="Margin/VBox/Tabs/Users/UserActionBar"]
layout_mode = 2
size_flags_horizontal = 3
[node name="SelectedLabel" type="Label" parent="Margin/VBox/Tabs/Users/UserActionBar"]
unique_name_in_owner = true
layout_mode = 2
text = "0 selected"
[node name="HistoryBtn" type="Button" parent="Margin/VBox/Tabs/Users/UserActionBar"]
unique_name_in_owner = true
custom_minimum_size = Vector2(80, 36)
layout_mode = 2
text = "HISTORY"
[node name="BanBtn" type="Button" parent="Margin/VBox/Tabs/Users/UserActionBar"]
unique_name_in_owner = true
custom_minimum_size = Vector2(80, 36)
layout_mode = 2
text = "BAN"
[node name="UnbanBtn" type="Button" parent="Margin/VBox/Tabs/Users/UserActionBar"]
unique_name_in_owner = true
custom_minimum_size = Vector2(80, 36)
layout_mode = 2
text = "UNBAN"
[node name="DeleteBtn" type="Button" parent="Margin/VBox/Tabs/Users/UserActionBar"]
unique_name_in_owner = true
custom_minimum_size = Vector2(80, 36)
layout_mode = 2
text = "DELETE"
[node name="Leaderboards" type="VBoxContainer" parent="Margin/VBox/Tabs"]
visible = false
layout_mode = 2
theme_override_constants/separation = 8
metadata/_tab_index = 1
[node name="LeaderboardTree" type="Tree" parent="Margin/VBox/Tabs/Leaderboards"]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 3
columns = 6
column_titles_visible = true
allow_reselect = true
hide_root = true
[node name="LBActionBar" type="HBoxContainer" parent="Margin/VBox/Tabs/Leaderboards"]
layout_mode = 2
theme_override_constants/separation = 8
alignment = 2
[node name="SyncLeaderboardBtn" type="Button" parent="Margin/VBox/Tabs/Leaderboards/LBActionBar"]
unique_name_in_owner = true
custom_minimum_size = Vector2(160, 36)
layout_mode = 2
text = "Sync with Storage"
[node name="ResetLBBtn" type="Button" parent="Margin/VBox/Tabs/Leaderboards/LBActionBar"]
unique_name_in_owner = true
visible = false
custom_minimum_size = Vector2(120, 36)
layout_mode = 2
text = "Reset All Scores"
[node name="Daily Rewards" type="VBoxContainer" parent="Margin/VBox/Tabs"]
visible = false
layout_mode = 2
theme_override_constants/separation = 8
metadata/_tab_index = 2
[node name="MonthHBox" type="HBoxContainer" parent="Margin/VBox/Tabs/Daily Rewards"]
layout_mode = 2
theme_override_constants/separation = 12
[node name="Label" type="Label" parent="Margin/VBox/Tabs/Daily Rewards/MonthHBox"]
layout_mode = 2
text = "Target Month:"
[node name="MonthOptionBtn" type="OptionButton" parent="Margin/VBox/Tabs/Daily Rewards/MonthHBox"]
unique_name_in_owner = true
custom_minimum_size = Vector2(150, 0)
layout_mode = 2
[node name="DaysScroll" type="ScrollContainer" parent="Margin/VBox/Tabs/Daily Rewards"]
layout_mode = 2
size_flags_vertical = 3
[node name="DaysGrid" type="GridContainer" parent="Margin/VBox/Tabs/Daily Rewards/DaysScroll"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
theme_override_constants/h_separation = 10
theme_override_constants/v_separation = 10
columns = 6
[node name="DayConfigTemplate" type="PanelContainer" parent="Margin/VBox/Tabs/Daily Rewards/DaysScroll/DaysGrid"]
unique_name_in_owner = true
visible = false
layout_mode = 2
size_flags_horizontal = 3
[node name="ColorRect" type="ColorRect" parent="Margin/VBox/Tabs/Daily Rewards/DaysScroll/DaysGrid/DayConfigTemplate"]
layout_mode = 2
color = Color(0.12, 0.12, 0.12, 1)
[node name="Border" type="ReferenceRect" parent="Margin/VBox/Tabs/Daily Rewards/DaysScroll/DaysGrid/DayConfigTemplate"]
layout_mode = 2
border_color = Color(0.25, 0.25, 0.25, 1)
border_width = 1.0
editor_only = false
[node name="Margin" type="MarginContainer" parent="Margin/VBox/Tabs/Daily Rewards/DaysScroll/DaysGrid/DayConfigTemplate"]
layout_mode = 2
theme_override_constants/margin_left = 4
theme_override_constants/margin_top = 4
theme_override_constants/margin_right = 4
theme_override_constants/margin_bottom = 4
[node name="VBox" type="VBoxContainer" parent="Margin/VBox/Tabs/Daily Rewards/DaysScroll/DaysGrid/DayConfigTemplate/Margin"]
layout_mode = 2
[node name="DayLabel" type="Label" parent="Margin/VBox/Tabs/Daily Rewards/DaysScroll/DaysGrid/DayConfigTemplate/Margin/VBox"]
layout_mode = 2
text = "Day 1"
horizontal_alignment = 1
[node name="TypeOptionBtn" type="OptionButton" parent="Margin/VBox/Tabs/Daily Rewards/DaysScroll/DaysGrid/DayConfigTemplate/Margin/VBox"]
layout_mode = 2
alignment = 1
item_count = 5
popup/item_0/text = "star"
popup/item_0/id = 0
popup/item_1/text = "gold"
popup/item_1/id = 1
popup/item_2/text = "frag_common"
popup/item_2/id = 2
popup/item_3/text = "frag_uncommon"
popup/item_3/id = 3
popup/item_4/text = "frag_rare"
popup/item_4/id = 4
[node name="AmountSpinBox" type="SpinBox" parent="Margin/VBox/Tabs/Daily Rewards/DaysScroll/DaysGrid/DayConfigTemplate/Margin/VBox"]
layout_mode = 2
max_value = 10000.0
alignment = 1
[node name="DRActionBar" type="HBoxContainer" parent="Margin/VBox/Tabs/Daily Rewards"]
layout_mode = 2
theme_override_constants/separation = 8
alignment = 2
[node name="LoadDRConfigBtn" type="Button" parent="Margin/VBox/Tabs/Daily Rewards/DRActionBar"]
unique_name_in_owner = true
custom_minimum_size = Vector2(160, 36)
layout_mode = 2
text = "Reload Config"
[node name="SaveDRConfigBtn" type="Button" parent="Margin/VBox/Tabs/Daily Rewards/DRActionBar"]
unique_name_in_owner = true
custom_minimum_size = Vector2(160, 36)
layout_mode = 2
text = "Save Config"
[node name="Announcements" type="VBoxContainer" parent="Margin/VBox/Tabs"]
visible = false
layout_mode = 2
theme_override_constants/separation = 12
metadata/_tab_index = 3
[node name="TargetHBox" type="HBoxContainer" parent="Margin/VBox/Tabs/Announcements"]
layout_mode = 2
theme_override_constants/separation = 8
[node name="Label" type="Label" parent="Margin/VBox/Tabs/Announcements/TargetHBox"]
layout_mode = 2
text = "Target:"
[node name="TargetUserEdit" type="LineEdit" parent="Margin/VBox/Tabs/Announcements/TargetHBox"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
placeholder_text = "Username or User ID (empty = ALL)"
[node name="FindUserBtn" type="Button" parent="Margin/VBox/Tabs/Announcements/TargetHBox"]
unique_name_in_owner = true
custom_minimum_size = Vector2(80, 0)
layout_mode = 2
text = "Find"
[node name="ResolvedIdLabel" type="Label" parent="Margin/VBox/Tabs/Announcements/TargetHBox"]
unique_name_in_owner = true
layout_mode = 2
theme_override_colors/font_color = Color(0.4, 0.9, 0.4, 1)
text = ""
[node name="TitleEdit" type="LineEdit" parent="Margin/VBox/Tabs/Announcements"]
unique_name_in_owner = true
layout_mode = 2
placeholder_text = "Message Title"
[node name="ContentEdit" type="TextEdit" parent="Margin/VBox/Tabs/Announcements"]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 150)
layout_mode = 2
placeholder_text = "Message Content"
[node name="ScheduleHBox" type="HBoxContainer" parent="Margin/VBox/Tabs/Announcements"]
layout_mode = 2
theme_override_constants/separation = 12
[node name="LabelStart" type="Label" parent="Margin/VBox/Tabs/Announcements/ScheduleHBox"]
layout_mode = 2
text = "Start:"
[node name="StartDatePicker" parent="Margin/VBox/Tabs/Announcements/ScheduleHBox" instance=ExtResource("2_dp")]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
[node name="LabelEnd" type="Label" parent="Margin/VBox/Tabs/Announcements/ScheduleHBox"]
layout_mode = 2
text = "End:"
[node name="EndDatePicker" parent="Margin/VBox/Tabs/Announcements/ScheduleHBox" instance=ExtResource("2_dp")]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
[node name="RewardsHeader" type="HBoxContainer" parent="Margin/VBox/Tabs/Announcements"]
layout_mode = 2
[node name="Label" type="Label" parent="Margin/VBox/Tabs/Announcements/RewardsHeader"]
layout_mode = 2
size_flags_horizontal = 3
text = "Attached Rewards"
[node name="AddRewardBtn" type="Button" parent="Margin/VBox/Tabs/Announcements/RewardsHeader"]
unique_name_in_owner = true
custom_minimum_size = Vector2(100, 30)
layout_mode = 2
text = "+ ADD"
[node name="RewardsList" type="VBoxContainer" parent="Margin/VBox/Tabs/Announcements"]
unique_name_in_owner = true
layout_mode = 2
theme_override_constants/separation = 8
[node name="RewardRowTemplate" type="HBoxContainer" parent="Margin/VBox/Tabs/Announcements"]
unique_name_in_owner = true
visible = false
layout_mode = 2
theme_override_constants/separation = 8
[node name="TypeOption" type="OptionButton" parent="Margin/VBox/Tabs/Announcements/RewardRowTemplate"]
custom_minimum_size = Vector2(100, 0)
layout_mode = 2
item_count = 4
selected = 0
popup/item_0/text = "star"
popup/item_0/id = 0
popup/item_1/text = "gold"
popup/item_1/id = 1
popup/item_2/text = "item"
popup/item_2/id = 2
popup/item_3/text = "skin"
popup/item_3/id = 3
[node name="IdEdit" type="LineEdit" parent="Margin/VBox/Tabs/Announcements/RewardRowTemplate"]
layout_mode = 2
size_flags_horizontal = 3
placeholder_text = "Item/Skin ID (Leave empty for Star/Gold)"
[node name="AmountSpin" type="SpinBox" parent="Margin/VBox/Tabs/Announcements/RewardRowTemplate"]
layout_mode = 2
max_value = 100000.0
value = 1.0
[node name="RemoveBtn" type="Button" parent="Margin/VBox/Tabs/Announcements/RewardRowTemplate"]
layout_mode = 2
text = "X"
theme_override_colors/font_color = Color(1, 0.3, 0.3, 1)
[node name="SendMailBtn" type="Button" parent="Margin/VBox/Tabs/Announcements"]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 40)
layout_mode = 2
text = "SEND ANNOUNCEMENT"
[node name="Mail Manager" type="VBoxContainer" parent="Margin/VBox/Tabs"]
visible = false
layout_mode = 2
theme_override_constants/separation = 8
metadata/_tab_index = 4
[node name="MailTree" type="Tree" parent="Margin/VBox/Tabs/Mail Manager"]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 3
columns = 6
column_titles_visible = true
allow_reselect = true
hide_root = true
select_mode = 1
[node name="MailActionBar" type="HBoxContainer" parent="Margin/VBox/Tabs/Mail Manager"]
layout_mode = 2
theme_override_constants/separation = 8
[node name="RefreshMailBtn" type="Button" parent="Margin/VBox/Tabs/Mail Manager/MailActionBar"]
unique_name_in_owner = true
custom_minimum_size = Vector2(100, 36)
layout_mode = 2
text = "Refresh"
[node name="Spacer" type="Control" parent="Margin/VBox/Tabs/Mail Manager/MailActionBar"]
layout_mode = 2
size_flags_horizontal = 3
[node name="EditMailBtn" type="Button" parent="Margin/VBox/Tabs/Mail Manager/MailActionBar"]
unique_name_in_owner = true
custom_minimum_size = Vector2(100, 36)
layout_mode = 2
text = "Edit"
[node name="EndMailBtn" type="Button" parent="Margin/VBox/Tabs/Mail Manager/MailActionBar"]
unique_name_in_owner = true
custom_minimum_size = Vector2(120, 36)
layout_mode = 2
text = "End Now"
[node name="DeleteMailServerBtn" type="Button" parent="Margin/VBox/Tabs/Mail Manager/MailActionBar"]
unique_name_in_owner = true
custom_minimum_size = Vector2(120, 36)
layout_mode = 2
text = "Delete"
[node name="StatusLabel" type="Label" parent="Margin/VBox"]
unique_name_in_owner = true
layout_mode = 2
horizontal_alignment = 1
[node name="Shop" type="VBoxContainer" parent="Margin/VBox/Tabs"]
visible = false
layout_mode = 2
theme_override_constants/separation = 16
metadata/_tab_index = 5
[node name="HeaderLbl" type="Label" parent="Margin/VBox/Tabs/Shop"]
layout_mode = 2
text = "Featured Banner Slots (Event / Special)"
theme_override_font_sizes/font_size = 15
[node name="InfoLbl" type="Label" parent="Margin/VBox/Tabs/Shop"]
layout_mode = 2
autowrap_mode = 3
text = "Each slot shows a cosmetic item as a special event banner in the Shop sidebar. Leave Item ID blank to hide the slot."
[node name="SlotsVBox" type="VBoxContainer" parent="Margin/VBox/Tabs/Shop"]
unique_name_in_owner = true
layout_mode = 2
theme_override_constants/separation = 12
[node name="Slot1" type="HBoxContainer" parent="Margin/VBox/Tabs/Shop/SlotsVBox"]
layout_mode = 2
theme_override_constants/separation = 10
[node name="SlotLbl" type="Label" parent="Margin/VBox/Tabs/Shop/SlotsVBox/Slot1"]
custom_minimum_size = Vector2(60, 0)
layout_mode = 2
text = "Slot 1:"
vertical_alignment = 1
[node name="ItemIdEdit" type="LineEdit" parent="Margin/VBox/Tabs/Shop/SlotsVBox/Slot1"]
layout_mode = 2
size_flags_horizontal = 3
placeholder_text = "Item ID (e.g. oldpop-blue-hat)"
[node name="LabelEdit" type="LineEdit" parent="Margin/VBox/Tabs/Shop/SlotsVBox/Slot1"]
custom_minimum_size = Vector2(160, 0)
layout_mode = 2
placeholder_text = "Event label (e.g. LIMITED!)"
[node name="Slot2" type="HBoxContainer" parent="Margin/VBox/Tabs/Shop/SlotsVBox"]
layout_mode = 2
theme_override_constants/separation = 10
[node name="SlotLbl" type="Label" parent="Margin/VBox/Tabs/Shop/SlotsVBox/Slot2"]
custom_minimum_size = Vector2(60, 0)
layout_mode = 2
text = "Slot 2:"
vertical_alignment = 1
[node name="ItemIdEdit" type="LineEdit" parent="Margin/VBox/Tabs/Shop/SlotsVBox/Slot2"]
layout_mode = 2
size_flags_horizontal = 3
placeholder_text = "Item ID (e.g. oldpop-red-hat)"
[node name="LabelEdit" type="LineEdit" parent="Margin/VBox/Tabs/Shop/SlotsVBox/Slot2"]
custom_minimum_size = Vector2(160, 0)
layout_mode = 2
placeholder_text = "Event label"
[node name="Slot3" type="HBoxContainer" parent="Margin/VBox/Tabs/Shop/SlotsVBox"]
layout_mode = 2
theme_override_constants/separation = 10
[node name="SlotLbl" type="Label" parent="Margin/VBox/Tabs/Shop/SlotsVBox/Slot3"]
custom_minimum_size = Vector2(60, 0)
layout_mode = 2
text = "Slot 3:"
vertical_alignment = 1
[node name="ItemIdEdit" type="LineEdit" parent="Margin/VBox/Tabs/Shop/SlotsVBox/Slot3"]
layout_mode = 2
size_flags_horizontal = 3
placeholder_text = "Item ID (e.g. oldpop-yellow-hat)"
[node name="LabelEdit" type="LineEdit" parent="Margin/VBox/Tabs/Shop/SlotsVBox/Slot3"]
custom_minimum_size = Vector2(160, 0)
layout_mode = 2
placeholder_text = "Event label"
[node name="ShopActionBar" type="HBoxContainer" parent="Margin/VBox/Tabs/Shop"]
layout_mode = 2
theme_override_constants/separation = 8
alignment = 2
[node name="LoadBannersBtn" type="Button" parent="Margin/VBox/Tabs/Shop/ShopActionBar"]
unique_name_in_owner = true
custom_minimum_size = Vector2(140, 36)
layout_mode = 2
text = "Load Current"
[node name="SaveBannersBtn" type="Button" parent="Margin/VBox/Tabs/Shop/ShopActionBar"]
unique_name_in_owner = true
custom_minimum_size = Vector2(160, 36)
layout_mode = 2
[node name="HistoryDialog" type="AcceptDialog" parent="."]
unique_name_in_owner = true
title = "User History"
size = Vector2i(700, 500)
[node name="ScrollContainer" type="ScrollContainer" parent="HistoryDialog"]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 8.0
offset_top = 8.0
offset_right = -8.0
offset_bottom = -49.0
grow_horizontal = 2
grow_vertical = 2
[node name="HistoryText" type="RichTextLabel" parent="HistoryDialog/ScrollContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
focus_mode = 2
selection_enabled = true