Add DeployToSteamOS and Procedural Dungeon Generation addons
This commit is contained in:
101
addons/deploy_to_steamos/settings_panel/SettingsPanel.cs
Normal file
101
addons/deploy_to_steamos/settings_panel/SettingsPanel.cs
Normal file
@@ -0,0 +1,101 @@
|
||||
using Godot;
|
||||
|
||||
namespace Laura.DeployToSteamOS;
|
||||
|
||||
[Tool]
|
||||
public partial class SettingsPanel : PanelContainer
|
||||
{
|
||||
[ExportGroup("References")]
|
||||
[Export] private Label _versionLabel;
|
||||
[Export] private AddDeviceWindow _addDeviceWindow;
|
||||
[Export] private LineEdit _buildPathLineEdit;
|
||||
[Export] private FileDialog _buildPathFileDialog;
|
||||
[Export] private LineEdit _startParametersLineEdit;
|
||||
[Export] private OptionButton _uploadMethodOptionButton;
|
||||
[Export] private Label _uploadMethodDifferentialHintLabel;
|
||||
[Export] private Label _uploadMethodIncrementalHintLabel;
|
||||
[Export] private Label _uploadMethodCleanReplaceHintLabel;
|
||||
|
||||
private float _saveCooldown = 2f;
|
||||
|
||||
public override void _Process(double delta)
|
||||
{
|
||||
if (SettingsManager.Instance.IsDirty && _saveCooldown < 0f)
|
||||
{
|
||||
_saveCooldown = 2f;
|
||||
SettingsManager.Instance.Save();
|
||||
}
|
||||
|
||||
if (SettingsManager.Instance.IsDirty && Visible)
|
||||
{
|
||||
_saveCooldown -= (float)delta;
|
||||
}
|
||||
}
|
||||
|
||||
public void OnVisibilityChanged()
|
||||
{
|
||||
if (Visible)
|
||||
{
|
||||
ShowPanel();
|
||||
}
|
||||
else
|
||||
{
|
||||
HidePanel();
|
||||
}
|
||||
}
|
||||
|
||||
private void ShowPanel()
|
||||
{
|
||||
_buildPathLineEdit.Text = SettingsManager.Instance.Settings.BuildPath;
|
||||
_startParametersLineEdit.Text = SettingsManager.Instance.Settings.StartParameters;
|
||||
_uploadMethodOptionButton.Selected = (int)SettingsManager.Instance.Settings.UploadMethod;
|
||||
|
||||
_saveCooldown = 2f;
|
||||
}
|
||||
|
||||
private void HidePanel()
|
||||
{
|
||||
}
|
||||
|
||||
public void BuildPathTextChanged(string newBuildPath)
|
||||
{
|
||||
SettingsManager.Instance.Settings.BuildPath = newBuildPath;
|
||||
_buildPathLineEdit.Text = newBuildPath;
|
||||
|
||||
_saveCooldown = 2f;
|
||||
SettingsManager.Instance.IsDirty = true;
|
||||
}
|
||||
|
||||
public void BuildPathOpenFileDialog()
|
||||
{
|
||||
_buildPathFileDialog.Show();
|
||||
}
|
||||
|
||||
public void StartParametersTextChanged(string newStartParameters)
|
||||
{
|
||||
SettingsManager.Instance.Settings.StartParameters = newStartParameters;
|
||||
_startParametersLineEdit.Text = newStartParameters;
|
||||
|
||||
_saveCooldown = 2f;
|
||||
SettingsManager.Instance.IsDirty = true;
|
||||
}
|
||||
|
||||
public void UploadMethodItemSelected(int newItemIndex)
|
||||
{
|
||||
var newUploadMethod = (SettingsFile.UploadMethods)newItemIndex;
|
||||
SettingsManager.Instance.Settings.UploadMethod = newUploadMethod;
|
||||
_uploadMethodOptionButton.Selected = newItemIndex;
|
||||
|
||||
_saveCooldown = 2f;
|
||||
SettingsManager.Instance.IsDirty = true;
|
||||
|
||||
_uploadMethodDifferentialHintLabel.Visible = newUploadMethod == SettingsFile.UploadMethods.Differential;
|
||||
_uploadMethodIncrementalHintLabel.Visible = newUploadMethod == SettingsFile.UploadMethods.Incremental;
|
||||
_uploadMethodCleanReplaceHintLabel.Visible = newUploadMethod == SettingsFile.UploadMethods.CleanReplace;
|
||||
}
|
||||
|
||||
public void PairDevices()
|
||||
{
|
||||
_addDeviceWindow.Show();
|
||||
}
|
||||
}
|
||||
259
addons/deploy_to_steamos/settings_panel/settings_panel.tscn
Normal file
259
addons/deploy_to_steamos/settings_panel/settings_panel.tscn
Normal file
@@ -0,0 +1,259 @@
|
||||
[gd_scene load_steps=12 format=3 uid="uid://c8k27e2fcl21j"]
|
||||
|
||||
[ext_resource type="Script" path="res://addons/deploy_to_steamos/settings_panel/SettingsPanel.cs" id="1_sde4n"]
|
||||
[ext_resource type="Texture2D" uid="uid://s1tcpal4iir4" path="res://addons/deploy_to_steamos/icon.svg" id="2_uruwd"]
|
||||
[ext_resource type="Texture2D" uid="uid://du661vtsmqc7h" path="res://addons/deploy_to_steamos/folder.svg" id="3_w3m1c"]
|
||||
[ext_resource type="PackedScene" uid="uid://6be5afncp3nr" path="res://addons/deploy_to_steamos/add_device_window/add_device_window.tscn" id="4_yoa1a"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_txpoc"]
|
||||
content_margin_left = 15.0
|
||||
content_margin_top = 15.0
|
||||
content_margin_right = 15.0
|
||||
content_margin_bottom = 15.0
|
||||
bg_color = Color(0.0666667, 0.0666667, 0.0666667, 1)
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_t6jug"]
|
||||
content_margin_left = 15.0
|
||||
content_margin_top = 15.0
|
||||
content_margin_right = 15.0
|
||||
content_margin_bottom = 15.0
|
||||
|
||||
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_twxhr"]
|
||||
texture = ExtResource("2_uruwd")
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_jrblc"]
|
||||
content_margin_left = 15.0
|
||||
content_margin_top = 15.0
|
||||
content_margin_right = 15.0
|
||||
content_margin_bottom = 15.0
|
||||
bg_color = Color(0.133333, 0.133333, 0.133333, 1)
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_so52p"]
|
||||
content_margin_left = 5.0
|
||||
content_margin_top = 5.0
|
||||
content_margin_right = 5.0
|
||||
content_margin_bottom = 5.0
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_r6ghl"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_2gufl"]
|
||||
content_margin_left = 10.0
|
||||
content_margin_top = 10.0
|
||||
content_margin_right = 10.0
|
||||
content_margin_bottom = 10.0
|
||||
bg_color = Color(0.2, 0.2, 0.2, 1)
|
||||
corner_radius_top_left = 5
|
||||
corner_radius_top_right = 5
|
||||
corner_radius_bottom_right = 5
|
||||
corner_radius_bottom_left = 5
|
||||
|
||||
[node name="Deploy to SteamOS" type="PanelContainer" node_paths=PackedStringArray("_versionLabel", "_addDeviceWindow", "_buildPathLineEdit", "_buildPathFileDialog", "_startParametersLineEdit", "_uploadMethodOptionButton", "_uploadMethodDifferentialHintLabel", "_uploadMethodIncrementalHintLabel", "_uploadMethodCleanReplaceHintLabel")]
|
||||
offset_right = 600.0
|
||||
offset_bottom = 500.0
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_txpoc")
|
||||
script = ExtResource("1_sde4n")
|
||||
_versionLabel = NodePath("VBoxContainer/LogoContainer/VBoxContainer/VersionLabel")
|
||||
_addDeviceWindow = NodePath("AddDeviceWindow")
|
||||
_buildPathLineEdit = NodePath("VBoxContainer/ScrollContainer/SettingsContainer/BuildPathContainer/HBoxContainer/HBoxContainer/BuildPathInput")
|
||||
_buildPathFileDialog = NodePath("BuildPathFileDialog")
|
||||
_startParametersLineEdit = NodePath("VBoxContainer/ScrollContainer/SettingsContainer/StartParametersContainer/HBoxContainer/StartParametersInput")
|
||||
_uploadMethodOptionButton = NodePath("VBoxContainer/ScrollContainer/SettingsContainer/UploadMethodContainer/VBoxContainer/HBoxContainer/PanelContainer/UploadMethodOptionButton")
|
||||
_uploadMethodDifferentialHintLabel = NodePath("VBoxContainer/ScrollContainer/SettingsContainer/UploadMethodContainer/VBoxContainer/UploadMethodHintContainer/DifferentialHintLabel")
|
||||
_uploadMethodIncrementalHintLabel = NodePath("VBoxContainer/ScrollContainer/SettingsContainer/UploadMethodContainer/VBoxContainer/UploadMethodHintContainer/IncrementalHintLabel")
|
||||
_uploadMethodCleanReplaceHintLabel = NodePath("VBoxContainer/ScrollContainer/SettingsContainer/UploadMethodContainer/VBoxContainer/UploadMethodHintContainer/CleanReplaceHintLabel")
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="."]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 5
|
||||
|
||||
[node name="LogoContainer" type="PanelContainer" parent="VBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_styles/panel = SubResource("StyleBoxEmpty_t6jug")
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer/LogoContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 0
|
||||
alignment = 1
|
||||
|
||||
[node name="LogoContainer" type="HBoxContainer" parent="VBoxContainer/LogoContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 10
|
||||
alignment = 1
|
||||
|
||||
[node name="Icon" type="Panel" parent="VBoxContainer/LogoContainer/VBoxContainer/LogoContainer"]
|
||||
custom_minimum_size = Vector2(32, 32)
|
||||
layout_mode = 2
|
||||
theme_override_styles/panel = SubResource("StyleBoxTexture_twxhr")
|
||||
|
||||
[node name="DevkitPathLabel" type="Label" parent="VBoxContainer/LogoContainer/VBoxContainer/LogoContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 0
|
||||
text = "Deploy to SteamOS"
|
||||
|
||||
[node name="VersionLabel" type="Label" parent="VBoxContainer/LogoContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
theme_override_colors/font_color = Color(1, 1, 1, 0.490196)
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "Version 1.1.0"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="ScrollContainer" type="ScrollContainer" parent="VBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_jrblc")
|
||||
|
||||
[node name="SettingsContainer" type="VBoxContainer" parent="VBoxContainer/ScrollContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 0
|
||||
|
||||
[node name="BuildPathContainer" type="PanelContainer" parent="VBoxContainer/ScrollContainer/SettingsContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_styles/panel = SubResource("StyleBoxEmpty_so52p")
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/ScrollContainer/SettingsContainer/BuildPathContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 5
|
||||
|
||||
[node name="BuildPathLabel" type="Label" parent="VBoxContainer/ScrollContainer/SettingsContainer/BuildPathContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
text = "Build Path"
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/ScrollContainer/SettingsContainer/BuildPathContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
theme_override_constants/separation = 5
|
||||
|
||||
[node name="BuildPathInput" type="LineEdit" parent="VBoxContainer/ScrollContainer/SettingsContainer/BuildPathContainer/HBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
text = "C:/Users/hello/Development/Godot4-DeployToSteamOS-Builds"
|
||||
|
||||
[node name="BrowseButton" type="Button" parent="VBoxContainer/ScrollContainer/SettingsContainer/BuildPathContainer/HBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/icon_max_width = 20
|
||||
icon = ExtResource("3_w3m1c")
|
||||
|
||||
[node name="StartParametersContainer" type="PanelContainer" parent="VBoxContainer/ScrollContainer/SettingsContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_styles/panel = SubResource("StyleBoxEmpty_so52p")
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/ScrollContainer/SettingsContainer/StartParametersContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 5
|
||||
|
||||
[node name="StartParametersLabel" type="Label" parent="VBoxContainer/ScrollContainer/SettingsContainer/StartParametersContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
text = "Start Parameters"
|
||||
|
||||
[node name="StartParametersInput" type="LineEdit" parent="VBoxContainer/ScrollContainer/SettingsContainer/StartParametersContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="UploadMethodContainer" type="PanelContainer" parent="VBoxContainer/ScrollContainer/SettingsContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_styles/panel = SubResource("StyleBoxEmpty_so52p")
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer/ScrollContainer/SettingsContainer/UploadMethodContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 10
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/ScrollContainer/SettingsContainer/UploadMethodContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 5
|
||||
|
||||
[node name="UploadMethodLabel" type="Label" parent="VBoxContainer/ScrollContainer/SettingsContainer/UploadMethodContainer/VBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
text = "Upload Method"
|
||||
|
||||
[node name="PanelContainer" type="PanelContainer" parent="VBoxContainer/ScrollContainer/SettingsContainer/UploadMethodContainer/VBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
theme_override_styles/panel = SubResource("StyleBoxEmpty_r6ghl")
|
||||
|
||||
[node name="UploadMethodOptionButton" type="OptionButton" parent="VBoxContainer/ScrollContainer/SettingsContainer/UploadMethodContainer/VBoxContainer/HBoxContainer/PanelContainer"]
|
||||
layout_mode = 2
|
||||
item_count = 3
|
||||
selected = 0
|
||||
popup/item_0/text = "Differential"
|
||||
popup/item_0/id = 0
|
||||
popup/item_1/text = "Incremental"
|
||||
popup/item_1/id = 1
|
||||
popup/item_2/text = "CleanReplace"
|
||||
popup/item_2/id = 2
|
||||
|
||||
[node name="UploadMethodHintContainer" type="PanelContainer" parent="VBoxContainer/ScrollContainer/SettingsContainer/UploadMethodContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_2gufl")
|
||||
|
||||
[node name="DifferentialHintLabel" type="Label" parent="VBoxContainer/ScrollContainer/SettingsContainer/UploadMethodContainer/VBoxContainer/UploadMethodHintContainer"]
|
||||
custom_minimum_size = Vector2(0, 15)
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(1, 1, 1, 0.588235)
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "Only changed and new files of the build will be uploaded."
|
||||
autowrap_mode = 3
|
||||
|
||||
[node name="IncrementalHintLabel" type="Label" parent="VBoxContainer/ScrollContainer/SettingsContainer/UploadMethodContainer/VBoxContainer/UploadMethodHintContainer"]
|
||||
visible = false
|
||||
custom_minimum_size = Vector2(0, 15)
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(1, 1, 1, 0.588235)
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "A new build will be uploaded with the current timestamp. Existing builds will not be changed."
|
||||
autowrap_mode = 3
|
||||
|
||||
[node name="CleanReplaceHintLabel" type="Label" parent="VBoxContainer/ScrollContainer/SettingsContainer/UploadMethodContainer/VBoxContainer/UploadMethodHintContainer"]
|
||||
visible = false
|
||||
custom_minimum_size = Vector2(0, 15)
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(1, 1, 1, 0.588235)
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = "Before the new build will be uploaded, the old one will be fully removed."
|
||||
autowrap_mode = 3
|
||||
|
||||
[node name="DevicesContainer" type="PanelContainer" parent="VBoxContainer/ScrollContainer/SettingsContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_styles/panel = SubResource("StyleBoxEmpty_so52p")
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/ScrollContainer/SettingsContainer/DevicesContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 5
|
||||
|
||||
[node name="DevicesLabel" type="Label" parent="VBoxContainer/ScrollContainer/SettingsContainer/DevicesContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
text = "Devices"
|
||||
|
||||
[node name="PanelContainer" type="PanelContainer" parent="VBoxContainer/ScrollContainer/SettingsContainer/DevicesContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
theme_override_styles/panel = SubResource("StyleBoxEmpty_r6ghl")
|
||||
|
||||
[node name="PairDevicesButton" type="Button" parent="VBoxContainer/ScrollContainer/SettingsContainer/DevicesContainer/HBoxContainer/PanelContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 0
|
||||
text = "Pair Devices"
|
||||
|
||||
[node name="BuildPathFileDialog" type="FileDialog" parent="."]
|
||||
title = "Open a Directory"
|
||||
initial_position = 2
|
||||
size = Vector2i(700, 400)
|
||||
ok_button_text = "Select Current Folder"
|
||||
file_mode = 2
|
||||
access = 2
|
||||
|
||||
[node name="AddDeviceWindow" parent="." instance=ExtResource("4_yoa1a")]
|
||||
visible = false
|
||||
|
||||
[connection signal="visibility_changed" from="." to="." method="OnVisibilityChanged"]
|
||||
[connection signal="text_changed" from="VBoxContainer/ScrollContainer/SettingsContainer/BuildPathContainer/HBoxContainer/HBoxContainer/BuildPathInput" to="." method="BuildPathTextChanged"]
|
||||
[connection signal="pressed" from="VBoxContainer/ScrollContainer/SettingsContainer/BuildPathContainer/HBoxContainer/HBoxContainer/BrowseButton" to="." method="BuildPathOpenFileDialog"]
|
||||
[connection signal="text_changed" from="VBoxContainer/ScrollContainer/SettingsContainer/StartParametersContainer/HBoxContainer/StartParametersInput" to="." method="StartParametersTextChanged"]
|
||||
[connection signal="item_selected" from="VBoxContainer/ScrollContainer/SettingsContainer/UploadMethodContainer/VBoxContainer/HBoxContainer/PanelContainer/UploadMethodOptionButton" to="." method="UploadMethodItemSelected"]
|
||||
[connection signal="pressed" from="VBoxContainer/ScrollContainer/SettingsContainer/DevicesContainer/HBoxContainer/PanelContainer/PairDevicesButton" to="." method="PairDevices"]
|
||||
[connection signal="dir_selected" from="BuildPathFileDialog" to="." method="BuildPathTextChanged"]
|
||||
Reference in New Issue
Block a user