implement provisional bug button

(merged and cherry picked from commit 23eb1e3ed2)
This commit is contained in:
betalars 2025-03-31 13:01:07 +02:00
parent 3df6840b70
commit cfad1499ab
6 changed files with 82 additions and 27 deletions

View File

@ -0,0 +1,29 @@
class_name BugButton extends Button
func _ready() -> void:
pressed.connect(create_bug_report)
text = "copy Debug Info & open Log"
tooltip_text = "Get what is nessecary to create a Bug Report in the Steam Community Forums"
func create_bug_report():
OS.shell_show_in_file_manager(ProjectSettings.globalize_path(ProjectSettings.get_setting("debug/file_logging/log_path")))
var debug_text:String = """Help us identify the bug by
1. Telling us what you did before it happened
2. Describing what you expected to happen and what ended up happening
3. Attaching a screenshot if possible
4. Attaching the Log file that should have popped up on your screen.
5. Leaving in this information:
OS: %s
GPU: %s
Current Focus: %s
Current Scene: %s
Mementos: %s
""" % [OS.get_name(), OS.get_video_adapter_driver_info(), State.stage_list, State.current_room, Scenes.completed_sequences]
#debug_text = debug_text.replace(" ", "%20").replace("\n", "%0A").replace("\t", "")
DisplayServer.clipboard_set(debug_text)
#print("mailto:support@polynormal.games?subject=Frame%20of%20Mind%20Demo%20-%20Bug%20Report&body=" + debug_text)

View File

@ -0,0 +1 @@
uid://sa15wakvpj2e

View File

