diff --git a/asset/dialogue/c03.dialogue b/asset/dialogue/c03.dialogue index b28a7cb1..20fc6908 100644 --- a/asset/dialogue/c03.dialogue +++ b/asset/dialogue/c03.dialogue @@ -39,8 +39,9 @@ ~ c03_s04_打麻将游戏2 瞎子: 碰。 胖子: 自从那三楼的婆娘出了名以后,我这手气就臭得不行...怕不是让人给“借运”了? -癞子: 还真不好说。 -癞子: 运气这玩意玄乎得很,我以前走南闯北的时候,见过一个会使邪门功夫的老爷子,说是能“借”人家的命来延长自己的寿命... +癞子: 还真不好说。运气这玩意玄乎得很。 +癞子: 我以前走南闯北的时候,见过一个会使邪门功夫的老爷子。 +癞子: 说是能“借”人家的命来延长自己的寿命... 胖子: 听着怪瘆人的。 瞎子: 人外有人,天外有天。 瞎子: 天外还有什么...咱们这些闲杂人等也说了不算。 diff --git a/asset/dialogue/item_description.csv b/asset/dialogue/item_description.csv index ab2f92ad..5c72f26b 100644 --- a/asset/dialogue/item_description.csv +++ b/asset/dialogue/item_description.csv @@ -19,6 +19,7 @@ setting_全屏,全屏游戏,,,,,Fullscreen setting_置顶,窗口置顶,,,,,Always on Top setting_自动保存,自动保存,,,,,Auto Save ui_秒,秒,,,,,seconds +setting_主播模式,主播模式,,,,,Streamer Mode setting_返回,返回,,,,,Back bag_tab_笔记,线索,,,,,Clues bag_tab_物品,物件,,,,,Items @@ -41,7 +42,7 @@ ui_press_shift,按住 Shift 奔跑,,,,,Hold Shift to run ui_boxcat_press_s,按住 S 躲藏,,,,,Hold S to hide input_拼凑信件,点击选择信件碎片,方向键移动,E 旋碎片转,Q 退出,,,,,"Click to select letter fragments, arrow keys to move, E to rotate, Q to exit" input_书架游戏,点击书本可选中或交换,Q 退出,,,,,"Click books to select or swap, Q to exit" -input_麻将游戏_麻将不足,还缺一块麻将(幺鸡),,,,, +input_麻将游戏_麻将不足,还缺一块麻将,,,,, input_麻将游戏_操作规则,依次点击两块麻将可进行交换,,,,, ui_获得道具,获得道具,,,,,Item Obtained ui_获得重要物品,重要物品,,,,,Important Item diff --git a/asset/dialogue/item_description.dialogue b/asset/dialogue/item_description.dialogue index 83a4ab35..7c8be4c2 100644 --- a/asset/dialogue/item_description.dialogue +++ b/asset/dialogue/item_description.dialogue @@ -21,6 +21,7 @@ 窗口置顶[ID:setting_置顶] 自动保存[ID:setting_自动保存] 秒 [ID:ui_秒] +主播模式[ID:setting_主播模式] 返回[ID:setting_返回] diff --git a/manager/config_manager/global_config.gd b/manager/config_manager/global_config.gd index 07c6e7d3..d9728a0a 100644 --- a/manager/config_manager/global_config.gd +++ b/manager/config_manager/global_config.gd @@ -1,11 +1,12 @@ class_name GlobalConfig extends Resource +signal streamer_mode_updated + #const DEBUG = true static var DEBUG = false # 影响事件的 release_stage # 0demo 1release const RELEASE_STAGE := 0 - # 与 Editor 编辑器有 Debugger 连接 # static var EDITOR = false @@ -57,8 +58,8 @@ signal current_selected_archive_id_changed signal auto_save_enabled_changed signal auto_save_seconds_changed -@export var debug_mode := false # 开启 debug 模式 -@export var skip_trailer := false # 跳过 trailer +@export var debug_mode := false # 开启 debug 模式 +@export var skip_trailer := false # 跳过 trailer @export var version: int #存档版本 @export var game_total_seconds := 0 # 游戏总时长 @export var game_rounds := 1 # 当前周目数 @@ -90,3 +91,9 @@ signal auto_save_seconds_changed # 最大范围为 10 秒,精度 0.1 @export var os_wait_time := 3.0 @export var os_auto_end := true +# 绿色/主播模式 +@export var streamer_mode := false: + set(val): + if streamer_mode != val: + streamer_mode = val + streamer_mode_updated.emit() diff --git a/scene/entity/general_sprite2d.gd b/scene/entity/general_sprite2d.gd new file mode 100644 index 00000000..fae2c760 --- /dev/null +++ b/scene/entity/general_sprite2d.gd @@ -0,0 +1,11 @@ +extends Node + + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + pass diff --git a/scene/entity/general_sprite2d.gd.uid b/scene/entity/general_sprite2d.gd.uid new file mode 100644 index 00000000..d0c47a8a --- /dev/null +++ b/scene/entity/general_sprite2d.gd.uid @@ -0,0 +1 @@ +uid://dt8cfnm2og4h diff --git a/scene/ground/scene/c02/s02_过道.tscn b/scene/ground/scene/c02/s02_过道.tscn index 48eae499..f7511939 100644 --- a/scene/ground/scene/c02/s02_过道.tscn +++ b/scene/ground/scene/c02/s02_过道.tscn @@ -118,7 +118,7 @@ packed_scene = ExtResource("11_jg8g0") first_interact_os_key = "c02_海报_剪辫子侦探" [node name="青岛啤酒" parent="Ground/DeployLayer" index="7" instance=ExtResource("12_0fckv")] -position = Vector2(253, -31) +position = Vector2(255, -31) enabled = false texture_cover = ExtResource("16_vqhm5") content_key = "c02_青岛啤酒" diff --git a/scene/ground/scene/c02/盒子猫画特写.gd b/scene/ground/scene/c02/盒子猫画特写.gd new file mode 100644 index 00000000..84502e82 --- /dev/null +++ b/scene/ground/scene/c02/盒子猫画特写.gd @@ -0,0 +1,6 @@ +extends CanvasLayer + +signal exit(arg) + +func _ready() -> void: + layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME diff --git a/scene/ground/scene/c02/盒子猫画特写.gd.uid b/scene/ground/scene/c02/盒子猫画特写.gd.uid new file mode 100644 index 00000000..e4d96076 --- /dev/null +++ b/scene/ground/scene/c02/盒子猫画特写.gd.uid @@ -0,0 +1 @@ +uid://c8qy6xorxe42h diff --git a/scene/ground/scene/c03/s07_屠宰间.tscn b/scene/ground/scene/c03/s07_屠宰间.tscn index 482b39fa..0d34503f 100644 --- a/scene/ground/scene/c03/s07_屠宰间.tscn +++ b/scene/ground/scene/c03/s07_屠宰间.tscn @@ -39,6 +39,10 @@ target_portal = "1" [node name="portal_right" parent="Ground/DeployLayer" index="1"] position = Vector2(873, 15) +[node name="悬挂物" type="Node2D" parent="Ground/DeployLayer" index="2"] + +[node name="Sprite2D" type="Sprite2D" parent="Ground/DeployLayer/悬挂物"] + [node name="MainPlayer" parent="Ground" index="5"] position = Vector2(63, 95) catty_light_energy = 0.5 diff --git a/scene/ground/scene/c03/s08_囚室.tscn b/scene/ground/scene/c03/s08_囚室.tscn index 1b4ad191..401d7e31 100644 --- a/scene/ground/scene/c03/s08_囚室.tscn +++ b/scene/ground/scene/c03/s08_囚室.tscn @@ -1,10 +1,11 @@ -[gd_scene load_steps=7 format=3 uid="uid://bixdbbyhroepi"] +[gd_scene load_steps=8 format=3 uid="uid://bixdbbyhroepi"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_fusj3"] [ext_resource type="Script" path="res://scene/ground/scene/c03/s08_囚室.gd" id="2_fusj3"] [ext_resource type="Script" uid="uid://cpejxlfni6n52" path="res://manager/audio_manager/vibe_sfx.gd" id="3_jua84"] [ext_resource type="Texture2D" uid="uid://c53e7kxlfj8kw" path="res://asset/art/scene/c03/s08_囚室/bg_囚室背景.png" id="4_fusj3"] [ext_resource type="Texture2D" uid="uid://dfsqs13fm7urb" path="res://asset/art/scene/c03/s08_囚室/fg_囚室前景.png" id="5_i2s3v"] +[ext_resource type="PackedScene" uid="uid://dqkxiqbq83cmq" path="res://scene/entity/closeup.tscn" id="5_jua84"] [sub_resource type="AnimationLibrary" id="AnimationLibrary_k01ve"] @@ -40,6 +41,9 @@ target_portal = "1" [node name="portal_right" parent="Ground/DeployLayer" index="1"] position = Vector2(533, 26) +[node name="Closeup墙洞" parent="Ground/DeployLayer" index="2" instance=ExtResource("5_jua84")] +position = Vector2(274, -5) + [node name="MainPlayer" parent="Ground" index="5"] position = Vector2(63, 95) catty_light_energy = 0.5 diff --git a/scene/ground/script/c02/s08_画特写.tscn b/scene/ground/script/c02/s08_画特写.tscn index 50e9c991..1aa967f3 100644 --- a/scene/ground/script/c02/s08_画特写.tscn +++ b/scene/ground/script/c02/s08_画特写.tscn @@ -1,13 +1,13 @@ [gd_scene load_steps=6 format=3 uid="uid://dd8dfoik0ig3y"] -[ext_resource type="Script" uid="uid://dnrql1t0j6v8i" path="res://scene/entity/closeup_template.gd" id="1_jgyts"] +[ext_resource type="Script" uid="uid://c8qy6xorxe42h" path="res://scene/ground/scene/c02/盒子猫画特写.gd" id="1_4p6cc"] [ext_resource type="Texture2D" uid="uid://d1seskftkw08q" path="res://asset/art/scene/c02/s08_瞎子卧室/ux_盒子猫初次特写.png" id="2_jo6o1"] [ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/遮罩/inspect特写通用遮罩.png" id="3_myoho"] [ext_resource type="PackedScene" uid="uid://dmysq4sxx8iqh" path="res://scene/entity/ux/content_inspector.tscn" id="4_4p6cc"] [ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/遮罩/inspect背景遮罩.png" id="5_i34yq"] [node name="s08_画特写" type="CanvasLayer"] -script = ExtResource("1_jgyts") +script = ExtResource("1_4p6cc") [node name="TextureRect" type="TextureRect" parent="."] offset_right = 40.0 diff --git a/scene/ground/script/c02/s08_画特写2.tscn b/scene/ground/script/c02/s08_画特写2.tscn index b9c69817..2cfcd3b3 100644 --- a/scene/ground/script/c02/s08_画特写2.tscn +++ b/scene/ground/script/c02/s08_画特写2.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=8 format=3 uid="uid://cxv7vdgwb8lqb"] -[ext_resource type="Script" uid="uid://dnrql1t0j6v8i" path="res://scene/entity/closeup_template.gd" id="1_2sinf"] +[ext_resource type="Script" uid="uid://c8qy6xorxe42h" path="res://scene/ground/scene/c02/盒子猫画特写.gd" id="1_tja8r"] [ext_resource type="Texture2D" uid="uid://k6164drvkbg8" path="res://asset/art/scene/c02/s08_瞎子卧室/ux_盒子猫结束特写.png" id="2_qrck0"] [ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/遮罩/inspect特写通用遮罩.png" id="3_7dv3t"] [ext_resource type="Texture2D" uid="uid://tcjm158n8hnw" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/小脚脚印.png" id="4_tja8r"] @@ -9,7 +9,7 @@ [ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/遮罩/inspect背景遮罩.png" id="7_tja8r"] [node name="s08_盒子猫初次特写" type="CanvasLayer"] -script = ExtResource("1_2sinf") +script = ExtResource("1_tja8r") [node name="TextureRect" type="TextureRect" parent="."] offset_right = 40.0 diff --git a/scene/index_page.gd b/scene/index/index_page.gd similarity index 100% rename from scene/index_page.gd rename to scene/index/index_page.gd diff --git a/scene/index_page.gd.uid b/scene/index/index_page.gd.uid similarity index 100% rename from scene/index_page.gd.uid rename to scene/index/index_page.gd.uid diff --git a/scene/index_page.tscn b/scene/index/index_page.tscn similarity index 85% rename from scene/index_page.tscn rename to scene/index/index_page.tscn index 783891f9..fcebe6f9 100644 --- a/scene/index_page.tscn +++ b/scene/index/index_page.tscn @@ -1,11 +1,12 @@ -[gd_scene load_steps=11 format=3 uid="uid://c4ycvdsabi7lw"] +[gd_scene load_steps=12 format=3 uid="uid://c4ycvdsabi7lw"] -[ext_resource type="Script" uid="uid://b4rw4hk7ns4m8" path="res://scene/index_page.gd" id="1_c7y7r"] +[ext_resource type="Script" uid="uid://b4rw4hk7ns4m8" path="res://scene/index/index_page.gd" id="1_c7y7r"] [ext_resource type="Texture2D" uid="uid://bcc0bk34l5gbc" path="res://asset/art/ui/index/菜单背景.png" id="1_jxn4k"] [ext_resource type="AudioStream" uid="uid://cvttds81trcoc" path="res://asset/audio/sfx/UI/click.wav" id="2_te6ya"] [ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_5oc6i"] [ext_resource type="Script" uid="uid://bbg4vopj4apl6" path="res://scene/entity/audio/bgm_control.gd" id="4_5oc6i"] [ext_resource type="AudioStream" uid="uid://b3b4a6nm8557i" path="res://asset/audio/专用/衔蝶_主菜单music剪辑人声版.wav" id="5_5oc6i"] +[ext_resource type="Script" uid="uid://c63lrar71o17d" path="res://scene/index/启动入口.gd" id="7_1sxgt"] [sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_gu56a"] content_margin_top = 4.0 @@ -147,3 +148,28 @@ grow_horizontal = 2 grow_vertical = 2 mouse_filter = 2 color = Color(0, 0, 0, 1) + +[node name="启动入口" type="VBoxContainer" parent="."] +layout_mode = 0 +offset_left = 305.0 +offset_top = 114.0 +offset_right = 345.0 +offset_bottom = 154.0 +script = ExtResource("7_1sxgt") + +[node name="Label" type="Label" parent="启动入口"] +layout_mode = 2 +text = "【仅测试版本启用】" + +[node name="Chapter1" type="Button" parent="启动入口"] +layout_mode = 2 +text = "从第一章开始新游戏" + +[node name="Chapter2" type="Button" parent="启动入口"] +layout_mode = 2 +text = "从第二章开始新游戏" + +[node name="Chapter3" type="Button" parent="启动入口"] +visible = false +layout_mode = 2 +text = "从第三章开始新游戏" diff --git a/scene/index/启动入口.gd b/scene/index/启动入口.gd new file mode 100644 index 00000000..da2cd1b3 --- /dev/null +++ b/scene/index/启动入口.gd @@ -0,0 +1,24 @@ +extends VBoxContainer + + +func _ready() -> void: + if not GlobalConfig.DEBUG: + queue_free() + return + $Chapter1.pressed.connect(_start_game.bind(1)) + + +func _start_game(chapter: int) -> void: + $"../SfxClick".global_play() + var archive_res:AssembledArchive + if chapter == 1: + archive_res = load("uid://x2yr8b2ul5al") + elif chapter == 2: + archive_res = load("uid://b45y2iffjdieg") + archive_res = archive_res.duplicate(true) + ArchiveManager.create_and_use_new_archive(1) + archive_res.take_over_path(ArchiveManager.archive.resource_path) + ArchiveManager.archive = archive_res + # new game 时音量渐隐 + $"../BgmControl".stop(0.5) + SceneManager.enter_main_scene() diff --git a/scene/index/启动入口.gd.uid b/scene/index/启动入口.gd.uid new file mode 100644 index 00000000..c1ebfdff --- /dev/null +++ b/scene/index/启动入口.gd.uid @@ -0,0 +1 @@ +uid://c63lrar71o17d diff --git a/scene/index/第一章.tres b/scene/index/第一章.tres new file mode 100644 index 00000000..aae6182c --- /dev/null +++ b/scene/index/第一章.tres @@ -0,0 +1,37 @@ +[gd_resource type="Resource" script_class="AssembledArchive" load_steps=5 format=3 uid="uid://x2yr8b2ul5al"] + +[ext_resource type="Script" uid="uid://b63jgb1ag242f" path="res://manager/archive_manager/ground_archive.gd" id="1_na6rk"] +[ext_resource type="Script" uid="uid://cay6xv3x51phl" path="res://scene/ux/prop_inventory_resource.gd" id="2_uc52y"] +[ext_resource type="Script" uid="uid://cusw17h37oc0g" path="res://manager/archive_manager/assembled_archive.gd" id="3_sr6ce"] + +[sub_resource type="Resource" id="Resource_6q3u4"] +script = ExtResource("2_uc52y") +owner = "" +current_index = 0 +important_items = Array[String]([]) +unviewed_important_items = Array[String]([]) +default_enabled_items = Array[String]([]) +xdie_enabled_items = Array[String]([]) +xxdie_enabled_items = Array[String]([]) +xxxdie_enabled_items = Array[String]([]) + +[resource] +script = ExtResource("3_sr6ce") +version = 5 +archive_id = 1 +entrance_portal = &"left" +current_scene = &"c02_s01" +player_global_position_x = -100.0 +player_direction = Vector2(0, 0) +game_seconds = 0 +created_time = "2025-07-11 01:22:58" +event_stage = Dictionary[StringName, int]({}) +global_data_dict = Dictionary[StringName, Variant]({}) +ground_archives = Dictionary[StringName, ExtResource("1_na6rk")]({}) +npc_anonymous_states = Dictionary[StringName, bool]({}) +player_running_locked = false +prop_inventory = SubResource("Resource_6q3u4") +mem_display_dict = Dictionary[int, bool]({}) +bayinhe_current_answer = [0, 0, 0, 0, 0, 0, 0, 0, 0] +bayinhe_mode = "closed" +metadata/_custom_type_script = "uid://cusw17h37oc0g" diff --git a/scene/index/第二章.tres b/scene/index/第二章.tres new file mode 100644 index 00000000..b0d6700c --- /dev/null +++ b/scene/index/第二章.tres @@ -0,0 +1,37 @@ +[gd_resource type="Resource" script_class="AssembledArchive" load_steps=5 format=3 uid="uid://b45y2iffjdieg"] + +[ext_resource type="Script" uid="uid://b63jgb1ag242f" path="res://manager/archive_manager/ground_archive.gd" id="1_6q3u4"] +[ext_resource type="Script" uid="uid://cay6xv3x51phl" path="res://scene/ux/prop_inventory_resource.gd" id="2_sql7f"] +[ext_resource type="Script" uid="uid://cusw17h37oc0g" path="res://manager/archive_manager/assembled_archive.gd" id="3_qjj7j"] + +[sub_resource type="Resource" id="Resource_6q3u4"] +script = ExtResource("2_sql7f") +owner = "" +current_index = 0 +important_items = Array[String]([]) +unviewed_important_items = Array[String]([]) +default_enabled_items = Array[String]([]) +xdie_enabled_items = Array[String]([]) +xxdie_enabled_items = Array[String]([]) +xxxdie_enabled_items = Array[String]([]) + +[resource] +script = ExtResource("3_qjj7j") +version = 5 +archive_id = 1 +entrance_portal = &"left" +current_scene = &"c02_s01" +player_global_position_x = -100.0 +player_direction = Vector2(0, 0) +game_seconds = 0 +created_time = "2025-07-11 01:22:58" +event_stage = Dictionary[StringName, int]({}) +global_data_dict = Dictionary[StringName, Variant]({}) +ground_archives = Dictionary[StringName, ExtResource("1_6q3u4")]({}) +npc_anonymous_states = Dictionary[StringName, bool]({}) +player_running_locked = false +prop_inventory = SubResource("Resource_6q3u4") +mem_display_dict = Dictionary[int, bool]({}) +bayinhe_current_answer = [0, 0, 0, 0, 0, 0, 0, 0, 0] +bayinhe_mode = "closed" +metadata/_custom_type_script = "uid://cusw17h37oc0g" diff --git a/scene/little_game/八音盒/八音盒.gd b/scene/little_game/八音盒/八音盒.gd index 24bcef32..116d4c6e 100644 --- a/scene/little_game/八音盒/八音盒.gd +++ b/scene/little_game/八音盒/八音盒.gd @@ -64,19 +64,19 @@ func _ready() -> void: box_closed.picked.connect(_on_box_picked) drawer_btn.picked.connect(_on_drawer_picked) - if ArchiveManager.get_global_value(&"c02_musicbox_pic_taken"): + if ArchiveManager.get_global_value(&"c02_musicbox_taken_prop_撕下的照片上"): pic.queue_free() - if ArchiveManager.get_global_value(&"c02_musicbox_danzhu_taken"): + if ArchiveManager.get_global_value(&"c02_musicbox_taken_prop_弹珠"): danzhu.queue_free() - if ArchiveManager.get_global_value(&"c02_musicbox_xiaomao_taken"): + if ArchiveManager.get_global_value(&"c02_musicbox_taken_prop_无头小猫玩具"): xiaomao.queue_free() - if ArchiveManager.get_global_value(&"c02_musicbox_xiaochan_taken"): + if ArchiveManager.get_global_value(&"c02_musicbox_taken_prop_木头人偶"): xiaochan.queue_free() - pic.picked.connect(_on_prop_picked.bind("pic")) - danzhu.picked.connect(_on_prop_picked.bind("danzhu")) - xiaomao.picked.connect(_on_prop_picked.bind("xiaomao")) - xiaochan.picked.connect(_on_prop_picked.bind("xiaochan")) + pic.picked.connect(_on_prop_picked.bind("prop_撕下的照片上")) + danzhu.picked.connect(_on_prop_picked.bind("prop_弹珠")) + xiaomao.picked.connect(_on_prop_picked.bind("prop_无头小猫玩具")) + xiaochan.picked.connect(_on_prop_picked.bind("prop_木头人偶")) d1.picked.connect(_on_picked) d1.dropped.connect(_on_dropped) @@ -128,9 +128,8 @@ func _on_drawer_picked(_node): create_tween().tween_property(box_drawer, "modulate:a", 1.0, 0.5) -func _on_prop_picked(node: Draggable2D, archive_key: String): +func _on_prop_picked(node: Draggable2D, prop_key: String): node.freezing = true - var key = node.item_name # var tween = create_tween() # # 撕下来的 fade out # tween.tween_property(node, "modulate:a", 0.0, 1.0) @@ -138,10 +137,10 @@ func _on_prop_picked(node: Draggable2D, archive_key: String): # tween.tween_interval(0.5) # await tween.finished node.queue_free() - SceneManager.enable_prop_item(key) - if key == "prop_无头小猫玩具": + SceneManager.enable_prop_item(prop_key) + if prop_key == "prop_无头小猫玩具": _on_pick_catty() - ArchiveManager.set_global_entry(&"c02_musicbox_" + archive_key + "_taken", true) + ArchiveManager.set_global_entry(&"c02_musicbox_taken_" + prop_key, true) func _on_picked(node: Draggable2D): diff --git a/scene/settings/settings.gd b/scene/settings/settings.gd index a6f14129..d1d071c2 100644 --- a/scene/settings/settings.gd +++ b/scene/settings/settings.gd @@ -18,6 +18,7 @@ const dialog_db_offset := -10.0 @onready var autosave_time_edit = %SaveTimeLineEdit as LineEdit @onready var fullscreen_box = %FullscreenBox as CheckBox @onready var top_box = %TopBox as CheckBox +@onready var streamer_box = %StreamerBox as CheckBox @onready var return_btn = %ReturnBtn as Button @@ -88,7 +89,10 @@ func _ready(): top_box.button_pressed = GlobalConfigManager.config.window_top fullscreen_box.toggled.connect(_on_fullscreen_box_toggled) top_box.toggled.connect(_on_top_box_toggled) - # navigation + # streamer mode + streamer_box.button_pressed = GlobalConfigManager.config.streamer_mode + streamer_box.toggled.connect(_on_streamer_box_toggled) + # return return_btn.pressed.connect(_on_return_btn_pressed) return_btn.grab_focus() SceneManager.toggle_pause_counter(true) @@ -179,6 +183,10 @@ func _on_top_box_toggled(is_pressed: bool) -> void: GlobalConfigManager.config.window_top = is_pressed +func _on_streamer_box_toggled(is_pressed: bool) -> void: + GlobalConfigManager.config.streamer_mode = is_pressed + + func _on_return_btn_pressed() -> void: exit_settings() diff --git a/scene/settings/settings.tscn b/scene/settings/settings.tscn index 06538822..587b3d2d 100644 --- a/scene/settings/settings.tscn +++ b/scene/settings/settings.tscn @@ -293,17 +293,30 @@ layout_mode = 2 size_flags_horizontal = 10 focus_neighbor_left = NodePath("../FullscreenBox") focus_neighbor_top = NodePath("../../自动保存/SaveTimeLineEdit") -focus_neighbor_bottom = NodePath("../../ReturnBtn") +focus_neighbor_bottom = NodePath("../../HBoxContainer/ReturnBtn") focus_previous = NodePath("../FullscreenBox") text = "setting_置顶" -[node name="ReturnBtn" type="Button" parent="MarginContainer/VBoxContainer"] +[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 + +[node name="StreamerBox" type="CheckBox" parent="MarginContainer/VBoxContainer/HBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 10 +focus_neighbor_left = NodePath("../../显示方式/FullscreenBox") +focus_neighbor_top = NodePath("../../自动保存/SaveTimeLineEdit") +focus_neighbor_bottom = NodePath("../ReturnBtn") +focus_previous = NodePath("../../显示方式/FullscreenBox") +text = "setting_主播模式" + +[node name="ReturnBtn" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer"] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 6 size_flags_vertical = 4 -focus_neighbor_top = NodePath("../显示方式/TopBox") -focus_previous = NodePath("../显示方式/TopBox") +focus_neighbor_top = NodePath("../../显示方式/TopBox") +focus_previous = NodePath("../../显示方式/TopBox") theme_override_fonts/font = ExtResource("6_n2b1f") theme_override_font_sizes/font_size = 11 text = "setting_返回" diff --git a/scene/trailer.gd b/scene/trailer.gd index bd8b923d..bc2d7952 100644 --- a/scene/trailer.gd +++ b/scene/trailer.gd @@ -4,7 +4,7 @@ extends Control @onready var mask = $"遮罩" @onready var earplug_notice = $"耳机提示" -var packed_index_page := preload("res://scene/index_page.tscn") +var packed_index_page := preload("uid://c4ycvdsabi7lw") func _ready() -> void: