streamer_mode; index 页面多存档功能

This commit is contained in:
cakipaul 2025-07-11 02:08:27 +08:00
parent f15e955dec
commit aff4d53e76
24 changed files with 215 additions and 33 deletions

View File

@ -39,8 +39,9 @@
~ c03_s04_打麻将游戏2 ~ c03_s04_打麻将游戏2
瞎子: 碰。 瞎子: 碰。
胖子: 自从那三楼的婆娘出了名以后,我这手气就臭得不行...怕不是让人给“借运”了? 胖子: 自从那三楼的婆娘出了名以后,我这手气就臭得不行...怕不是让人给“借运”了?
癞子: 还真不好说。 癞子: 还真不好说。运气这玩意玄乎得很。
癞子: 运气这玩意玄乎得很,我以前走南闯北的时候,见过一个会使邪门功夫的老爷子,说是能“借”人家的命来延长自己的寿命... 癞子: 我以前走南闯北的时候,见过一个会使邪门功夫的老爷子。
癞子: 说是能“借”人家的命来延长自己的寿命...
胖子: 听着怪瘆人的。 胖子: 听着怪瘆人的。
瞎子: 人外有人,天外有天。 瞎子: 人外有人,天外有天。
瞎子: 天外还有什么...咱们这些闲杂人等也说了不算。 瞎子: 天外还有什么...咱们这些闲杂人等也说了不算。

View File

@ -19,6 +19,7 @@ setting_全屏,全屏游戏,,,,,Fullscreen
setting_置顶,窗口置顶,,,,,Always on Top setting_置顶,窗口置顶,,,,,Always on Top
setting_自动保存,自动保存,,,,,Auto Save setting_自动保存,自动保存,,,,,Auto Save
ui_秒,秒,,,,,seconds ui_秒,秒,,,,,seconds
setting_主播模式,主播模式,,,,,Streamer Mode
setting_返回,返回,,,,,Back setting_返回,返回,,,,,Back
bag_tab_笔记,线索,,,,,Clues bag_tab_笔记,线索,,,,,Clues
bag_tab_物品,物件,,,,,Items bag_tab_物品,物件,,,,,Items
@ -41,7 +42,7 @@ ui_press_shift,按住 Shift 奔跑,,,,,Hold Shift to run
ui_boxcat_press_s,按住 S 躲藏,,,,,Hold S to hide 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_拼凑信件,点击选择信件碎片方向键移动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_书架游戏,点击书本可选中或交换Q 退出,,,,,"Click books to select or swap, Q to exit"
input_麻将游戏_麻将不足,还缺一块麻将(幺鸡),,,,, input_麻将游戏_麻将不足,还缺一块麻将,,,,,
input_麻将游戏_操作规则,依次点击两块麻将可进行交换,,,,, input_麻将游戏_操作规则,依次点击两块麻将可进行交换,,,,,
ui_获得道具,获得道具,,,,,Item Obtained ui_获得道具,获得道具,,,,,Item Obtained
ui_获得重要物品,重要物品,,,,,Important Item ui_获得重要物品,重要物品,,,,,Important Item

1 keys zh_CN _character _notes _tags zh_SH en
19 setting_置顶 窗口置顶 Always on Top
20 setting_自动保存 自动保存 Auto Save
21 ui_秒 seconds
22 setting_主播模式 主播模式 Streamer Mode
23 setting_返回 返回 Back
24 bag_tab_笔记 线索 Clues
25 bag_tab_物品 物件 Items
42 ui_boxcat_press_s 按住 S 躲藏 Hold S to hide
43 input_拼凑信件 点击选择信件碎片,方向键移动,E 旋碎片转,Q 退出 Click to select letter fragments, arrow keys to move, E to rotate, Q to exit
44 input_书架游戏 点击书本可选中或交换,Q 退出 Click books to select or swap, Q to exit
45 input_麻将游戏_麻将不足 还缺一块麻将(幺鸡) 还缺一块麻将
46 input_麻将游戏_操作规则 依次点击两块麻将可进行交换
47 ui_获得道具 获得道具 Item Obtained
48 ui_获得重要物品 重要物品 Important Item

View File

@ -21,6 +21,7 @@
窗口置顶[ID:setting_置顶] 窗口置顶[ID:setting_置顶]
自动保存[ID:setting_自动保存] 自动保存[ID:setting_自动保存]
秒 [ID:ui_秒] 秒 [ID:ui_秒]
主播模式[ID:setting_主播模式]
返回[ID:setting_返回] 返回[ID:setting_返回]

View File