@ -0,0 +1,11 @@
[gd_scene load_steps=2 format=3 uid="uid://bcce5c1o6g13w"]
[ext_resource type="Script" uid="uid://sa15wakvpj2e" path="res://dev-util/bug_button.gd" id="1_jjjqg"]
[node name="BugButton" type="Button"]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_jjjqg")

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=66 format=3 uid="uid://befxf8uruwnrl"] [gd_scene load_steps=67 format=3 uid="uid://befxf8uruwnrl"]
[ext_resource type="Script" uid="uid://k8yppfbkq0xv" path="res://main.gd" id="1_rqkns"] [ext_resource type="Script" uid="uid://k8yppfbkq0xv" path="res://main.gd" id="1_rqkns"]
[ext_resource type="PackedScene" uid="uid://gldtxysavetf" path="res://logic-scenes/startup/startup.tscn" id="1_v5rpm"] [ext_resource type="PackedScene" uid="uid://gldtxysavetf" path="res://logic-scenes/startup/startup.tscn" id="1_v5rpm"]
@ -12,6 +12,7 @@
[ext_resource type="Texture2D" uid="uid://ds1n0xhxqlp4b" path="res://base-environments/youth_room/shaders/universe_noise.png" id="9_l7v4b"] [ext_resource type="Texture2D" uid="uid://ds1n0xhxqlp4b" path="res://base-environments/youth_room/shaders/universe_noise.png" id="9_l7v4b"]
[ext_resource type="Texture2D" uid="uid://bdyg065h8vcdi" path="res://base-environments/youth_room/shaders/starlight-textures.png" id="10_pipov"] [ext_resource type="Texture2D" uid="uid://bdyg065h8vcdi" path="res://base-environments/youth_room/shaders/starlight-textures.png" id="10_pipov"]
[ext_resource type="Script" uid="uid://dr7xhgd53cvmf" path="res://addons/markdownlabel/markdownlabel.gd" id="12_074og"] [ext_resource type="Script" uid="uid://dr7xhgd53cvmf" path="res://addons/markdownlabel/markdownlabel.gd" id="12_074og"]
[ext_resource type="Script" uid="uid://sa15wakvpj2e" path="res://dev-util/bug_button.gd" id="12_cegan"]
[ext_resource type="Script" uid="uid://2nt1uho85s8f" path="res://addons/markdownlabel/header_formats/h1_format.gd" id="13_cegan"] [ext_resource type="Script" uid="uid://2nt1uho85s8f" path="res://addons/markdownlabel/header_formats/h1_format.gd" id="13_cegan"]
[ext_resource type="Script" uid="uid://c0sorgri1jvgp" path="res://addons/markdownlabel/header_formats/h2_format.gd" id="14_82xsv"] [ext_resource type="Script" uid="uid://c0sorgri1jvgp" path="res://addons/markdownlabel/header_formats/h2_format.gd" id="14_82xsv"]
[ext_resource type="Script" uid="uid://bxp6pmnguqayg" path="res://addons/markdownlabel/header_formats/h3_format.gd" id="15_getpj"] [ext_resource type="Script" uid="uid://bxp6pmnguqayg" path="res://addons/markdownlabel/header_formats/h3_format.gd" id="15_getpj"]
@ -127,7 +128,7 @@ tracks/7/keys = {
tracks/8/type = "value" tracks/8/type = "value"
tracks/8/imported = false tracks/8/imported = false
tracks/8/enabled = true tracks/8/enabled = true
tracks/8/path = NodePath("../../CenterContainer:visible") tracks/8/path = NodePath("../../PauseContainer:visible")
tracks/8/interp = 1 tracks/8/interp = 1
tracks/8/loop_wrap = true tracks/8/loop_wrap = true
tracks/8/keys = { tracks/8/keys = {
@ -139,7 +140,7 @@ tracks/8/keys = {
tracks/9/type = "value" tracks/9/type = "value"
tracks/9/imported = false tracks/9/imported = false
tracks/9/enabled = true tracks/9/enabled = true
tracks/9/path = NodePath("../../CenterContainer/TextureRect:modulate") tracks/9/path = NodePath("../../PauseContainer/TextureRect:modulate")
tracks/9/interp = 1 tracks/9/interp = 1
tracks/9/loop_wrap = true tracks/9/loop_wrap = true
tracks/9/keys = { tracks/9/keys = {
@ -151,7 +152,7 @@ tracks/9/keys = {
tracks/10/type = "value" tracks/10/type = "value"
tracks/10/imported = false tracks/10/imported = false
tracks/10/enabled = true tracks/10/enabled = true
tracks/10/path = NodePath("../../CenterContainer/PauseMenu/VBoxContainer:modulate") tracks/10/path = NodePath("../../PauseContainer/PauseMenu/VBoxContainer:modulate")
tracks/10/interp = 1 tracks/10/interp = 1
tracks/10/loop_wrap = true tracks/10/loop_wrap = true
tracks/10/keys = { tracks/10/keys = {
@ -163,7 +164,7 @@ tracks/10/keys = {
tracks/11/type = "value" tracks/11/type = "value"
tracks/11/imported = false tracks/11/imported = false
tracks/11/enabled = true tracks/11/enabled = true
tracks/11/path = NodePath("../../CenterContainer/PauseMenu:modulate") tracks/11/path = NodePath("../../PauseContainer/PauseMenu:modulate")
tracks/11/interp = 1 tracks/11/interp = 1
tracks/11/loop_wrap = true tracks/11/loop_wrap = true
tracks/11/keys = { tracks/11/keys = {
@ -330,7 +331,7 @@ length = 2.0
tracks/0/type = "value" tracks/0/type = "value"
tracks/0/imported = false tracks/0/imported = false
tracks/0/enabled = true tracks/0/enabled = true
tracks/0/path = NodePath("../../CenterContainer:visible") tracks/0/path = NodePath("../../PauseContainer:visible")
tracks/0/interp = 0 tracks/0/interp = 0
tracks/0/loop_wrap = true tracks/0/loop_wrap = true
tracks/0/keys = { tracks/0/keys = {
@ -342,7 +343,7 @@ tracks/0/keys = {
tracks/1/type = "value" tracks/1/type = "value"
tracks/1/imported = false tracks/1/imported = false
tracks/1/enabled = true tracks/1/enabled = true
tracks/1/path = NodePath("../../CenterContainer/TextureRect:modulate") tracks/1/path = NodePath("../../PauseContainer/TextureRect:modulate")
tracks/1/interp = 1 tracks/1/interp = 1
tracks/1/loop_wrap = true tracks/1/loop_wrap = true
tracks/1/keys = { tracks/1/keys = {
@ -354,7 +355,7 @@ tracks/1/keys = {
tracks/2/type = "value" tracks/2/type = "value"
tracks/2/imported = false tracks/2/imported = false
tracks/2/enabled = true tracks/2/enabled = true
tracks/2/path = NodePath("../../CenterContainer/PauseMenu/VBoxContainer:modulate") tracks/2/path = NodePath("../../PauseContainer/PauseMenu/VBoxContainer:modulate")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
@ -366,7 +367,7 @@ tracks/2/keys = {
tracks/3/type = "value" tracks/3/type = "value"
tracks/3/imported = false tracks/3/imported = false
tracks/3/enabled = true tracks/3/enabled = true
tracks/3/path = NodePath("../../CenterContainer/PauseMenu:modulate") tracks/3/path = NodePath("../../PauseContainer/PauseMenu:modulate")
tracks/3/interp = 1 tracks/3/interp = 1
tracks/3/loop_wrap = true tracks/3/loop_wrap = true
tracks/3/keys = { tracks/3/keys = {
@ -675,7 +676,7 @@ resource_name = "reveal_pause_menu"
tracks/0/type = "value" tracks/0/type = "value"
tracks/0/imported = false tracks/0/imported = false
tracks/0/enabled = true tracks/0/enabled = true
tracks/0/path = NodePath("../../CenterContainer:visible") tracks/0/path = NodePath("../../PauseContainer:visible")
tracks/0/interp = 1 tracks/0/interp = 1
tracks/0/loop_wrap = true tracks/0/loop_wrap = true
tracks/0/keys = { tracks/0/keys = {
@ -687,7 +688,7 @@ tracks/0/keys = {
tracks/1/type = "value" tracks/1/type = "value"
tracks/1/imported = false tracks/1/imported = false
tracks/1/enabled = true tracks/1/enabled = true
tracks/1/path = NodePath("../../CenterContainer/TextureRect:modulate") tracks/1/path = NodePath("../../PauseContainer/TextureRect:modulate")
tracks/1/interp = 1 tracks/1/interp = 1
tracks/1/loop_wrap = true tracks/1/loop_wrap = true
tracks/1/keys = { tracks/1/keys = {
@ -699,7 +700,7 @@ tracks/1/keys = {
tracks/2/type = "value" tracks/2/type = "value"
tracks/2/imported = false tracks/2/imported = false
tracks/2/enabled = true tracks/2/enabled = true
tracks/2/path = NodePath("../../CenterContainer/PauseMenu/VBoxContainer:modulate") tracks/2/path = NodePath("../../PauseContainer/PauseMenu/VBoxContainer:modulate")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
@ -711,7 +712,7 @@ tracks/2/keys = {
tracks/3/type = "value" tracks/3/type = "value"
tracks/3/imported = false tracks/3/imported = false
tracks/3/enabled = true tracks/3/enabled = true
tracks/3/path = NodePath("../../CenterContainer/PauseMenu:modulate") tracks/3/path = NodePath("../../PauseContainer/PauseMenu:modulate")
tracks/3/interp = 1 tracks/3/interp = 1
tracks/3/loop_wrap = true tracks/3/loop_wrap = true
tracks/3/keys = { tracks/3/keys = {
@ -1152,7 +1153,7 @@ parameters/conditions/start_game = false
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="MenuAnimationPlayer/MenuAnimationTree"] [node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="MenuAnimationPlayer/MenuAnimationTree"]
bus = &"music" bus = &"music"
[node name="CenterContainer" type="CenterContainer" parent="."] [node name="PauseContainer" type="CenterContainer" parent="."]
visible = false visible = false
anchors_preset = 15 anchors_preset = 15
anchor_right = 1.0 anchor_right = 1.0
@ -1160,62 +1161,67 @@ anchor_bottom = 1.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
[node name="TextureRect" type="TextureRect" parent="CenterContainer"] [node name="TextureRect" type="TextureRect" parent="PauseContainer"]
material = SubResource("ShaderMaterial_knlqd") material = SubResource("ShaderMaterial_knlqd")
layout_mode = 2 layout_mode = 2
texture = SubResource("GradientTexture2D_swtmc") texture = SubResource("GradientTexture2D_swtmc")
[node name="PauseMenu" type="PanelContainer" parent="CenterContainer"] [node name="PauseMenu" type="PanelContainer" parent="PauseContainer"]
unique_name_in_owner = true unique_name_in_owner = true
layout_mode = 2 layout_mode = 2
script = ExtResource("9_ihfph") script = ExtResource("9_ihfph")
[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer/PauseMenu"] [node name="VBoxContainer" type="VBoxContainer" parent="PauseContainer/PauseMenu"]
modulate = Color(1, 1, 1, 0) modulate = Color(1, 1, 1, 0)
layout_mode = 2 layout_mode = 2
[node name="Label" type="Label" parent="CenterContainer/PauseMenu/VBoxContainer"] [node name="Label" type="Label" parent="PauseContainer/PauseMenu/VBoxContainer"]
layout_mode = 2 layout_mode = 2
theme_type_variation = &"HeaderLarge" theme_type_variation = &"HeaderLarge"
text = "Game Paused" text = "Game Paused"
[node name="ResumeButton" type="Button" parent="CenterContainer/PauseMenu/VBoxContainer"] [node name="ResumeButton" type="Button" parent="PauseContainer/PauseMenu/VBoxContainer"]
unique_name_in_owner = true unique_name_in_owner = true
layout_mode = 2 layout_mode = 2
text = "Resume" text = "Resume"
[node name="ToMenuButton" type="Button" parent="CenterContainer/PauseMenu/VBoxContainer"] [node name="BugButton" type="Button" parent="PauseContainer/PauseMenu/VBoxContainer"]
layout_mode = 2
script = ExtResource("12_cegan")
metadata/_custom_type_script = "uid://sa15wakvpj2e"
[node name="ToMenuButton" type="Button" parent="PauseContainer/PauseMenu/VBoxContainer"]
unique_name_in_owner = true unique_name_in_owner = true
visible = false visible = false
layout_mode = 2 layout_mode = 2
text = "Return to Menu" text = "Return to Menu"
[node name="ToSettingsButton" type="Button" parent="CenterContainer/PauseMenu/VBoxContainer"] [node name="ToSettingsButton" type="Button" parent="PauseContainer/PauseMenu/VBoxContainer"]
unique_name_in_owner = true unique_name_in_owner = true
visible = false visible = false
layout_mode = 2 layout_mode = 2
text = "Open Settings" text = "Open Settings"
[node name="ToDesktopButton" type="Button" parent="CenterContainer/PauseMenu/VBoxContainer"] [node name="ToDesktopButton" type="Button" parent="PauseContainer/PauseMenu/VBoxContainer"]
unique_name_in_owner = true unique_name_in_owner = true
layout_mode = 2 layout_mode = 2
text = "Quit to Desktop" text = "Quit to Desktop"
[node name="HSeparator" type="HSeparator" parent="CenterContainer/PauseMenu/VBoxContainer"] [node name="HSeparator" type="HSeparator" parent="PauseContainer/PauseMenu/VBoxContainer"]
custom_minimum_size = Vector2(0, 20) custom_minimum_size = Vector2(0, 20)
layout_mode = 2 layout_mode = 2
[node name="FindHelplineButton" type="Button" parent="CenterContainer/PauseMenu/VBoxContainer"] [node name="FindHelplineButton" type="Button" parent="PauseContainer/PauseMenu/VBoxContainer"]
unique_name_in_owner = true unique_name_in_owner = true
layout_mode = 2 layout_mode = 2
text = "Find Help-Lines" text = "Find Help-Lines"
[node name="Label2" type="Label" parent="CenterContainer/PauseMenu/VBoxContainer"] [node name="Label2" type="Label" parent="PauseContainer/PauseMenu/VBoxContainer"]
layout_mode = 2 layout_mode = 2
text = "opens findahelpline.com" text = "opens findahelpline.com"
horizontal_alignment = 1 horizontal_alignment = 1
[node name="SkipStoryButton" type="Button" parent="CenterContainer/PauseMenu/VBoxContainer"] [node name="SkipStoryButton" type="Button" parent="PauseContainer/PauseMenu/VBoxContainer"]
unique_name_in_owner = true unique_name_in_owner = true
visible = false visible = false
layout_mode = 2 layout_mode = 2

View File

@ -1,9 +1,10 @@
[gd_scene load_steps=17 format=3 uid="uid://b51wdql4mby47"] [gd_scene load_steps=18 format=3 uid="uid://b51wdql4mby47"]
[ext_resource type="Theme" uid="uid://b056fn288p8ha" path="res://logic-scenes/themes/handwriting.theme" id="1_2dg4n"] [ext_resource type="Theme" uid="uid://b056fn288p8ha" path="res://logic-scenes/themes/handwriting.theme" id="1_2dg4n"]
[ext_resource type="Script" uid="uid://c3o65t2rwpbtn" path="res://logic-scenes/main menu/main_menu.gd" id="2_rm576"] [ext_resource type="Script" uid="uid://c3o65t2rwpbtn" path="res://logic-scenes/main menu/main_menu.gd" id="2_rm576"]
[ext_resource type="PackedScene" uid="uid://gmxenhavh1lp" path="res://logic-scenes/main menu/video_settings.tscn" id="3_f0dcd"] [ext_resource type="PackedScene" uid="uid://gmxenhavh1lp" path="res://logic-scenes/main menu/video_settings.tscn" id="3_f0dcd"]
[ext_resource type="Texture2D" uid="uid://d3ewjumh0b0g6" path="res://logic-scenes/main menu/logo.png" id="3_xb2np"] [ext_resource type="Texture2D" uid="uid://d3ewjumh0b0g6" path="res://logic-scenes/main menu/logo.png" id="3_xb2np"]
[ext_resource type="Script" uid="uid://sa15wakvpj2e" path="res://dev-util/bug_button.gd" id="4_j5v2v"]
[ext_resource type="Script" uid="uid://byiih47fi6740" path="res://dev-util/settings_popup.gd" id="4_k8jo0"] [ext_resource type="Script" uid="uid://byiih47fi6740" path="res://dev-util/settings_popup.gd" id="4_k8jo0"]
[ext_resource type="PackedScene" uid="uid://dfhkfocy8axb8" path="res://logic-scenes/main menu/audio_settings.tscn" id="4_o07mg"] [ext_resource type="PackedScene" uid="uid://dfhkfocy8axb8" path="res://logic-scenes/main menu/audio_settings.tscn" id="4_o07mg"]
[ext_resource type="Script" uid="uid://0tb763w0vfv7" path="res://tab_container.gd" id="5_lhfti"] [ext_resource type="Script" uid="uid://0tb763w0vfv7" path="res://tab_container.gd" id="5_lhfti"]
@ -314,6 +315,11 @@ layout_mode = 2
tooltip_text = "Plays the Game Credits" tooltip_text = "Plays the Game Credits"
text = "Attribution" text = "Attribution"
[node name="BugButton" type="Button" parent="PanelContainer"]
layout_mode = 2
script = ExtResource("4_j5v2v")
metadata/_custom_type_script = "uid://sa15wakvpj2e"
[node name="QuitButton" type="Button" parent="PanelContainer"] [node name="QuitButton" type="Button" parent="PanelContainer"]
layout_mode = 2 layout_mode = 2
text = "quit" text = "quit"

View File

@ -31,6 +31,8 @@ PromptManager="*res://addons/input_prompts/input_prompt_manager.gd"
[debug] [debug]
file_logging/enable_file_logging=true
file_logging/log_path="user://logs/frame-of-mind.log"
gdscript/warnings/native_method_override=0 gdscript/warnings/native_method_override=0
[display] [display]