@ -1,11 +1,12 @@
class_name GlobalConfig extends Resource class_name GlobalConfig extends Resource
signal streamer_mode_updated
#const DEBUG = true #const DEBUG = true
static var DEBUG = false static var DEBUG = false
# 影响事件的 release_stage # 0demo 1release # 影响事件的 release_stage # 0demo 1release
const RELEASE_STAGE := 0 const RELEASE_STAGE := 0
# 与 Editor 编辑器有 Debugger 连接 # 与 Editor 编辑器有 Debugger 连接
# static var EDITOR = false # static var EDITOR = false
@ -90,3 +91,9 @@ signal auto_save_seconds_changed
# 最大范围为 10 秒,精度 0.1 # 最大范围为 10 秒,精度 0.1
@export var os_wait_time := 3.0 @export var os_wait_time := 3.0
@export var os_auto_end := true @export var os_auto_end := true
# 绿色/主播模式
@export var streamer_mode := false:
set(val):
if streamer_mode != val:
streamer_mode = val
streamer_mode_updated.emit()

View File

@ -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

View File

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

View File

@ -118,7 +118,7 @@ packed_scene = ExtResource("11_jg8g0")
first_interact_os_key = "c02_海报_剪辫子侦探" first_interact_os_key = "c02_海报_剪辫子侦探"
[node name="青岛啤酒" parent="Ground/DeployLayer" index="7" instance=ExtResource("12_0fckv")] [node name="青岛啤酒" parent="Ground/DeployLayer" index="7" instance=ExtResource("12_0fckv")]
position = Vector2(253, -31) position = Vector2(255, -31)
enabled = false enabled = false
texture_cover = ExtResource("16_vqhm5") texture_cover = ExtResource("16_vqhm5")
content_key = "c02_青岛啤酒" content_key = "c02_青岛啤酒"

View File

@ -0,0 +1,6 @@
extends CanvasLayer
signal exit(arg)
func _ready() -> void:
layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME

View File

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

View File

@ -39,6 +39,10 @@ target_portal = "1"
[node name="portal_right" parent="Ground/DeployLayer" index="1"] [node name="portal_right" parent="Ground/DeployLayer" index="1"]
position = Vector2(873, 15) 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"] [node name="MainPlayer" parent="Ground" index="5"]
position = Vector2(63, 95) position = Vector2(63, 95)
catty_light_energy = 0.5 catty_light_energy = 0.5

View File

@ -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="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" 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="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://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="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"] [sub_resource type="AnimationLibrary" id="AnimationLibrary_k01ve"]
@ -40,6 +41,9 @@ target_portal = "1"
[node name="portal_right" parent="Ground/DeployLayer" index="1"] [node name="portal_right" parent="Ground/DeployLayer" index="1"]
position = Vector2(533, 26) 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"] [node name="MainPlayer" parent="Ground" index="5"]
position = Vector2(63, 95) position = Vector2(63, 95)
catty_light_energy = 0.5 catty_light_energy = 0.5

View File

@ -1,13 +1,13 @@
[gd_scene load_steps=6 format=3 uid="uid://dd8dfoik0ig3y"] [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://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="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="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"] [ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/遮罩/inspect背景遮罩.png" id="5_i34yq"]
[node name="s08_画特写" type="CanvasLayer"] [node name="s08_画特写" type="CanvasLayer"]
script = ExtResource("1_jgyts") script = ExtResource("1_4p6cc")
[node name="TextureRect" type="TextureRect" parent="."] [node name="TextureRect" type="TextureRect" parent="."]
offset_right = 40.0 offset_right = 40.0

View File

@ -1,6 +1,6 @@
[gd_scene load_steps=8 format=3 uid="uid://cxv7vdgwb8lqb"] [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://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://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"] [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"] [ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/遮罩/inspect背景遮罩.png" id="7_tja8r"]
[node name="s08_盒子猫初次特写" type="CanvasLayer"] [node name="s08_盒子猫初次特写" type="CanvasLayer"]
script = ExtResource("1_2sinf") script = ExtResource("1_tja8r")
[node name="TextureRect" type="TextureRect" parent="."] [node name="TextureRect" type="TextureRect" parent="."]
offset_right = 40.0 offset_right = 40.0

View File

@ -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="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="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://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="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="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"] [sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_gu56a"]
content_margin_top = 4.0 content_margin_top = 4.0
@ -147,3 +148,28 @@ grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
mouse_filter = 2 mouse_filter = 2
color = Color(0, 0, 0, 1) 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 = "从第三章开始新游戏"

View File

@ -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()

View File

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

View File

@ -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"

View File

@ -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"

View File

@ -64,19 +64,19 @@ func _ready() -> void:
box_closed.picked.connect(_on_box_picked) box_closed.picked.connect(_on_box_picked)
drawer_btn.picked.connect(_on_drawer_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() pic.queue_free()
if ArchiveManager.get_global_value(&"c02_musicbox_danzhu_taken"): if ArchiveManager.get_global_value(&"c02_musicbox_taken_prop_弹珠"):
danzhu.queue_free() danzhu.queue_free()
if ArchiveManager.get_global_value(&"c02_musicbox_xiaomao_taken"): if ArchiveManager.get_global_value(&"c02_musicbox_taken_prop_无头小猫玩具"):
xiaomao.queue_free() xiaomao.queue_free()
if ArchiveManager.get_global_value(&"c02_musicbox_xiaochan_taken"): if ArchiveManager.get_global_value(&"c02_musicbox_taken_prop_木头人偶"):
xiaochan.queue_free() xiaochan.queue_free()
pic.picked.connect(_on_prop_picked.bind("pic")) pic.picked.connect(_on_prop_picked.bind("prop_撕下的照片上"))
danzhu.picked.connect(_on_prop_picked.bind("danzhu")) danzhu.picked.connect(_on_prop_picked.bind("prop_弹珠"))
xiaomao.picked.connect(_on_prop_picked.bind("xiaomao")) xiaomao.picked.connect(_on_prop_picked.bind("prop_无头小猫玩具"))
xiaochan.picked.connect(_on_prop_picked.bind("xiaochan")) xiaochan.picked.connect(_on_prop_picked.bind("prop_木头人偶"))
d1.picked.connect(_on_picked) d1.picked.connect(_on_picked)
d1.dropped.connect(_on_dropped) 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) 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 node.freezing = true
var key = node.item_name
# var tween = create_tween() # var tween = create_tween()
# # 撕下来的 fade out # # 撕下来的 fade out
# tween.tween_property(node, "modulate:a", 0.0, 1.0) # 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) # tween.tween_interval(0.5)
# await tween.finished # await tween.finished
node.queue_free() node.queue_free()
SceneManager.enable_prop_item(key) SceneManager.enable_prop_item(prop_key)
if key == "prop_无头小猫玩具": if prop_key == "prop_无头小猫玩具":
_on_pick_catty() _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): func _on_picked(node: Draggable2D):

View File

@ -18,6 +18,7 @@ const dialog_db_offset := -10.0
@onready var autosave_time_edit = %SaveTimeLineEdit as LineEdit @onready var autosave_time_edit = %SaveTimeLineEdit as LineEdit
@onready var fullscreen_box = %FullscreenBox as CheckBox @onready var fullscreen_box = %FullscreenBox as CheckBox
@onready var top_box = %TopBox as CheckBox @onready var top_box = %TopBox as CheckBox
@onready var streamer_box = %StreamerBox as CheckBox
@onready var return_btn = %ReturnBtn as Button @onready var return_btn = %ReturnBtn as Button
@ -88,7 +89,10 @@ func _ready():
top_box.button_pressed = GlobalConfigManager.config.window_top top_box.button_pressed = GlobalConfigManager.config.window_top
fullscreen_box.toggled.connect(_on_fullscreen_box_toggled) fullscreen_box.toggled.connect(_on_fullscreen_box_toggled)
top_box.toggled.connect(_on_top_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.pressed.connect(_on_return_btn_pressed)
return_btn.grab_focus() return_btn.grab_focus()
SceneManager.toggle_pause_counter(true) SceneManager.toggle_pause_counter(true)
@ -179,6 +183,10 @@ func _on_top_box_toggled(is_pressed: bool) -> void:
GlobalConfigManager.config.window_top = is_pressed 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: func _on_return_btn_pressed() -> void:
exit_settings() exit_settings()

View File

@ -293,17 +293,30 @@ layout_mode = 2
size_flags_horizontal = 10 size_flags_horizontal = 10
focus_neighbor_left = NodePath("../FullscreenBox") focus_neighbor_left = NodePath("../FullscreenBox")
focus_neighbor_top = NodePath("../../自动保存/SaveTimeLineEdit") focus_neighbor_top = NodePath("../../自动保存/SaveTimeLineEdit")
focus_neighbor_bottom = NodePath("../../ReturnBtn") focus_neighbor_bottom = NodePath("../../HBoxContainer/ReturnBtn")
focus_previous = NodePath("../FullscreenBox") focus_previous = NodePath("../FullscreenBox")
text = "setting_置顶" 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 unique_name_in_owner = true
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 6 size_flags_horizontal = 6
size_flags_vertical = 4 size_flags_vertical = 4
focus_neighbor_top = NodePath("../显示方式/TopBox") focus_neighbor_top = NodePath("../../显示方式/TopBox")
focus_previous = NodePath("../显示方式/TopBox") focus_previous = NodePath("../../显示方式/TopBox")
theme_override_fonts/font = ExtResource("6_n2b1f") theme_override_fonts/font = ExtResource("6_n2b1f")
theme_override_font_sizes/font_size = 11 theme_override_font_sizes/font_size = 11
text = "setting_返回" text = "setting_返回"

View File

@ -4,7 +4,7 @@ extends Control
@onready var mask = $"遮罩" @onready var mask = $"遮罩"
@onready var earplug_notice = $"耳机提示" @onready var earplug_notice = $"耳机提示"
var packed_index_page := preload("res://scene/index_page.tscn") var packed_index_page := preload("uid://c4ycvdsabi7lw")
func _ready() -> void: func _ready() -> void: